Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pstf2 — Passives Sicherheitstools-Fingerprinting-Framework | Kitploit
Tools/GitHubGitHub/g4lb1t/pstf2
Phishing-ToolsIDS/IPS-UmgehungWebsicherheitLernen & BildungRed TeamingFingerabdruck-Spoofing
GitHubg4lb1t/pstf2

pstf2

Passives Sicherheitstools-Fingerprinting-Framework

Repository anzeigen
7496vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

pstf^2

Passive Security Tools Fingerprinting Framework

Haben Sie jemals einen einfachen, unauffälligen Umgehungsweg für mehrere Klassen von Sicherheitsprodukten gesucht? pstf^2 (ausgesprochen pstf-Quadrat) ist eine Implementierung eines HTTP-Servers, die passives Browser-Fingerprinting ermöglicht – und könnte genau das sein, wonach Sie suchen. Wenn Angreifer versuchen, eine Nutzlast über das Internet auszuliefern, müssen sie mehrere Werkzeuge überwinden, die eingehende Links scannen können. E-Mail-Filter, Scan-Engines und sogar die Übermittlung an eine Sandbox per URL – all das kann umgangen werden, sobald pstf^2 sie auf passive Weise erkennt. Einmal erkannt, erlaubt das Werkzeug, zwischen Sicherheitsdiensten und potenziellen Opfern zu unterscheiden und entweder eine bösartige oder eine harmlose Antwort auszuliefern.

Dieses Werkzeug wurde während der BlackHat EU 2020 veröffentlicht: https://www.blackhat.com/eu-20/arsenal/schedule/#pstf2-link-scanners-evasion-made-easy-21763

Details zur Forschung sind in diesem Blogbeitrag verfügbar: https://blogs.akamai.com/sitr/2020/12/evading-link-scanning-security-services-with-passive-fingerprinting.html

Wie funktioniert es?

Die eigentliche Frage ist: Wie funktionieren Link-Scanner? Das Überprüfen eines bösartigen Links ist eine Aktion, bei der ein Web-Client eine HTTP-GET-Anfrage sendet. Jeder Anbieter verwendet eine andere hausinterne Implementierung – die meisten versuchen, in gewissem Maße eine echte Benutzerinteraktion nachzuahmen. pstf^2 ist ein einfacher, Python-basierter HTTP-Server, der bekannte Bot-Erkennungstaktiken anwendet, um zu bestimmen, ob eine eingehende Anfrage von einem automatisierten Sicherheitswerkzeug stammt. Der Betreiber des Servers kann die Antworten anpassen, z. B. – wenn ein Scanner erkannt wird, leite zu Google weiter, andernfalls sende bösartigen Inhalt.

Im Folgenden sind die wichtigsten Taktiken aufgeführt, die als Teil von pstf^2 implementiert wurden:

Anwendungsschicht

Veraltete User-Agents

Sicherheitswerkzeuge versuchen, sich als legitime Clients zu tarnen und echte Browser vorzutäuschen, dennoch – meistens ist dies nicht der Fall. Es ist üblich, Werkzeuge zu sehen, die nicht ordnungsgemäß gewartet werden und gefälschte User-Agent-Header für Browser-Versionen verwenden, die ein Jahrzehnt alt sind. pstf^2 ermöglicht es Ihnen, einen Mindestschwellwert für das festzulegen, was Sie als eine echte, nicht veraltete Version betrachten.

Allgemeine HTTP-Anomalien

Es gibt viele Arten seltsamer Implementierungen, die das Werkzeug erkennen kann. Ein paar Beispiele, die im BlackHat-Vortrag vorgestellt wurden, waren:

  • Ein via:-Header, der die Art des für die Sandbox verwendeten virtuellen Hosts preisgab.
  • Ein referer:-Header, der nahelegte, dass der Link von Google erreicht wurde, z. B. referer: google.com/search?q=specific.site.com. In den von uns getesteten Szenarien ergab dies keinen Sinn, da dieses Produkt E-Mails scannt und dieser Header fehlt, wenn jemand auf eine E-Mail klickt (nicht über eine Weboberfläche).

Verbindungs-, Netzwerk- und Transportschicht

Korrelation

Mehrere TCP-Parameter können entweder auf eine bestimmte Betriebssystemversion oder eine bestimmte Variante hindeuten. Einige Clients fälschen den User-Agent-Header, laufen aber auf einem Betriebssystem, das sich von dem angegebenen unterscheidet.

MTU-Werte

Clients, die in spezifischen Cloud-Provider-Netzwerken gehostet werden, haben eine MTU, die vom Standardwert von 1500 Bytes abweicht.

ASN

In einigen Fällen wird die Anfrage von einer ASN gesendet, die explizit mit einem bestimmten Sicherheitsanbieter verbunden ist. In anderen Fällen stammt die Anfrage von einem Cloud-Hosting-Anbieter – das macht sie zwar nicht zu einem bestimmten Anbieter, ist aber unwahrscheinlich für einen typischen Benutzer.

DNS-PTR-Einträge

In seltenen Fällen hat die IP-Adresse des Clients einen PTR-Eintrag, der ihn mit einer URL eines Sicherheitsanbieters in Verbindung bringt.

Einrichtung von pstf^2

Verwendung von Docker

Angenommen, Docker ist bereits installiert, ist es so einfach:

root@kitploit:~
docker-compose up 

Manuelle Bereitstellung

Falls Sie Docker vermeiden möchten, befolgen Sie diese Schritte.

Python-Anforderungen erfüllen

Führen Sie aus:

root@kitploit:~
pip install requirements.txt

Dadurch werden alle erforderlichen externen Python-Module installiert.

p0f herunterladen

Bevor Sie pstf^2 bereitstellen, laden Sie p0f herunter und installieren Sie es. Es ist derzeit verfügbar unter:

https://lcamtuf.coredump.cx/p0f3/

Konfigurieren Sie nun lib/servers/server_config.yml so, dass es auf den korrekten Pfad zeigt, z. B.:

root@kitploit:~
p0f_config:
  # ändern Sie mindestens Ihren Benutzernamen, denken Sie daran, in beiden Pfaden zu ändern
  p0f_bin_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f'
  p0f_fp_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f.fp'
  iface: 'lo0'
  p0f_named_socket: '/tmp/p0f_socket'

Stellen Sie außerdem sicher, dass iface dasselbe Interface ist, auf dem Ihr Python-HTTP-Server läuft. Im obigen Beispiel ist es das Loopback-Interface.

pstf^2 ausführen

Sobald die Anforderungen erfüllt sind, führen Sie aus:

root@kitploit:~
python driver.py

Sie können beliebige der folgenden Flags verwenden:

root@kitploit:~
  --p0f_bin_path P0F_BIN_PATH
  --p0f_fp_path P0F_FP_PATH
  --p0f_iface P0F_IFACE

Alle dienen der Anpassung von Parametern zu p0f: der Binärdatei selbst, der Fingerabdruckdatei und dem Interface, das wir verwenden (standardmäßig eth0).

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

root@kitploit:~
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Starting p0f...
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Running command:
	/Users/gbitensk/work/web_fp/p0f-3.09b/p0f -i lo0 -s /tmp/p0f_socket -f /Users/gbitensk/work/web_fp/p0f-3.09b/p0f.fp
2020-04-15 17:37:06,898 - pstf2_logger - INFO - p0f started!
2020-04-15 17:37:06,898 - pstf2_logger - INFO - Starting HTTP server...
2020-04-15 17:37:06,898 - pstf2_logger - INFO - HTTP server started!
2020-04-15 17:37:06,899 - pstf2_logger - INFO - If you wish to terminate the server press CTRL+C

Beenden Sie den Server durch Drücken von Ctrl+C; es werden sowohl die HTTP- als auch die p0f-Instanz beendet. Sie sollten etwas Ähnliches sehen:

root@kitploit:~
2020-04-15 17:37:48,263 - pstf2_logger - INFO - HTTP server stopped!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - Killing p0f...
2020-04-15 17:37:48,263 - pstf2_logger - INFO - p0f killed!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - exiting...

Beachten Sie, dass das Setzen eines DNS-Eintrags, der eine URL auf Ihren Server verweist, außerhalb des Anwendungsbereichs von pstf^2 liegt und in Ihrer eigenen Verantwortung erfolgt.

Payload-Verwaltung

pstf^2 hat Standard-Payloads, die in server_config.yml definiert sind und leicht angepasst werden können.

Harmlose Antwort

Es gibt zwei Modi, die durch Änderung der Variable rickroll_mode auf YES oder NO umgeschaltet werden. Wenn aktiviert, wird das Sicherheitswerkzeug auf eine YouTube-Seite mit dem berühmten Rickrolling-Video umgeleitet; andernfalls wird ein im selben YAML definierter String ausgeliefert.

Bösartige Antwort

Standardmäßig wurde die "bösartige" Antwort auf den EICAR-Standardteststring gesetzt.

Warum ist pstf^2 öffentlich?

Ich habe mich dafür entschieden, dieses Werkzeug als Open-Source-Projekt öffentlich zu machen, da:

  • Bösartige Links werden täglich in großem Umfang von Bösewichten verwendet.
  • Sicherheitswerkzeuge sind nicht gut genug; einige der von pstf^2 veranschaulichten Methoden werden in freier Wildbahn missbraucht.

Im Rahmen der Erstellung des Werkzeugs wurde es gegen 15 verschiedene Produkte getestet, alle scheiterten. Während ich die Details des Angriffs verantwortungsvoll offenlegte, haben wir noch einen langen Weg vor mir, und meine Erwartung ist, dass wir durch die öffentliche Bereitstellung des Werkzeugs das Bewusstsein für diese Taktiken schärfen, die bereits von "Bösewichten" missbraucht werden.

Besonderer Dank

@Den1al für die Bereitstellung von Ratschlägen beim Bau dieses speziellen Werkzeugs, für das ordnungsgemäße Schreiben von Python im Allgemeinen sowie für die Unterstützung bei der Erstellung als Docker-Image.

Tool herunterladen