发现——二层发现
• arping
• arping 1.1.1.1 -c 1 (c:count)
• arping 1.1.1.1 -d (d:发现重复的IP地址,不同的MAC)
• arping -c 1 1.1.1.1 | grep "bytes from" | cut -d" " -f 5 | cut -d "(" -f 2 | cut -d")" -f 1
脚本
• arping1.sh eth0 > addrs
• arping2.sh addrs
• nmap 1.1.1.1-254 –sn (sn:ping scan disable port scan)
• nmap -iL iplist.txt -sn (iL:读取的文件)
发现——二层发现
• Netdiscover
• 主动和被动探测
• 主动
• netdiscover -i eth0 -r 1.1.1.0/24 (r:网络地址段)
• netdiscover -l iplist.txt
• 被动:passive(相当于网卡开启混杂模式)
• netdiscover -p
• 主动arp容易触发报警
发现——二层发现
• Scapy •作为 Python 库进行调用
•也可作为单独工具使用
•抓包、分析、创建、修改、注入网络流量
• apt-get install python-gnuplot
• scapy
• ARP().display()
默认字段(arp 包头):hwtype:
硬件类型, ptype:
协议类型,hwlen:
硬件地址长度,plen:
协议地址长度,op:
option,hwsrc:
发送者硬件源地址,psrc:
发送 IP,hwdst:
目标硬件地址,pdst:
目标 IP。
定义一个变量例如 arp=ARP()并调用函数 ARP
更改字段 arp.pdst="xxx"
• sr1() (发包) 例如 sr1(arp.timeout=1)
• Python 脚本
• Arp1.py
• Arp2.py
发现——三层发现
• 优点
• 可路由
• 速度比较快
• 缺点
• 速度比二层慢
• 经常被边界防火墙过滤
• IP、icmp 协议
imcp 包头,type 字段,一共 0~15 个定义,每种定义为不同包
Type: 8 (Echo (ping) request)
Type: 0 (Echo (ping) reply)
Type: 13 (Timestamp request 目标操作系统时间戳)
imcp 应用场景:
- traceroute 命令:路由追踪
例如 traceroute domain
trace 和 ping 不同,trace 会设置 ttl 值为 1,达到目标路由器,将 ttl 减 1,此时 ttl 为 0,路由回包 ttl exceeded in transit,后续的 icmp 包 ttl 会依次增加 1
• ping 1.1.1.1 –c 2
• ping -R 1.1.1.1 / traceroute 1.1.1.1 (R:record route)
• ping 1.1.1.1 -c 1 | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1
• 脚本
• pinger.sh 1.1.1.0
发现——四层发现
• 优点
• 可路由且结果可靠
• 不太可能被防火墙过滤
• 甚至可以发现所有端口都被过滤的主机
• 缺点
• 基于状态过滤的防火墙可能过滤扫描
• 全端口扫描速度慢
• TCP
• 未经请求的 ACK——RST
• SYN——SYN/ACK、RST
• UDP
• icmp 端口不可达,一去不复返
发现——四层发现
• ACK——TCP Port——RST (扫描目标服务器存在端口,服务器返回 reset 即 IP 在线)
• Scapy
• i = IP()
• i.dst="1.1.1.1"
• t = TCP()
• t.flags='A' (A为ACK,R为RST,S为SYN)
• r = (i/t) (r[IP].dst="xxx"同上)
• a = sr1(r)
• a.display()
• a = sr1(IP(dst="1.1.1.1")/TCP(dport=80,flags='A') ,timeout=1))
TCP 包头中 dport 为目标端口
• ACK_Ping.py
发现——四层发现
• UDP——UDP Port——ICMP
当目标端口不存在时,服务器返回 icmp 包头中目标端口不可达,即 IP 在线。
当 IP 不存在,则包一去不复返,IP 存在且该端口开放,包一去不复返
• u = UDP()
• u.dport= 33333
• r = (i/u)
• a = sr1(r,timeout=1,verbose=1)
• a.display()
• ICMP
• UDP_Ping.py
• UDP 发现不可靠
发现——四层发现
• nmap 1.1.1.1-254 -PU53 -sn
(PU:upd 53 端口 sn:不做端口扫描,只做主机发现)
• nmap 1.1.1.1-254 -PA80 –sn
(PA:ack 80 端口)
• nmap -iL iplist.txt -PA80 -sn
#发现——四层发现
• hping3 --udp 1.1.1.1 -c 1
• for addr in $(seq 1 254); do hping3 –udp 1.1.1.$addr -c 1 >> r.txt; done
• grep Unreachable r.txt | cut -d " " -f 5 | cut -d "=" -f 2
• ./udp_hping.sh 1.1.1.0 • hping3 1.1.1.1 -c 1 (TCP)
• Hping3 1.1.1.1
• ./TCP_hping.sh
• 发送的数据包 Flag 位全为 0 —— 服务器返回 ACK,RST,即 IP 在线
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于