1. 信息收集
节选自《Web安全攻防渗透测试实战指南》,电子工业出版社,徐焱等著。
1.1 收集域名信息
- whois,可以得到注册人的姓名和邮箱,进而通过搜索引擎和社交网络挖掘出域名所有人的很多信息,对中小站点而言,域名所有人往往就是管理员。
- whois 命令
- 爱站工具网
- 站长之家
- VirusTotal
- 备案信息查询
1.2 收集敏感信息
通过构造特殊的关键字语法可以在 Google 上搜索相关敏感信息。
关键字 | 说明 |
---|---|
site | 指定域名 |
inurl | URL中存在关键字的网页 |
intext | 网页正文中的关键字 |
filetype | 指定文件类型 |
intitle | 网页标题中的关键字 |
link | link:feixingrui.com 即表示返回所有和 feixingrui.com 做了连接 的 URL |
info | 查找指定站点的一些基本信息 |
cache | 搜索 Google 里关于某些内容的缓存 |
例:“site:edu.cn intext:后台管理”,意思是搜索网页正文中含有“后台管理”并且域名后缀为 edu.cn 的网站。
此外,通过 Burp Suite 的 Repeater 功能同样可以获取一些服务器的信息;在 Github 上也能够寻找相关敏感信息,如数据库连接信息、邮箱密码、uc-key、阿里的osskey等,有时甚至可以找到泄露的源代码。
1.3 收集子域名信息
子域名是顶级域名下的域名。对于拥有众多子域名的网站来讲,主域名一般都是其重点防护对象,不易被攻破。所以需要从子域名入手。常见的子域名检测工具有:
– Layer 子域名挖掘机,使用方法较简单
– Sublist3r,它能列举在多种搜索引擎中可查到的子域名
– subDomainsBrute,特点是可以用小字典递归地发现三级域名、四级域名,甚至五级域名等不容易被探测到的域名
– 搜索引擎枚举 site:baidu.com
– 第三方聚合应用枚举
– 证书透明度公开日志枚举1 证书透明度公开日志枚举1
– 子域名爆破网站
– IP反查绑定域名网站
1.4 收集常用端口信息
通过扫描服务器开放的端口以及从端口判断服务器上存在的服务,就可以对症下药,便于我们渗透目标服务器。
常见扫描工具:Nmap、Masscan、ZMap和御剑高速TCP端口扫描工具。
文件共享服务端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
21/22/69 | ftp/tftp文件传输协议 | 允许匿名的上传、下载、爆破和嗅探操作 |
2049 | nfs服务 | 配置不当 |
139 | samba服务 | 爆破、未授权访问、远程代码执行 |
389 | ldap目录访问协议 | 注入、允许匿名访问、弱口令 |
远程连接服务端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
22 | ssh远程连接 | 爆破、ssh隧道及内网代理转发、文件传输 |
23 | telnet远程连接 | 爆破、嗅探、弱口令 |
3389 | rdp远程桌面连接 | shift后门(需要Windows Server 2003以下的系统)、爆破 |
5900 | VNC | 弱口令爆破 |
5632 | PyAnythere服务 | 抓密码、代码执行 |
Web应用服务端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
80/443/8080 | 常见的Web服务端口 | Web攻击、爆破、对应服务器版本漏洞 |
7001/7002 | WebLogic控制台 | Java反序列化、弱口令 |
8080/8089 | Jboss/Resin/Jetty/Jenkins | 反序列化、控制台弱口令 |
9090 | WebSphere控制台 | Java反序列化、弱口令 |
4848 | GlassFish控制台 | 弱口令 |
1352 | Lotus domino邮件服务 | 弱口令、信息泄露、爆破 |
10000 | Webmin-Web控制面板 | 弱口令 |
数据库服务端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
3306 | MySQL | 注入、提权、爆破 |
1433 | MSSQL数据库 | 注入、提权、SA弱口令、爆破 |
1521 | Oracle数据库 | TNS爆破、注入、反弹shell |
5432 | PostgreSQL数据库 | 爆破、注入、弱口令 |
27017/27018 | MongoDB | 爆破、未授权访问 |
6379 | Redis数据库 | 未授权访问、弱口令爆破 |
5000 | SysBase/DB2数据库 | 爆破、注入 |
邮件服务端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
25 | SMTP邮件服务 | 邮件伪造 |
110 | POP3协议 | 爆破、嗅探 |
143 | IMAP协议 | 爆破 |
网络常见协议端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
53 | DNS域名系统 | 允许区域传送、DNS劫持、缓存投毒、欺骗 |
67/68 | DHCP服务 | 劫持、欺骗 |
161 | SNMP协议 | 爆破、搜集目标内网信息 |
特殊服务端口
端口号 | 端口说明 | 攻击方向 |
---|---|---|
2181 | Zookeeper服务 | 未授权访问 |
8069 | Zabbix服务 | 远程执行、SQL注入 |
9200/9300 | Elasticsearch服务 | 远程执行 |
11211 | Memcache服务 | 未授权访问 |
512/513/514 | Linux Rexec服务 | 爆破、Rlogin登录 |
873 | Rsync服务 | 匿名访问、文件上传 |
3690 | SVN服务 | SVN泄露、未授权访问 |
50000 | SAP Management Console | 远程执行 |
1.5 指纹识别
应用程序一般在 html/css/js 等文件中会包含特征码,如 WordPress 在 robot.txt 中会包含 wp-admin、首页 index.php 中会包含 generator=wordpress 3.xx ……当遇到其他网站也存在该特征时,就可以快速识别出该 CMS,因此被称为指纹识别。
常见工具:御剑Web指纹识别、WhatWeb、WebRobo、椰树、轻量WEB指纹识别等。
1.6 查找真实IP
确定目标服务器的真实 IP 对渗透测试非常重要,如果目标不存在 CDN,那么可以直接通过 www.ip138.com 来获取相关信息。
通过 ping 命令,可以判断目标是否使用了 CDN。其中 17ce 是一个很好用的工具,它通过进行全国多地区的 ping 服务器操作,然后对比每个地区 ping 出的 IP 结果,来判断是否存在 CDN。
如何绕过 CDN 从而获得真实 IP?
– 内部邮箱源
– 扫描网站测试文件
– 分站域名
– 国外访问
– 查询域名的历史解析记录
– 通过抓取对应 app 发出的请求
– 绕过 CloudFlare CDN
验证获取的 IP
– 直接通过 IP 地址进行访问
– 在 IP 段比较大的情况下,批量扫描对应 IP 段中所有打开了80/443/8080端口的 IP,然后逐个访问并观察是否为目标站点
1.7 收集敏感目录文件
通过探测 Web 目录结构和隐藏的敏感文件,可以获得网站的后台管理页面、文件上传界面,甚至还可能获得网站的源代码。
推荐工具:WebScan
1.8 社会工程学
网上有好多社工库