ncat readmore
总的来说,Ncat 还是对得起这个称号的,小巧但功能强悍。这里只简要地介绍下有趣的功能。
关于安装,Ncat 其实是 nmap 项目对传统的 Netcat(即 nc 命令)的重写,是包含在 nmap 安装包里的,具体可参考官网。不做赘述。
安装nmap之后,ncat就出现在此:/usr/local/bin/ncat
其中 -C 是格式化选项,80 指代端口号( web 服务监听)。输出结果如下:
需要注意的是,该命令是以交互的方式执行的。即输入 ncat -C scanme.nmap.org 80 和 回车 后,接着继续输入 GET / HTTP/1.0 ,再敲击两次 回车 。即可获取目标网站的 HTML 文档内容。
其中 hello.http 的文件内容:
需要注意的是,访问一次后程序即自动退出。
进一步,可以开启一个远程 shell 供其他设备连接。命令如下:
Ncat 同时还支持 sh 脚本( --sh-exec )和 lua 脚本( --lua-exec
sender$
sender$
host2$
clients$
client$
在大多数 Debian 发行版中,
我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。
在本文中,我们会通过 10 个例子来学习如何使用
例子: 4) 将
例子: 5) 将
例子: 6) 使用
在要接受数据的机器上启动
我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心。
例子: 7) 通过
例子: 8) 通过
我们通过选项
例子: 10) 使用
当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项
via: https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/
Ncat is a feature-packed networking utility which reads and writes
data across networks from the command line. Ncat was written for the
Nmap Project as a much-improved reimplementation of the venerable
Netcat.
ncat -l localhost 8080 --sh-exec "ncat example.org 80"
Ncat is a general-purpose command-line tool for reading, writing, redirecting, and encrypting data across a network. It aims to be your network Swiss Army knife, handling a wide variety of security testing and administration tasks.以前在手机上装 busybox ,总听人讲到什么『瑞士军刀』。哥们儿小地方的娃,没见过大场面.
总的来说,Ncat 还是对得起这个称号的,小巧但功能强悍。这里只简要地介绍下有趣的功能。
关于安装,Ncat 其实是 nmap 项目对传统的 Netcat(即 nc 命令)的重写,是包含在 nmap 安装包里的,具体可参考官网。不做赘述。
安装nmap之后,ncat就出现在此:/usr/local/bin/ncat
一、Ncat 作为浏览器
命令示例:ncat -C scanme.nmap.org 80
其中 -C 是格式化选项,80 指代端口号( web 服务监听)。输出结果如下:
需要注意的是,该命令是以交互的方式执行的。即输入 ncat -C scanme.nmap.org 80 和 回车 后,接着继续输入 GET / HTTP/1.0 ,再敲击两次 回车 。即可获取目标网站的 HTML 文档内容。
二、监听模式(模拟 web 服务器)
命令示例:ncat -l 8080 < hello.http
其中 hello.http 的文件内容:
HTTP/1.0 200 OK
-l 即 --listen(监听)。需要注意的是,访问一次后程序即自动退出。
三、执行命令(远程 shell)
命令示例:ncat -l 8080 --exec "/bin/echo Hello."
进一步,可以开启一个远程 shell 供其他设备连接。命令如下:
ncat -l 8022 --exec "/bin/bash -i"
注:以上情形均支持局域网远程访问,访问时将 IP 地址改为对应数字。
四、访问控制
- 只允许指定客户端连接:
ncat -l --allow 10.2.67.204
- 只拒绝指定客户端连接:
ncat -l --deny 10.2.67.204
- 只允许指定网段的本地 IP:
ncat -l --allow 10.2.67.0/24
ncat -l --allow 10.2.67.0-255
- 从文件中获取允许访问的地址列表:
ncat -l --allowfile trusted_hosts.txt
- 设置最大连接数为5:ncat -l --max-conns 5
五、文件传输
-
传输单个文件
- 接收者监听:
receiver$ncat -l > outputfile
sender$ncat --send-only receiver_ip < inputfile
- 发送者监听:
sender$ncat -l --send-only < inputfile
receiver$ncat sender_ip > outputfile
-
传输目录
ncat -l | tar xzvf -
sender$
tar czvf - dirname | ncat --send-only receiver_ip
-
传输磁盘镜像(压缩)
ncat -l | bzip2 -d > sender-hda.image
sender$
cat /dev/hda | bzip2 | ncat --send-only receiver_ip
六、聊天
-
双人聊天
ncat -l
host2$
ncat host1
-
多人聊天
ncat -l --chat
clients$
ncat server_ip
七、简易 web 服务器
- Linux 用户:
ncat -lk -p 8080 --sh-exec "echo -e 'HTTP/1.1 200 OK\r\n'; cat index.html"
- Windows 用户:
ncat -lk -p 8080 --sh-exec "echo HTTP/1.1 200 OK& echo(&type index.html"
八、流媒体视频
server$$cat video.avi | ncat -l
client$
ncat server_ip | mplayer -vo x11 -cache 3000 -
-----------------
10 个例子教你学会 ncat命令
ncat
是一款功能类似 cat
的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。ncat
既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。在大多数 Debian 发行版中,
nc
at是默认可用的,它会在安装系统的过程中自动被安装。 但是在 CentOS 7 / RHEL 7 的最小化安装中,nc
at并不会默认被安装。 你需要用下列命令手工安装。[root@linuxtechi ~]# yum install nmap-ncat -y (在mac上,则是brew install nmap)
nc
at我们可以控制发送的每个字符,也可以查看对方的回应。我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。
在本文中,我们会通过 10 个例子来学习如何使用
nc
at命令。例子: 1) 监听入站连接
通过-l
选项,ncat
可以进入监听模式,使我们可以在指定端口监听入站连接。 完整的命令是这样的:
$ ncat -l port_number
$ ncat -l 8080
例子: 2) 连接远程系统
使用下面命令可以用nc
at来连接远程系统,$ ncat IP_address port_number
$ ncat 192.168.1.100 80
GET / HTTP/1.1
GET / HTTP/1.1
HEAD / HTTP/1.1
例子: 3) 连接 UDP 端口
默认情况下,nc
at创建连接时只会连接 TCP 端口。 不过我们可以使用 -u
选项来连接到 UDP 端口,
$ ncat -l -u 1234
netstat
命令来验证这一点,
$ netstat -tunlp | grep 1234
udp 0 0 0.0.0.0:1234 0.0.0.0:* 17341/nc
udp6 0 0 :::1234 :::* 17341/nc
$ ncat -v -u {host-ip} {udp-port}
[root@localhost ~]# ncat -v -u 192.168.105.150 53
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 192.168.105.150:53。
例子: 4) 将 nc
at作为聊天工具
nc
at也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:
$ ncat -l 8080
$ ncat 192.168.1.100 8080
例子: 5) 将 nc
at作为代理
nc
at也可以用来做代理。比如下面这个例子,
$ ncat -l 8080 | ncat 192.168.1.200 80
$ mkfifo 2way
$ ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way
nc
at代理来收发数据了。
例子: 6) 使用 nc
at拷贝文件
nc
at还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh
/scp
。 不过如果你恰好遇见个没有 ssh
/scp
的系统的话, 你可以用 nc
at来作最后的努力。在要接受数据的机器上启动
ncat
并让它进入监听模式:
$ ncat -l 8080 > file.txt
$ ncat 192.168.1.100 8080 --send-only < data.txt
data.txt
是要发送的文件。 -–send-only
选项会在文件拷贝完后立即关闭连接。 如果不加该选项, 我们需要手工按下 ctrl+c
来关闭连接。我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心。
例子: 7) 通过 nc
at 创建后门
nc
at 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:
$ ncat -l 10000 -e /bin/bash
-e
标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:
$ ncat 192.168.1.100 10000
例子: 8) 通过 ncat
进行端口转发
我们通过选项 -c
来用 nc
at 进行端口转发,实现端口转发的语法为:
$ ncat -u -l 80 -c 'ncat -u -l 8080'
例子: 9) 设置连接超时
ncat
的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 -w
设置超时时间:
$ ncat -w 10 192.168.1.100 8080
例子: 10) 使用 -k
选项强制 ncat
待命
当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k
我们可以强制服务器保持连接并继续监听端口。 命令如下:
$ ncat -l -k 8080
via: https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/