某大学渗透测试实战靶场报告-Part2

时间:2022-07-22
本文章向大家介绍某大学渗透测试实战靶场报告-Part2,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文作者:久久久久久久、欧根亲王号、森浩、3had0w(贝塔安全实验室-核心成员)

一、192.168.3.X段的信息搜集

(1) 192.168.3.x段存活主机信息

使用以前自己改的一个domain.bat批处理脚本或K8哥哥的Ladon得到192.168.3.x段存活主机如下,Ladon项目地址:https://github.com/k8gege/Ladon

(2) 192.168.3.x段常用端口信息

注:尝试了在虚拟路由表、Socks4/5代理和3389远程桌面下做信息搜集,发现在虚拟路由表和Socks4/5代理下扫描192.168.3.x段的存活主机和开放端口明显少了很多,因为192.168.2.244机器与192.168.3.x段内的一些机器是不通的,扫描时流量是经过192.168.2.244过去的,所以扫描结果不一样也属正常现象,有时晚上他们的实验室靶场机器也会关机。

(3) 192.168.3.43 FlashFXP信息

在192.168.3.43机器上找到FlashFXP软件的quick.dat配置文件,通过FlashfxpPasswordDecryptor工具解密得到历史保存的FTP地址、用户名和密码,下载地址: https://securityxploded.com

(4) 192.168.3.x MySQL弱口令

使用shack2师傅写的SNETCracker超级弱密码检查工具跑出3台存在MySQL弱口令机器,项目地址:https://github.com/shack2/SNETCracker

二、192.168.3.X段的攻击方式

(1) 本地连接192.168.2.244的Socks4代理状态下用Navicat Premium连接192.168.3.24的MySQL,由于这台机器没有开启Web服务,所以我们只能利用UDF方式来进行权限提升,先查看插件目录和是否设置了secure_file_priv,然后将我们UDF.DLL文件以十六进制形式导入到MySQL插件目录,最后创建自定义函数执行命令即可。

select @@plugin_dir;
show global variables like "%secure%";
select hex(load_file('c:\udf.dll')) into dumpfile 'c:\udf_hex.txt';
select 0x-udf_hex.txt into dumpfile "D:\Program Files\MySQL\MySQL Server 5.5\lib\plugin\udf.dll";
create function sys_eval returns int soname 'udf.dll';
select sys_eval('whoami'); 

drop function sys_eval;
delete from mysql.func where name='sys_eval';

注:这里用的是sqlmap的lib_mysqludf_sys.dll,如果sys_eval执行命令返回为Null或sys_exec返回为0时不用管它,其实是已经执行成功了的,也可以选择用MSF的mysql_udf_payload模块,不过这台机器上有微软自带Windows Defender,在上传Payload时就被查杀了,但是DLL文件已经成功传上去了,可以自己去创建sys_eval、sys_exec函数来执行命令。

注:192.168.3.2、192.168.3.16这两台机器上的MySQL都设置了secure_file_priv值为Null或指定目录,而且也没有开启Web服务,所以暂时无法通过general_log方式来Getshell。

(2) 记得以前测试MS17-010漏洞时好像有看到过一个EXP支持Windows 10 Pro 10240,而这个3段里正好有几台,经过测试发现只有192.168.3.9这台可以利用。这个EXP是Python写的,而且需要impacket库,所以我们必须先在本地安装好Python和impacket,然后将它们和EXP一起打包好并上传到192.168.3.43这台机器上。

注:打包Python环境时需要将System32目录下的python27.dll文件拷贝到Python安装目录下。

MS17-010高版本利用条件,满足其中一个即可:

1、必须得到目标机器上的一个普通权限用户和密码。
    1) 启用Guest用户:net user guest /active:yes,空密码也可利用。
2、开启一个匿名共享(才能找到可访问的命名管道)。
    1) 新建一个共享并给予Guest或Everyone共享权限。(默认Everyone)
    2) 高级共享设置->密码包含的共享->关闭密码包含共享。(默认为开启状态)

注:条件1在利用时需要将win10.py中的USERNAME、PASSWORD改为我们找到的普通用户和密码,条件2在利用时只需要将win10.py中的USERNAME改为目标计算机名即可,有时也会利用失败,多执行几次可能就好了。

这台机器同时满足了这两个条件,但不允许Guest空密码通过Mstsc登录,所以还是要用这个EXP,可以选择在Win10.py的36行处将USERNAME修改为Guest或192.168.3.9的计算机名ZYH,然后再执行即可,返回如下提示则说明该漏洞利用成功了。

注:这台机器用这个EXP打不是很稳定,复现时执行了N次也没能成功,最后让组长重启以后才打成功。

