GSM-Basisstation in einem Bürodrucker versteckt


GSM-Basisstation

Spezielle Dienste und Geheimdienste in verschiedenen Ländern der Welt verwenden gefälschte Basisstationen (IMSI-Fallen, die Amerikaner nennen StingRay), die im passiven oder aktiven Modus arbeiten . Im passiven Modus analysiert die gefälschte Station einfach das Signal von den umgebenden Basisstationen. Es ist viel interessanter, wenn das Gerät in den aktiven Modus versetzt wird. In diesem Fall zwingt der IMSI-Trap umgebende Mobilfunk-Client-Geräte, eine Verbindung zu sich selbst herzustellen, und trennt sie von der Basisstation des Betreibers (MTS, VimpelCom usw.). Die Aufgabe wird ausgeführt, indem ein stärkeres Signal als die umgebenden Stationen gesendet wird (weitere Einzelheiten zum Betrieb gefälschter Basisstationen finden Sie im Artikel "Die schöne neue Welt der Zellstandortsimulatoren"). (Albany Law School: 11-12. Doi: 10.2139 / ssrn.2440982).

Gefälschte Basisstationen werden nicht nur von speziellen Diensten, sondern auch von anderen Personen verwendet. Zum Beispiel in der letzten Staffel von Mr. Roboterhacker installierten direkt im FBI-Büro eine Femtozelle (eine zellulare Kommunikationsstation mit geringem Stromverbrauch und Miniatur), die die Möglichkeit hatte, ihre Gespräche mitzuhören. In der Wirtschaft können Wettbewerber ein solches Gerät verwenden, um Gespräche der anderen Seite leise zu verfolgen. In Russland schlägt Natalya Kasperskaya vor, Spionage-Femtozellen in den Büros von Handelsunternehmen zu installieren , damit das Management Gespräche zwischen Mitarbeitern und Besuchern ruhig aufzeichnen kann.


Das Gerät ist mit einer gefälschten PRISM- Mobilstation verbunden : The Beacon Frame. Im Rahmen eines Forschungsprojekts sendet die Station eine Benachrichtigung über die Verbindung zum Telefon des Teilnehmers. Die reale Infrastruktur spezieller Dienste funktioniert ohne das Senden von Benachrichtigungen.

Solche Geräte sind in der modernen Zeit sehr beliebt, da so viele Menschen ständig Mobilfunkkommunikation verwenden und vertrauliche Informationen über diese Kanäle übertragen, ohne eine End-to-End-Verschlüsselung zu verwenden. Es ist sehr praktisch, Personen anhand ihrer Telefonnummern zu identifizieren.

Helden der Serie Mr. RoboterStellen Sie die Femtozelle unter den Tisch neben dem Router. Offensichtlich kann es in dieser Form nicht lange funktionieren, da das "zusätzliche" Gerät früher oder später von einer Putzfrau oder einem zufälligen Agenten bemerkt wird, der sich bückt. Darüber hinaus hat die Femtozelle eine sehr kleine Reichweite, so dass es unwahrscheinlich ist, dass sie das Signal einer realen Basisstation für Teilnehmergeräte in benachbarten Stockwerken unterbrechen kann. Es wird garantiert funktionieren, wenn nicht im selben Büro, und wie viel Glück dann.

Um diesen Nachteil zu beheben, muss ein Büro eine leistungsstärkere Basisstation installieren. Aber wie kann man es verkleiden? Eine hervorragende Lösung wurde vom neuseeländischen Ingenieur Julian Oliver vorgeschlagen. Er entwarf die als HP-Bürodrucker getarnte Basisstation .

Auf den Straßen verkleiden sich Basisstationen als Umweltobjekte - Bäume oder Laternen .


Mobilstation schlecht als Palme verkleidet. Marrakesch, Marokko Eine


aus irgendeinem Grund als Laterne getarnte Zellenstation steht neben einer echten Laterne. Milton Keynes, Großbritannien

Der Bürodrucker Hewlett-Packard Laserjet 1320 sieht so natürlich aus wie eine Straßenlaterne. Er wird keinen Verdacht erregen. Zumindest solange es noch richtig funktioniert. Zu Demonstrationszwecken ist der Drucker im Oliver-Projekt so konfiguriert, dass Metadaten zu abgefangenen Anrufen und SMS-Nachrichten zusammen mit dem Text dieser Nachrichten automatisch gedruckt werden.



Der Autor erklärte ausführlich, wie die gefälschte Basisstation funktioniert. In dem Druckerkörper angeordnet programmierbare SDR-Transceiver BladeRF (dieses bemerkenswerten Gerät gesagt Habré). Auf dem Foto ist es oben rechts befestigt. Der Transceiver wird an die Miniatur-Raspberry Pi 3-Karte (unten links) angeschlossen, und die gesamte Hackerelektronik wird an die Hauptplatine des Druckers (die größte Karte auf dem Foto) angeschlossen.



Für die Stromversorgung wird ein Auto-USB-Adapter verwendet, der den Drucker 21-22 V in 5 V umwandelt, die für den Transceiver und die Himbeere erforderlich sind. Solche Adapter werden normalerweise in den Zigarettenanzünder eines Autos (12-24 V) eingesetzt, um tragbare Elektronik mit Strom zu versorgen.



Das Patronenfach ist leicht modifiziert, um zwei Rundstrahlantennen (TX und AX) aufzunehmen, die über ein SMA-Kabel mit dem BladeRF-Transceiver verbunden sind.

