信息收集与常用工具
严正声明:本文仅限于技术讨论,严禁用于其他用途。
本篇文章以《Web安全攻防 渗透测试实战指南》信息收集篇为框架进行创作
前言
正所谓“知己知彼,百战不殆。”在进行渗透测试之前,最重要的一步就是信息收集,信息收集的越多,攻击面也就越大,成功的概率也就更高。在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息。总而言之,只要与目标网站相关的信息,我们都应该去尽可能收集。
一、收集域名信息
a) whois查询
whois查询是一个标准的互联网协议,可用于收集网络注册信息(是否已经被注册),域名拥有者、域名注册商,注册的域名、IP地址、邮箱、电话等信息。
查询工具:
- 站长工具_whois查询工具_爱站网 (aizhan.com)
- 域名Whois查询 - 站长之家 (chinaz.com)
- VirusTotal - Home
- kali系统里面自带的whois查询工具
- 查询命令:whois baidu.com
b) 备案信息查询
如果网站搭建在国内,网站是需要备案的,可以通过备案信息查询获取该网站的备案信息。可查询主办单位名称、主办单位性质、网站备案/许可证号、网站名称、网站首页地址、审核通过日期等信息。
查询网站:
- ICP备案查询网 (beianx.cn)
- 天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统 (tianyancha.com)
- ICP备案查询 - 站长工具 (chinaz.com)
二、收集敏感信息
Goole是世界上最强的搜索引擎之一,可以通过构造特殊的关键字语法来搜索互联网上的相关敏感信息,该语法在BING和百度同样适用。在此外还有几款黑暗引擎也是收集信息的利器,例如fofa,shodan,钟馗之眼等。
a) 谷歌语法
关键字 | 作用 |
---|---|
Site | 指定域名 |
lnurl | URL中存在关键字的网页 |
lntext | 网页正文中的关键字 |
Filetype | 指定文件类型 |
lntitie | 网页标题中的关键字 |
link | link:baidu.com即表示返回所有和baidu.com做了链接的URL |
Info | 查找指定站点的一些基本信息 |
cache | 搜索 Google里关于某些内容的缓存 |
举个小栗子:
1、搜索网页正文中含有"后台管理"并且域名后缀为edu.cn的网站
site:edu.cn intext:管理后台
![image-20220405165531260](https://i-blog.csdnimg.cn/blog_migrate/2f8fefbcc707163208041af14924f1d0.png)
2、查询带有网页正文中带有“手册”二字的pdf文件
intext:手册 Filetype:pdf
![image-20220405170225137](https://i-blog.csdnimg.cn/blog_migrate/311255bed9d0ed82a47bd94f0633c97d.png)
b) 黑暗引擎
c) 历史漏洞信息
三、收集子域名信息
在测试过程中,测试目标主站时如果未发现任何相关漏洞,此时通常会考虑挖掘目标系统的子域名。子域名枚举可以发现更多评估范围相关的域名/子域名,以增加漏洞发现机率;探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。子域名挖掘方法有很多种,例如,搜索引擎、子域名破解、字典查询等。
a) 子域名检测工具
- Layer子域名挖掘机
- Sublist3r
- subDomainsBrute
- 子域名爆破网站
- IP方查绑定域名网站
b) 搜索引擎枚举
- 谷歌语法:site:baidu.com
- fofa语法:domain=“qq.com”
c) 第三方聚合应用枚举
d) 证书透明度公开日志枚举
四、收集常用端口信息
在渗透测试中,通过扫描服务器开放的端口可以判断服务器上存在的服务,并且不同的端口有不同的攻击方向,对此我们可以对症下药,便于我们渗透目标服务器。
a) 扫描工具
- Nmap (准确性较高,扫描速度慢)
- ZMap
- 无状态端口扫描工具Masscan(精确度低,扫描速度快)
- 御剑高速TCP端口扫描工具
b) 常见端口服务及漏洞
![](https://i-blog.csdnimg.cn/blog_migrate/1f27ee2c8e0fbf61562da5790febc19e.png)
五、指纹识别
指纹因为其终身不变性,唯一性和方便性,几乎已成为生物特征识别的代名词。此处的指纹是指网站的CMS指纹识别、计算机操作系统及Web容器的指纹识别等。
a) 指纹识别
- 指纹识别能快速识别出网站的搭建环境,网站使用的系统,网站防火墙和CMS源码中使用的一些js库。CMS又称整站系统或文章系统,你可以认为是一个网站的模板,能快速方便的搭建起一个网站
- 对于指纹你可以认为是某种特征,可以通过这种特征快速识别出该网站的类型
b) 常见的CMS
类型 | 名字 |
---|---|
企业建站系统 | MetInfo(米拓)、蝉知、SiteServer CMS |
B2C商城系统 | 商派shopex、ecshop、hishop、xpshop |
门户建站系统 | DedeCMS(织梦)、帝国CMS、PHPCMS、动易、cmstop |
博客系统 | wordpress、Z-Blog |
论坛社区 | discuz、phpwind、wecenter |
问题系统 | Tipask、whatsns |
知识百科系统 | HDwiki |
B2B门户系统 | destoon、B2Bbuilder、友邻B2B |
人才招聘网站系统 | 骑士CMS、PHP云人才管理系统 |
房产网站系统 | FangCms |
在线教育建站系统 | kesion(科汛)、EduSoho |
电影网站系统 | 苹果cms、ctcms、movcms |
小说文学建站系统 | JIEQI CMS |
参考文章:常用的cms系统有哪些?-MetInfo
c) CMS扫描工具
-
御剑web指纹识别系统
六、查找真实IP
CDN的全称是Content Delivery Network,即内容分发网络。CDN加速意思就是在用户和我们的服务器之间加一个缓存机制,通过这个缓存机制动态获取IP地址根据地理位置,让用户到最近的服务器访问。部分网站为了更好的提供服务,会使用CDN来加速访问的速度,不同地区的用户可以通过域名就近访问网站服务。因为CDN节点部署在多个地区,因此在不同地区访问服务也会得到不同的IP地址,得到的这些IP并不一定是真实的IP地址(真实的IP地址可能就藏在其中),是CDN缓存服务器的IP地址。
a) 判断该网站是否存在CDN
1、超级ping网址:http://ping.chinaz.com/https://ping.aizhan.com/。
如果查询出的ip数量大于一个的话,则说明该ip地址不是真实的服务器地址。以我的经验来看,如果是2个或者3个,并且这几个地址是同一地区的不同运营商的话,则很有可能这几个地址是服务器的出口地址,该服务器在内网中,通过不同运营商NAT映射供互联网访问,同时采用几个不同的运营商可以负载均衡和热备份。如果是多个ip地址,并且这些ip地址分布在不同地区的话,则基本上可以断定就是采用了CDN了。
- 无CDN情况:
- 通过检测,发现返回的IP都一样,所以这是没有CDN
- 有CDN情况
- 通过检测,发现有多个IP返回,说明存在CDN
-
2、Windows命令查询:nslookup,若目标存在多个IP的话,就很有可能有CDN服务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
b) 绕过CDN寻找真实IP
-
内部邮箱源:一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件,寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,就可以获得目标的真实IP(必须是目标自己的邮件服务器,第三方或者公共邮件服务器是没有用的)。
-
分站域名:很多网站因为主站访问量大,所以会在主站上挂CDN,但是分站上可能就没有挂CDN。可以通过Ping二级域名获取分站IP,可能会出现分站和主站不是同一个IP但在同一个C段(C段指的是同一内网段内的其他服务器)下面。
-
国外访问:国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站CA App Synthetic Monitor 访问 ,可能会得到真实的ip地址。
-
查询域名的解析记录:也许目标很久之前没有使用CDN,所以可能会存在使用 CDN 前的记录。所以可以通过网站Netcraft | Internet Research, Cybercrime Disruption and PCI Security Services来观察域名的IP历史记录。
-
目标网站的APP:如果目标网站有自己的APP,可以尝试利用Fiddler或Burp Suite 抓取APP的请求,从里面找到真实的IP。
-
绕后Cloud Flare CDN查找真实IP:现在很多网站都使用Cloud Flare提供的CDN服务,在确定了目标网站使用CDN以后,可以尝试通过在线网站Cloud Flare Watch对Cloud Flare客户网站进行真实IP查询。
c) 使用网站与工具
- 超级ping
- windows命令:nslookup
- 同服IP站点-旁站
- Cloud Flare Watch
- Netcraft | Internet Research, Cybercrime Disruption and PCI Security Services
七、收集敏感目录文件
在渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台登录页面,文件上传页面,甚至可能扫出网站的源代码(有些工程师为了方便,会将网站的源码备份至某个目录中,当获取到目录位置时就可以下载源码)
a) 敏感文件
- 后台目录:弱口令,万能密码,爆破
- phpinfo:会把你配置的各种信息暴露出来
- robots.txt:是专门针对搜索引擎机器人robot 编写的一个纯文本文件,我们可以在这个文件中指定网站中不想被robot访问的目录,这些不想被robot访问的文件往往是比较重要的内容。
- mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
- 安装包:获取数据库信息,甚至是网站源码
- 安装页面 :可以二次安装进而绕过
b) 扫描工具
- Dirbuster
- wwwscan
- cansina
- 御剑后台扫描珍藏版
- Spinder.py (轻量级快速单文件目录后台扫描)
- Sensitivefilescan (轻量级快速单文件目录后台扫描)
- Weakfilescan (轻量级快速单文件目录后台扫描)
八、社会工程学
社会工程学(Social Engineering) 是一种通过人际交流的方式获得信息的非技术渗透手段。不幸的是,这种手段非常有效,而且应用效率极高。事实上,社会工程学已是企业安全最大的威胁之一。狭义与广义社会工程学最明显的区别就是是否会与受害者产生交互行为。广义是有针对性的去对某一单一或多一目标进行攻击的行为。
a) 常见社工
- 社工三大法宝:网络钓鱼、电话钓鱼、伪装模拟
- 狭义三大法宝:谷歌、社工库、QQ
- 社工师的分类:黑客、渗透测试、JD、GOV、公司内部员工、欺骗人员、猎头、销售人员、普通人。
b) 信息泄露方式
- 在网上注册时,垃圾网站被黑客攻入(服务器或者数据库被攻击),黑客获取信息
- 网站内部人员将信息贩卖,然后获取信息
- 通讯被窃听,http协议用post或者get提交时,使用火狐进行拦截
- 撞库,比如你在这个A网站注册时,使用了一个密码,在B网站也使用这个密码,知道A网站的密码,自己也可以用这个密码登录B网站,这就是撞库
c) 社会工程学攻击四个阶段
- 研究:信息收集(WEB、媒体、垃圾桶、物理),确定并研究目标
- 钩子:与目标建立第一次交谈(HOOK、下套)
- 下手:与目标建立信任并获取信息
- 退场:不引起目标怀疑的离开攻击现场
d) 常见信息
- 真实姓名、性别、出生日期、身份证号、身份证家庭住址、身份证所在公安局、快递收货地址、大致活动范围、QQ号、手机号、邮箱、银行卡号(银行开户行)、共同朋友的资料、支付宝、贴吧、百度、微博、猎聘、58、同城、网盘、微信、常用ID、学历(小/初/高/大学/履历)、目标性格详细分析、常用密码、照片EXIF信息。
e) 常见可获取信息系统
- 中航信系统、春秋航空系统、12306系统、三大运营商网站、全国人口基本信息资源库、全国机动车/驾驶人信息资源库、各大快递系统(越权)、全国出入境人员资源库、企业相关系统、信息资源库等。