
Sondar endpoints que consomem objetos serializados em Java para identificar classes, bibliotecas e versões de bibliotecas nos classpaths Java remotos.
Você acabou de encontrar um bug de desserialização Java, executou todos os seus payloads ysoserial e.... não obteve nada. E agora? Como você pode depurar ou construir uma cadeia de gadgets se está totalmente cego?
Apresentamos o GadgetProbe, uma ferramenta que lança luz sobre classpaths remotos e aumenta a severidade de bugs para todos!
O GadgetProbe recebe uma wordlist de classes Java, gera objetos serializados de callback DNS e informa o que está escondido no classpath remoto.
A extensão Burp integra-se automaticamente com o Burp Collaborator para lidar com callbacks DNS. A extensão também inclui assinaturas e um analisador para identificar versões de bibliotecas de fontes populares para gadgets.
Baixe o release ou siga as instruções de compilação abaixo.
Após carregar a extensão Burp:

2. Adicione uma lista de classes Java (veja as wordlists incluídas)

3. Adicione o processador de payload do GadgetProbe e quaisquer outros processadores necessários em sua cadeia (ex.: codificação Base64).

4. Execute o ataque do Intruder e observe os resultados retornarem na aba GadgetProbe do Burp.

O GadgetProbe também pode ser usado como uma biblioteca Java ou CLI para ataques especializados.
import com.bishopfox.gadgetprobe.GadgetProbe
...
// Call the GadgetProbe constructor with your authoritative nameserver (or use Burp collaborator).
GadgetProbe gp = new GadgetProbe("dnscallback.burpcollaborator.net");
// The crafted object "obj" is now ready to be sent using any custom implementation :)
Object obj = gp.getObject("org.apache.commons.collections.functors.invokertransformer");
# Build JAR (run first)
./gradlew shadowJar
# Build wordlists
./generate_wordlists.sh
Veja meu artigo no blog da Bishop Fox.
Twitter: @theBumbleSec
GitHub: the-bumble