安全矩阵

 找回密码
 立即注册
搜索
查看: 5960|回复: 0

记一次灰产网站的渗透测试

[复制链接]

9

主题

55

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
发表于 2020-12-16 21:10:22 | 显示全部楼层 |阅读模式
本帖最后由 Angelica 于 2020-12-16 21:20 编辑

原文链接:https://mp.weixin.qq.com/s?__biz ... 8a1fcbc183d841c4#rd

目标说明









一、初始访问


一开始我倒是想试试搜索看有没有可利用的iis8.5漏洞,可惜没啥实用的,jquery1.7.1倒是有个xss不符合我想法,其他也就没搜了,直接看网站功能点下手把(毕竟以我经验来看小站而已)。







搜索框倒是一个可以注入点使用简单sql语句检测一下有报错,报错页面也直接显示出来了,可还行。



扔sqlmap来一梭子直接找到注入点和识别了后端数据库是 微软数据库2008
另外多说一句,在实际有更加安全保护设备的网站上注意深入利用sqlmap的一些参数,以防止触碰到红线。



在检测一下是不是dba
4:08:05] [INFO] retrieved: 'sa'
current user: 'sa'



好家伙直接sa



然后直接获取密码试试顺带破解一下



失败,但是没事没事,可以试试直接写入os-shell试试。




二、执行


没关系直接来个os-shell玩玩
进去了systeminfo一下



获得一些信息,下面直接来权限维持把,上传webshell等,首先获得web完整路径(可通过多种方法)

寻找绝对路径(话外)
因为当前数据库权限为ROOT,我使用--sql-shell指令对数据库进行寻找路径之旅
sql-shell> select @@datadir;

或者直接os-shell查询常见的找绝对路径方法:
网页报错信息
phpinfo、探针
数据库查询、暴力破解

当然直接调整sqlmap的v级别就能直接看到sqlmap的自动化的获取shell过程

可惜sql server是通过修改键值启用xp-shell命令扩展获得的系统shell,所以sqlmap并没完整路径给你。
接下来我建立了隐藏账号guest密码也是guest,然后顺带加入了管理员组,命令是:
Net user   名字$  密码 /add
net localgroup administrators guest$ /add
接下来入手试试3389,查看是否运行了
net start



开启了远程连接,但不知道为什么总是失败连不上,检查检查:

1、查询系统是否允许3389远程连接

REGQUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

1表示关闭,0表示开启

查看远程连接的端口:

REGQUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber

端口格式为16进制,如下图



0x2766转换为十进制10086,把0x去掉再转换哦!

然后成功搞里头,原来端口改了



接下来可以远程从cc服务器加载powersploit使用或者从cc服务器下载cs生成的免杀木马使用(我的cc服务器出现点问题,暂时不能用)。



三、持久化


接着上边的隐藏账号继续改成影子账号   



可惜好像改不了,仔细看看发现我弄错了,影子账户操作步骤是:
键入Win+R,然后输入regedit,打开注册表,找到
HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/选项,这里面有很多相同格式的字符串的名字还有一个Names的菜单,点击Names,可以看到计算机中所有的账户名称,选中我们刚才创建的guest$账户,可以看到右侧是0x3f4。

记住这个十六进制数字,然后返回上层,找到000003F4,这个是一会我们要做的事情,同理,找到Administrator的十六进制数字,我这里是1f4,故而打开000001F4,我们可以看到有三个选项,双击F,复制里面的所有内容,然后打开刚才说的000003F4,双击F,将刚才复制的内容粘贴上去,保存。

之后,分别右键Names中的guest$和000003F4两个目录,选择导出,将注册表导出。

接下来,我们打开命令行,输入net user guest$ /del,删除创建的用户,再双击刚才导出的两个注册表,这样影子账户就创建好了。

再打开管理界面中的本地组和用户查看是否成功。

接下来弄好之后使用远程桌面发现。。。似乎给他顶下去了??(如果系统当前登录帐号为admin,那么使用隐藏帐户我的登录的话,会系统被识别为帐户a,导致帐户a下线)

不行不行,弄错了,我应该先建立一个管理员账号然后再建立一个隐藏账号,把这个隐藏账号修改成我建的管理员账号(新建账号再复制)。

操作步骤是:新建一个管理员账户再建一个影子账号,影子账号复制新建的管理员信息,然后删除新建管理员账号只留下影子账号,但远程登陆时候提示未授权此影子账号,只能再次一边进目标试着远程登陆授权设置一下。可惜影子账号没在列表里,这影子账号这么牛逼只能注册表才能发现??(怀疑)

