信息收集
1. 内容与流程
- 服务器的配置信息
- 网站的信息
- 网站注册人
- 目标网站系统
- 目标服务器系统
- 目标网站相关子域名
- 目标网站的目录结构
- 目标服务器的开放端口
- 只要与目标网站相关联的信息,都应该尽量去收集
2. Google Hacking
(1). 语法
a. site
-
找到与指定网站有联系的url
-
site:baidu.com
b.inurl/allinurl
-
返回url中含有关键词的网页,或指定多个关键词
-
inurl:login (inurl:login|index) allinurl:login admin inurl:login admin
c. intext/allintext
-
寻找正文中含有关键字的网页,或指定正文中的多个关键字
-
intext:登录 intext:"登录" allintext:后台 登录 公司 allintext:"后台" "登录" "公司"
d. intitle/allintitle
-
寻找标题中含有的关键字的网页,或指定标题多个关键字
-
intitle:后台登录 intitle:"后台登录" allintitle:中国 后台 登录 allintitle:"中国" "后台" "登录"
e.filetype
-
指定访问的文件类型
-
filetype:doc|pdf|xlsx
3. 域名信息收集
(1). 备案信息号
a. ICP备案信息收集
- 爱站:https://icp.aizhan.com/
- 站长之家:https://icp.chinaz.com/
- ICP备案查询网:https://www.beianx.cn/search/
- 工信部ICP备案查询:https://beian.miit.gov.cn/
b.备案反查域名信息
-
备案信息包括单位名称、备案编号、网站负责人、电子邮箱、联系电话、法人等
-
工信部ICP备案查询:https://beian.miit.gov.cn/
-
ICP备案查询网:https://www.beianx.cn/search/
(2). Whois信息收集
-
获取关键注册人信息,包括注册公司、注册邮箱、管理员邮箱、管理员联系手机等,甚至还能查询同一注册人注册的其他域名。域名对应的NS记录、MX记录、自动识别国内常见的托管商(万网、新网等)
-
国外who is :https://who.is/
-
IP138网站:https://site.ip138.com/
(3). IP反查域名
- 目标可能存在多个域名绑定于同一IP上,通过IP反查可以获取到其他域名信息,比如旁站
- 通过获取目标真实IP后,进行反查的旁站更真实
a. 工具
- 站长工具:https://stool.chinaz.com/same
- dnslytics:https://dnslytics.com/
- ip138:https://site138.com
- Fofa:https://fofa.info
- 奇安信鹰图:https://hunter.qianxin.com/
- Shodan.io:https://www.shodan.io/
(4)Host碰撞
a. 现象
- IP访问响应多为:nginx、4xx、500、503、各种意义不明的Route json提示
- 域名解析到内网地址
- 有服务器真实IP,但找不到内网域名
b. 原因
- 中间件对IP访问做了限制,不能直接通过ip访问,必须使用域名进行访问。此时使用HOST碰撞技术,通过将域名和IP进行捆绑碰撞,一旦匹配到后端代理服务器上的域名绑定配置,就可以访问到对应的业务系统,从而发现隐形资产
c. 手法
4. 子域名信息收集
(1). 收集原因
- 主域名防护严密,很难进入,选择进行迂回攻击
(2). 利用点
a. 资产类型
- 办公系统、邮箱系统、管理系统、网站管理后台、论坛、商城等系统
b. 利用方式
- 维护成本低于主域名,可能存在版本迭代、配置不安全、弱密码账号管理策略等
(3). 收集方法
a. 搜索引擎枚举
- 使用谷歌语法
site:域名
b. 在线网站
- 查子域:https://chaziyu.com/
- 微步社区:https://x.threatbook.com/
- VT:https://www.virustotal.com/gui/home/search
- RapidDNS:https://rapiddns.io/subdomain
c. 枚举子域名工具
①Layer子域名挖掘机
- https://github.com/euphrat1ca/LayerDomainFinder
- 支持服务接口、暴力搜索、同服挖掘三种模式
②SubDomainsBrute
- https://github.com/lijiejie/subDomainsBrute
- 支持高并发DNS爆破和识别域名泛解析
③Oneforall
- https://github.com/shmilylty/OneForAll
- 利用多个API接口模块收集子域名信息
④Subfinder + ksubdomain + httpx
- https://github.com/Mr-xn/subdomain_shell
- 域名发现-> 域名验证 -> 获取域名标题、状态码及响应大小 -> 响应结果
d. 证书透明度收集子域
①crt.sh
e. JS文件中收集子域
①JsFinder
参数 | 含义 |
---|---|
-u | 指定url |
-d | 深度爬取 |
-j | 指定从js文件获取 |
②URLFinder
参数 | 含义 |
---|---|
-d | 指定获取的域名 |
-f | 批量url抓取,指定url文本路径 |
-m | 抓取模式 |
-s | 显示状态码,all为全部 |
-u | 指定URL |
f. 第三方聚合应用
①dnsdumpster
②dnsdb
③灯塔ARL自动化收集
g. 域传送漏洞
- DNS服务器分为:主服务器、备份服务器和缓存服务器,在主备服务器之间同步数据库,需要使用DNS域传送
- 域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库
- DNS服务器配置不当,导致匿名用户利用DNS域传送协议获取某个域的所有记录,通过可以实现DNS域传送协议的程序,尝试匿名进行DNS域传送,获取记录
- Crossdomain.xml文件用于跨域策略文件,主要为Web客户端(Adobe Flash Player等)设置跨域处理数据的权限
5.服务器信息收集
(1). 端口扫描
- 扫描工具:Nmap、Zenmap、masscan
a. 文件共享服务
端口号 | 端口说明 | 利用方向 |
---|---|---|
21/22/69 | FTP/TFTP文件传输协议 | 允许匿名上传、下载、爆破和嗅探 |
2049 | NFS服务 | 配置不当 |
139 | Samba服务 | 爆破、未授权访问、远程代码执行 |
389 | LDAP目录访问协议(类RDP) | 注入、允许匿名访问、弱口令 |
b. 远程连接服务
端口号 | 端口说明 | 利用方向 |
---|---|---|
22 | SSH远程链接 | 爆破、SSH隧道及内网代理转发、文件传输 |
23 | Telnet | 爆破、嗅探、弱口令 |
3389 | RDP远程桌面连接 | Shift后门(Windows Server 2003以下版本)、爆破 |
5900 | VNC | 弱口令爆破 |
5632 | PyAnywhere服务 | 抓密码、代码执行 |
c. Web应用服务
端口号 | 端口说明 | 利用方向 |
---|---|---|
80/443/8080 | 常见Web服务端口 | Web共攻击、爆破、对应服务版本漏洞 |
7001/7002 | Weblogic控制台 | Java反序列化、弱口令 |
8080/8089 | Jboos/Resin/Jettyjenkins | 反序列化、控制台弱口令 |
90900 | WebSphere | Java反序列化、弱口令 |
4848 | GlassFish控制台 | 弱口令 |
1352 | Lotus dominion邮件服务 | 弱口令、信息泄露、爆破 |
10000 | Webmin-Web控制面板 | 弱口令 |
443 80 8081 8088 8888 8443 888 8080-8089
d. 数据库服务
端口号 | 端口说明 | 利用方向 |
---|---|---|
3306 | MySQL | 注入、提权、爆破 |
1433 | MSSQL | 注入、提权、爆破、SAP弱口令 |
1521 | Oracle | TNS爆破、注入、反弹shell |
5432 | PostgreSQL | 爆破、注入、弱口令 |
27017/27018 | MongoDB | 爆破、未授权访问 |
6379 | Redis | 未授权访问、弱口令爆破 |
5000 | SysBase/DB2 | 爆破、注入 |
e. 邮件服务端口
端口号 | 端口说明 | 利用方向 |
---|---|---|
25 | SMTP邮件服务 | 邮件伪造 |
110 | POP3 | 爆破、嗅探 |
143 | IMAP | 爆破 |
f. 网络常见协议端口
端口号 | 端口说明 | 利用方向 |
---|---|---|
53 | DNS域名解析系统 | 允许区域传送、DNS劫持、缓存投毒、欺骗 |
67/68 | DHCP服务 | 劫持、欺骗 |
161 | SNMP协议 | 爆破、搜集目标内网信息 |
e. 特殊服务
端口号 | 端口说明 | 利用方向 |
---|---|---|
2128 | Zookeeper服务 | 未授权访问 |
8068 | Zabbix服务 | 远程执行、SQL注入 |
9200/9300 | Elasticsearch服务 | 远程执行 |
11211 | Memcache服务 | 未授权访问 |
512/513/514 | Linux Rexec服务 | 未授权访问 |
873 | Rsync服务 | 匿名访问、文件上传 |
3690 | SVN服务 | SVN泄露、未授权访问呢 |
50000 | SAP Management Console | 远程执行 |
(2). 操作系统判断
a. 开放端口
Win系统常见端口 | Linux系统常见端口 |
---|---|
IIS-80 | ssh-22 |
rpc/135 | NETBIOS-137 138 139 |
smb-445 | |
rdp-3389 | |
mssql-1433 |
b. 大小写
- Windows对大小写不敏感,而Linux对大小写敏感
c. TTL值
- ping命令,返回TTL值,Windows通常是128,大于100;Linux是64,小于100
d. 其他方式
- 网站的脚本类型:asp、aspx、jsp、php
- phpinfo的信息泄露
- nmap参数
-o
- 等等
6. 网站信息收集
(1). CMS指纹识别
a. 作用
- 通过识别指纹,可以确定目标的CMS及版本,进一步利用公开的POC或EXP进行攻击
b. 工具
- kali中的whatweb
- 云悉:http://www.yunsee.cn/
- 潮汐:http://finger.tidesec.net/
- Wappalyzer插件
- Glass:https://github.com/s7ckTeam/Glass
- 棱洞:https://github.com/EdgeSecurityTeam/Ehole
c. 漏洞利用
- 常规搜索引擎,直接搜索识别到的CMS指纹漏洞
- 乌云漏洞库
- Cnvd搜索识别到的cms指纹
- Github搜索识别到的指纹
- 源代码审计
- 全文通读——漏洞挖掘最全
- 敏感函数回溯——方便快捷挖掘漏洞
- 代码、命令执行
- php代码执行函数
- php命令执行函数
- 定向功能分析法——定向挖掘某块功能的漏洞
(2). 判断Web中间件
a. 解析漏洞
- 了解网站的Web服务器是那种
- 了解具体的Web服务器版本
- 寻找对应的解析漏洞
(3). 判断脚本类型
- 根据网站URL判断
- 谷歌语法:
site:xxx filetype:php
- 根据firefox的插件来判断
- 目录爆破/文件爆破
- 漏洞扫描器(awvs、xray、appscan)
(4). 判断数据库类型
a. 类型
①Access
- 全名是Microsoft Office Access,小型数据库,>100M时性能下降,后缀名:.mdb,一般是asp网页文件使用
②SQL Server
- 关系型数据库管理系统(DBMS),后缀名:.mdf,默认端口1433
③MySQL
- DBMS,属于Oracle旗下产品,默认端口3306
④Oracle
- DBMS,适用于大型网站,默认端口1521
b. 判断方式
①端口
数据库 | 端口 |
---|---|
MSSQL | 1433 |
MySQL | 3306 |
Oracle | 1521 |
②脚本类型
脚本 | 数据库 |
---|---|
ASP、ASPX | ACCESS、SQL Server |
PHP | MySQL、PostgreSQL |
JSP | MySQL、Oracle |
③漏洞扫描器
(5). 目录结构
①常见敏感文件
- .SVN泄露
- .git泄露
- 网站备份压缩文件
- 御剑7kbwebpathscanner
- .DS_Store文件
- WEB-INF文件
- Web.config配置文件
- 配置文件泄露
②常见工具
- Burpsuite
- 御剑
- Dirbuster java
- Dirb
- dirsearch
- 7kbscan
- 搜索引擎
7. 真实IP信息收集
(1). CDN绕过
a. 常规方法
①国外访问或多地区访问
- 如果只针对国内用户的访问加速,使用国外代理网站(Monitor:https://asm.ca.com/en/ping.php)则可以获取到**服务器真实IP**
②历史DNS记录查找
③子域名查找
- 如果分站没挂载CDN,但和主站在同一C段下,则可以通过子域名获取分站IP
④网站漏洞查找
- 通过网站漏洞,扫描网站测试文件,例如phpinfo、test等,从而找到目标真实IP
⑤网站邮件查找
- 查找邮件头中的邮件服务器域名IP
b. 非常规方法
①扫描全网
- 在线网站:钟馗之眼、shodan、fofa
- 直接尝试用IP访问,看看响应的页面和访问域名返回的是否一样
(2). 判断是否存在CDN
a. 多地ping
- http://ping.chinaz.com/
- https://ping.aizhan.com/
- 结合fofa搜索对应IP地址辨别真实IP地址
b. Nslookup
- 获取到的DNS域名解析结果中返回多个IP的,一般存在CDN服务
c. Header头信息
- 请求响应包header头中存在CDN服务商信息
- 报错信息,页面状态码为400错误,一般是CDN
- 若asp或者asp.net网站返回头的Server不是IIS,而是Nginx,即是使用了nginx反向代理到CDN
d. 在线检测工具
(3). 真实IP收集
a. DNS历史记录
- http://viewdns.info/iphistory/?domain=
- https://securitytrails.com/
- https://x.threatbook.com/
- https://site.ip138.com/
b. 网络空间测绘搜索引擎
①网站
- https://fofa.info
- https://search.ccenysy,io
- https://quake.360.net
- https://hunter.qianxin.com
- https://www.shodan.io
②用法
- 子域名、https证书、网站标题、网站图标、ICP备案信息、html正文内容、js/css/html静态资源特征值
③fofa语法
domain=="ichunqiu.com" //搜索根域名为“ichunqiu.com”的网站
host="ichunqiu.com" //从url中搜索
cert=="ichunqiu.com" //从https证书中搜索
cert=="https证书序列号值10进制" //利用证书序列号定位
icp="京ICP证150695号" //利用备案号定位
title="在线安全培训平台" //利用网站标题特征定位
icon_hash="-1941347393" //利用网站icon图标特征定位
body="会员登录_i春秋" //利用html正文特征定位
body="<div class=header_hostsearch J_header_hotsearch>" //利用网站静态资源文件定位
fid="" //利用fofa网站指纹定位
8. C段/旁站信息收集
①概念
旁站: 和目标网站在同一服务器上的其他网站
C段: 和目标服务器ip处在同一个C段的其他服务器
②查询方式
-
利用Bing.com,语法为
http://cn.bing.com/search?q=ip:1.1.1.1
-
利用Google.com.语法为
site:123.123.123.*
-
利用Nmap,语法为
nmap -p 80,8080 -open ip/24
-
K8工具、御剑、北极熊扫描器等