主动信息收集 - 发现1.特点
直接与目标系统交互通信 无法避免留下访问的痕迹 使用受控的第三方电脑进行探测
使用代理或已被控制的主机 做好被封杀的准备 使用噪声迷惑目标,淹没真实的探测流量
扫描 发送不同的探测,根据返回结果判断目标状态
2.主机发现
识别活着的主机,输出IP地址列表(1)二层发现(数据链路层)
优点:扫描速度快,可靠缺点:不可路由arp协议:根据ip地址获取MAC地址的TCP/IP协议 原理:向网段内所有主机发送arp包,通过是否存在回包判断主机是否存活
常用命令
arping 192.168.1.1 ‐c 1 ‐c 指定发包数量‐d 检测是否有相同的ip地址‐U arp request包
‐A arp reply包‐w 超时
‐s 设置ping的源地址‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ nmap ‐sn 192.168.1.1‐254nmap ‐iL list.txt ‐sn ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ netdiscover‐ 专用于二层发现‐ 可用于无限和交换网络环境‐ 主动和被动探测主动:netdiscover ‐i eth0 ‐r 192.168.1.0/24 ‐i 网卡接口‐r 地址列表被动:netdiscover ‐p‐ 通过监听网络环境中arp包来发现主机‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ scapy‐ 抓包、分析、创建、修改、注入网络流量‐ a = sr1(ARP(dst="192.168.1.1"))‐ 编写python脚本来实现批量扫描
(2)三层发现 (网络层)
优点:速度较快、可路由缺点:比二层慢、常被防火墙过滤使用IP、icmp协议(控制报文协议) 原理:向目标发送一个要求回显(Type=8)的ICMP数据报,目标机收到请求后,发送一个回显(type=0)数据 报
常用命令
ping 1.1.1.1 ‐c 1ping ‐R 1.1.1.1‐ R 获取路由信息/traceroute 1.1.1.1ping ‐R 记录的是 目标主机 到 本地 的路由traceroute 记录的是 本地 到 目标主机 的路由 假设icmp包路由如下: 主机<‐>路由1接受接口<‐>路由1发送接口<‐>路由2接受接口<‐>路由2发送接口<‐>目标ping ‐R记录了路由1发送接口,路由2发送接口traceroute记录了路由1接受接口,路由2接受接口‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ scapy icmp包a = sr1(IP(dst="1.1.1.1")/ICMP(),timeout=1) ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ nmap ‐sn 1.1.1.1‐255‐sn 主机发现\不进行端口扫描 (根据网段可自动选择协议)‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ fping 1.1.1.1 ‐c 1fping ‐g 1.1.1.1/24‐g IP段‐f 从文件读取IP ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ hping3 能够发送几乎任意TCP/IP包hping3 1.1.1.1 ‐‐icmp ‐c 2‐ 每次只能扫描一个目标,可通过脚本批量扫描for addr in $(seq 1 254);dohping3 1.1.1.$addr ‐‐icmp ‐c 1done
(3)四层发现(传输层)
优点: 可路由、结果可靠、不易被防火墙过滤 甚至可发现所有端口都被过滤的主机
缺点: 基于状态过滤的防火墙可能过滤扫描 全端口扫描速度慢
TCP协议面向连接的、可靠的、基于字节流的传输层通信协议 原理:向目标机发送未经请求的ACK包,若目标机返回RST,则可判断目标机在线。
UDP协议 无连接的传输层协议
原理:当目标机在线且某未开放UDP端口收到UDP数据包时,会像源地址返回icmp端口不可达数据包。基于 此,可向目标主机不常用的UDP端口发送数据包,若返回icmp包,则证明主机在线。
UDP发现不可靠TCP发现常用命令
scapya = sr1(IP(dst="1.1.1.1")/TCP(dport=80,flags="A"),timeout=1,verbose=0) ‐ 通过脚本完成批量扫描‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐nmap 1.1.1.1‐254 ‐PA80 ‐sn ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐hping3 1.1.1.1 ‐c 1 (TCP)for addr in $(seq 1 254);do hping3 –udp 1.1.1.$addr ‐c 1done
UDP发现常用命令
scapy a = sr1(IP(dst="1.1.1.1")/UDP(dport=23333),timeout=1,verbose=1) ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ nmap 1.1.1.1‐254 ‐PU23333 ‐sn ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ hping3 ‐‐udp 1.1.1.1 ‐c 1 for addr in $(seq 1 254) do hping3 –udp 1.1.1.$addr ‐c 1 done