Sobre o projeto
ysoserial é uma ferramenta de segurança proof-of-concept para gerar payloads Java serializados que exploram desserialização insegura de objetos. Foi originalmente lançada como parte da palestra AppSecCali 2015 'Marshalling Pickles: how deserializing objects will ruin your day', com cadeias de gadgets iniciais para Apache Commons Collections (3.x e 4.x), Spring Beans/Core (4.x) e Groovy (2.3.x), e posteriormente estendida com cadeias para JRE 1.7u21 e muitas outras bibliotecas.
O programa driver principal recebe um comando especificado pelo usuário, envolve-o em uma cadeia de gadgets especificada pelo usuário — uma sequência de programação orientada a propriedades montada a partir de classes encontradas em bibliotecas Java comuns — e serializa os objetos resultantes para a saída padrão. Quando uma aplicação que tem os gadgets necessários em seu classpath desserializa esses dados de forma insegura, a cadeia é invocada automaticamente e o comando é executado no host da aplicação. O projeto enfatiza que a vulnerabilidade está na aplicação que realiza desserialização insegura, não na mera presença de bibliotecas de gadgets no classpath.
A ferramenta inclui mais de trinta tipos de payload contribuídos por diversos pesquisadores. Isso inclui sete variantes de CommonsCollections abrangendo commons-collections 3.x e commons-collections4 4.x, além de cadeias para CommonsBeanutils, Spring (duas variantes), Groovy, Hibernate (duas variantes), C3P0, BeanShell, Jython, Clojure, Mozilla Rhino (duas variantes), ROME, JSON-lib, MyFaces (duas variantes), Click, FileUpload, Vaadin, Wicket, Javassist/Weld, interceptores JBoss, AspectJWeaver, Jdk7u21, URLDNS (que não lista dependências) e JRMPClient/JRMPListener. Um utilitário incluído, ysoserial.exploit.RMIRegistryExploit, é mostrado nos exemplos para entregar um payload a um registro RMI.
O uso é um único comando, por exemplo: java -jar ysoserial.jar CommonsCollections1 calc.exe. O payload gerado pode ser canalizado diretamente para um alvo ou salvo em um arquivo, como demonstrado com netcat no README. Jars pré-construídos estão disponíveis nos releases do GitHub, e o projeto pode ser compilado a partir do código-fonte com Java 1.7+ e Maven 3.x+ usando 'mvn clean package -DskipTests'.
Os mantenedores declaram explicitamente que o software foi criado puramente para pesquisa acadêmica e desenvolvimento de técnicas defensivas eficazes, e que não se destina a ser usado para atacar sistemas, exceto quando explicitamente autorizado; pede-se aos usuários que o usem com responsabilidade. Projetos relacionados referenciados no README incluem marshalsec (um projeto irmão que cobre outros formatos e bibliotecas de desserialização Java), ysoserial.net (o equivalente .NET) e o Java-Deserialization-Cheat-Sheet, que coleta vulnerabilidades, ferramentas e análises relacionadas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.