#0x01 前言
在一次蓝队的资产梳理以及渗透测试的过程中,同事通过web目录扫描工具对目标系统进行目录扫描,发现了一个tomcat的默认登录页面,在简单的密码尝试之后,发现存在弱口令,弱口令为admin /admin。
一般进入到tomcat的应用管理页面,能想到的都是通过部署war包的方式上传木马文件,获取webshell。
0x02 渗透过程
1、打开tomcat的默认登录页面,通过admin/admin进行连接,进入到如下页面。
2、本地生成一个war文件,war文件的生成只需要将一个.jsp后缀的大马压缩成.zip格式的文件,压缩结束后,将文件.zip的后缀改成.war即可,
3、回到tomcat的应用管理界面,点击浏览,deploy,war包上传成功,部署后会在Applications出生成一个以war文件名称的应用,如下图:
3、tomcat会直接将.war文件中的.jsp文件解压出来,所以直接访问木马文件http://x.x.x.x/shell/JspSpy.jsp,通过密码连接,页面如下,简单的查看服务器信息。
4、既然拿到了webshell,那么后面的操作就很多了,拿服务器,横向移动等等。
5、此时就要拿出mimikatz了,简单介绍下mimikatz,mimikatz一款windows平台下的神器,它具备很多功能,其中最亮眼的功能是直接从 lsass.exe 进程里获取windows处于active状态账号的明文密码。读取明文密码原理:在 Windows 中,当用户登录时,lsass.exe 使用一个可逆的算法加密明文,并会将密文保存在内存中,Mimikatz就是通过抓取内存去还原明文。
项目地址:https://github.com/gentilkiwi/mimikatz。
6、在上传mimikatz之前查看下windows操作系统的版本,因为在高版本的mimikatz中,是不能直接通过mimikatz读取明文密码的,如下图所示,目标操作系统的版本为windows server 2012 R2。
7、当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表的方式抓取明文。
cmd修改注册表命令:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
重启或用户重新登录后可以成功抓取。
8、但是修改注册表有个缺陷就是需要重启或者用户重新登录,这种动作可能会惊动管理员,同时,如果目标服务器安装了杀毒软件,那么mimikatz在不免杀的情况下,容易被杀毒软件杀掉。
9、之后又上传了一个小马,通过冰蝎进行连接,执行命令。利用procdump这款工具。
Procdump是微软官方发布的一款调试工具,因此不会被各种杀毒软件查杀。通常使用procdump转储内存文件到本地再使用mimikatz抓取文件中的hash来躲避杀软检测。
下载地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
10、上传procdump64.exe文件,进入到C盘,运行procdump64.exe -acceptdula -ma lsass.exe lsass.dmp命令。
11、在当前目录下生成一个lsass.dmp文件,如下图所示。
12、将lsass.dmp文件下载到自己的电脑上,通过mimikatz.exe文件提取密码,如下:
13、将此NTML Hash放到在线密码破解网站somd5.com进行破解,密码如下:
14、通过mstsc登录目标服务器的3389远程桌面。
0x03 结尾
由于时间的关系,并未进行横向移动。
整个过程说下来,其实做的事情并不多,也并不复杂。
其中也尝试过了上传C/S生成的exe文件,想反弹到C/S中,但反弹不回来,此处可能由于杀毒软件或者安全设备的原因。
在实际的攻防演练中,能遇到这种NTML HASH能破解出来的基本上很少,如果破解不出来,那也许只能使用修改注册表,让管理员重新登录或让服务器重启,然后利用mimikatz读取明文的方式。如果管理员一直不重新登录,那么只能重启,选择在一个夜黑风高的晚上了。
除了上传procdump文件提取lsass中的凭证之外,还有其他一些远程提取的方法,可参考如下这篇文章。
https://en.hackndo.com/remote-lsass-dump-passwords/
自己也在慢慢的学习中,大佬勿喷。