Open Source im professionellen Einsatz

© cydonna, photocase.com

Netzwerktricks mit Proxys, Routern und VPNs

Szenenwechsel

Wer die Ethernet-Leitung oder den Wireless-Router kontrolliert, jubelt den angeschlossenen Geräten neue Inhalte unter oder gaukelt ihnen vor, sie stünden am anderen Ende der Welt. Besonders eindrucksvoll ist der Effekt, wenn diese sich erst einmal zugeknöpft geben.

Meinen Schreibtisch ziert seit einem Jahr ein Chumby ([2], Abbildung 1), ein kleiner, Radiowecker-ähnlicher Kasten, auf dem konfigurierbare Apps Schlagzeilen, das Wetter, Börsenkurse und die News aus der Welt der Programmierung durchtickern. Der Zweitbildschirm im Augenwinkel nervt weniger als ein Widget auf dem Hauptschirm und ich lese Klatsch aus Silicon Valley oder erlebe bahnbrechende Neuheiten der Gadget-Industrie.

Abbildung 1: Der Chumby zeigt die neuesten Schlagzeilen auf Ihackernews.com an.

Abbildung 1: Der Chumby zeigt die neuesten Schlagzeilen auf Ihackernews.com an.

Defcon-2 dank Werbung

Vor einigen Wochen hielt es eine offenbar vom schnöden Werbemammon geblendete Person der Chumby-Zentrale für nötig, zwischen meinen Kanälen eine zehn Sekunden dauernde Werbung für eine Autoversicherung einzublenden (Abbildung 2). Ich schaltete auf Defcon-2 [3] und untersuchte, ob die Chumby-Einstellungen einen HTTP-Proxy erlauben, um die lästige Werbung abzufangen, bevor sie auf dem Chumby eintrifft.

Abbildung 2: Die Reklamehexe hat sich ungefragt zwischen die Chumby-Kanäle gedrängt.

Im Forum erfuhr ich, dass Chumby keinen HTTP-Proxy unterstützt, man aber einen USB-Stick einstöpseln kann, auf dem in einer Datei »userhook0« im Rootverzeichnis die Proxy-Einstellungen von Abbildung 3 stehen. Damit gebootet schleust das Gerät HTTP-Requests durch den Proxyserver, der die URLs ansehen und eventuell manipulieren kann.

Abbildung 3: Steckt im Chumby ein USB-Stick mit einer Datei userhook0, übernimmt das Gerät während des Bootvorgangs die dort eingestellten Proxy-Parameter.

Squid oder handgestrickt

Als Proxyserver eignet sich Squid [4], aber wer gerne bastelt, zimmert sich wie in Listing 1 mit dem CPAN-Modul HTTP::Proxy schnell einen loggenden Proxy zusammen. Zeile 21 startet den Proxyserver, der auf Port 9999 des Hosts 192.168.1.123 lauscht, die HTTP-Requests des Chumby entgegennimmt und die Inhalte aus dem Internet holt. Der ab Zeile 10 eingeschobene »request« -Filter sieht sich einen eintreffenden HTTP-Request an, fieselt die URL heraus und gibt sie mit »print« aus.

Listing 1

proxy-logger

01 #!/usr/local/bin/perl -w
02 use strict;
03 use HTTP::Proxy;
04 use HTTP::Proxy::HeaderFilter::simple;
05
06 my $proxy = HTTP::Proxy->new(
07     host => "192.168.1.123",
08     port => 9999 );
09
10 $proxy->push_filter(
11   request =>
12     HTTP::Proxy::HeaderFilter::simple->new(
13       sub {
14         my( $self ) = @_;
15         print $self->proxy->request->uri(),
16               "\n";
17       }
18     )
19 );
20
21 $proxy->start;

Mit diesem Spion in der Leitung zeigt Abbildung 4, was der Chumby so alles treibt. Um der unerwünschten Werbung den Teppich unter den Füßen wegzuziehen, ändert Listing 2 die Methode »push_filter()« so, dass sie die URL des Requests umschreibt, falls Chumby ursprünglich den berühmten Eviladserver.com verlangt hat.

Listing 2

proxy-adkiller

01 #!/usr/local/bin/perl -w
02 use strict;
03 use HTTP::Proxy;
04 use HTTP::Proxy::HeaderFilter::simple;
05 use HTTP::Request::Common;
06
07 my $proxy = HTTP::Proxy->new(
08     host => "192.168.1.123",
09     port => 9999 );
10
11 my $repl = "http://perlmeister.com/test/" .
12            "sandy-beach.jpg";
13
14 $proxy->push_filter(
15   request =>
16     HTTP::Proxy::HeaderFilter::simple->new(
17       sub {
18         my( $self, $headers, $req ) = @_;
19
20         if( $req->uri() =~
21                 /eviladserver\.com/ ) {
22           $_[2] = GET $repl;
23         }
24       }
25     )
26 );
27
28 $proxy->start;

Statt nervender Werbung erscheint dann ein Bild vom Sandy Beach auf meiner Lieblingsinsel Oahu auf Hawaii, in dessen Brandung es erfahrene Bodysurfer in einer zusammenbrechenden Welle sauber umherbeutelt.

Abbildung 4: Der loggende Proxy schreibt die vom Chumby aufgerufenen URLs mit.

Abbildung 4: Der loggende Proxy schreibt die vom Chumby aufgerufenen URLs mit.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook