Kali Linux渗透测试实战 1.4 小试牛刀





目录

​​1.4 小试牛刀​​

​​1.4.1 信息搜集​​

​​whois查询​​

​​ 服务指纹识别​​

​​ 端口扫描​​

​​ 综合性扫描​​

​​1.4.2 发现漏洞​​

​​1.4.3 攻击与权限维持​​

​​ 小结​​

 

 

1.4 小试牛刀

本节作为第一章的最后一节,给大家展示一个渗透测试的简单示例。该示例操作简单,环境真实,主要是为了给您一个整体上的感知,同时提升学习渗透测试的兴趣。渗透测试的每一步并没有记录完整的细节信息。

首先,我选择了一个测试站点,下面对该站点​​www.xxxxoooo.cn​​,下面对其进行渗透测试。

1.4.1 信息搜集

whois查询

因为是cn域名,直接到​​http://ewhois.cnnic.net.cn​​查询,更方便。

结果如下:


Kali Linux渗透测试实战 1.4 小试牛刀_php

服务指纹识别

很多个人站点,都没有自定义错误信息的习惯。在url上随便输入一个不存在的地址,看是否会返回有用的信息。


Kali Linux渗透测试实战 1.4 小试牛刀_php

通过上图,我们知道该站点的应用程序由php编写,web服务器为Apathe/2.2.22,操作系统为Ubuntu。

下面我们通过指纹识别工具,进行识别。

在终端启动nmap,输入如下命令:

nmap -A -T4 www.xxxxoooo.cn


Kali Linux渗透测试实战 1.4 小试牛刀_php

如图,识别出来的服务和系统信息与报错信息一致。

端口扫描

在终端执行如下命令,使用nmap的tcp半开扫描方式来扫描打开的端口。

nmap -sS

 


Kali Linux渗透测试实战 1.4 小试牛刀_php

综合性扫描

该站点是需要登录的,所以在非登录情况下,常规扫描一般情况下意义不大。但是做一个基本的站点扫描还是必须的。当然很多工具是支持登录扫描的。

因为是web应用,一般情况下,我们是需要进行完整的web应用的漏洞扫描的。本实例忽略此步骤。

1.4.2 发现漏洞

对于web应用,我们通常从操作系统、服务、应用本身三个方面来挖掘漏洞。

从站点应用上分析,一般的php程序会安装phpmyadmin组件,用来管理数据库。google一下,我们就会知道phpmyadmin 默认安装在站点根目录下。测试一下当前站点是否也在默认目录下安装了phpmyadmin呢?


Kali Linux渗透测试实战 1.4 小试牛刀_php

,确实存在phpmyadmin。

继续google “phpmyadmin 默认用户名密码”。Googele之后,我们知道:“phpMyAdmin默认使用的是MySQL的帐户和密码”。MySql的默认账户是root,默认密码是空,但是phpmyadmin是不允许空密码的。

继续 Google“inurl: phpmyadmin”,可以看到很多关于phpmyadmin的文章。


Kali Linux渗透测试实战 1.4 小试牛刀_php


Kali Linux渗透测试实战 1.4 小试牛刀_php

这些文章略过,google“hack phpmyadmin”,看看有什么发现?

在这篇文章《Hacking PHPMyadmin (when import.php deleted)》(​​https://www.facebook.com/learnadvhacking/posts/556247631077238​​)中,我注意到

Kali Linux渗透测试实战 1.4 小试牛刀_php

很多站点都配置默认密码为root。是不是也可以尝试下呢?

输入用户名root,密码root,奇迹就这么出现了,直接登录管理后台。

Kali Linux渗透测试实战 1.4 小试牛刀_php

进入后台之后,我们得到了更为详尽的信息,为我们下一步攻击打下了基础

 

1.4.3 攻击与权限维持

上面的步骤,我们完成了对网站数据库的攻击,其实拿到了网站数据库,就是拿到了整个网站的控制权。

如何利用phpmyadmin进行提权,从而得到服务器的控制权呢?

目前在phpmyadmin后台,我们可以操作表,向表中写数据,如果数据库有权限dump数据到web站点所在的文件夹,那么可以先将一个网马写到数据库再保存到磁盘本地,再从浏览器访问网马,是不是就可以了呢?

首先在phpmyadmin后台找到一个数据库,在“SQL”选项卡执行sql语句创建一个表“hacker”。


Kali Linux渗透测试实战 1.4 小试牛刀_php

语句执行成功后,再插入一条数据,代码很简单,希望能用php的system函数执行系统指令。

INSERT INTO hacker (packet)
VALUES(
'