0x00 收集域名信息
1. Whois查询
Whois是一个标准的互联网协议,可以收集网络注册信息,如域名、IP地址、服务商、域名拥有者、邮箱、电话、地址等。
– 爱站工具网(whois.aizhan.com)
– 站长之家(whois.chinaz.com)
– VirtusTotal(virustotal.com)
2. 备案信息查询
– ICP备案查询网:beianbeian.com
– 天眼查:tianyancha.com
0x01 收集敏感信息
各种搜索引擎的黑客语法可以用来获取数据库文件、SQL注入、配置信息、源代码泄漏、未授权访问和robots.txt等敏感信息。
常见的Google语法如下:
关键字 | 说明 |
---|---|
Site | 指定域名 |
Inurl | URL中存在关键字的网页 |
Intext | 网页正文中的关键字 |
Filetype | 指定文件类型 |
Intitle | 网页标题中的关键字 |
link | link:baidu.com即表示返回所有和baidu.com做了链接的URL |
Info | 查找指定站点的一些基本信息 |
cache | 搜索Google里关于某些内容的缓存 |
0x02 收集子域名信息
1. 常用工具
– Layer子域名挖掘机 简单易用,安全测试人员常用
– subDomainBrute 可以用小字典递归发现多级域名
– Sublist3r 可以列举多种资源,如Google、Yahoo、Bing、Netcraft、ThreadCrowd等查到的子域名
2. 搜索引擎枚举
3. 第三方聚合应用枚举
也可以用DNSdumpster网站(dnsdumpster.com)、在线DNS侦查和搜索工具挖掘出指定域潜藏的大量子域。
4. 证书透明度公开日志枚举
证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮箱地址。
– crt.sh: crt.sh
– censys: censys.io
– 子域名爆破网站(phpinfo.me/domain)
– IP反查域名绑定网站(aizhan.com)
0x03 收集常用端口信息
常见端口号对应服务如下表
– 文件共享服务类
端口号 | 端口说明 | 攻击方向 |
---|---|---|
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 | PyAnywhere服务 | 抓密码、代码执行 |
– 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 | PostSQL数据库 | 注入、爆破、弱口令 |
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 | 远程执行 |
0x04 指纹识别
应用程序一般在html、js、css等文件中会存在一些特征码,比如WordPress在robots.txt中会包含wp-admin首页index.php中会包含generator=wordpress 3.xx等信息。这就叫做该CMS的指纹。
常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。
代表工具也有御剑Web指纹识别、WhatWeb、WebRobo、椰树等,当然也可以利用一些在线网站查询CMS指纹识别:
– BugScanner:whatweb.bugscaner.com/look/
– 云悉指纹: www.yunsee.cn/finger.html
– WhatWeb:whatweb.net
0x05 查找真实IP
1. 判断目标网站是否使用了 CDN (即内容分发网络,可以提高网站的响应速度)
如果目标服务器有CDN服务,我们直接ping域名的话,得到的会是离我们最近的一台目标节点的CDN服务器,这时我们可以利用在线网站17CE(17ce.com)进行全国多地区的ping服务器操作,然后对比每个地区的ping出IP的结果,看看是否一致,如果都是一样的,那么目标不存在CDN服务器,如果IP大多不一样或着有规律性,则可以尝试查询这些IP的归属地,判断是否有CDN。
2. 绕过 CDN 寻找真实 IP
– 内部邮箱源。一般的邮件系统存在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器域名,就能获取目标真实IP(当然这个服务器必须是目标自己的,若是第三方公共邮箱就没有意义了)
– 扫描网站测试文件,如phpinfo、test等,从而找到真实的IP。
– 分站域名。一般的都是主站挂CDN但是分站没有,可能会出现不是同一个IP但是在同一个c段下的情况。从而可以判断出目标的真实IP段。
– 国外访问。国内的CDN只针对国内用户访问加速,但是国外的CDN就不一定了。通过国外在线代理网站APP Synthetic Monitor(asm.ca.com/en/ping.php)访问,可能会得到真实的IP。
– 查询域名的解析记录。可以通过网站NETCRAFT(netcraft.com)来观察域名的IP历史记录,也可以大致分析出目标的真实IP段。
– 如果目标网站有自己的App,可以尝试抓包,从数据包内分析真实IP
– 绕过CloudFlare CDN查找真实IP。很多网站都使用了CloudFlare提供的CDN服务,可以尝试通过在线网站CloudFlareWatch(www.crimeflare.us/cfs.html#box)对CloudFlare客户网站进行真实的IP查询
3. 验证获取的 IP
最简单的就是访问IP,比较访问域名返回的结果是否一致,若目标段较大,可以借助Masscan的工具批量扫描对应IP段中所有开了80、8080、443端口的IP,逐个访问。
0x06 收集敏感目录文件
在渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理页面、文件上传界面,甚至源代码。
针对网站目录扫描主要有:DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py、Sensitivefilescan、Weakfilescan等工具。也可以访问在线网站WebScan(www.webscan.cc/)
0x07 社会工程学
针对人来下手。