XDSec—08-10信息收集
在写这篇博客之前,我一直在整理信息收集的一些方法论,但都感觉信息收集可为是一门玄学,内容大而广,收集的内容也可以多种多样,本文只是简单的总结一下小迪安全课程的知识点,以及本人整理的一些网上的信息收集方法;具体的信息收集方式,每个人都要有自己拿手的一套技术栈;
总之,渗透的本质是信息收集,信息收集的内容全面与否,决定着攻击的成功与否.
【本文只提供信息收集的大致思路,对于工具的使用请自行了解,一些内容会后期补充】
一、确定目标
-
做到对目标的所有业务和非业务面的存在点进行全面的排查
比如:
- 对方是否有网站
- 对方是否有APP
- 对方的其他资产
- 对方的有无与其他客户的业务关联
-
对收集到的信息尤其要确认其准确性和时效性,对涉及到的入手点要动手进行查看
- 确认收集到的资产是不是蜜罐
- 确认收集到的信息是否有时间差,要及时清理失效的信息以免造成干扰
- 对方的入手点有无现有的漏洞利用
-
要对收集到的信息进行整理,做到逻辑清晰,清楚各个信息之间的逻辑关系和资产的相对位置关系,对目标要有清晰的资产逻辑和业务逻辑认识。
总之就是要对收集来的信息整理一下,总不能一大摊子,不知道从哪上手吧,如对方的
- 域名和子域名
- IP地址
- 端口情况
- 业务形式
- 资产联系
- 等等
二、站点搭建分析
2.1、站点搭建习惯
2.1.1、目录型站点
- 简单来说,就是主站上面存在其他cms程序,例如
www.xx.com
是主站,www.xx.com/bbs
是它的论坛系统 - 因此入手思路就有了两种,一是从主站直接入手,二是从它的
bbs
入手 - 可以使用目录扫描工具来判断,但要确定有无waf,防止IP被ban
2.2.2、端口型站点
- 如某站点的http端口不是80,而是手动进行了修改
- 或者它的开放了一些供其他客户使用它提供的API的端口
- 我们可以借助
fofa
、shodan
等黑暗搜索引擎对目标端口进行确认 - 也可以借助
nmap
等扫描工具进行扫描,前提也是检测有无waf
2.2.3、子域名站点
- 目前好多网站都才用了这种模式,如主站为
www.xx.com
,它的oa系统为oa.xx.com
- 这种情况下,很可能子域名和主站不在同一个服务器上
- 入手思路也同第一个,可以从子域名入手
- 可以使用
子域名挖掘
、黑暗搜索引擎、Google语法等对子域名进行收集
2.2.4、旁注和C段
-
旁注攻击:利用同一主机上面不同网站的漏洞得到webshell,从而利用主机上的程序或者是服务所暴露的用户所在的物理路径进行入侵;
通俗来说就是,同一个服务器上存在多个站点,如A、B站点,你在对A进行测试的时候没有攻击的入手点,通过测试B网站进入服务器然后在攻击A网站最终实现目的;
这里要用到方法或工具比如:IP反查、SQL跨库查询、目录越权、whois信息等
-
C段渗透:不同服务器上面存放不同网站,并且都处于同一个网段,如你的目标是
192.168.1.1
,旁边还有个192.168.1.2
,你可以先通过渗透192.168.1.2
,然后通过它来监听并渗透到目标服务器(可能不是很准确,请自行多多了解);这里就涉及到很多技术了,比如提权、内网横移等,之后才会学到,这里只是简要说明概念.
2.2.5、其他手段
-
类似域名站点:例如一个网站更换了一个新的域名,但原本的旧的域名仍可访问我们可以通过旧域名寻找突破口;
-
建站特征:许多网站为了搭建方便,都使用了集成式的建站工具,如phpstudy或宝塔,通过抓包可以识别建站工具的一些版本信息;
-
如下图,使用集成的建站工具可能会泄露一些重要组件的版本信息
-
并且一些建站工具的集成软件带有默认密码,如phpstudy的默认数据库为
root
,密码为root
,如果该网站使用了phpmyadmin管理数据库,并且没有修改默认密码的话,就可以作为我们的一个入手点。
这里就十分考验经验积累了,一些大佬打开网站后,就能直接分析出来使用啥建的站。
-
2.2、WAF防护分析
2.2.1、WAF是什么?
- 简介:Web Application Firewall,即web应用防护系统
- 作用:通过执行一系列针对HTTP/HTTPS的安全策略为Web应用提供保护机制
- 功能:
- 漏洞攻击防护,如SQL注入、XSS攻击等
- 虚拟补丁:就是给网站打补丁,防止一些0day攻击
- 提供实时防护:就跟PC里面装的360安全卫士一样
- 原理:对HTTP/HTTPS的请求报文进行分析,如果检测到是攻击行为(如对SQL注入的检测,就会对报文中的SQL语句检测特定的注入字符排列),则会进行阻断,将报文丢弃,不会让请求通过,同时,还可能对攻击源的IP地址进行封杀
2.2.2、WAF识别
waf最大的威胁就是会ban IP,让你短时间内无法再次进行攻击
-
通过响应数据包识别
- 一些网站没有对响应信息做安全防护,就会在响应数据包中的
x-power-by
标签中出现waf的信息,表明该网站有防火墙存在
- 一些网站没有对响应信息做安全防护,就会在响应数据包中的
-
通过404信息来判断
- 输入一个不可能存在的页面,通过返回的错误信息页面来判断
-
通过一个恶意请求来判断
-
俗称以身试毒,但必须在保护好你的IP的前提下进行测试,直接对网站进行注入等攻击手段,通过防火墙拦截页面来判断,下图是转载的一个常见waf的识别
-
-
通过工具识别
-
nmap指纹检测或进行IDS规避与欺骗
nmap --script==http-waf-fingerprint nmap --script=http-waf-detec
nmap使用详解教程
-
-
identYwaf:https://github.com/stamparm/identywaf
-
wafwoof:https://codeload.github.com/EnableSecurity/wafw00f/zip/refs/heads/master
工具的使用教程会在后期补上
三、APP信息收集
3.1、搭建APP运行环境
-
在对app做信息收集时最好使用安卓模拟器进行,我们下载一款安卓模拟器,这里我下载了
雷电模拟器
;关于雷电模拟器做代理,通过bp抓包会在后面补上
因为模拟器没有虚拟网卡,不能像虚拟机那样直接配置,步骤有点繁琐
或者手机与电脑处于同一网段,可以直接设置代理,由于本人记笔记时处于校园网下,无法操作,之后补上
3.2、使用apk逆向工具
-
使用
apkAnalyser
工具对app的apk文件进行逆向 -
解压
apkAnalyser
,解压后打开文件夹,一个用来逆向的exe文件,一个用来存放apk的apps文件夹 -
将要逆向的apk放入
apps
,然后点击exe文件直接运行即可 -
结束后会exe的同级目录生成一个result文件夹,里面就是该apk的逆向后文件了
-
我们主要关心里面的
ips.txt
和urls.txt
,这当中存在的IP地址和域名就是我们入手的对象,之后的操作就变成了对对应IP和域名的信息收集
四、信息收集大致流程
本小节是参考我校github上的一个wiki,也是对B站小迪安全视频前十天内容的大致总结——
假设现在正在护网,只给了目标企业的名称,要求我们尽可能多进行信息收集。
4.1、搜索引擎的使用
-
使用google搜索引擎,并搭配谷歌搜索语法,大致了解目标
谷歌搜索语法的大致介绍: inurl:admin.php # 搜索url中含有admin.php的网站 intest:天气预报 # 搜索网页body中含有天气预报的网站 intitle:后台登陆 # 搜索标题中含有后台登录的网站 filetype:txt # 搜索txt资源 site:aa.com # 搜索与aa.com有关的域名,包括子域名 related:www.baidu.com # 搜索与指定站点相似的网站 ···
将谷歌语法结合起来,可以对目标进行指纹识别
intitle:后台 filetype:php # 查找php的后台登录 inurl:upload site:aa.com # 查找文件上传点
-
使用黑暗搜索引擎
- fofa
- shodan
- zoomeye
对应的查询语法基本官网都有,不多赘述,也不用刻意去学习,用时再查
-
GHDB 谷歌黑客数据库
链接:https://www.exploit-db.com/google-hacking-database/
黑客们能通过简单的搜索框在网络中出入于无形,在这背后还有一个强大的后盾,那就是Google Hacking Database(GHDB)
-
github搜索语法
github是全球使用人数最多的一个代码托管平台,其内容也是丰富多彩,使用搜索语法可以快速定位到想要的资产,语法参见链接:https://docs.github.com/cn/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax
4.2、站点信息的收集
- 判断有无CDN,否则下面几步毫无意义,具体内容参见上一篇文章
- 收集IP地址和域名信息,挖掘子域名,可以手工可以使用自动化工具
- whois查询,可以查到注册邮箱,可用于社工或后台登录使用
- 备案信息查询
4.3、蜜罐探测
小心此地无银三百两
4.3.1、蜜罐的分类
- 按交互方式分类
- 低交互式蜜罐:只开放一些简单的服务或端口
- 中交互式蜜罐:能够模拟类似操作系统的一些服务,让没有经验的攻击者看起来更像一个真实的业务
- 高交互式蜜罐:与OS交互很高,提供了一个真实的环境,更容易吸引入侵者也更难判别出来,但会对真实网络造成攻击
- 按用途分类
- 生产蜜罐:易于使用,仅捕获有限的信息,主要由公司使用,提供的攻击和攻击者信息较少
- 研究型蜜罐:是为了收集有关针对不同网络的黑客社区的动机和策略的信息。这些蜜罐不会为特定组织增加直接价值; 相反,它们用于研究组织面临的威胁,并学习如何更好地防范这些威胁。研究蜜罐的部署和维护非常复杂,可以捕获大量信息,主要用于研究、军事或政府组织
- 按实现方式分类
- 虚拟蜜罐:一般是中、低交互的,容易被识别,多基于Docker容器、虚拟机等
- 物理蜜罐:自己的真实ip、自己的网络环境,但是成本相对较高
- 除此之外还有一些商业蜜罐和开源蜜罐
4.3.2、蜜罐观察与检测
4.3.2.1、观察
-
流量记录
观察burpsuite流量,出现许多api调用
-
网站响应速度
蜜罐经常会加载很多JS,会导致网页的响应速度变慢 -
网站JS
查看网站源码观察JS -
端口
蜜罐往往开放了,很多端口;使用nmap对蜜罐进行端口扫描,进行判断举例:使用nmap对一个ip进行扫描,同时开放了1433、3306、1521、那就有问题了…因为正常一个服务器不可能有3个数据库;同时开放了并识别了22 SSH服务、3389 RDP…这也是个问题
-
指纹
部分蜜罐会提供很多指纹信息,以此命中扫描 -
使用痕迹
举例:查看是否有系统所有者的使用文件,如密码文件、浏览器访问历史记录等,如果没有可能要注意一下了系统限制
举例:查看系统命令执行状况如windows系统wmic、powershell是否执行;linux系统查看crontab、top等是否执行,原因就是部分蜜罐为了方便部署使用的镜像是最简系统
4.3.2.2、检测
-
浏览器插件
anti-honeypot 地址:https://github.com/cnrstar/anti-honeypot
-
shodan检测
4.4、waf检测与绕过
- 如何检测上文已经提及
- 绕过方式一般需要针对目标进行定制,没有一劳永逸的方法(涉及到的绕过手段,后期会补充)
4.5、主机检测
- 主机是否存活验证,可以直接ping,或者借助一些工具
- 开放端口检测,配合好4.4的waf绕过,工具如nmap
- 主机系统类型检测
- 中间件、数据库系统、web框架、语言、cms等
这一步是攻击的开始,越详细越好,配合好抓包等操作
4.6、信息泄露
- github信息泄露:由于网站搭建人员的疏忽,可能将一些重要的文件托管的github,如xml文件等
- 目录遍历:攻击者通过访问网站某一目录时,该目录没有默认首页文件或没有正确设置默认首页文件,将会把整个目录结构列出来,将网站结构完全暴露给攻击者,从而可以构建出网站的大致目录结构
- phpinfo():一些建站工具会默认根目录下有含有该代码的文件,如phpinfo.php、1.php、test.php等,通过访问该文件可以收集网站的敏感配置信息
- 备份文件:网站管理员由于疏忽,将网站的备份文件留在了可访问到的目录,一般为压缩文件,攻击者可以访问该文件,浏览器一般默认会下载该文件,拿到了网站的备份文件,等于网站全部暴露
- 版本控制泄露:使用版本控制软件进行开发,配置网站时时可能将默认隐藏的一些配置信息文件一同附带,如.git,会暴露一些网站信息
- 物理路径暴露:在处理报错信息的问题上如果处理不当,就可导致路径信息泄露,比如访问一些不存在的文件等思路;
4.7、后台扫描
- 使用御剑等后台扫描工具进行扫描
- 后台扫描可以帮助我们获取到网站的敏感文件,如数据库配置文件、后台管理、robots.txt等
4.8、社会工程学
- 不违法就行,虽然大部分社工行为都违法
- 社工适用于任何时候,人才是最大的漏洞