Instant Webserver

Manchmal braucht man kurzfristig einen Webserver, um eine Datei zu übertragen. Dann kann man natürlich mal eben einen Apache installieren, konfigurieren, Datei hinkopie… okay, lassen wir das.
Es gibt ja das Netzwerk-Schweizer-Taschenmesser-Tool nc, das kann doch helfen!

#!/bin/bash

FILE=$1
PORT=$2

{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <$FILE)\r\n\r\n"; cat $FILE; } | nc -l ${PORT:=8080}

Dieses Script, etwa in der Datei instantwww.sh gespeichert, lässt sich einfach aufrufen mit der Datei als erste Option und (optional) einem TCP-Port als zweite.

./instantwww.sh Datei

Auf dem Gegenüber gibt man dann entweder die URL in den Browser ein oder nutzt ein Tool wie curl:

curl -o Datei http://[remote-IP]:8080/Datei

Das funktioniert unter Linux und macOS. Und ja, böse Hacker nutzen das, um Dateien von oder zu einem Opfer zu kopieren. 😱

Instant Webserver