1. 程式人生 > 實用技巧 >記一次針對惡意攻擊者的滲透測試

記一次針對惡意攻擊者的滲透測試

背景

最近在梳理hw期間的文件,發現期間上報的攻擊者IP,心裡就有了個壞心思,想連上去看看這些攻擊者的機器什麼樣子,於是便有了這篇文章。

資訊收集部分

我這邊只是用nmap和 fofa簡單的看了一下。目標機器開了不少埠,存在好幾個web服務,伺服器為Windows伺服器。

這次的目標是登入目標伺服器看看即可,不進行其他任何操作。

Nmap scan report for 49.233.xx.xx
Host is up (0.18s latency).
Not shown: 990 closed ports
PORT      STATE SERVICE            VERSION
80/tcp    open  http               Apache httpd
135/tcp   open  msrpc              Microsoft Windows RPC
139/tcp   open  netbios-ssn        Microsoft Windows netbios-ssn
443/tcp   open  ssl/https          Apache
445/tcp   open  microsoft-ds       Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3389/tcp  open  ssl/ms-wbt-server?
49152/tcp open  msrpc              Microsoft Windows RPC
49153/tcp open  msrpc              Microsoft Windows RPC
49154/tcp open  msrpc              Microsoft Windows RPC
49155/tcp open  msrpc              Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 118.18 seconds

開始

訪問該地址的80埠,自動跳轉出一個websoft9的運維頁面。

我查了一下websoft9這個軟體,主要用於提供軟體的自動化部署,幫助客戶在雲伺服器上簡化企業級軟體的安裝部署。第一眼看到頁面,最先看到的是網站根目錄,然後下面的賬號密碼(不能是真的吧),然後左側的功能欄裡還有資料庫管理、phpinfo功能,這,,,這是在勾引我嗎?

我打算先用網頁上留下的賬號和密碼登入下試試看,萬一呢(手動滑稽~)。

進去了。。。以前看公眾號實戰文章的時候,很多大佬用弱口令進去了,我還酸我怎麼就碰不到這樣的站,看樣子是自己的經驗還是太少了!

寫入webshell

連上資料庫之後我們可以寫個webshell,用mysql的日誌或是into outfile的方式。我這裡使用的是日誌的方式,網站根目錄咱們是知道的C:\wwwroot\。

寫入後訪問發現報not found,懷疑根路徑有問題,所以還是通過websoft9自帶的phpinfo檢視DOCUMENT_ADDR確認,發現根路徑為C:\wwwroot\www.example.com\(這個時候我才想起好好看看phpinfo,不合格啊不合格。資訊收集在滲透測試中相當重要)。

重新嘗試寫入webshell。

看結果是成了。

蟻劍連線成功。

連線之後看下許可權,system我去,好高。

看一下有沒有安裝防毒軟體,發現沒有安裝。

wmic /node:localhost /namespace:\\root\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed

這幾個亂碼的內容是:

錯誤:
描述 = 無效名稱空間
No Antivirus installed

命令檢視目標伺服器的3389埠是開著的,騰訊雲的Windows主機,遠端埠可不是開著嘛~。~,直到這裡都好順利啊。

嘗試獲取管理員密碼

既然可以執行命令,許可權也有了,那就抓一下管理員的密碼吧。我在目標伺服器上傳了procdump64,將記憶體檔案lsass.exe匯出為dmp檔案,但目標伺服器是Windows Server 2012 R2 Datacenter Edition,在上傳procdump64之前,我先在我的靶機上試了下,一樣的系統,發現不行,但我還是想試試,幹!

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

從蟻劍上下載dmp檔案時,提示下載失敗,猜測可能是網速的問題,因為我這代理太次了。這裡提醒一下,如果到目標主機的網速比較慢,蟻劍連線、上傳/下載檔案等操作可能會失敗。

直接訪問該檔案下載。

使用mimikatz進行解析,沒有明文密碼,果然失敗。

關於Windows Server 2012 R2 Datacenter使用mimikatz獲取明文密碼,我在我的靶機上做了實驗。不管是直接使用mimikatz讀取還是先procdump64取出,再用mimikatz解析都讀不出明文密碼,但是可以嘗試修改登錄檔。文章參考連結接:https://www.freebuf.com/sectool/96209.html。

