注:此备忘录翻译自Java-Deserialization-Cheat-Sheet

Java反序列化备忘录

一个为渗透工程师和安全研究人员准备的Java反序列化漏洞备忘录。
阅读需知:

  1. 科学上网
  2. “被黑掉的应用”栏下是漏洞产生的条件要求

Java Native Serialization (binary)

概述

有关大会的PPT和文档

《Marshalling Pickles》

演讲者:@frohoff & @gebl

《利用Java中的反序列化漏洞》

演讲者:@matthias_kaiser

连环杀手:寂静的Java反序列化渗透

演讲者:@pwntester & @cschneider4711

《我如何开始学会并担忧Java反序列化漏洞》

演讲者:@frohoff & @gebl

幸存的Java序列化启示

演讲者:@cschneider4711 & @pwntester

Java反序列化漏洞 - 被遗忘的Bug类

演讲者:@matthias_kaiser

反序列化漏洞引发的信息泄露

演讲者:@matthias_kaiser

如何防范Java反序列化漏洞

演讲者:@lucacarettoni

从JNDI / LDAP操作到远程执行代码

演讲者:@pwntester and O. Mirosh

如何修复Java序列化紊乱

演讲者:@e_rnst

盲打Java反序列化漏洞

演讲者:deadcode.me

Java虚拟机(JVM)中的反序列化漏洞概述

演讲者:@joaomatosf

有效攻击载荷生成器

ysoserial

https://github.com/frohoff/ysoserial

其它工具:

如何植入shell(pipes, redirects and other stuff):

攻击原理

JRE8u20_RCE_Gadget

https://github.com/pwntester/JRE8u20_RCE_Gadget

纯粹的JRE 8 RCE反序列化小工具

ACEDcup

https://github.com/GrrrDog/ACEDcup

文件上传通过:

Universal billion-laughs DoS

https://gist.github.com/coekie/a27cc406fc9f3dc7a70d

使用默认的Java类(JRE)仍会导致Dos攻击

Universal Heap使用阵列和HashMaps溢出DoS

https://github.com/topolik/ois-dos/

如何运行:

使用默认的Java类(JRE)仍会导致Dos攻击

Exp工具

工具无特定规范 - 并不需要一个特殊的工具 (就用Burp/ZAP + 有效攻击载荷就OK)

RMI

ysoserial (仅针对RMI注册表服务)

JMX

ysoserial

JexBoss

JNDI/LDAP

https://github.com/zerothoughts/jndipoc

JMS

JMET

JSF ViewState

没有专门的工具

JexBoss

T3 of Oracle Weblogic

loubia ( 在11g和12c上测试, 支持 t3s)

JavaUnserializeExploits (不适用于所有Weblogic版本)

WLT3Serial

IBM Websphere (1)

JavaUnserializeExploits

serialator

IBM Websphere (2)

没有专门的工具

Red Hat 系统下的JBoss (1)

JavaUnserializeExploits

https://github.com/njfox/Java-Deserialization-Exploit

serialator

JexBoss

Red Hat JBoss 6.X

没有专门的工具

Red Hat JBoss 4.x

没有专门的工具

Jenkins (1)

JavaUnserializeExploits

JexBoss

Jenkins (2)

ysoserial

Jenkins (s)

Metasploit有针对CVE-2016-9299的攻击模块

CloudBees Jenkins

Sploit

Restlet

没有专门的工具

RESTEasy

没有专门的工具

OpenNMS

ysoserial

Progress OpenEdge RDBMS

ysoserial

Commvault Edge Server

没有专门的工具

Symantec Endpoint Protection Manager

serialator

Oracle MySQL 企业级监视器

没有专门的工具

serialator

PowerFolder 商业级中间件

powerfolder-exploit-poc

Solarwinds 虚拟代理

ysoserial

思科Prime基础设施

CoalfireLabs/java_deserialization_exploits

Cisco ACS

ysoserial

Apache XML-RPC

没有专门的工具

Apache Archiva

没有专门的工具

SAP NetWeaver

PoC

Sun Java Web Console

没有专门的工具