接下来随便巴拉巴拉发现这个,,,很坑爹啊!我注册的影子账户时guest$,并且在任务管理器用户那一栏也能看到一些信息(难道是操作中间出错?)



先不管了,简单路子进去就行。



找个这个找到web完整目录然后可以试着建立隐藏文件夹然后直接上传webshell

或者往他那主页里边插个的一句话木m试试(记得插入后别忘了把修改文件时间属性修改到原来那样),总之有很多办法,还是回归正题。

写入shell中我使用了两款工具,一个是yj一个是bx。
说一下结果bx的服务脚本运行报错,应该和目标环境配置有关,选择了yj。

然后算了直接写入一句话木m用yj搞上了,同时又修改了一下文件的三个时间免得很刺眼。。以下是web目录下大部分文件显示的时间,我把我的shell也修改成一样的,毕竟多数不显眼,少数刺眼。



这是修改后的,是不是看起来好了点。



同时别忘了上层目录文件夹时间。



之后我想着多搞几个不同权限维持的方法免得一个被发现还得从头来的时候,熟练的登上远程桌面(影子账号),发现略微不对呀,然后突然又被顶掉了。。。应该是目标上线了把我的远程顶掉了。好吧我休息休息再操作。

接着感觉应该是被发现了(这是其中一个隐藏账号,不是影子账号)。



幸亏留着还有之前那个shell,query user  简单查询下当前连接用户,他没在线,那我继续。



影子账户也连不进去,排查一下端口是否改了或者远程桌面服务关了。



端口开着,一个隐藏账号已被删除,影子账号还在(具体排查先不管,咱们就用webshell这个往下进行)。






四、日志分析与痕迹清除


(以自己操作过的过程出发)本次可能产生的记录

1:iis的全部日志(注入出错显示过)
IIS默认日志路径:
%SystemDrive%\inetpub\logs\LogFiles\W3SVC1\

2:3389远程登录过,需要清除mstsc痕迹

3:执行cmd命令清除日志

4:数据库,sqlmap注入 产生的纪律

5:windows系统日志
系统日志:
%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:
%SystemRoot%\System32\Winevt\Logs\Security.evtx
应用程序日志:
%SystemRoot%\System32\Winevt\Logs\Application.evtx




日志在注册表的键:
HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog

1. 最简单粗暴的方式,开始→运行,输入 eventvwr 进入事件查看器,右边栏选择清除日志。

2. 命令行一键清除Windows事件日志:
(a) PowerShell -Command "& {Clear-
Eventlog -
Log Application,System,Security}"

(b) Get-WinEvent -ListLog
Application,Setup,Security -Force | %
{Wevtutil.exe cl
$_.Logname}



利用Windows自带命令进行安全擦除方法:

1. Shift+Delete快捷键永久删除
直接删除文件,还是能在回收站找到的,使用Shift+Delete快捷键可以直接永久删除了。但是用数据恢复软件,删除的文件尽快恢复,否则新的文件存入覆盖了原来的文件痕迹就很难恢复了。

2. Cipher 命令多次覆写
在删除文件后,可以利用Cipher 命令通过 /W 参数可反复写入其他数据覆盖已删除文件的硬盘空间,彻底删除数据防止被恢复。比如
刚刚删除D:\tools目录下的文件,执行cipher /w:\tools,D 盘上未使用空间就会被覆盖三次:一次 0x00、一次 0xFF,一次随机数,所有被删除的文件就都不可能被恢复了。

3. Format命令覆盖格式化
Format 命令加上 /P 参数后,就会把每个扇区先清零,再用随机数覆盖。而且可以覆盖多次。比如
format D: /P:8就表示把 D 盘用随机数覆盖 8 次。

如果是更加隐蔽得那种需要自己审计目标日志,删除掉日志中自己留下的痕迹而不全部删完所有(正常+自己痕迹)的日志。




总结


1. 痕迹有很多,最佳办法是使用多种手段隐藏自身+工具化擦除。

2. 撰写渗透测试保告,在完成了渗透测试之后,我们就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。相应得在百度上也能找到模板供参考学习。
3. 每个步骤可使用方法很多,并不局限一种,针对不同难易程度的目标使用不同难易方法。

本人菜鸡,肯定会有错误之处,希望大佬指正和建议。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 13:46 , Processed in 0.014116 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表