從第一篇之后接下來就要正式開始滲透測試的部分了,首先引用《指南》中的幾點忠告:
- 不要進行惡意的攻擊
- 不要做傻事
- 在沒有獲得書面授權時,不要攻擊任何目標
- 考慮你的行為將會帶來的后果
- 如果你干了些非法的是事情,天網恢恢疏而不漏,你總會被抓到牢里的
謹記。
專業術語介紹
- 滲透攻擊(Exploit)
滲透攻擊是指由攻擊者或滲透測試者利用一個系統、 應用服務中的安全漏洞, 所進行的攻擊行為。 攻擊者使用滲透攻擊去入侵系統時,往往會造成開發者所沒有預期的一種特殊結果。 流行的滲透攻擊技術包括緩沖區溢出、Web應用程序漏洞攻擊 (比如 SQL 注入), 以及利用配置錯誤等。
- 攻擊載荷(Payload)
攻擊載荷是我們期望日標系統在被滲透攻擊之后去執行的代碼。 在 Metasploit 框架中可以自由地選擇、傳送和植入。例如, 反彈式Shell是一種從目標主機到攻擊主機創建網絡連接, 并 提供命令行shell的攻擊載荷。而Bind Shell攻擊載荷則在目標上將命令行Shell綁定至一個打開的監聽端口,攻擊者可以連接這些端口來取得Shell交互。 攻擊載荷也可能是簡單的在目標操作系統上執行 一些命令, 如添加用戶賬號等。
- Shellcode
Shellcode 是在滲透攻擊時作為攻擊載荷運行的一組機器指令。Shellcode 通常用匯編語言編寫。在大多數倩況下, 目標系統執行了 Shellcode 這一組指令之后. 才會提供一個命令行 Shell 或者 Meterpreter Shell, 這也是 Shellcode 名稱的由來。
- 模塊(Module)
在本書的上下文環境中, 一個模塊是指 Metasploit 框架中所使用的一段軟件代碼組件. 在 某些時候, 你可能會使更用一個滲透攻擊模塊(exploit module)。也就是用于實際發起滲透攻擊的軟件代碼組件。而在其他時候,則可能使用一個輔助模塊(auxiliary module), 用來執行一些諸如掃描或系統查點的攻擊動作. 這些在不斷變化和發展中的模塊才是使 Metasploit 框架如此強大的核心所在。
- 監昕器(Listener)
監聽器是 Metasploit 中用來等待連入網絡連接的組件. 舉例來說,在目標主機被滲透攻擊之后, 它可能會通過互聯網畫連至回攻擊主機上, 而監聽器組件在攻擊主機上等待披滲透攻擊的系統來連接,并負責處理這些連接。
使用MSF的幾種方式
MSF 終端
使用 MSF 最常用的方式就是通過 MSF 終端。
在啟動了postgresql 數據庫服務和 metasploit 服務后,在終端輸入msfconsole
即可打開 MSF 終端,見下圖
經過一堆輸出后,最終顯示大概如下:
輸入 help
命令可以查看簡單的描述信息。
對 MSF 終端將在后文詳細介紹,現在先來看看另一種使用 MSF 的方法。
在終端直接執行 MSF 命令
使用msfcli
后家命令的方式能在終端直接執行 MSF 提供的命令。
使用示例:
現在看不懂具體的輸出沒關系,這個示例只是讓你有個初步的印象。
在這里使用了
msfcli windows/smb/ms08_067_netapi O
這行命令,其中windows/smb/ms08_067_netapi
是一個模塊,末尾的O
參數表示options,意為查看模塊的選項參數。
如果末尾為P
表示Payload,意為查看可以附加上的攻擊載荷。
如果設置好了Options,然后末尾加上E
參數的話可以執行(Execute)模塊,樣例代碼為
msfcli windows/smb/ms_08_067_netapi RHOST=192.168.1.3 PAYLOAD=windows/shell/bind_tcp E
沒有示例截圖。
PS:
現在執行
msfcli
會出現「msfcli 工具已經被棄用,請使用msfconsole -r 或 -x 來代替」
代替方法:
msfcli windows/smb/ms08_067_netapi O
基本等價于
msfconsole -x "use exploit/windows/smb/ms08_067_netapi;show options"
圖形界面……
《指南》里還稍微介紹了一下圖形界面,我從來不用……就算了吧。
MSF 功能程序
msfpayload 和 msfencode
《指南》里介紹的msfpayload
,msfencode
兩個命令,被整合成了msfvenom
工具,就不做筆記了,詳情請看這里。
Nasm Shell
將匯編命令轉換為opcode的工具。
《指南》里說在/opt/framework/msf3/tools
目錄中,但是 Kali Linux 里并沒有這個目錄,用locate nasm_shell.rb
查找之后發現在
/usr/share/metasploit-framework/tools/nasm_shell.rb
運行實例:
PS
如果出現錯誤提示,請按錯誤提示處理。
我的折騰過程:首先提示找不到gem包,要運行:
bundle install
第一次中斷在pg包上,要運行:
gem install pg
然后提示缺少 libqp-dev,運行:
apt-get install libpq-dev
然后重新運行gem install pg && bundle install
,中斷在:
Metasploit - InstallError: metasploit_data_models requires Ruby version >= 2.1
然后安裝rvm,
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash
按提示初始化后運行rvm install 2.1.0
繼續返回bundle install
,成功了
執行./nasm_shel.rb
正常。
MSF 基礎結束,下一篇介紹情報收集的基礎知識。