一.常用術(shù)語
常用術(shù)語包括:
腳本(asp、php、jsp):編寫網(wǎng)站的語言
html(css、js、html):超文本標(biāo)記語言,解釋給瀏覽器的靜態(tài)編程語言
HTTP/HTTPS協(xié)議:通訊標(biāo)準(zhǔn),明文或密文
CMS(B/S):網(wǎng)站內(nèi)容管理系統(tǒng),常見的比如Discuz、DedeCMS、wordPress/ target=_blank class=infotextkey>WordPress等,針對CMS漏洞進(jìn)行滲透測試
MD5: 加密算法,得到加密后的hash值
肉雞、抓雞、跳板:被控制的電腦稱為肉雞,控制過程叫抓雞;如果直接攻擊會暴露IP,此時通過已經(jīng)拿下的電腦進(jìn)行攻擊,則稱為跳板
一句話、小馬、大馬:比如 <?php eval($_POST[eastmount]); ?>,本身一句話木馬是沒有危害的,它通過預(yù)處理全局變量來執(zhí)行POST參數(shù)
webshell、提權(quán)、后門:網(wǎng)站后門可稱為webshell
源碼打包、脫褲:源碼打包和數(shù)據(jù)庫脫褲都是常見的手段,但無法脫褲一定不去執(zhí)行
嗅探、掃描、注入、上傳、提權(quán)、rookit
0day、1day、nday
代碼審計
安全分享及漏洞庫網(wǎng)站推薦:
安全測試集相關(guān)網(wǎng)站推薦:
在線分析或沙箱平臺推薦:
安全技術(shù)會議推薦:
安全學(xué)術(shù)會議推薦:
二.滲透測試流程
OWASP top 10 測試標(biāo)準(zhǔn)是安全招聘的常見問題,也是滲透測試的經(jīng)典標(biāo)準(zhǔn),詳見參考文獻(xiàn)2。
OWASP(開放式Web應(yīng)用程序安全項目)的工具、文檔、論壇和全球各地分會都是開放的,對所有致力于改進(jìn)應(yīng)用程序安全的人士開放,其最具權(quán)威的就是“10項最嚴(yán)重的Web 應(yīng)用程序安全風(fēng)險列表” ,總結(jié)了Web應(yīng)用程序最可能、最常見、最危險的十大漏洞,是開發(fā)、測試、服務(wù)、咨詢?nèi)藛T應(yīng)知應(yīng)會的知識。
注入injection:將不安全的命令發(fā)送給解析器,產(chǎn)生類似于SQL注入、NoSQL注入、OS注入和LDAP注入的缺陷。攻擊者可以構(gòu)造惡意數(shù)據(jù)通過注入缺陷的解析器執(zhí)行沒有權(quán)限的非預(yù)期命令或訪問數(shù)據(jù)。
失效的身份認(rèn)證:通過錯誤使用應(yīng)用程序的身份認(rèn)證和會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌,或者暫時或永久的冒充其他用戶的身份。
敏感數(shù)據(jù)泄露:通常敏感信息包括密碼、財務(wù)數(shù)據(jù)、醫(yī)療數(shù)據(jù)等,由于Web應(yīng)用或API未加密或不正確的保護(hù)敏感數(shù)據(jù),這些數(shù)據(jù)極易遭到攻擊者利用。由于未加密的信息極易遭到破壞和利用,因此我們應(yīng)該加強(qiáng)對敏感數(shù)據(jù)的保護(hù),Web應(yīng)用應(yīng)該在傳輸數(shù)據(jù)、存儲數(shù)據(jù)以及瀏覽器交互數(shù)據(jù)時進(jìn)行加密,保證數(shù)據(jù)安全。
外部實體 XXE:XXE全稱為XML External Entity attack,即XML外部實體注入攻擊,早期或配置錯誤的XML處理器評估了XML文件外部實體引用,攻擊者可以利用這個漏洞竊取URI文件處理器的內(nèi)部文件和共享文件、監(jiān)聽內(nèi)部掃描端口、執(zhí)行遠(yuǎn)程代碼和實施拒絕服務(wù)攻擊。
失效的訪問控制:通過身份驗證的用戶,可以訪問其他用戶的相關(guān)信息。攻擊者可以利用這個漏洞去查看未授權(quán)的功能和數(shù)據(jù),如訪問用戶的賬戶、敏感文件、獲取和正常用戶相同的權(quán)限等。
安全配置錯誤:安全配置錯誤是比較常見的漏洞,由于操作者的不當(dāng)配置,導(dǎo)致攻擊者可以利用這些配置獲取更高的權(quán)限,安全配置錯誤可以發(fā)生在各個層面,包含平臺、web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫、架構(gòu)和代碼。
跨站腳本攻擊 XSS:當(dāng)應(yīng)用程序的網(wǎng)頁中包含不受信任的、未經(jīng)恰當(dāng)驗證、轉(zhuǎn)義的數(shù)據(jù),或使用HTML、JAVAScript的瀏覽器API更新現(xiàn)有網(wǎng)頁時,就會出現(xiàn)XSS漏洞,跨站腳本攻擊是最普遍的Web應(yīng)用安全漏洞,甚至在某些安全平臺都存在XSS漏洞。它會執(zhí)行攻擊者在瀏覽器中的腳本,并劫持用戶會話,破壞網(wǎng)站或用戶重定向到惡意站點,使用XSS甚至可以執(zhí)行拒絕服務(wù)攻擊。
不安全的反序列化:它可以導(dǎo)致遠(yuǎn)程代碼執(zhí)行、重放攻擊、注入攻擊或特權(quán)升級攻擊。
使用含有已知漏洞的組件:組件(如庫、框架或軟件模塊)擁有應(yīng)用程序相同的權(quán)限,如果應(yīng)用程序中含有已知漏洞,攻擊者可以利用漏洞獲取數(shù)據(jù)或接管服務(wù)器。同時,使用這些組件會破壞應(yīng)用程序防御,造成各種攻擊產(chǎn)生嚴(yán)重的后果。
不足的日志記錄和監(jiān)控:這個和等保有一定的關(guān)系,不足的日志記錄和監(jiān)控,以及事件響應(yīng)缺失或無效的集成,使攻擊者能夠進(jìn)一步攻擊系統(tǒng)、保持持續(xù)性的或攻擊更多的系統(tǒng),以及對數(shù)據(jù)的不當(dāng)操作。
滲透測試(Penetration test)并沒有一個標(biāo)準(zhǔn)的定義,國外一些安全組織達(dá)成共識的通用說法是:滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機(jī)網(wǎng)絡(luò)系統(tǒng)安全的一種評估方法。 這個過程包括對系統(tǒng)的任何弱點、技術(shù)缺陷或漏洞的主動分析,這個分析是從一個攻擊者可能存在的位置來進(jìn)行的,并且從這個位置有條件主動利用安全漏洞。
換句話說,滲透測試是滲透人員在不同的位置(比如內(nèi)網(wǎng)、外網(wǎng))利用各種手段對某個特定網(wǎng)絡(luò)進(jìn)行測試,以發(fā)現(xiàn)和挖掘系統(tǒng)中存在的漏洞,然后輸出滲透測試報告,并提交給網(wǎng)絡(luò)所有者。網(wǎng)絡(luò)所有者根據(jù)滲透人員提供的滲透測試報告,可以清晰知曉系統(tǒng)中存在的安全隱患和問題。
滲透測試流程包括:
確定目標(biāo):目標(biāo)包括網(wǎng)站、系統(tǒng)、網(wǎng)段等
信息收集:占滲透測試大部分時間,信息收集越全面后續(xù)的滲透越容易,包括IP、端口、協(xié)議、旁站、C段、whois、DNS、后臺URL、CMS、身份、郵箱、社工等
漏洞探測:常見漏洞包括SQL注入、XSS、越權(quán)、文件上傳、Bash、下載漏洞、文件包含、變量覆蓋、代碼執(zhí)行、文件泄露等
漏洞驗證:建議撰寫POC,避免撰寫EXP。(POC是指漏洞驗證,英文為Proof of Concept ,表示一段漏洞證明的代碼;EXP是指漏洞利用,全稱Exploit,指利用系統(tǒng)漏洞進(jìn)行攻擊的動作;Payload是“有效載荷”,指成功exploit之后,真正在目標(biāo)系統(tǒng)執(zhí)行的代碼或指令;Shellcode是Payload的一種,由于其建立正向/反向shell而得名)
編寫報告
信息整理
獲取所需
信息分析
三.環(huán)境配置
虛擬機(jī)應(yīng)用配置
系統(tǒng)安裝
HTTP協(xié)議
網(wǎng)站搭建配置
1.虛擬機(jī)應(yīng)用配置
安裝詳見前文 十一,虛擬機(jī)VMware+Kali安裝入門及Sqlmap基本用法”。
注意,虛擬機(jī)有個快照功能可以幫助我們迅速恢復(fù)之前的狀態(tài)。
虛擬機(jī)網(wǎng)絡(luò)配置在右下角位置。
如果想要虛擬機(jī)上網(wǎng),通常我們會選擇“Net模式”,讓它自動獲取IP即可。
也可以設(shè)置自定義模式。
如何在虛擬機(jī)中搭建網(wǎng)站,讓外網(wǎng)能夠訪問呢?
選擇“橋接模式”,直接連接物理網(wǎng)絡(luò),復(fù)制物理網(wǎng)絡(luò)連接狀態(tài),此時在同一個網(wǎng)段進(jìn)行訪問。這里在虛擬機(jī)中搭建一個網(wǎng)站,其虛擬機(jī)IP地址為192.168.0.104,如下圖所示。
此時物理機(jī)通過IP地址可以直接訪問該虛擬機(jī)中搭建好的網(wǎng)站,注意端口號為99。
那么,又怎么通過外網(wǎng)訪問呢?接著需要配置迅捷網(wǎng)絡(luò)的路由器,點擊“高級用戶”->“虛擬服務(wù)器”映射IP。設(shè)置虛擬服務(wù)器,添加一個HTTP協(xié)議的服務(wù)器,IP地址為192.168.0.104,端口號為99。
此時,當(dāng)外網(wǎng)訪問本機(jī)物理IP地址時,就會跳轉(zhuǎn)訪問虛擬機(jī)中搭建的網(wǎng)站。其本機(jī)物理IP地址為182.46.195.40。
外網(wǎng)訪問的最終結(jié)果如下圖所示,也推薦大家搭建網(wǎng)站進(jìn)行滲透測試。
PS:后續(xù)隨著教程深入會分享如何搭建網(wǎng)站以及域名解析。
2.HTTP協(xié)議
HTTP(明文)和HTTPS(密文)
HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是因特網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)傳輸協(xié)議,所有的WWW文件都必須遵守這個標(biāo)準(zhǔn)。它是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則,是萬維網(wǎng)交換信息的基礎(chǔ),允許將HTML文檔從Web服務(wù)器傳送到Web瀏覽器。
HTTP協(xié)議是基于TCP/IP協(xié)議之上的應(yīng)用層協(xié)議,它是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)。客戶端是終端用戶,服務(wù)器端是網(wǎng)站。通過使用Web瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個到服務(wù)器上指定端口(默認(rèn)端口為80)的HTTP請求。下圖是HTTP協(xié)議的原理圖,通常包括兩部分:
HTTP客戶端發(fā)起一個請求,建立一個到服務(wù)器指定端口的TCP連接。
HTTP服務(wù)器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。一旦收到請求,服務(wù)器向客戶端發(fā)回一個狀態(tài)行,比如成功訪問的狀態(tài)碼為“HTTP/1.1 200 OK”,同時返回響應(yīng)消息,包括請求文件、錯誤消息、或者其它一些信息。
推薦文章:HTTP協(xié)議超級詳解 - 愛文飛翔
HTTPS(全稱Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標(biāo)的HTTP通道,在HTTP的基礎(chǔ)上通過傳輸加密和身份認(rèn)證保證了傳輸過程的安全性。HTTPS在HTTP的基礎(chǔ)下加入SSL層,HTTPS 的安全基礎(chǔ)是 SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。HTTPS 存在不同于HTTP的默認(rèn)端口及一個加密/身份驗證層(在 HTTP與 TCP 之間)。這個系統(tǒng)提供了身份驗證與加密通訊方法。它被廣泛用于萬維網(wǎng)上安全敏感的通訊,例如交易支付等方面。如果你足夠細(xì)心,你會發(fā)現(xiàn)現(xiàn)在很多大型互聯(lián)網(wǎng)網(wǎng)站,如百度、淘寶、騰訊很早就已經(jīng)把HTTP換成HTTPS了。
響應(yīng)碼很多目錄掃描工具就是通過HTTP響應(yīng)碼來判斷頁面是否存在。200、302、403、404、500都是常見的響應(yīng)碼。
URL
在WWW上,每一信息資源都有統(tǒng)一的且在網(wǎng)上唯一的地址,該地址就叫URL(Uniform Resource Locator,統(tǒng)一資源定位符),它是WWW的統(tǒng)一資源定位標(biāo)志,就是指網(wǎng)絡(luò)地址。
URL由三部分組成:資源類型、存放資源的主機(jī)域名、資源文件名;也可認(rèn)為由4部分組成:協(xié)議、主機(jī)、端口、路徑。URL的一般語法格式如下,方括號為可選項。
protocol :// hostname[:port] / path / [parameters][?query]#fragment
例如“
www.eastmount.com/admin/index.html”,某些情況下,它是偽靜態(tài)網(wǎng)頁,雖然看似HTML文件,但存在數(shù)據(jù)庫交互。常見的動態(tài)網(wǎng)站編寫腳本包括:
index.php
index.asp
index.jsp
HTTP Header
HTTP消息頭是指在超文本傳輸協(xié)議( Hypertext Transfer Protocol ,HTTP)的請求和響應(yīng)消息中,協(xié)議頭部分的那些組件。HTTP消息頭用來準(zhǔn)確描述正在獲取的資源、服務(wù)器或者客戶端的行為,定義了HTTP事務(wù)中的具體操作參數(shù)。這里以Python獲取消息頭為例:
# -*- coding:utf-8 -*-
import urllib
import webbrowser as web
url = "http://www.baidu.com
content = urllib.urlopen(url)
print content.info() #頭信息
print content.geturl() #請求url
print content.getcode() #http狀態(tài)碼
#保存網(wǎng)頁至本地并通過瀏覽器打開
open("baidu.html","w").write(content.read())
web.open_new_tab("baidu.html")
該段調(diào)用調(diào)用urllib.urlopen(url)函數(shù)打開百度鏈接,并輸出消息頭、url、http狀態(tài)碼等信息,如下圖所示。
一方面分析HTTP頭對網(wǎng)站滲透非常重要;另一方面它也存在安全隱患,在PHP中通常會使用 $_SERVER[“HTTP_CLIENT_IP”] 或者 $_SERVER[“HTTP_X_FORWARDED_FOR”] 來獲取IP。因此,可以通過修改HTTP頭中的X-Forwarder-For:、client-ip:來進(jìn)行攻擊。例如:
突破服務(wù)器訪問限制ip
HTTP頭注入攻擊
BurpSuite抓包分析
Burpsuite是用于攻擊web應(yīng)用程序的集成平臺,包含了許多工具。Burpsuite為這些工具設(shè)計了許多接口,以加快攻擊應(yīng)用程序的過程。所有工具都共享一個請求,并能處理對應(yīng)的HTTP 消息、持久性、認(rèn)證、代理、日志、警報。通常利用Burpsuite抓包分析,尋找Web漏洞。
后續(xù)作者會結(jié)合Cracer教程深入講解,也推薦大家閱讀作者之前的文章:
三.Burp Suite工具安裝配置、Proxy基礎(chǔ)用法及暴庫示例
GET傳參和POST傳參區(qū)別
采用GET方法,瀏覽器會與表單處理服務(wù)器建立連接,然后直接在一個傳輸步驟中發(fā)送所有的表單數(shù)據(jù),瀏覽器會將數(shù)據(jù)直接附在表單的 action URL之后,兩者之間用問號進(jìn)行分隔。這種方法傳遞數(shù)據(jù)數(shù)據(jù)量較小,并且不安全。形如:
http://www.example.com/login?name=me&pwd=123456
采用POST方法,瀏覽器將會按照下面兩步來發(fā)送數(shù)據(jù)。首先,瀏覽器將與 action屬性中指定的表單處理服務(wù)器建立聯(lián)系,一旦建立連接之后,瀏覽器就會按分段傳輸?shù)姆椒▽?shù)據(jù)發(fā)送給服務(wù)器。在服務(wù)器端,一旦POST樣式的應(yīng)用程序開始執(zhí)行時,就應(yīng)該從一個標(biāo)志位置讀取參數(shù),而一旦讀到參數(shù),在應(yīng)用程序能夠使用這些表單值以前,必須對這些參數(shù)進(jìn)行解碼。用戶特定的服務(wù)器會明確指定應(yīng)用程序應(yīng)該如何接受這些參數(shù)。對那些有許多字段或是很長的文本域的表單來說,就應(yīng)該采用 POST 方法來發(fā)送。同時,POST方法的安全性更高。形如:
http://www.example.com/login
HTTP請求方法還包括:GET、POST、OPTIONS、PUT、MOVE、DELETE、TRACE。下圖采用BurpSuite抓取POST請求參數(shù)。
注意,錯誤配置HTTP方法可能導(dǎo)致的安全事件。服務(wù)器存在允許PUT方式和MOVE方式,這時我們可以通過PUT方式傳入一個webshell.txt,然后通過MOVE方式結(jié)合解析漏洞很快地拿到網(wǎng)站的Webshell。
WAF
Web應(yīng)用防護(hù)系統(tǒng)(Web Application Firewall,簡稱 WAF)也稱為:=網(wǎng)站應(yīng)用級入侵防御系統(tǒng)。Web應(yīng)用防火墻是通過執(zhí)行一系列針對HTTP/HTTPS的安全策略來專門為Web應(yīng)用提供保護(hù)的一款產(chǎn)品。
推薦作者前文:[網(wǎng)絡(luò)安全自學(xué)篇] 三十三.文件上傳漏洞之繞狗一句話原理和繞過安全狗(六)
防火墻技術(shù)是通過有機(jī)結(jié)合各類用于安全管理與篩選的軟件和硬件設(shè)備,幫助計算機(jī)網(wǎng)絡(luò)于其內(nèi)、外網(wǎng)之間構(gòu)建一道相對隔絕的保護(hù)屏障,以保護(hù)用戶資料與信息安全性的一種技術(shù)。
防火墻技術(shù)的功能主要在于及時發(fā)現(xiàn)并處理計算機(jī)網(wǎng)絡(luò)運行時可能存在的安全風(fēng)險、數(shù)據(jù)傳輸?shù)葐栴},其中處理措施包括隔離與保護(hù),同時可對計算機(jī)網(wǎng)絡(luò)安全當(dāng)中的各項操作實施記錄與檢測,以確保計算機(jī)網(wǎng)絡(luò)運行的安全性,保障用戶資料與信息的完整性,為用戶提供更好、更安全的計算機(jī)網(wǎng)絡(luò)使用體驗。
安全狗以SECaaS安全即為用戶提供一站式的云安全產(chǎn)品與服務(wù),包括(云)主機(jī)安全、WEB應(yīng)用安全、網(wǎng)站防篡改、抗DDoS云服務(wù)、安全大數(shù)據(jù)態(tài)勢感知等。其基本功能包括:
網(wǎng)站安全狗: 面向網(wǎng)站安全,包括網(wǎng)馬掃描及查殺(自有引擎,只針對網(wǎng)頁木馬);網(wǎng)馬主動防御功能(可主動攔截網(wǎng)馬上傳和訪問的動作);防SQL注入功能、防XSS跨站攻擊功能;防盜鏈防下載;以及防止CC攻擊。
服務(wù)器安全狗: 面向服務(wù)器安全的,包括基于內(nèi)核驅(qū)動的抗DDOS攻擊、抗ARP攻擊、抗WEB CC攻擊功能;基于內(nèi)核驅(qū)動的文件系統(tǒng)主動保護(hù)功能(可防止文件被篡改、保護(hù)系統(tǒng)文件);基于內(nèi)核驅(qū)動的服務(wù)器其他方面的主動防御功能(系統(tǒng)賬號、注冊表、遠(yuǎn)程登陸等方面的保護(hù));以及服務(wù)器全面優(yōu)化及體檢功能。
安全狗服云: 基于云端的監(jiān)控和保護(hù)。安全狗服云利用云計算技術(shù),為用戶構(gòu)造一個全面的服務(wù)器和網(wǎng)站的監(jiān)控和防護(hù)平臺,利用這個平臺,用戶可以做到24小時的服務(wù)器健康監(jiān)控、資源監(jiān)控和資源告警;24小時的服務(wù)器可用性監(jiān)控;網(wǎng)站安全云掃描,發(fā)現(xiàn)網(wǎng)站存在的各種漏洞;基于云端技術(shù)的網(wǎng)站防篡改功能,保障網(wǎng)站文件不被非法修改。
<?php
$a='b';
$$a='assert';
$b($_POST[fox]);
?>
3.網(wǎng)站搭建配置
常見網(wǎng)站搭建包括ASP網(wǎng)站搭建、Java網(wǎng)站SSH搭建、PHP網(wǎng)站搭建 ,比如phpStudy、WAMP/LAMP。參考作者文章:phpStudy搭建Upload-labs靶場及CTF題PHP XAMPP配置PHP環(huán)境和Apache80端口被占用解決方案
它的優(yōu)勢是可以切換各種PHP版本。
IIS網(wǎng)站搭建也是非常基礎(chǔ)的知識,這里推薦大家閱讀 “[網(wǎng)絡(luò)安全自學(xué)篇] 四十二.DNS欺騙和釣魚網(wǎng)站原理詳解及漏洞還原” 文章實驗部分。
一個聰明的安全工程師,是需要熟悉常見的CMS框架的。
內(nèi)容管理系統(tǒng)(content management system,CMS)是一種位于WEB 前端(Web 服務(wù)器)和后端辦公系統(tǒng)或流程(內(nèi)容創(chuàng)作、編輯)之間的軟件系統(tǒng)。內(nèi)容的創(chuàng)作人員、編輯人員、發(fā)布人員使用內(nèi)容管理系統(tǒng)來提交、修改、審批、發(fā)布內(nèi)容。這里指的“內(nèi)容”可能包括文件、表格、圖片、數(shù)據(jù)庫中的數(shù)據(jù)甚至視頻等一切你想要發(fā)布到Internet、Intranet以及Extranet網(wǎng)站的信息。
常見CMS如下:
企業(yè)建站系統(tǒng):MetInfo(米拓)、蟬知、SiteServer CMS(.net平臺)等
B2C商城系統(tǒng):商派shopex、ecshop、hishop、xpshop等
門戶建站系統(tǒng):DedeCMS(織夢,PHP+MySQL)、帝國CMS(PHP+mysql)、PHPCMS、動易、cmstop,dianCMS(易點CMS,.net平臺)等
博客系統(tǒng):wordpress、Z-Blog等
論壇社區(qū):discuz、phpwind、wecenter等
問答系統(tǒng):Tipask、whatsns等
知識百科系統(tǒng):HDwiki
B2B門戶系統(tǒng):destoon、B2Bbuilder、友鄰B2B等
人才招聘網(wǎng)站系統(tǒng):騎士CMS、PHP云人才管理系統(tǒng)
房產(chǎn)網(wǎng)站系統(tǒng):FangCms等;
在線教育建站系統(tǒng):kesion(科汛,ASP)、EduSoho網(wǎng)校
電影網(wǎng)站系統(tǒng):蘋果cms、ctcms、movcms等
小說文學(xué)建站系統(tǒng):JIEQI CMS
寫到這里,上部分網(wǎng)絡(luò)安全基礎(chǔ)知識就介紹完畢,接下來將分享windows基礎(chǔ)知識及DOS命令。上部分主要的知識點包括:
了解常見術(shù)語
熟悉滲透測試流程
熟練操作虛擬機(jī)配置及系統(tǒng)安裝
學(xué)會搭建網(wǎng)站測試環(huán)境
掌握常見CMS框架
熟悉網(wǎng)絡(luò)基礎(chǔ)知識,包括HTTP、協(xié)議、GET和POST等
四.Windows基礎(chǔ)知識
該部分主要分為三部分內(nèi)容:
系統(tǒng)目錄、服務(wù)、端口、注冊表
黑客常用的DOS命令及批處理
powershell
1. 系統(tǒng)目錄、服務(wù)、端口、注冊表
系統(tǒng)目錄
熟悉系統(tǒng)目錄方便我們進(jìn)行滲透操作。包括系統(tǒng)自身創(chuàng)建的目錄、程序或人為創(chuàng)建的目錄。比較重要的幾個目錄包括Windows、Program files/Program files(x86)、ProgramData、用戶等。
(1) Windows
Windows系統(tǒng)目錄指操作系統(tǒng)的主要文件存放的目錄。目錄中的文件直接影響到系統(tǒng)是否正常工作,了解這些目錄的功能,對使用系統(tǒng)會有很大的幫助。
其中的核心目錄包括System32,該文件夾下config/SAM是存儲加密過的系統(tǒng)帳號的密碼文件。該文件被系統(tǒng)占用無法打開,但PE系統(tǒng)下能操作管理員密碼,也可以通過lc5、彩虹表、PwDum7.exe獲取。
PwDum7.exe軟件讀取SAM文件,此時為密文。
pass.exe軟件獲取密碼“123.com”,必須管理員權(quán)限才能讀取。
另一個核心文件為WindowsSystem32driversetchosts文件,相當(dāng)于本地的小型DNS,定義了域名和IP。
打開如下圖所示:
注意,hosts文件的優(yōu)先級高于DNS服務(wù)器。
如果我們直接ping百度,它會返回百度的真實IP地址(115.239.210.27),如下圖所示。
但如果在hosts文件中增加域名解析記錄,則它會優(yōu)先ping本地hosts文件中的記錄(1.1.1.1)。如果你的hosts文件被污染,則就是DNS欺騙或釣魚網(wǎng)站,
詳細(xì)推薦作者前文:四十二.DNS欺騙和釣魚網(wǎng)站原理詳解及漏洞還原。
域名解析(Domain Name Resolution) 是把域名指向網(wǎng)站空間IP,讓人們通過注冊的域名可以方便地訪問到網(wǎng)站的一種服務(wù)。IP地址是網(wǎng)絡(luò)上標(biāo)識站點的數(shù)字地址,為了方便記憶,采用域名來代替IP地址標(biāo)識站點地址。域名解析就是域名到IP地址的轉(zhuǎn)換過程。域名的解析工作由DNS服務(wù)器完成。
例如,當(dāng)企業(yè)員工電腦訪問該購物網(wǎng)站時,會去DNS服務(wù)器進(jìn)行解析;然后找到地址2.2.2.2,并返回給企業(yè)員工電腦;最后訪問該購物Web服務(wù)器,假設(shè)是IIS,它會將購物網(wǎng)站的首頁返回給你的瀏覽器。
(2) Program files/Program files(x86)
操作系統(tǒng)各種程序默認(rèn)安裝到的目錄,包括32位和64位。其文件夾包括:Common Files(提供程序中的一些共享配置文件)、 Internet Explorer(網(wǎng)絡(luò)瀏覽器)、NetMeeting(網(wǎng)絡(luò)聊天軟件)、Microsoft office(辦公軟件集合)、Windows Media Player(媒體播放器)等。
比如騰訊QQ、微信通訊軟件。
(3) Perflogs
它是Windows系統(tǒng)的日志信息,如磁盤掃描錯誤信息、測試信息等,該目錄不建議刪除,刪除反而會重新生成并降低系統(tǒng)速度。
(4) ProgramData
C盤的一個系統(tǒng)文件夾(隱藏),它是公用的被創(chuàng)建文件夾或文件存放的地方,由創(chuàng)建者完整控制,程序運行或啟動生成的臨時文件通常存放該目錄,電腦病毒也比較喜歡感染該目錄。
(5) 用戶
存放系統(tǒng)賬號相關(guān)的文件或文件夾。在Web滲透中該目錄有什么用呢?當(dāng)我們提取某個服務(wù)器后,通常會去查詢該目錄中存在的用戶名,該目錄是信息深入收集所必須查找的目錄,包括桌面、我的文檔等敏感信息或文件。
比如QQ的文件接收信息。如果存在敏感文件,是不是就會泄露了相關(guān)信息。
服務(wù)
服務(wù)是一種應(yīng)用程序類型,它在后臺運行。服務(wù)應(yīng)用程序通常可以在本地和通過網(wǎng)絡(luò)為用戶提供一些功能,例如客戶端/服務(wù)器應(yīng)用程序、Web服務(wù)器、數(shù)據(jù)庫服務(wù)器以及其他基于服務(wù)器的應(yīng)用程序。如果某個服務(wù)未打開,你就不能享受對應(yīng)這個服務(wù)的功能。
在運行中輸入“services.msc”打開服務(wù)。
顯示如下圖所示,可以打開描述查看具體信息。
比如虛擬機(jī)的網(wǎng)絡(luò)服務(wù),需要打開才能讓虛擬機(jī)連接上網(wǎng)。
比如虛擬機(jī)的網(wǎng)絡(luò)服務(wù),需要打開才能讓虛擬機(jī)連接上網(wǎng)。
除了計算機(jī)內(nèi)置的服務(wù),我們軟件也需要注冊相關(guān)的服務(wù),包括后面要講得metasploit安裝后面的軟件,也需要安裝相關(guān)的服務(wù)。
服務(wù)決定了計算機(jī)的一些功能是否被啟用,不同的服務(wù)對應(yīng)的功能不同,通過計算機(jī)提供的服務(wù)可以有效地實現(xiàn)資源共享。常見的服務(wù)包括:
Web服務(wù):搭建網(wǎng)站
DNS服務(wù):用于域名解析
DHCP服務(wù):用于客戶機(jī)配置可用IP
郵件服務(wù):發(fā)送郵件
Telnet服務(wù):Windows遠(yuǎn)程連接
SSH服務(wù):通過ssh服務(wù)連接該主機(jī)
FTP服務(wù):文件傳輸協(xié)議服務(wù),為互聯(lián)網(wǎng)提供文件存儲和訪問
SMB服務(wù):用于Web連接和客戶端與服務(wù)器之間的信息溝通
服務(wù)是可以設(shè)置“自動”(啟動)、“手動”、“禁用”三種類型,后面用到時會具體講解。
在CMD中輸入 “netstat -an” 顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接(IP+端口)正在運作。
Cracer安全工具包提供了各種工具,推薦大家嘗試學(xué)習(xí)。
比如利用Hydra工具進(jìn)行Telnet遠(yuǎn)程服務(wù)器密碼爆破,如下圖所示,也推薦大家閱讀前面作者的文章 “三十八.hack the box滲透之BurpSuite和Hydra密碼爆破及Python加密Post請求(二)”。如果想提高爆破成功率,字典和社工(目標(biāo)生日、姓名)非常重要。
端口
(1) 端口的作用
我們知道,一臺擁有IP地址的主機(jī)可以提供許多服務(wù),比如Web服務(wù)、FTP服務(wù)、SMTP服務(wù)等,這些服務(wù)完全可以通過1個IP地址來實現(xiàn)。那么,主機(jī)是怎么區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址,因為IP地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對多的關(guān)系,實際上是通過“IP地址+端口號”來區(qū)分不同的服務(wù)的。
需要注意的是,端口并不是一一對應(yīng)的。比如你的電腦作為客戶機(jī)訪問一臺WWW服務(wù)器時,WWW服務(wù)器使用“80”端口與你的電腦通信,但你的電腦則可能使用“3456”這樣的端口。如下圖所示:
(2) 端口的分類
端口共1-65535號,知名端口范圍從0到1023,這些端口號一般固定分配給一些服務(wù),大家盡量不要使用。比如21端口分配給FTP服務(wù),25端號分配給SMTP郵件傳輸協(xié)議服務(wù),80端口分配給HTTP服務(wù),135端口分配給RPC遠(yuǎn)程過程調(diào)用服務(wù)等等。
動態(tài)端口的范圍從1024到65535,這些端口號一般不固定分配給某個服務(wù),也就是說許多服務(wù)都可以使用這些端口。只要運行的程序向系統(tǒng)提出訪問網(wǎng)絡(luò)的申請,那么系統(tǒng)就可以從這些端口號中分配一個供該程序使用。比如1024端口就是分配給第一個向系統(tǒng)發(fā)出申請的程序,在關(guān)閉程序進(jìn)程后,就會釋放所占用的端口號。注意,端口沖突就不能正常工作。
同時,動態(tài)端口號也常常被病毒木馬程序所利用,如冰河默認(rèn)連接端口號是7626、WAY 2.4連接端口號是8011、Netspy 3.0連接端口號是7306、YAI病毒連接端口號是1024等等。
(3) 常見的端口
4)黑客通過端口可以干什么
信息收集
目標(biāo)探測
服務(wù)判斷
系統(tǒng)判斷
角色分析
注冊表
注冊表(Registry,繁體中文版Windows稱之為登錄檔)是微軟Windows系統(tǒng)中的一個重要的數(shù)據(jù)庫,用于存儲系統(tǒng)和應(yīng)用程序的設(shè)置信息。早在Windows 3.0退出OLE技術(shù)的時候,注冊表就已經(jīng)出現(xiàn)。隨后推出的Windows NT是第一個從系統(tǒng)級別廣泛使用注冊表的操作系統(tǒng)。但是,從Microsoft Windows 95開始,注冊表才真正成為Windows用戶經(jīng)常接觸的內(nèi)容,并在其后的操作系統(tǒng)中繼續(xù)沿用至今。在安全領(lǐng)域,注冊表是非常強(qiáng)大且常用的。
(1) 打開注冊表
運行中輸入“regedit”。
打開如下圖所示,包括五個根鍵,每個鍵值控制的內(nèi)容不一樣。
(2) 注冊表的作用
注冊表是Windows操作系統(tǒng)中的一個核心數(shù)據(jù)庫,其中存放著各種參數(shù),直接控制著Windows的啟動、硬件驅(qū)動程序的裝載以及一些Windows應(yīng)用程序的運行,從而在整個系統(tǒng)中起著核心作用。這些作用包括了軟硬件的相關(guān)配置和狀態(tài)信息,比如注冊表中保存有應(yīng)用程序和資源管理器外殼的初始條件、首選項和卸載數(shù)據(jù)等,聯(lián)網(wǎng)計算機(jī)的整個系統(tǒng)的設(shè)置和各種許可,文件擴(kuò)展名與應(yīng)用程序的關(guān)聯(lián),硬件部件的描述、狀態(tài)和屬性,性能記錄和其他底層的系統(tǒng)狀態(tài)信息,以及其他數(shù)據(jù)等。
如果我們的電腦中了木馬,怎么清除對應(yīng)的木馬呢?
第一種方法,開機(jī)自啟動是植入木馬常用的操作,進(jìn)行查找及清除。
在運行中輸入“msconfig”,可以查看開機(jī)自啟動程序和服務(wù),如下圖所示,圖中“計算器”就是之前另一篇文章植入的“木馬”。當(dāng)木馬設(shè)置成開機(jī)自啟動服務(wù)時,是非常可怕的一件事,參考作者前文。
三十六.WinRAR漏洞復(fù)現(xiàn)(CVE-2018-20250)及惡意軟件自啟動劫持
四十三.木馬原理詳解、遠(yuǎn)程服務(wù)器IPC$漏洞及木馬植入實驗
如果電腦被植入木馬,我們可以通過其位置找到對應(yīng)的木馬并清除,下圖顯示的是VBS木馬。
如果程序未放置在開機(jī)自啟動的位置,而是插入注冊表中,又怎么清除呢?
第二種方法,通過注冊表查找并清除木馬。
通過查找注冊表的內(nèi)容,然后再獲取鍵值的位置并進(jìn)行清除。
第三種方法,通過網(wǎng)絡(luò)遠(yuǎn)程連接查詢和外部交互的IP地址和端口。
輸入“netstat -an” 或 “netstat -o”,顯示如下圖所示。如果每當(dāng)我們開機(jī),它就會自動連接遠(yuǎn)程某個地址和端口,說明我們中了木馬且肉雞自動上線。
(3) 注冊表結(jié)構(gòu)
HKEY_CLASSES_ROOT
管理文件系統(tǒng)。根據(jù)在Windows中安裝的應(yīng)用程序的擴(kuò)展名,該根鍵指明其文件類型的名稱,相應(yīng)打開該文件所要調(diào)用的程序等等信息。
HKEY_CURRENT_USER
管理系統(tǒng)當(dāng)前的用戶信息。在這個根鍵中保存了本地計算機(jī)中存放的當(dāng)前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼,在用戶登錄Windows時,其信息的項拷貝到HKEY_CURRENT_USER中。
HKEY_LOCAL_macHINE
管理當(dāng)前系統(tǒng)硬件配置。在這個根鍵中保存了本地計算機(jī)硬件配置數(shù)據(jù),此根鍵下的子關(guān)鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠(yuǎn)程計算機(jī)中可訪問的一組鍵中。
HKEY_USERS
管理系統(tǒng)的用戶信息。在這個根鍵中保存了存放在本地計算機(jī)口令列表中的用戶標(biāo)識和密碼列表,同時每個用戶的預(yù)配置信息都存儲在HKEY_USERS根鍵中,HKEY_USERS是遠(yuǎn)程計算機(jī)中訪問的根鍵之一。
HKEY_CURRENT_CONFIG
管理當(dāng)前用戶的系統(tǒng)配置。在這個根鍵中保存著定義當(dāng)前用戶桌面配置如顯示器等的數(shù)據(jù),該用戶使用過的文檔列表(MRU)、應(yīng)用程序配置和其他有關(guān)當(dāng)前用戶的Windows中文版安裝的信息。
(4) 入侵中常用的注冊表
2.黑客常用的DOS命令
ping和ipconfig等網(wǎng)絡(luò)命令
- ping -t -l 65550 ip:死亡之ping,發(fā)送大于64K的文件并一直ping就成立死亡之ping。
- inconfig:查看ip地址,比如“ipconfig /all”,包括計算機(jī)名稱、IP地址、MAC地址、DNS等。
- ipconfig /release:釋放ip
- ipconfig /renew:重新獲得ip
- systeminfo:查看系統(tǒng)信息,主要用來檢測是否安裝了補(bǔ)丁
arp -a:顯示ARP緩存的命令,它可以顯示電腦上所有的ARP緩存條目。ARP協(xié)議是將IP地址映射為MAC地址的協(xié)議,其在協(xié)議上使用ARP請求及ARP應(yīng)答報文來實現(xiàn)。
net view:查看局域網(wǎng)內(nèi)其他計算機(jī)名稱
telnet:連接遠(yuǎn)程終端。
關(guān)機(jī)及對話命令
- color:改變cmd顏色,比如“color a”。
shutdown -s -t 180 -c “你被黑了,系統(tǒng)馬上關(guān)機(jī)”:設(shè)置關(guān)機(jī),如果需要取消,則輸入“shutdown -a”
- msg:用于系統(tǒng)命令彈框提示,比如輸入msg administrator “hello hacker”。如果某臺電腦同時被兩名黑客攻擊,可以通過該方法和對方交流。
文件及目錄操作命令
- dir:查看當(dāng)前目錄,目錄“DIR”表示文件夾,其余表示文件。還包括文件大小和修改時間。
cd:切換目錄。輸入“cd …”表示返回上一層目錄,“cd Software”表示去到當(dāng)前目錄,“D:”表示切換至D盤。
start www.baidu.com:打開網(wǎng)頁
start 123.txt:打開123.txt文件,也可以使用“notepad 123.txt”
del 123.txt:刪除文件,刪除之后再次打開則會提示找不到該文件。
copy con c:abc.txt:創(chuàng)建abc.txt文件,并填寫內(nèi)容,輸入“Ctrl+Z+回車”創(chuàng)建成功。
type abc.txt:在CMD中打開文件內(nèi)容,滲透中經(jīng)常使用。
- md file_name:創(chuàng)建目錄。
- rd file_name:刪除文件夾。
- ren 原文件名 新文件名:重命名文件名稱。
- copy:復(fù)制文件
- move:移動文件
net命令
- net use k:192.168.1.1c $:Windows滲透測試中常用命令。比如輸入“net use K: 192.168.3.100c $”,此時磁盤映射多了個C盤。
- net use k:192.168.1.1c$ /del
增加的C盤如下圖所示,并且能訪問或修改相關(guān)的文件。
- net start:查看開啟的服務(wù)。
- net start 服務(wù)名:開啟服務(wù),比如“net start telnet”、“net start schedule”。
- net stop 服務(wù)名:停止服務(wù)。
net user:查看有哪些用戶。調(diào)用“net user”查看計算機(jī)當(dāng)前用戶。
- net uesr 用戶名 密碼 /add:建立用戶。調(diào)用“net user xiao /add”添加新用戶“xiao”。
- net password 密碼:更改系統(tǒng)登錄密碼。
net localGroup administrators 用戶名 /add:把用戶添加到管理員中,使其具有管理員權(quán)限,注意administrator后加s用復(fù)數(shù)。我們將“xiao”用戶添加到管理員中。
net user 賬戶名:查看賬戶的屬性。輸入“net user xiao”,可以看到其為管理員組。
C:Users\xiuzhang>net user
\DESKTOP-KUPRQ86 的用戶帳戶
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
WDAGUtilityAccount xiuzhang
命令成功完成。
C:Users\xiuzhang>net user xiuzhang
用戶名 xiuzhang
全名
注釋
用戶的注釋
國家/地區(qū)代碼 000 (系統(tǒng)默認(rèn)值)
帳戶啟用 Yes
帳戶到期 從不
上次設(shè)置密碼 2020/2/3 12:28:17
密碼到期 從不
密碼可更改 2020/2/3 12:28:17
需要密碼 No
用戶可以更改密碼 Yes
允許的工作站 All
登錄腳本
用戶配置文件
主目錄
上次登錄 2020/2/20 11:33:08
可允許的登錄小時數(shù) All
本地組成員 *Administrators
全局組成員 *None
命令成功完成。
C:Users\xiuzhang>
-net localgroup:查看本地組。
請大家注意,“Remote Desktop Users”為遠(yuǎn)程桌面組,繞過安全狗可能會遇到該組。下圖展示了將其添加到遠(yuǎn)程桌面組的代碼“net localgroup “remote desktop users” xiao /add”。
net user guest /active:yes:激活guest用戶。
net user guest 12345:用guest用戶登錄后將密碼改為“12345”。
服務(wù)器提權(quán)不建議大家創(chuàng)建用戶登錄,盡量避免管理員看到新增用戶,可以啟用guest并創(chuàng)建密碼,再增加到管理員組或遠(yuǎn)程桌面組。相對比直接創(chuàng)建用戶更隱蔽,最后會進(jìn)行還原與痕跡清除。所以,安全防火墻和日志是非常重要的安全保護(hù)數(shù)段。
- net share:查看本地開啟的共享。
- net share ipc $:開啟ipc $共享(中間無空格,但由于Markdown語法問題作者加空格)。
- net share ipc $ /del:刪除ipc $共享。
- net share c $ /del:刪除C盤共享。
netstat命令
netstart -a:查看開啟了哪些端口,常用netstat -an。
netstat -n:查看端口的網(wǎng)絡(luò)連接情況。
netstat -v:查看正在進(jìn)行的工作。
netstat -an:顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接(IP+端口)正在運作。
tasklist:查看系統(tǒng)進(jìn)程。調(diào)用“taskkill /im cmd.exe”可以結(jié)束進(jìn)程。
netsh:網(wǎng)絡(luò)工具。常用來創(chuàng)建無線,比如“netsh wlan set hostednetwork mode=allow ssid=cc key=1122334455”。
at命令
- at id號:開啟已注冊的某個計劃任務(wù),如下圖所示,“22:51”執(zhí)行該關(guān)機(jī)任務(wù)。
AT命令已啟用,改用schtasks.exe。
at /delete:停止所有計劃任務(wù),用參數(shù)/yes則不需要確認(rèn)就直接停止。
at id號 /delete:停止某個已注冊的計劃任務(wù)。
at:查看所有的計劃任務(wù)。
attrib:文件名(目錄名)查看某文件(目錄)的屬性。
attrib 文件名 -A -R -S -H 或 +A +R +S +H:去掉或添加某文件的存檔,只讀、系統(tǒng)、隱藏屬性;用+則是添加為某屬性。
批處理文件是DOS命令的組合文件,寫在批處理文件的命令會被逐一執(zhí)行,后綴名為“.bat”。比如創(chuàng)建一個批處理文件“x.bat”,包含3條DOS命令。
DIR查看已經(jīng)已經(jīng)創(chuàng)建成功。
本地C盤的批處理文件“x.bat”如果被執(zhí)行或加載到自啟動項,則會執(zhí)行該命令。
可以看到,創(chuàng)建的管理員用戶“cr”已經(jīng)存在,后續(xù)會執(zhí)行關(guān)機(jī)。
3.Powershell
Powershell在安全領(lǐng)域也是非常重要的技能,推薦大家閱讀作者兩篇前文。十九.Powershell基礎(chǔ)入門及常見用法(一)二十.Powershell基礎(chǔ)入門及常見用法(二)
Windows PowerShell 是一種命令行外殼程序和腳本環(huán)境,使命令行用戶和腳本編寫者可以利用 .NET Framework的強(qiáng)大功能。它引入了許多非常有用的新概念,從而進(jìn)一步擴(kuò)展了您在 Windows 命令提示符和 Windows Script Host 環(huán)境中獲得的知識和創(chuàng)建的腳本。
五.總結(jié)
寫到這里,Cracer學(xué)習(xí)視頻第一篇文章就介紹完畢,主要包括兩部分內(nèi)容:
第一部分講解網(wǎng)絡(luò)安全基礎(chǔ)知識,包括:常見術(shù)語、滲透測試流程、虛擬機(jī)配置及系統(tǒng)安裝、搭建網(wǎng)站測試環(huán)境、常見CMS框架、網(wǎng)絡(luò)基礎(chǔ)知識,包括HTTP、協(xié)議、GET和POST等。
第二部分講解Windows基礎(chǔ)知識及DOS命令,包括計算機(jī)目錄、注冊表、計算機(jī)服務(wù)名稱、常用端口及對應(yīng)服務(wù)、常用黑客DOS命令、Powershell等。