Apache MyFaces Trinidad

没有专门的工具

Apache Tomcat JMX

JexBoss

OpenText Documentum D2

利用

Liferay

没有专门的工具

Apache ActiveMQ - Client lib

JMET

Redhat/Apache HornetQ - Client lib

JMET

Oracle OpenMQ - Client lib

JMET

IBM WebSphereMQ - Client lib

JMET

Oracle Weblogic - Client lib

JMET

Pivotal RabbitMQ - Client lib

JMET

IBM MessageSight - Client lib

JMET

IIT Software SwiftMQ - Client lib

JMET

Apache ActiveMQ Artemis - Client lib

JMET

Apache QPID JMS - Client lib

JMET

Apache QPID - Client lib

JMET

Amazon SQS Java Messaging - Client lib

JMET

检测

代码审计
数据交互
网络
Burp 插件

被黑掉的应用 (without public sploits/need more info)

Spring服务调用 (HTTP, JMS, RMI...)
SAP P4
Apache SOLR
Apache Shiro
Apache ActiveMQ (2)
Atlassian Bamboo (1)
Atlassian Bamboo (2)
Atlassian Jira
Akka
Spring AMPQ
Apache Tika
Apache HBase
Apache Camel
Apache Log4j
Gradle (gui)
Oracle Hyperion
Oracle Application Testing Suite
Red Hat JBoss BPM Suite
VMWare vRealize Operations
VMWare vCenter/vRealize (various)
Cisco (various)
Lexmark Markvision Enterprise
McAfee ePolicy Orchestrator
HP iMC
HP Operations Orchestration
HP Asset Manager
HP Service Manager
HP Operations Manager
HP Release Control
HP Continuous Delivery Automation
HP P9000, XP7 Command View Advanced Edition (CVAE) Suite
HP Network Automation
Adobe Experience Manager
Unify OpenScape (various)
Apache OFBiz
Apache Tomcat
Apache TomEE
IBM Congnos BI
Novell NetIQ Sentinel
ForgeRock OpenAM
F5 (various)
Hitachi (various)
NetApp (various)
Zimbra Collaboration
Adobe ColdFusion
Code42 CrashPlan
Apache Batchee
Apache JCS
Apache OpenJPA
Apache OpenWebBeans

防御工具

For Android

XMLEncoder (XML)

攻击原理

Exploits:

Oracle Weblogic

Exploit

XStream (XML/JSON/various)

攻击原理

Payload 生成器

Exploits:

Apache Struts (S2-052)

Exploit

被黑掉的应用 (without public sploits/need more info):

Atlassian Bamboo
Jenkins

Kryo (binary)

如何黑掉它

Payload 生成器:

Hessian/Burlap (binary/XML)

攻击原理

Payload 生成器

Castor (XML)

攻击原理

Payload 生成器

被黑掉的应用(without public sploits/need more info):

OpenNMS

json-io (JSON)

攻击原理

Payload 生成器

Jackson (JSON)

vulnerable in some configuration

攻击原理

Payload 生成器

被黑掉的应用(without public sploits/need more info):

Apache Camel

Red5 IO AMF (AMF)

攻击原理

Payload 生成器

被黑掉的应用(without public sploits/need more info):

Apache OpenMeetings

Apache Flex BlazeDS (AMF)

攻击原理

Payload 生成器

被黑掉的应用(without public sploits/need more info):

Adobe ColdFusion
Apache BlazeDS
VMWare VCenter

Flamingo AMF (AMF)

攻击原理

GraniteDS (AMF)

攻击原理

WebORB for Java (AMF)

攻击原理

SnakeYAML (YAML)

攻击原理

Payload 生成器

被黑掉的应用(without public sploits/need more info):

Resteasy
Apache Camel
Apache Brooklyn

jYAML (YAML)

攻击原理

Payload 生成器

YamlBeans (YAML)

攻击原理

Payload 生成器

"Safe" deserialization

一些序列化库是安全的(或几乎安全https://github.com/mbechler/marshalsec

但这不是官方建议,而是由一个安全研究员提出的建议列表:

源链接

Hacking more

...