被动信息收集的结果可能不准确,并不是最新的。利用主动信息收集来进行验证
流程:
发现存活主机–>扫描开放端口–>识别端口对应的应用程序–>利用应用程序漏洞–>通过端口攻击进入系统
要求
直接与目标进行交互
使用代理、第三方受控的计算机进行探测(避免目标系统封堵
IP)做好被封
IP的准备使用噪声迷惑目标,淹没真实的探测流量(伪造
IP迷惑目标,将真实的探测隐于其中)
主机发现
发现阶段用于识别活着的主机(潜在的攻击目标)
二层主机发现
使用协议:ARP协议
优点:扫描速度快,可靠
缺点:不可路由,只可发现本网段内的主机,不可跨网段扫描
arping
1 | arping 1.1.1.1 -c 1 |

nmap
1 | nmap -sn 1.1.1.1 |

netdiscover
专用于二层发现,可用于无线和有线网络,可选择主动或被动探测方式
主动探测
1 | netdiscover -i eth0 -r 192.168.1.0/24 |

被动探测
将网卡置于混杂模式,用于嗅探网络中的ARP数据包,根据ARP数据包判断主机是否存活
1 | netdiscover -p |

三层主机发现
使用协议:IP协议、ICMP协议
优点:可路由,速度较快
缺点:速度比二层慢,可能被边界防火墙过滤
ping
1 | ping 1.1.1.1 -c 5 |
traceroute
1 | traceroute www.baidu.com |

四层主机发现
使用协议:TCP协议、UDP协议
优点:可路由,结果可靠
缺点:基于状态过滤的防火墙可能过滤扫描
TCP主机发现
原理:向主机IP主机发送未经请求的ACK数据包
若目标IP存在,不论用于探测的端口是否开放,都将返回RST数据包
若目标IP不存在,将无任何返回
nmap
1 | nmap 1.1.1.0/24 -PA80 -sn |

hping3
1 | hping3 1.1.1.1 -c 1 |

UDP主机发现
原理:
若目标存在,用于探测的端口也是开放的,则用于探测的包会一去不复返,无回包
若目标不存在,则用于探测的包会以取不复返,无回包
只有目标存在,用于探测的端口是未开放的,目标主机才会返回ICMP端口不可达,以证明目标存在
nmap
1 | nmap 1.1.1.0/24 -PU2356 -sn |

hping3
1 | hping3 --udp 1.1.1.1 -c 1 |

端口扫描
通过扫描服务器开放端口以及从该端口判断服务器上存在的服务,最常见的工具是nmap,无状态端口扫描工具Masscan、ZMap和御剑高速TCP端口扫描工具
常见端口及攻击方向
文件共享

远程连接

web应用

数据库服务

邮件服务

网络常见协议端口

特殊服务

TCP端口扫描
全连接扫描
完整进行三次握手过程,结果非常准确,但容易被目标发现
nmap
1 | nmap -sT 1.1.1.1 -p 100-200 |

dmitry
1 | dmitry -p 1.1.1.1 |

隐蔽扫描
对目标端口发送SYN数据包
若目标端口开放,会返回SYN+ACK数据包
若目标端口未开放,会返回RST数据包
nmap
1 | nmap -sS 1.1.1.1 -p 1-100 |

hping3
1 | hping3 1.1.1.1 --scan 1-100 -S |

UDP端口扫描
对目标指定端口发送请求
若目标返回ICMP端口不可达,表示目标端口关闭
若目标未返回任何数据包,则认为目标端口开放,存在误判
nmap
1 | nmap -sU 1.1.1.1 |

服务扫描
要求:
识别开放端口上运行的应用
识别目标操作系统
获取Banner信息
Banner信息:软件开发商、软件名称、服务类型、版本号
nc
1 | nc -nv 1.1.1.1 53 |
dmitry
1 | dmitry -pb 1.1.1.1 |
nmap
1 | nmap -sT 1.1.1.1 -p 1-100 --script=banner.nse |

