Pentesting JDWP - Java Debug Wire Protocol

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Exploiting

JDWP unyakuzi unategemea ukosefu wa uthibitisho na usimbuaji wa protokali. Kwa kawaida hupatikana kwenye bandari 8000, lakini bandari nyingine zinaweza kutumika. Muunganisho wa awali unafanywa kwa kutuma "JDWP-Handshake" kwenye bandari lengwa. Ikiwa huduma ya JDWP inafanya kazi, inajibu kwa kutumia string ile ile, ikithibitisha uwepo wake. Huu mkono unafanya kazi kama njia ya kutambua huduma za JDWP kwenye mtandao.

Kwa upande wa utambuzi wa mchakato, kutafuta string "jdwk" katika michakato ya Java kunaweza kuashiria kikao cha JDWP kinachofanya kazi.

Chombo kinachotumika ni jdwp-shellifier. Unaweza kukitumia na vigezo tofauti:

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

Nimegundua kwamba matumizi ya --break-on 'java.lang.String.indexOf' yanafanya exploit kuwa thabiti zaidi. Na ikiwa una nafasi ya kupakia backdoor kwenye mwenyeji na kuitekeleza badala ya kutekeleza amri, exploit itakuwa thabiti zaidi.

Maelezo zaidi

Hii ni muhtasari wa https://ioactive.com/hacking-java-debug-wire-protocol-or-how/. Angalia kwa maelezo zaidi.

  1. Muhtasari wa JDWP:
  • Ni protokali ya mtandao ya binary inayotumia pakiti, hasa synchronous.
  • Haina uthibitisho na usimbaji, hivyo inakuwa hatarini inapokuwa wazi kwa mitandao ya adui.
  1. Kushikana kwa JDWP:
  • Mchakato rahisi wa kushikana unatumika kuanzisha mawasiliano. Mstari wa ASCII wenye herufi 14 “JDWP-Handshake” unabadilishana kati ya Debugger (mteja) na Debuggee (server).
  1. Mawasiliano ya JDWP:
  • Jumbe zina muundo rahisi zikiwa na maeneo kama Urefu, Id, Bendera, na CommandSet.
  • Thamani za CommandSet zinaanzia 0x40 hadi 0x80, zik representing hatua na matukio tofauti.
  1. Ukatili:
  • JDWP inaruhusu kupakia na kuita madarasa na bytecode zisizo na mipaka, ikileta hatari za usalama.
  • Makala inaelezea mchakato wa ukatili katika hatua tano, ikihusisha kupata marejeleo ya Java Runtime, kuweka breakpoints, na kuita mbinu.
  1. Ukatili wa Kweli:
  • Licha ya ulinzi wa firewall unaowezekana, huduma za JDWP zinaweza kupatikana na kuathiriwa katika hali halisi, kama inavyoonyeshwa na utafutaji kwenye majukwaa kama ShodanHQ na GitHub.
  • Skripti ya exploit ilijaribiwa dhidi ya toleo mbalimbali za JDK na ni huru kwa jukwaa, ikitoa Utekelezaji wa Msimbo wa K remote (RCE) wa kuaminika.
  1. Madhara ya Usalama:
  • Uwepo wa huduma za JDWP wazi kwenye mtandao unaonyesha hitaji la ukaguzi wa usalama wa mara kwa mara, kuzima kazi za debug katika uzalishaji, na usanidi sahihi wa firewall.

Marejeleo:

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks