Das kleine Kommandozeilentool Netsed erlaubt es, den Inhalt von TCP- und UDP-Datenpaketen im lokalen Netzwerk zu modifizieren.
README
Das einfache Kommandozeilenprogramm Netsed erlaubt es Ihnen, in den unverschlüsselten Datenstrom im lokalen Netzwerk einzugreifen und diesen zu manipulieren. Die Syntax der Änderungsvorschrift orientiert sich am “großen Bruder”, dem Stream-Editor Sed.
Das Kommandozeilenwerkzeug Netsed erlaubt es Ihnen, direkt in unverschlüsselte Datenströme eingreifen. Es benötigt wenig Ressourcen und steht bei allen gängigen Distributionen in deren Repositories zur Installation bereit. Steht nur eine ältere Version als die aktuelle 1.2 zur Verfügung, laden Sie die Quellen [1] herunter und kompilieren die Software via make && sudo make install manuell.
Netsed funktioniert naturgemäß nur auf Rechnern, die als Paketvermittler arbeiten, also auf Routern – beispielsweise unter Openwrt oder auf Servern, die den Dienst zur Verfügung stellen. Ähnlich wie ein Proxy greift die Software den Datenstrom einer definierten Verbindung ab und manipuliert ihn dann nach den von Ihnen festgelegten Vorgaben.
Sie rufen das Programm entweder manuell auf oder binden es in ein Shellskript ein. Verwenden Sie lokale Portnummern über 1023, dann genügen normale Benutzerrechte, andernfalls benötigen Sie Root-Rechte.
Syntax
Listing 1 zeigt die Syntax der Software. Als Protokoll geben Sie tcp oder udp an; den entfernten Rechner sprechen Sie entweder namentlich oder über seine IP-Adresse an. Das Muster für Suchen/Ersetzen folgt folgender Form:
's/Suche/Ersetze'
Wenn Sie Ersetze freilassen, dann löschen Sie den angegebenen Suchbegriff aus dem Datenstrom. Die Software verarbeitet auf Wunsch auch mehrere dieser Anweisungen gleichzeitig. Sie begrenzen die Anzahl der Änderungsvorgänge je Übertragung, indem Sie die Suchen/Ersetzen-Anweisung um einen Zählparameter verlängern. Soll das Programm eine Änderung genau einmal vollziehen, geben Sie das in der Form 's/Alt/Neu/1' an. Selbst, wenn der Begriff mehrmals vorkommt, ersetzt das Tool ihn dann nur einmal.
$ netsed {Protokoll} {Lokaler Port} {entf. Rechner} {entf. Port} {Suchen/Ersetzen}
In der Praxis
Nach dem korrekten Aufruf im Terminal zeigt Netsed alle die Verbindung betreffenden Vorgänge an, im oberen Bereich unter anderem die Anzahl der mitgegebenen Suchen/Ersetzen-Regeln. Der Versuchsaufbau manipuliert die Ausgabe eines Webservers am Port 8080 und leitet ihn auf Port 9000 um:
$ netsed tcp 9000 192.168.0.35 8080 's/Testseite/Versuchseite/'
Im Anschluss gibt Netsed Hinweise zur Paketweiterleitung und -behandlung aus. Abbildung 1 zeigt etwa in der Bildmitte (rot umrandet) einen erfolgreichen Suchen/Ersetzen-Vorgang (Applying rule …) (Abbildung 2).

Abb. 1: Die Startmeldungen und Programmausgaben von Netsed geben ausführlich Aufschluss über den aktuellen Status und erfolgreiche Ersetzungen (rot umrandet).

Abb. 2: Oben: Die Originalseite, wie sie der Webserver ausliefert. Unten: Die von Netsed manipulierte Variante.
Wie erwähnt erlaubt Netsed auch das Verändern mehrerer Inhalte. Listing 2 zeigt eine Konfiguration, die vier Anweisungen zum Suchen und Ersetzen erteilt. Die erste Aufgabe besteht darin, den Begriff Testseite ein einziges Mal gegen Versuchseite auszutauschen. Die zweite Anweisung soll der Link zu einer Suchmaschine entfernen und durch die Meldung Suchmaschine gesperrt ersetzen. Die letzten beiden tauschen die IP-Adresse des Servers und den Rechnernamen aus (Abbildung 3).
$ netsed tcp 9000 ze5 8080 \ 's/Testseite/Versuchseite/1' \ 's/http:%2f%2fwww.startpage.com%2f/Suchmaschine gesperrt/' \ 's/192.168.0.35/192.168.0.36/' \ 's/ZE5/ZE6/'
Die Angabe des Schrägstrichs /, der ja zur Kommandosyntax von Netsed gehört, erfolgt in einer besonderen Form: Sie geben dieses Zeichen mit dem Prozentzeichen und seiner hexadezimalen Bezeichnung %2f aus der ASCII-Tabelle an.
Fazit
Netsed erlaubt, auf relativ simple Weise Manipulationen von unverschlüsselten Daten vorzunehmen, die über ein Netzwerk transportiert werden. Der vorgestellte Versuchsaufbau dient in erster Linie dem Zweck, zu zeigen, mit welchen einfachen Mitteln sich Klartextübertragungen manipulieren lassen. Überprüfen Sie deshalb beispielsweise Ihre Webseiten, und verstecken Sie die Impressumsangaben in Grafikelementen, statt sie in Form von Klartext-HTML anzugeben. So erschweren Sie Angreifern das Anfertigen gefälschter Webseiten-Abzüge.
Der Autor
Harald Zisler beschäftigt sich seit den frühen 90er-Jahren mit FreeBSD und Linux. Zu Technik- und EDV-Themen verfasst er Zeitschriftenbeiträge und Bücher.
Infos
[1] Netsed: http://silicone.homelinux.org/projects/netsed/