amap
1 | amap -B 1.1.1.1 902 |

服务识别
根据响应特征分析识别服务:发送一系列复杂的探测,依据响应判断
nmap
1 | nmap 1.1.1.1 -p 1-100 -sV |

操作系统识别
TTL起始值
Windows:128,范围65–128Linux/Unix:64,范围1-64某些
Unix:255
nmap
1 | nmap -O 1.1.1.1 |

被动分析
监听网络内数据包,以判断与本机进行数据通信的主机的操作系统类型

CMS指纹识别
指纹由于终身性、不变性、唯一性和方便性,几乎已经成为生物识别的代名词
这里指网站CMS指纹识别及web容器的指纹识别等
应用程序一般在html、js、css等文件中会包含一些特征码,比如wordpress在robots.txt中会包含wp-admin、首页index.php中会包含generator=wordpress 3.xx,这就是CMS指纹
CMS(Content Management System)称为整站系统或文章系统。开发者需提供一个软件包,客户进行安装配置、维护内容就可以
常见CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCNMS、帝国、Z-Blog、WordPress等
常用工具有:御剑whatweb、webrobo、椰树、轻量web指纹识别等
在线查询CMS指纹网站:
BugScaner:http://whatweb.bugscaner.com/WhatWeb:https://www.whatweb.net/
获取真实IP
一般目标网站只有一个域名,但是对应的真实IP有时会很难确定
CDN(内容分发网络),主要解决因传输距离和不同运营商节点造成的网络速度性能低下问题。就是在一组不同运营商之间的对接节点上的高速缓存服务器,将用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户最近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程服务器上进行响应,可以大大提高网站响应速度及用户体验
若目标网站使用CDN服务,直接ping域名,得到的不是目标真正IP地址,而只是距离近的CDN服务器
判断目标是否使用CDN
利用在线网站17CE(https://www.17ce.com/),进行全国多地区的`ping`服务器操作,通过判断各地区的`ping`结果,判断是否使用`CDN`
若IP地址相同,极可能不存在CDN
若IP大多不一样或规律性很强,可以尝试查询这些IP的归属地,判断是否使用CDN
绕过CDN
内部邮箱源。一般邮件系统处于内部,没有经过CDN解析,通过网站用户注册或者
RSS订阅功能,查看邮件头中的邮件服务器域名,以此域名获取真实IP扫描网站测试文件。如
phpinfo、test等分站域名。很多网站主站会使用
CDN,但分站可能并没有使用CDN。通过分站域名获取分站IP,可能存在分站与主站不是同一IP,但是属于同一IP段的情况国外访问。国内
CDN通常只会针对国内用户提供访问加速。可以通过国外在线代理网站App Synthetic Monitor(https://asm.ca.com/zh_cn/ping.php) 访问,可能会获取真实IP查询域名解析记录。可能目标网站以前并没有使用
CDN,可以通过NETCRAFT(https://www.netcraft.com/) 来观察域名的IP历史记录,可以大致分析出目标真实IP段目标网站
APP。若目标网站有APP,可以利用Burp Suite抓取APP请求,查找目标真实IP绕过
CloudFlare CDN查找真实IP。很多网站使用CloudFlare提供CDN服务,可以尝试通过在线网站CloudFlareWatch(http://www.crimeflare.org:82/) 对网站进行真实IP查询
验证IP的真实性
查看域名访问与
IP访问的页面返回状态是否一致对于
IP段,可以批量扫描IP段中开启常见web端口的主机,对其进行访问以判断
收集敏感文件目录
探测web目录结构和隐藏的敏感文件可以获取网站后台管理界面、文件上传界面,甚至可以获取到网站的源代码
针对网站目录的扫描有:DirBuster、御剑后台扫描珍藏版、wwwscan、spinder.py、Sensitivefilescan、Weakfilescan等