记一次针对恶意攻击者的渗透测试

admin 2021年3月29日18:30:50评论173 views字数 4262阅读14分12秒阅读模式

这是 酒仙桥六号部队 的第 110 篇文章。

全文共计4246个字,预计阅读时长12分钟


背景

最近在梳理hw期间的文档,发现期间上报的攻击者IP,心里就有了个坏心思,想连上去看看这些攻击者的机器什么样子,于是便有了这篇文章。

记一次针对恶意攻击者的渗透测试

记一次针对恶意攻击者的渗透测试


信息收集部分

我这边只是用nmap和 fofa简单的看了一下。目标机器开了不少端口,存在好几个web服务,服务器为Windows服务器。

这次的目标是登录目标服务器看看即可,不进行其它任何操作。

Nmap scan report for 49.233.xx.xxHost is up (0.18s latency).Not shown: 990 closed portsPORT      STATE SERVICE            VERSION80/tcp    open  http               Apache httpd135/tcp   open  msrpc              Microsoft Windows RPC139/tcp   open  netbios-ssn        Microsoft Windows netbios-ssn443/tcp   open  ssl/https          Apache445/tcp   open  microsoft-ds       Microsoft Windows Server 2008 R2 - 2012 microsoft-ds3389/tcp  open  ssl/ms-wbt-server?49152/tcp open  msrpc              Microsoft Windows RPC49153/tcp open  msrpc              Microsoft Windows RPC49154/tcp open  msrpc              Microsoft Windows RPC49155/tcp open  msrpc              Microsoft Windows RPCService Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 118.18 seconds

记一次针对恶意攻击者的渗透测试


开始

访问该地址的80端口,自动跳转出一个websoft9的运维页面。

记一次针对恶意攻击者的渗透测试

我查了一下websoft9这个软件,主要用于提供软件的自动化部署,帮助客户在云服务器上简化企业级软件的安装部署。第一眼看到页面,最先看到的是网站根目录,然后下面的账号密码(不能是真的吧),然后左侧的功能栏里还有数据库管理、phpinfo功能,这,,,这是在勾引我吗?

记一次针对恶意攻击者的渗透测试

我打算先用网页上留下的账号和密码登录下试试看,万一呢(手动滑稽~)。

记一次针对恶意攻击者的渗透测试

记一次针对恶意攻击者的渗透测试

进去了。。。以前看公众号实战文章的时候,很多大佬用弱口令进去了,我还酸我怎么就碰不到这样的站,看样子是自己的经验还是太少了!


写入webshell

连上数据库之后我们可以写个webshell,用mysql的日志或是into outfile的方式。我这里使用的是日志的方式,网站根目录咱们是知道的C:wwwroot。

记一次针对恶意攻击者的渗透测试

写入后访问发现报not found,怀疑根路径有问题,所以还是通过websoft9自带的phpinfo查看DOCUMENT_ADDR确认,发现根路径为C:wwwrootwww.example.com(这个时候我才想起好好看看phpinfo,不合格啊不合格。信息收集在渗透测试中相当重要)。

记一次针对恶意攻击者的渗透测试

重新尝试写入webshell。

记一次针对恶意攻击者的渗透测试

看结果是成了。

记一次针对恶意攻击者的渗透测试

蚁剑连接成功。

记一次针对恶意攻击者的渗透测试

连接之后看下权限,system我去,好高。

记一次针对恶意攻击者的渗透测试

看一下有没有安装杀毒软件,发现没有安装。

wmic /node:localhost /namespace:\rootSecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed

记一次针对恶意攻击者的渗透测试

这几个乱码的内容是:

错误:描述 = 无效命名空间No Antivirus installed

命令查看目标服务器的3389端口是开着的,腾讯云的Windows主机,远程端口可不是开着嘛~。~,直到这里都好顺利啊。


尝试获取管理员密码

既然可以执行命令,权限也有了,那就抓一下管理员的密码吧。我在目标服务器上传了procdump64,将内存文件lsass.exe导出为dmp文件,但目标服务器是Windows Server 2012 R2 Datacenter Edition,在上传procdump64之前,我先在我的靶机上试了下,一样的系统,发现不行,但我还是想试试,干!

记一次针对恶意攻击者的渗透测试

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

记一次针对恶意攻击者的渗透测试

从蚁剑上下载dmp文件时,提示下载失败,猜测可能是网速的问题,因为我这代理太次了。这里提醒一下,如果到目标主机的网速比较慢,蚁剑连接、上传/下载文件等操作可能会失败。

记一次针对恶意攻击者的渗透测试

直接访问该文件下载。

记一次针对恶意攻击者的渗透测试

使用mimikatz进行解析,没有明文密码,果然失败。

记一次针对恶意攻击者的渗透测试

关于Windows Server 2012 R2 Datacenter使用mimikatz获取明文密码,我在我的靶机上做了实验。不管是直接使用mimikatz读取还是先procdump64取出,再用mimikatz解析都读不出明文密码,但是可以尝试修改注册表。文章参考链接:https://www.freebuf.com/sectool/96209.html。

