netcat是一个用于TCP/UDP链接和监听的linux工具。是一个功能丰富的网络调试和开发工具,也可以自由组织报文进行测试。
netcat的工作原理就是从网络的一端读入数据,然后输出到网络的另一端,它可以使用TCP或UDP协议。名字起源于cat,cat软件的功能是读出文件的内容,然后将文件内容输出到屏幕上。加上net,就是它可以从文件或网络的一端读取数据,原封不动地将数据发送到另外一台主机或文件中。netcat缩写为nc。
例子: 1) 监听入站连接
?通过 -l 选项,ncat 可以进入监听模式,使我们可以在指定端口监听入站连接。 完整的命令是这样的:
$ ncat -l port_number
?比如,
$ ncat -l 8080
,服务器就会开始在 8080 端口监听入站连接。
例子: 2) 连接远程系统
?使用下面命令可以用 nc 来连接远程系统,
$ ncat IP_address port_number
?让我们来看个例子,
$ ncat 192.168.1.100 80
?这会创建一个连接,连接到 IP 为 192.168.1.100 的服务器上的 80 端口,然后我们就可以向服务器发送指令了。 比如我们可以输入下面内容来获取完整的网页内容
GET / HTTP/1.1
?或者获取页面名称,
GET / HTTP/1.1
?或者我们可以通过以下方式获得操作系统指纹标识,
HEAD / HTTP/1.1
?这会告诉我们使用的是什么软件来运行这个 web 服务器的。
例子: 3) 连接 UDP 端口
?默认情况下,nc 创建连接时只会连接 TCP 端口。 不过我们可以使用 -u 选项来连接到 UDP 端口,
$ ncat -l -u 1234
?现在我们的系统会开始监听 UDP 的 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
?假设我们想发送或者说测试某个远程主机 UDP 端口的连通性,我们可以使用下面命令,
$ 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。
$ ncat -l 8080
$ ncat 192.168.1.100 8080
?之后开始发送消息,这些消息会在服务器终端上显示出来。
$ 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 代理来收发数据了。
$ ncat -l 8080 > file.txt
$ ncat 192.168.1.100 8080 --send-only < data.txt
$ ncat -l 10000 -e /bin/bash
?-e 标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:
$ ncat 192.168.1.100 10000
$ ncat -u -l 80 -c ‘ncat -u -l 8080‘
$ ncat -w 10 192.168.1.100 8080
?这回导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。
$ ncat -l -k 8080
(socat简介和命令)[https://www.jianshu.com/p/54005e3095f3]
(Meterpreter命令详解)[https://www.cnblogs.com/backlion/p/9484949.html]
信息安全与实践课程中用到的一些工具:netcat、socat、meterpreter
原文:https://www.cnblogs.com/LXY462283007/p/12929945.html