Der Autor der Arbeit gab an, dass er sich aus mehreren Gründen für den Hewlett-Packard Laserjet 1320 entschieden hat. Erstens wirkt es auffallend unauffällig - ein völlig gesichtsloses Design, das nicht auffällt. Zweitens sind die inneren Hohlräume im Gehäuse ideal für die Aufnahme aller elektronischen Geräte und Kabel. Kein Teil kommt heraus und ist von außen nicht sichtbar, außer einem Standard-Stromkabel. Wenn ein USB-Adapter an einen Standardanschluss angeschlossen ist, funktioniert der Hewlett-Packard Laserjet 1320 normalerweise wie ein normaler Bürodrucker.

Raspberry Pi 3 wurde nach erfolglosen Versuchen ausgewählt, einen stabilen Betrieb der Programmcontroller-Basisstationen YateBTS sicherzustellenunter Intel Edison, Beaglebone Black und sogar dem I-MX6 Marsboard. Im Gegensatz zum alten OpenBTS stellt YateBTS höhere Anforderungen an die Prozessorleistung.

Die gefälschte Basisstationssoftware im Drucker wird über dem Open-Source-YateBTS-Code ausgeführt. Zu Demonstrationszwecken wurden mehrere Skripte entwickelt. Beispielsweise filtert einer von ihnen das Protokoll, erstellt ein PDF-Dokument und sendet es zum Drucken.

#!/bin/bash

readonly FH=/home/pi/yate.log
rm -f $FH
# Start the BTS, log to $FH and background
yate 2>&1 -l $FH &
sleep 1
echo "Starting up..."
last=" "

while true;
    do
        # Poll every 10 seconds
        sleep 10
        # Check log for new sniffed 'call route' entries and do some subbing
        cur=$(cat $FH | grep -A 16 "Sniffed\ 'call.route'" | sed -e "s/param\['//" \
        -e "s/'\]//" -e 's/thread.*//' -e 's/time\=[0-9].*//' \
        -e 's/\ data=(.*//' -e 's/\ retval=.*//' \
        -e 's/\ tmsi.*//' -e 's/ybts/Stealth\ Cell\ Tower/' \
        -e 's/Sniffed/Monitored\ =/' -e '/^\s*$/d' \
        -e 's/^\s*//' | tail -n 13)
        if [ "$cur" != "$last" ]; then
            if [ ${#cur} -gt 1 ]; then 
                echo "New SMS events detected"
                # Test to see if an IMSI is in the string. If not, look it up and put it in
                if [[ $cur != *imsi* ]]; then
                    caller=$(echo "$cur" | grep "caller" | awk '{ print $3 }' | sed "s/'//g" \
                    | tr -cd '[:print:]')
                    imsi=$(cat /usr/local/etc/yate/tmsidata.conf | grep "$caller" \
                    | cut -d '=' -f 1)
                    cur=$(echo "$cur" | sed -e "s/\ called\ .*/imsi\ =\ '$imsi'/" )
                fi
                # Make it all uppercase
                event=$(echo -e \\n"$cur" | tr 'a-z' 'A-Z')
                echo "printing file..."
                echo "$event" > printme
                # Format a postscript file with enscript
                enscript -r --header='SMS EVENT RECORD|%W|%* UTC' -i2cm --margins=10:10:30:10 \
                -o printme.ps -f Courier@15/12 printme
                # Convert to PDF
                ps2pdfwr printme.ps printme.pdf
                # Send it to the print queue for immediate processing
                lp -U pi -o a4 -q 100 -d hp_LaserJet_1320_2 printme.pdf 
            fi
            last=$cur
        fi
done

Ein anderes Skript wählt zufällig eine der Telefonnummern aus, die mit der Basisstation verbunden sind, ruft sie an und spielt Stevie Wonders Klassiker "Ich habe gerade angerufen, um zu sagen, dass ich dich liebe" .

#!/bin/bash

readonly HOST=127.0.0.1
readonly PORT=5038
readonly DATA=/usr/local/share/yate/sounds/stevie.au
readonly TMSI=/usr/local/etc/yate/tmsidata.conf
readonly CC=49 #MSISDN prefix, matching that of definition in yate conf.

callone () {
  # Play "I Just Called To Say I Love You" by Stevie Wonder, on pickup 
  echo "call wave/play/$DATA $mt" | netcat -i 1 -q 1 $HOST $PORT
  # Or, setup channel and route to IAX/SIP
  # echo "call 'iax/iax:$PORT@11.22.33.44/$PORT' $mt" | netcat -q 1 $HOST $PORT
}

callall() {
  for mt in ${UES[@]} #override $mt
    do
      echo "calling $mt"
      callone
  done
}

while true;
  do

    tmsilen=$(wc -l $TMSI | awk '{ print $1 }')
    ues=($(cat $TMSI | grep -A $tmsilen ues | sed 's/\[ues\]//' | cut -d ',' -f 3))
    if [ ! -z $ues ]; then
      ueslen=${#ues}
      RANGE=$ueslen
      select=$RANDOM
      let "select%=$RANGE"
      mt=${ues[$select]} 
      callone
    fi
    sleep 30
done

Kompilierte Binärdateien für Raspberry Pi 3: yate_r-pi3_4.4.11-v7_debian-8.0.tar.gz .

Viel Glück bei Ihren Experimenten!

Source: https://habr.com/ru/post/de398893/


All Articles