实验六 Bob渗透
一、实验目的
1. 通过对目标靶机的渗透过程,熟悉网络扫描、代码审计、权限提升、Linux中文件命令的使用和提高对信息挖掘的能力。
二、实验环境
攻击工具:kali虚拟机(10.24.231.60)
靶场:Bob:1.0.1~VulnHub
三、实验原理
找到初始信息,比如一个ip地址或者一个域名;找到网络地址范围,或者子网掩码,找到开发端口和入口点,弄清每个端口运行哪种服务,找到目标存在的漏洞;找到账号密码从而提高权限获取最终胜利。
四、实验过程及分析
(一)信息收集
如图1-1,1-2,使用nmap扫描,查找bob的IP地址。 由于老师已经告诉我们bob靶机的mac地址,所以我就找到了它的IP地址,为10.24.231.111
图1-1
图1-2
如图1-3,对bob进行端口扫描,发现80/tcp http端口是开放的,因此我们可以直接用本机来访问该IP地址http://10.24.231.111
图1-3
如图1-4,可以看到Bob J可能是管理员。由于实验二已经对该网页进行了信息的查找,所以这里省略。
图1-4
如图1-5,使用nikto工具对网站进行扫描,发现敏感文件,/dev_shell.php、/passwords.html、/lat_memo.html
图1-5
如图1-6,使用Dirb对网页敏感文件进行扫描,发现敏感文件/robots.txt
图1-6
(二)渗透测试
如图2-1,2-2对以上信息进行收集,发现一个Webshell ,在浏览器打开http://10.24.231.111/dev_shell.php,输入命令。 输入一些试探性的指令 ls、cat、id等等。所以发现id命令是可以通过的,而ls、cat等命令是可以通过的,而ls、cat等命令是被拒绝的。因此我猜测有黑名单。
图2-1
图2-2
如图2-3,输入/bin/ls,查看上面显示的文件,查看 dev_shell.php.bak这个文件,先下载。
图2-3
如图2-4,下载文件后,打开终端,输入命令ls,看到下载好的dev_shell.php.bak。
图2-4
如图2-5,2-6,输入查看文件的命令vim dev_shell.php.bak。打开之后,做代码审计。
根据代码审计发现,命令黑名单为:pwd、ls、netcat、ssh、wget、ping、traceroute、cat、nc,绕过方法为:/bin/ls。
图2-5
图2-6
如图2-7,2-8,2-9,2-10利用burpsuite抓包观察,设置代理,将流量引到kali指定端口。在浏览器中也设置代理。
图2-7
图2-8
图2-9
图2-10
如图2-11,在网页shell中发送命令ls,burp中有显示,但是网页的output中没有显示,这是因为设置了代理,将流量引到了8888端口。
图2-11
在burp中右键,进入重放模块,点击图示菜单,观察webshell的变化。接下来,如图2-12,关闭foxy代理,进入burp重放模块。如图2-13,2-14,可以看见ls是会被阻挡得,而/bin/ls能够查看目录下的文件。
图2-12
图2-13
图2-14
(三)权限提升
如图3-1,在kali上开启端口监听,用工具nc。如图3-2,通过burp向kali发起shell连接。
图3-1
图3-2
如图3-3,此时我已经获得了Bob靶机的shell,输入ls查看。
图3-3
如图3-4,通过who am i和id命令查看当前登录Bob靶机的用户。
图3-4
如图3-5,输入pwd命令查看当前目录,输入cd /进入根目录,查找flag文件。用cat命令打开flag发现没有结果,仔细看图3-6只有root用户有读写权限。于是我需要找到一个有权限的用户来登录。
图3-5
图3-6
如图3-7,3-8,进入存放用户信息的目录,第一列为用户名,发现两个关键用户bob和jc。由于在网页中知道bob可能是管理员,因此寻找关于bob的文件,从而提升权限。
图3-7
图3-8
如图3-9,进入bob家的目录,查看所有文件。发现敏感文件.old_passwordfile.html
图3-9
如图3-10,打开文件.old_passwordfile.html,发现两个老用户账号和密码。
图3-10
既然找到了账号和密码,接下来就想办法找到flag。
如图3-11,将Bob家目录下的文件都找一找。发现几个关键文件。
图3-11
如图3-12,打开这几个文件,发现Secret内有关键信息。
图3-12
如图3-13,逐层打开文件夹后,用./notes.sh脚本,发现竟然是个藏头诗。首字母组合后为HARPOCRATES是一种加密算法。
图3-13
如图3-14,解密得gpg --batch --passphrase HARPOCRATES -d login.txt.gpg
图3-14
如图3-15,没有结果,发现权限不够。
图3-15
如图3-16,切换jc用户身份,切换前,导入shell,
python -c "import pty;pty.spawn('/bin/bash')"
刚刚得到了个jc用户的,现在登录试试看。登陆后再解密就成功了。得到bob用户的密码b0bcat_ 接着登录bob
图3-16
如图3-17,3-18,想起之前的flag.txt,现在有root权限了,登录看看。成功了!
图3-17