目录
瑞士军刀 netcat
Netcat 是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程 shell 等功能。
nc 的作用
(1)实现任意 TCP/UDP 端口的侦听,nc 可以作为 server 以 TCP 或 UDP 方 式侦听指定端口
(2)端口的扫描,nc 可以作为 client 发起 TCP 或 UDP 连接
(3)机器之间传输文件
(4)机器之间网络测速 nc的控制参数:
-g<网关> 设置路由器跃程通信网关,最多可设置 8 个。
-G<指向器数目> 设置来源路由指向器,其数值为 4 的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用 IP 地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以 16 进制字码倾倒成 该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的 IP 地址。
-u 使用 UDP 传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用 0 输入/输出模式,只在扫描通信端口时使用。
Netcat 简易使用
①连接到远程主机命令
- 命令:
nc -nvv IP Port
nc -nvv 192.168.8.155 22
②监听本地主机
- 命令:
nc -lp port
nc -lp 777
③端口扫描
-
扫描指定主机的单一端口是否开放
-
格式:
nc -v IP Port
-
nc -v 192.168.8.155 22
-
扫描指定主机的某个端口段的端口开放信息
-
格式:
nc -v -z IP Port Start_Port-End_port
-
nc -vz 192.168.8.155 22 1-1000
-
扫描指定主机的某个 UDP 端口段,并且返回端口信息
-
格式:nc -v -z -u IP Port Start_Port-End_port
-
nc -vzu 192.168.8.155 22 1-2000
-
扫描指定主机的端口段信息,并且设置超时时间为 5 秒
-
格式:
nc -vv -z -w time IP Port Start_Port-End_port
-
nc -vvzw 5 192.168.8.155 22 1-100
④端口监听
-
监听本地端口注:先设置监听(不能出现端口冲突),之后如果有外来访问则输出该详细信息到命令行
-
格式:
nc -l -p local_Port
-
nc -lp 7777
-
监听本地端口,并且将监听到的信息保存到指定的文件中
-
格式:
nc -l -p Port > target_File
-
nc -lvp 7000 > tyy.txt
⑤连接远程系统
- 格式:
nc IP Port
nc www.baidu.com 80
之后可以运行 HTTP 请求
⑥文件传输
-
发送端:
192.168.8.144
-
格式:
nc IP Port < Targert_File
-
nc 192.168.8.155 8888 < tyy.txt
-
接收端:
192.168.8.155
-
格式:
nc -l Local_Port > Targert_File
-
nc -lvp 8888 > test.txt
⑦简易聊天
- 本地主机:
192.168.8.144
- 命令:
nc -lvp 9977
- 远程主机:
192.168.8.155
- 命令:
nc IP Port 或者 telnet IP Port
nc 192.168.8.144 9977
⑧蜜罐
-
作为蜜罐使用 :
-
命令:
nc -lvp Port
注:使用“-l”参数可以不停的监听某一个端口,知道 Ctrl+C 为止 -
nc -lvp 9977
-
命令:
nc -lvp Port >yylog.txt
-
nc -lvp 9977 >> tyy.txt
注:使用“-l”参数可以不停的监听某一个端口,知道 Ctrl+C 为止,同时
把结果输出到 log.txt 文件中,如果把“>”改为“>>”即追加到文件之后。
nc 小实验
-
客户端 centos7 Ip:
192.168.8.154
-
服务端 kali Ip:
192.168.8.144
监听端口使用 9000 端口 -
服务端配置:
-
1.监听 9000 端口:
nc -lvp 9000
(kali 中 nc 版本比较旧需要加-p)
-
2.检 查 9000 端 口 是 否 打 开
netstat -tulnp | grep 9000
或 者lsof -i:9000
-
3.对服务端进行抓包:
tcpdump -i eth0 -nn port 9000
(同tcpdump -i eth0 -nn host 192.168.8.144and port 9000
) -
客户端发起连接:
nc 192.168.8.144 -t 9000
-
tcpdump -i eth0 -nn port 9000
-
服务端抓包信息:
nc 小实验 2
- 客户端 kali Ip:
192.168.8.144
- 服务端 centos7 Ip:
192.168.8.154
(监听端口使用 9001端口) - 服务端配置:
- 关闭防火墙:
systemctl stop firewalld.service
- 监听 9001 端口:
nc -lvp 9001
- 检查 9001 端口是否打开
telnet -tulnp |grep 9001
或者lsof -i:9001
- 客户端发起连接:
nc 192.168.8.154 -t 9001
nc 小实验 3
-
审计电脑
192.168.8.144
-
nc -lvp 7000
审计电脑监听端口。
-
被审计电脑
192.168.8.155
-
ls -l | nc -nv 192.168.8.144 7000
被审计电脑的命令所罗列出来的内容会被显示到审计电脑上。
-
变形:当信息比较多的时候,我们希望把收集到的信息按使用命令的名称,来将他保存到另一台的电脑上。
-
审计电脑:
nc -lvp 7000 > /var/yy.txt
被审计电脑输入数据会保存为 var 下面的 yy.txt 文件
-
注意:第一次监听需断开
-
被审计电脑:
ls / -l | nc -nv 192.168.8.144 7000 -q 1
显示本目录下的文件,并发送到 192.168.8.144 的 7000 端口,-q 1 的意思是连接成功时候,连接会自动断掉。
-
查看进程
ps aux
-
被审计电脑:
ps aux | nc -nv 192.168.8.144 7000 -q 1
-
审计电脑:
nc -lvp 7000 > pyy.txt
将产生的文件导入 pyy.txt(默认桌面开的终端,保存的位置在桌面)