在注册表中新建UseLogonCredential的DWORD项,值为1,下面是cmd中的命令。

reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlSecurityProvidersWDigest" /v UseLogonCredential /d 1 /t REG_DWORD /f

我试了一下,是可以的。

记一次针对恶意攻击者的渗透测试

记一次针对恶意攻击者的渗透测试

还有个问题就是,如果修改了注册表,注册表需要重新载入,我查了下,但并没有找到合适的方式。网上有重载explorer.exe进程的,但是我实验失败了,注册表没有更新成功(我需要的部分,其它部分有没有更新我不能肯定),而且使用这种方式会关闭已打开的窗口,下面是命令。

taskkill /f /im explorer.exeexplorer.exe

更新注册表最好的方式是重启系统。


尝试添加新用户

那就试试新建用户吧,直接用新用户登录。但是蚁剑net user命令和systeminfo命令都没有回显,这没有回显我也不知道成没成功啊?想着先把命令先输入进去,看看能不能成功。执行完添加用户的命令尝试远程登录,失败!

最开始以为是蚁剑的问题,换上最近比较火的“哥斯拉”试试,也不行,看样子不是工具的问题,是我的问题。

记一次针对恶意攻击者的渗透测试

那咋办哟。试试udf提权这种方式(突发奇想),虽然我是system权限了(捂脸哭),用mysql的sys_exec()或者sys_eval()试试。

mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的libplugin文件夹下,他没有这个文件夹,给他新建上,udf.dll文件在sqlmap中有,sqlmap里的udf.dll是经过编码的,需要先解码,解码的工具就在sqlmap/extra/cloak/cloak.py,命令:

python .cloak.py -d -i D:toolsqlmapdataudfmysqlwindows64lib_mysqludf_sys.dll_

解码完了就会在32或64下生成dll文件。

先看下mysql的版本信息,看是使用哪个位数的dll文件,这个位数不是操作系统的位数,是mysql软件的位数,也要看下mysql的目录位置(phpinfo中也有)。

记一次针对恶意攻击者的渗透测试

记一次针对恶意攻击者的渗透测试

尝试上传。

记一次针对恶意攻击者的渗透测试

上传成功,创建函数试一下,命令(为什么不直接用蚁剑的数据库功能执行语句,因为连不上!哭泣!):

create function sys_exec returns string soname "lib_mysqludf_sys.dll";

记一次针对恶意攻击者的渗透测试

尝试创建用户。

记一次针对恶意攻击者的渗透测试

记一次针对恶意攻击者的渗透测试

我在靶机(win7,phpstudy)上测试,虽然返回NULL,但是用户是正常添加了的。那这个用户添加上了吗?远程连一下试试看!失败了。后面又试了sys_eval(),虽然可以执行echo命令,但net命令依然是失效的。


copy net1的绝杀

看样子net命令是用不了了,目标系统中文件是有的,然后在看目标系统有没有net命令的时候看到目录下有个net1.exe。想起之前看的乌云安全的文章,链接:https://mp.weixin.qq.com/s/XLa41N0d4TsOMllgo5QEvQ。文章中遇到的情况跟我很相似,Windows Server 2012 的系统、无法使用net、system权限,但作者比我还要麻烦一些。那我也试一下看看。

记一次针对恶意攻击者的渗透测试

成了!

记一次针对恶意攻击者的渗透测试

net与net1命令关系参考链接:

https://blog.51cto.com/xxcmd/1151515
http://www.safebase.cn/article-124482-1.html


总结

本次渗透其实并不复杂,较为简单,文章深度有限。我看了下这台主机,不太像安全人员使用的主机,倒有点像沦陷的“肉鸡”。不过话说回来,咱们hw期间有不少人使用自己买的云主机进行扫描等行为,有些上面还搭着靶机。个人觉得最好还是挂个代理什么的,安全人员也得安全一点。

这次测试纯属运气,一个弱口令解决了太多的问题,web方面的直接略过了,我也深深感受到了弱口令的危害。websoft9官方早已经认识到了这个问题,其在2月15日发布了一则新闻,就是说的弱密码的问题,参考链接:https://www.websoft9.com/news/passwordneedmodify。


最后一个问题

我在登录上目标服务器后,发现执行net命令也没有回显,这是为什么呢?(admln用户是后面新建的)

记一次针对恶意攻击者的渗透测试

我查了下禁用net、systeminfo命令的方式,找到下面两种:

  • doskey net =  @

  • 如果是Path环境变量删除了“%SystemRoot%system32;”,则报'net'不是内部命令。

他使用的应该是第一种,不排除使用的我不知道的其它方式,如果doskey net = (空),那么net功能的作用就恢复了(我没有在目标服务器上试)。如果真的是第一种的话,我是不是可以直接在蚁剑的虚拟终端中尝试使用doskey呢?


记一次针对恶意攻击者的渗透测试

记一次针对恶意攻击者的渗透测试

本文始发于微信公众号(酒仙桥六号部队):记一次针对恶意攻击者的渗透测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年3月29日18:30:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次针对恶意攻击者的渗透测试http://cn-sec.com/archives/187675.html

发表评论

匿名网友 填写信息