# simple-nc-server ## Ncat Only works with Ncat versions that are compiled with the `-c` switch. ```sh while true; do nc -lnp 1337 -c 'read REQ; GET=$(echo $REQ | sed -E "s/GET \/(.*) HTTP.*/\1/"); echo -e "HTTP/1.1 200 OK\nContent-Type: text/html; charset=UTF-8\n\n"; eval "$(echo "%>$(cat index.sh.html)<%" | sed -e "s/<%=/<%echo /g" -e "s/<%/\nRAW\n/g" -e "s/%>/\ncat <<- RAW\n/g")"'; done ``` _(Note: On Debian you might find `nc` to use the BSD alternative by default. The GNU Netcat is usually at `/usr/bin/nc.traditional`)_ ## Busybox httpd If Busybox was compiled with `httpd`, it can serve simple scripts. If there is no `index.html` it tries `cgi-bin/index.cgi` next using whatever is in the shebang. It can be further customized by having a `httpd.conf` around but keeping it minimal, this works in this repo: ```sh busybox httpd -p 1337 -f ``` _(Note: Alpine Linux now splits Busybox into multiple packages: `apk add busybox-extras`)_ ## PHP PHP has a built-in server which can come in handy. For this example there is an `index.php` with `index.sh.html` compatible instructions but PHP is quite easy to write so it's better without this extra hoop. ```sh php -S 0.0.0.0:1337 ```