29

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

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzAwMzYxNzc1OA%3D%3D&%3Bmid=2247488111&%3Bidx=1&%3Bsn=a243a7e6a54258ae7bcca9f6b277a744
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

背景

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

Fr6Rzab.png!mobile

BrIFvy.png!mobile

信息收集部分

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

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

Nmap scan report for 49.233.xx.xx
Host is up (0.18s latency).
Not shown: 990 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
443/tcp open ssl/https Apache
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3389/tcp open ssl/ms-wbt-server?
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
Service 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

Z3uIny.png!mobile

开始

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

2q6jMrZ.png!mobile

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

ZBZ7ZbJ.png!mobile

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

iQF32uY.png!mobile

I3QF323.png!mobile

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

写入webshell

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

M3qE32I.png!mobile

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

ayMnUz.png!mobile

重新尝试写入webshell。

mMraIfV.png!mobile

看结果是成了。

RJvMVfI.png!mobile

蚁剑连接成功。

VjiyUf3.png!mobile

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

IneyEby.png!mobile

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

wmic /node:localhost /namespace:\\root\SecurityCenter2 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之前,我先在我的靶机上试了下,一样的系统,发现不行,但我还是想试试,干!

rqQBBfm.png!mobile

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

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

NNnQvqA.png!mobile

直接访问该文件下载。

yEz63m6.png!mobile

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

AnQnYn2.png!mobile

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

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

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /d 1 /t REG_DWORD /f

我试了一下,是可以的。

buI7V32.png!mobile

EJfMneY.png!mobile

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

taskkill /f /im explorer.exe
explorer.exe

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

尝试添加新用户

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

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

nuIbiyn.png!mobile

那咋办哟。试试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,命令:

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中也有)。

3a67VjV.png!mobile

aQRnE3E.png!mobile

尝试上传。

Qziyui3.png!mobile

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

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

i2eAn26.png!mobile

尝试创建用户。

7vuMJj.png!mobile

Jz63yq2.png!mobile

我在靶机(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权限,但作者比我还要麻烦一些。那我也试一下看看。

RJVBZn.png!mobile

成了!

MZr6Zja.png!mobile

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用户是后面新建的)

B7r2Ab.png!mobile

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

  • doskey net =  @

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

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

fIBFFvZ.png!mobile

jayqYjj.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK