主动信息收集 - 发现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‐254

nmap ‐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)三层发现 (网络层)

优点:速度较快、可路由

缺点:比二层慢、常被防火墙过滤
使用IPicmp协议(控制报文协议) 原理:向目标发送一个要求回显(Type=8)的ICMP数据报,目标机收到请求后,发送一个回显(type=0)数据 报

常用命令

ping 1.1.1.1 ‐c 1

ping ‐R 1.1.1.1
‐ R 获取路由信息/traceroute 1.1.1.1
ping ‐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 1
fping ‐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);do
hping3 1.1.1.$addr ‐‐icmp ‐c 1
done

(3)四层发现(传输层)

   优点:     可路由、结果可靠、不易被防火墙过滤     甚至可发现所有端口都被过滤的主机

   缺点:     基于状态过滤的防火墙可能过滤扫描     全端口扫描速度慢

TCP协议

面向连接的、可靠的、基于字节流的传输层通信协议 原理:向目标机发送未经请求的ACK包,若目标机返回RST,则可判断目标机在线。

UDP协议 无连接的传输层协议

原理:当目标机在线且某未开放UDP端口收到UDP数据包时,会像源地址返回icmp端口不可达数据包。基于 此,可向目标主机不常用的UDP端口发送数据包,若返回icmp包,则证明主机在线。

UDP发现不可靠TCP发现常用命令

scapy

a = 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 1
done

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