在登錄檔中新建UseLogonCredential的DWORD項,值為1,下面是cmd中的命令。

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /d 1 /t REG_DWORD /f

我試了一下,是可以的。

還有個問題就是,如果修改了登錄檔,登錄檔需要重新載入,我查了下,但並沒有找到合適的方式。網上有過載explorer.exe程序的,但是我實驗失敗了,登錄檔沒有更新成功(我需要的部分,其他部分有沒有更新我不能肯定),而且使用這種方式會關閉已開啟的視窗,下面是命令。

taskkill /f /im explorer.exe
explorer.exe

嘗試新增新使用者

那就試試新建使用者吧,直接用新使用者登入。但是蟻劍net user命令和systeminfo命令都沒有回顯,這沒有回顯我也不知道成沒成功啊?想著先把命令先輸入進去,看看能不能成功。執行完新增使用者的命令嘗試遠端登入,失敗!

最開始以為是蟻劍的問題,換上最近比較火的“哥斯拉”試試,也不行,看樣子不是工具的問題,是我的問題。

那咋辦喲。試試udf提權這種方式(突發奇想),雖然我是system許可權了(捂臉哭),用mysql的sys_exec()或者sys_eval()試試。

mysql版本大於5.1,udf.dll檔案必須放置在mysql安裝目錄的lib\plugin資料夾下,他沒有這個資料夾,給他新建上,udf.dll檔案在sqlmap中有,sqlmap裡的udf.dll是經過編碼的,需要先解碼,解碼的工具就在sqlmap/extra/cloak/cloak.py,命令:

python .\cloak.py -d -i D:\tool\sqlmap\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_

解碼完了就會在32或64下生成dll檔案。

先看下mysql的版本資訊,看是使用哪個位數的dll檔案,這個位數不是作業系統的位數,是mysql軟體的位數,也要看下mysql的目錄位置(phpinfo中也有)。

嘗試上傳。

上傳成功,建立函式試一下,命令(為什麼不直接用蟻劍的資料庫功能執行語句,因為連不上!哭泣!):

create function sys_exec returns string soname "lib_mysqludf_sys.dll";

嘗試建立使用者。

我在靶機(win7,phpstudy)上測試,雖然返回NULL,但是使用者是正常添加了的。那這個使用者新增上了嗎?遠端連一下試試看!失敗了。

copy net1的絕殺

看樣子net命令是用不了了,目標系統中檔案是有的,然後再看目標系統有沒有net命令的時候看到目錄下有個net1.exe。想起之前看的烏雲安全的文章,連結:https://mp.weixin.qq.com/s/XLa41N0d4TsOMllgo5QEvQ。文章中遇到的情況跟我很相似,Windows Server 2012 的系統、無法使用net、system許可權,但作者比我還要麻煩一些。那我也試一下看看。

成了!

總結

我看了下這臺主機,不太像安全人員使用的主機,倒有點像淪陷的“肉雞”。不過話說回來,咱們hw期間有不少人使用自己買的雲主機進行掃描等行為,有些上面還搭著靶機。個人覺得最好還是掛個代理什麼的,安全人員也得安全一點。

這次測試純屬運氣,一個弱口令解決了太多的問題,web方面的直接略過了,我也深深感受到了弱口令的危害。websoft9官方早已經認識到了這個問題,其在2月15日釋出了一則新聞,就是說的弱密碼的問題,參考連結:https://www.websoft9.com/news/passwordneedmodify。

最後一個問題

我在登入上目標伺服器後,發現執行net命令也沒有回顯,這是為什麼呢?(admln使用者是後面新建的)

我查了下禁用net、systeminfo命令的方式,找到下面兩種:

  • doskey net = @
  • 如果是Path環境變數刪除了“%SystemRoot%\system32;”,則報'net'不是內部命令。

他使用的應該是第一種,不排除使用的我不知道的其他方式,如果doskey net = (空),那麼net功能的作用就恢復了(我沒有在目標伺服器上試)。