如果机器能出网就可以用CobaltStrike生成个Powershell Payload,然后在Win10.py的923行处替换即可。由于192.168.3.9这台机器也是断网机,所以我们就直接添加了一个管理员用户。

注:在Socks4代理下直接打都会报impacket.nmb.NetBIOSTimeout: The NETBIOS connection with the remote host timed out.错误,具体原因不明。

0x03 第三阶段(192.168.5.X段)

一、192.168.5.X段的信息搜集

(1) 堡垒机开放端口:

(2) 整合用户名密码:

通过在已经拿到的192.168.2.244、192.168.3.43、192.168.3.24、192.168.3.9机器上搜集到的操作系统、MySQL以及FlashFXP的用户名和密码组合成一个字典,可用于尝试爆破各种服务和应用,如图1-1-33。

二、192.168.5.X段的攻击方式

(1) 使用SNETCracker检测出来的SSH弱口令成功登录到安恒的明御运维审计与风险控制系统后台,在用户管理处可以看出有几个爆破出来的用户都是部门管理员。

(2) 在没有任何限制的情况下可以直接通过安恒明御运维审计与风险控制系统中的“主机运维”或者用Mstsc连接192.68.5.3:63389进入192.168.1.4日志服务器,开启Windows系统防火墙后再连接就会报错。

注:按照他们给的靶场说明来看应该是通过192.168.5.x堡垒机直接进入192.168.1.4日志服务器,因为只有192.168.5.x段能与192.168.1.4相通,但是在测试中发现192.168.1.4并没有开启3389端口,而且还开了Windows系统防火墙,所以这里我们并没有利用上安恒明御运维审计与风险控制系统(堡垒机)。

0x04 第四阶段(192.168.4.1)

(1) 团队成员“欧根亲王号”老哥通过靶场内网中的“布谷鸟2018”社交软件对他们值班人员进行社工,成功得到192.168.1.4日志服务器密码,而且也得到了192.168.1.10密码,由于我们的目标是日志服务器,也就没有再去测试192.168.1.10的密码中间是多了哪个特殊符号。

(2) 对192.168.1.4日志服务器的测试中发现Windows防火墙只对ICMP和RDP进行了拦截,也就是禁止了Ping和Mstsc远程连接,但并没有拦截135和445,所以我们可以通过net use建立一个IPC$连接来查找192.168.1.14日志服务器上的flag.txt文件。

(3) 最后我们还可以通过135、445来执行系统命令关闭192.168.1.4日志服务器上的Windows防火墙和开启3389远程端口进入远程桌面。到这里基本上就已经结束了,如果时间允许的话还是可以继续深入的。

关闭/开启防火墙:
netsh advfirewall set currentprofile state off
netsh advfirewall set currentprofile state on

开启3389端口:
REG ADD "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

注:192.168.1.4日志服务器的Administrator密码与在192.168.2.244机器上找到的FlashFXP配置文件中保存的192.168.2.6 FTP密码是一样的,在内网渗透中信息搜集是至关重要的一步,笔者在以前的一些内网渗透实战案例中曾多次遇到管理员使用的通用、规律密码。

0x05 事后总结

  • (1) 在这次打靶过程中可能是因为大家测试了各式各样的攻击手法造成靶场环境也总是出现各种各样的问题,如:ZeroTier和Kali攻击机连接不上、192.168.2.244的Web服务挂掉等等问题,也不排除其中有些人在靶场上边“捣蛋”,几个朋友都是因为总是碰到这些问题而放弃挣扎的。
  • (2) 笔者在这次实战打靶过程中发现对较复杂网络环境的内网穿透和渗透能力还是十分不足,本想多花点时间对192.168.3.x段内机器做信息搜集的,最后因笔者和团队成员的能力、时间有限只能搞到这了,听说里边有个大佬在3段上一路“横着走”,我等小菜只有羡慕嫉妒的份。
  • (3) 本想着打完这个3段就休息不搞了,不过最后还是与团队成员“久久久”、“欧根亲王号”和“森浩”几位老哥一起根据前期搜集的信息和后期社工顺利打通关了。也感谢前期参与的“云顶”老哥和团队其他成员提供的一些思路和方法。
  • (4) 看了攻击B组组长的报告发现他是直接利用Veil-Evasion生成了一个Payload,然后用Pyjoiner将Payload与正常程序进行捆绑并做免杀处理,最后利用他们内网邮件系统和社交软件进行木马传播,方法虽然简单,但效果很不错。而我们当时就没想到这样去搞,还在死扛系统和服务漏洞!!!