diff --git a/knowledge base/gnu userland/netcat.md b/knowledge base/gnu userland/netcat.md new file mode 100644 index 0000000..f73cd5a --- /dev/null +++ b/knowledge base/gnu userland/netcat.md @@ -0,0 +1,59 @@ +# Netcat + +> TODO + +Intro + +1. [TL;DR](#tldr) +1. [Further readings](#further-readings) + +## TL;DR + +
+ Setup + +```sh +brew install 'netcat' +``` + +
+ +
+ Usage + +```sh +# Listen (server mode). +netcat --listen --local-port '8080' +nc -lp '8080' +``` + +
+ + + +## Further readings + +- [Website] +- [Codebase] + + + + + + + +[Codebase]: https://sourceforge.net/p/netcat/code/HEAD/tree/ +[Website]: https://netcat.sourceforge.net/ + + diff --git a/knowledge base/netcat.md b/knowledge base/netcat.md deleted file mode 100644 index ff7049c..0000000 --- a/knowledge base/netcat.md +++ /dev/null @@ -1,55 +0,0 @@ -# Netcat - -1. [TL;DR](#tldr) -1. [Further readings](#further-readings) - 1. [Sources](#sources) - -## TL;DR - -Options of interest: - -- `-N`: close the network socket when finished; not available in nmap's netcat -- `-l`: bind to the port and listen for incoming connections (server mode) -- `-n`: do not resolve hostnames via DNS -- `-p`: specify the source port to use -- `-t`: use telnet negotiation -- `-u`: use UDP -- `-v`: set verbosity level; can be used several times -- `-w=SECS`: timeout for connects and final net reads, in seconds -- `-z`: zero-I/O mode, exit once connected - -```sh -# Install -dnf install 'nmap-ncat' -yum install 'nmap-ncat' - -# Check ports on hosts. -nc -Nnvz 192.168.0.81 22-25 -nc -Nvz host.name 443 -nc -Nvz -u dns.server 123 - -# List hosts with a specific port open. -# But you might just want to use `nmap`. -parallel -j 0 "nc -Nnvz -w 2 192.168.0.{} 22 2>&1" ::: {2..254} \ -| grep -v "timed out" - -# Wait for a host to be up. -until nc -Nvz -w 3 pi.lan 22; do sleep 3; done - -# Listen mode. -nc -l 5666 -``` - -## Further readings - -### Sources - -- [How To use Netcat to establish and test TCP and UDP connections] - - - - -[how to use netcat to establish and test tcp and udp connections]: https://www.digitalocean.com/community/tutorials/how-to-use-netcat-to-establish-and-test-tcp-and-udp-connections diff --git a/knowledge base/nmap's netcat.md b/knowledge base/nmap's netcat.md new file mode 100644 index 0000000..7740d77 --- /dev/null +++ b/knowledge base/nmap's netcat.md @@ -0,0 +1,59 @@ +# Nmap's netcat + +1. [TL;DR](#tldr) +1. [Further readings](#further-readings) + 1. [Sources](#sources) + +## TL;DR + +Options of interest: + +| Option | Summary | +| ------------------- | --------------------------------------------------------------------------------- | +| `-l`, `--listen` | bind to the port given in input and listen for incoming connections (server mode) | +| `-k`, `--keep-open` | accept multiple connections in listen mode | +| `-n`, `--nodns` | do not resolve hostnames via DNS | +| `-p` | specify the source port to use | +| `-t` | use telnet negotiation | +| `-u` | use UDP | +| `-v` | set verbosity level; can be used several times | +| `-w=SECS` | timeout for connects and final net reads, in seconds | +| `-z` | zero-I/O mode, exit once connected | + +```sh +# Install +brew install 'nmap' +dnf install 'nmap-ncat' +yum install 'nmap-ncat' + +# Check ports on hosts. +nc -Nnvz 192.168.0.81 22-25 +nc -Nvz host.name 443 +nc -Nvz -u dns.server 123 + +# List hosts with a specific port open. +# But you might just want to use `nmap`. +parallel -j 0 "nc -Nnvz -w 2 192.168.0.{} 22 2>&1" ::: {2..254} \ +| grep -v "timed out" + +# Wait for a host to be up. +until nc -Nvz -w 3 pi.lan 22; do sleep 3; done + +# Server mode. +nc -l 5666 +nc -lk 8080 +``` + +## Further readings + +### Sources + +- [How To use Netcat to establish and test TCP and UDP connections] + + + + +[how to use netcat to establish and test tcp and udp connections]: https://www.digitalocean.com/community/tutorials/how-to-use-netcat-to-establish-and-test-tcp-and-udp-connections