1. 基本工具-NETCAT

0x01 工具命令参数

root@main:/# netcat -h
[v1.10-41.1+b1]
connect to somewhere:   nc [-options] hostname port[s] [ports] ... 
listen for inbound:     nc -l -p port [-options] [hostname] [port]
options:
        -c shell commands       as `-e'; use /bin/sh to exec [dangerous!!]
        -e filename             program to exec after connect [dangerous!!]
        -b                      allow broadcasts
        -g gateway              source-routing hop point[s], up to 8
        -G num                  source-routing pointer: 4, 8, 12, ...
        -h                      this cruft
        -i secs                 delay interval for lines sent, ports scanned
        -k                      set keepalive option on socket
        -l                      listen mode, for inbound connects
        -n                      numeric-only IP addresses, no DNS
        -o file                 hex dump of traffic
        -p port                 local port number
        -r                      randomize local and remote ports
        -q secs                 quit after EOF on stdin and delay of secs
        -s addr                 local source address
        -T tos                  set Type Of Service
        -t                      answer TELNET negotiation
        -u                      UDP mode
        -v                      verbose [use twice to be more verbose]
        -w secs                 timeout for connects and final net reads
        -C                      Send CRLF as line-ending
        -z                      zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data').

常用参数

-v 显示详细的连接的输出内容

-n 不进行 DNS 解析

-l 打开一个侦听端口

-p 指定侦听端口

-q secs 若执行成功, 几秒退出

0x02 NC -- Telnet / Banner

不建议用 NETCAT 直接连接域名, 一般先将 IP地址 解析出来, 再用 NETCAT 连接 IP地址

【这里以 POP3 服务器为例, 其他的例如 SMTP, HTTP 大同小异】

  1. 找到 IP地址 ( 此处以 163.com 的 POP3 服务器为例 )

    root@main:/# ping pop3.163.com
    PING pop3.163.com (220.181.12.110) 56(84) bytes of data.
    64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=1 ttl=128 time=29.3 ms
    64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=2 ttl=128 time=29.4 ms
    64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=3 ttl=128 time=28.7 ms
    64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=4 ttl=128 time=29.3 ms
    64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=5 ttl=128 time=38.8 ms
    64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=6 ttl=128 time=29.4 ms
    ^C
    --- pop3.163.com ping statistics ---
    6 packets transmitted, 6 received, 0% packet loss, time 5013ms
    rtt min/avg/max/mdev = 28.710/30.816/38.779/3.568 ms
    

    IP地址 -> 220.181.12.110

  2. 利用 NETCAT 连接 IP地址 的 110 端口

    root@main:/# nc -nv 220.181.12.110 110
    (UNKNOWN) [220.181.12.110] 110 (pop3) open
    +OK Welcome to coremail Mail Pop3 Server (163coms[10774b260cc7a37d26d71b52404dcf5cs])
    
    

    COMMAND -> nc -nv [ip address] [port]

    通过 nc 也可以 查看服务器相关的一些 banner 信息 , 例如 此处可以看出

    • 110 (pop3) open 说明 110 端口 是开放的

    • coremail 说明 POP3 所使用的服务器是 coremail .

  3. 然后, 可以在当前的连接上进行一些命令的输入

    root@main:/# nc -nv 220.181.12.110 110
    (UNKNOWN) [220.181.12.110] 110 (pop3) open
    +OK Welcome to coremail Mail Pop3 Server (163coms[10774b260cc7a37d26d71b52404dcf5cs])
    USER 111
    +OK core mail
    USER hello@163.com
    -ERR Command not valid in this state
    
    

    然而, 这样其实是有问题的, 因为在 POP3 中, 输入的内容应该为 base64 编码之后的内容, 所以, 需要进一步编码......qwq

  4. base64 编码

    另起一个 shell , 输入

    root@main:/# base64
    

    Enter , 输入需要编码的字符串, 最后再 Ctrl + D , 得到 base64 结果......

    root@main:/# base64
    your_user_name@163.com        
    eW91cl91c2VyX25hbWVAMTYzLmNvbQo=
    root@main:/#
    
  5. 然后再进行进一步操作就 ok 啦......AwA

  6. 连接端口

    POP3 -> 110 端口

    SMTP -> 25 端口

    HTTP -> 80 端口

  7. 【关于SMTP , HTTP】例子

    • HTTP

      root@main:/# nc -nv 192.168.40.128 80
      (UNKNOWN) [192.168.40.128] 80 (http) open
      head /
      <html><head><title>Metasploitable2 - Linux</title></head><body>
      <pre>
      
                      _                  _       _ _        _     _      ____  
       _ __ ___   ___| |_ __ _ ___ _ __ | | ___ (_) |_ __ _| |__ | | ___|___ \ 
      | '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __/ _` | '_ \| |/ _ \ __) |
      | | | | | |  __/ || (_| \__ \ |_) | | (_) | | || (_| | |_) | |  __// __/ 
      |_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__\__,_|_.__/|_|\___|_____|
                                  |_|                                          
      
      
      Warning: Never expose this VM to an untrusted network!
      
      Contact: msfdev[at]metasploit.com
      
      Login with msfadmin/msfadmin to get started
      
      
      </pre>
      <ul>
      <li><a href="/twiki/">TWiki</a></li>
      <li><a href="/phpMyAdmin/">phpMyAdmin</a></li>
      <li><a href="/mutillidae/">Mutillidae</a></li>
      <li><a href="/dvwa/">DVWA</a></li>
      <li><a href="/dav/">WebDAV</a></li>
      </ul>
      </body>
      </html>
      
      root@main:/# 
      
      
    • SMTP

      root@main:/# nc -nv 220.181.12.18 25
      (UNKNOWN) [220.181.12.18] 25 (smtp) open
      220 163.com Anti-spam GT for Coremail System (163com[20141201])
      
      

0x03 NC -- 传输文本信息

可用于电子取证

一边 开放、侦听端口

另一边 连接端口

  1. 开放端口 :

    root@main:/# nc -l -p 233
    
    

    再开另一个 shell, 查看端口是否开放:

    root@main:/# netstat -pantu | grep 233
    tcp        0      0 0.0.0.0:233             0.0.0.0:*               LISTEN      3329/nc 
    

    已开放 awa

    再查看 IP 地址 -> 192.168.40.134

  2. 连接端口

    root@main:/# nc -nv 192.168.40.134 233
    (UNKNOWN) [192.168.40.134] 233 (?) open
    
    
    

    成功 ! awa

  3. 随便在一个窗口发一条消息:

    计算机 1:

    root@main:/# nc -nv 192.168.40.134 233
    (UNKNOWN) [192.168.40.134] 233 (?) open
    
    SSBsb3ZlIHlvdSwgcHggIQo=
    
    

    计算机 2:

    root@main:/# nc -l -p 233
    
    SSBsb3ZlIHlvdSwgcHggIQo=
    
    

    OK !

  4. 应用:

    • | 连用

      root@main:/usr# ls -l | nc -nv 192.168.40.134 233
      
    • "另存为"

      root@main:/# nc -l -p 233 > ps.txt
      
      root@main:/usr# ps aux | nc -nv 192.168.40.134 233 -q 1
      
posted @ 2021-02-11 19:21  不爱喝橙子汁的橙子  阅读(186)  评论(0编辑  收藏  举报