信息搜集
黑客为了更加有效地实施攻击而在攻击前或攻击过程中对目标的所有探测活动,在整个渗透过程中大约60%的时间被用来从事信息收集工作。
信息收集的作用
- 了解组织安全架构
- 描绘网络拓扑
- 缩小攻击范围
- 建立脆弱点数据库
信息收集分类
- 主动信息搜集
- 与目标主机进行直接交互,从而拿到目标信息,缺点是会记录自己的操作信息。
- 被动信息搜集、
- 不与目标主机进行直接交互,通过搜索引擎或者社会工程等方式间接的获取目标主机的信息。
渗透测试中的敏感信息泄露包括
- 目录遍历
- web服务器配置不当引起的目录
- 文件读取(下载/包含)引起的目录穿越
- 报错(调试)信息
- 绝对路径信息泄露
- 数据库运行错误信息泄露
- 调试信息泄露
- 测试信息泄露
- 运行环境信息泄露
备份文件
vim编辑器备份文件(.swp),WEB-INF文件,数据库文件信息,日志信息,帮助信息 ,robots.txt,crossdomin.xml,sitemap.xml,后台目录,安装包,上传目录,mysql管理页面,编辑器,探针文件,Web框架,CMS类型,HTML中的注释,cookie中的关键字,页面底部版权信息,web中间件,开发语言,数据库。
第三方软件应用
github上泄露源码、数据库、邮箱密码泄漏
网盘信息泄露
QQ群信息泄露
SVN源代码
CVS源代码
DS_Store文件
网络信息
运维监控等系统弱口令
网络拓扑泄漏
Whois信息收集
whois是用来查询域名的IP以及所有者等信息的传输协议。 whois信息可以获取关键注册人的信息,包括注册商、所有者、所有者联系邮箱、联系电话、域名注册时间、域名到期时间、域名状态、DNS服务器等。
企业信息
员工信息(手机号码、邮箱、姓名等),组织框架、企业法人、企业综合信息等。
其中员工信息收集是信息收集中的一项重要工作,员工信息包括:
员工基本信息:员工姓名,员工工号、员工家庭及交际信息、上网习惯等。
员工身份信息:员工简历,员工身份证,手机号,生日,家乡,住址等个人信息。
员工社交账号信息:QQ号,QQ群,微博,微信,支付宝,员工邮箱账号等。
收集企业信息可以获取相关的员工信息(手机号码、邮箱、姓名等),组织框架、企业法人、企业综合信息等。
收集企业信息的作用
提供更多的攻击入口
方便攻击者定点打击
企业邮箱信息收集方法
常见的在线邮箱收集网站,这些网站通过爬虫,搜索引擎等方式,获取互联网上暴露的邮箱地址。
http://www.skymem.info/
https://hunter.io/
https://email-format.com/
https://www.tianyancha.com 天眼查
http://www.miitbeian.gov.cn/icp/publish/query/icpMemoInfo_showPage.action# ICP备案查询
http://www.beian.gov.cn/portal/recordQuery 公安部备案查询
天眼查账号密码可以通过微信小程序“号多多”获取
子域名枚举
子域名枚举是为一个或多个域查找子域的过程。它是信息收集阶段的重要组成部分。
为什么要进行子域名枚举?
子域名枚举可以显示很多域名或者子域名,它们在安全评估的范围内,从而增加了发现漏洞的机会。
发现运行在隐藏的被遗忘的子域名上的应用程序可以使我们发现关键的漏洞。
通常情况下,同一组织的不同域名或应用程序会出现相同的漏洞。
搜索引擎查询(site:xxx.com) googlehac
在线查询接口
http://tool.chinaz.com/subdomain/
http://i.links.cn/subdomain/
http://subdomain.chaxun.la/
http://searchdns.netcraft.com/
https://www.virustotal.com/
https://censys.io/
https://x.threatbook.cn/
https://phpinfo.me/domain/
https://dnsdumpster.com/
子域名暴力猜解工具
layer子域名挖掘机
Kali recon-ng
wydomain: https://github.com/ring04h/wydomain
subDomainsBrute: https://github.com/lijiejie/
Sublist3r: https://github.com/aboul3la/Sublist3r
DNS查询/枚举
host命令来查询dns服务器a记录、mx记录 (http://tool.chinaz.com/dns/ https://tool.lu/dns/)
DNS暴力破解:fierce
域传送漏洞
证书透明度公开日志枚举
https://crt.sh/
https://certdb.com/domain/sangfor.com.cn
https://censys.io/
旁站信息
旁站是和目标网站在同一台服务器上的其它的网站
主站无法获取权限的情况下,作为攻击入口
旁站信息收集
http://s.tool.chinaz.com/same
https://phpinfo.me/bing.php
http://www.webscan.cc
端口扫描
C段信息
C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
- 在线接口查询
http://www.webscan.cc
https://phpinfo.me/bing.php
https://www.chinabaiker.com/cduan.php - 扫描工具
Nmap扫描C段
真实IP地址
CDN介绍
CDN的全称是Content Delivery Network(内容分发网络),通过在网络各处的加速节点服务器来为网站抵挡恶意流量,把正常流量进行转发。用简单点的话来说,CDN一般有三个作用:
- 跨运营商加速:我们自己的网站常常只属于一个运营商(比如:电信),而加速节点遍布每家运营商,于是和网站不同运营商(比如:联通)的用户访问起来就不会那么慢了。
- 缓存加速:很多的静态资源以及一部分页面更新都是比较慢的(比如首页),这个时候CDN就会根据浏览器的max-age和last-modified值以及管理员的预设值来进行缓存,于是很多流量CDN节点就不会每次都来向网站请求,CDN节点可以直接自作主张地将命中的缓存内容返回。
- 恶意流量过滤:这是CDN非常重要的一个作用,也是很多网站会用CDN的原因,因为CDN能为我们抵挡攻击大流量攻击、普通的攻击(比如注入等),只有正常流量才会转发给网站。
验证是否存在CDN
- 使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN,多地 Ping 网站有:
http://ping.chinaz.com/
http://ping.aizhan.com/ - 修改本地hosts文件,强行将域名与IP解析对应,然后访问域名查看页面是否变化。
网站真实IP
查看IP与域名绑定的历史记录,可能会存在使用CDN前的记录
https://dnsdb.io/zh-cn/ DNS查询
https://x.threatbook.cn/ 微步在线
http://toolbar.netcraft.com/site_report?url= 在线域名信息查询
http://viewdns.info/ DNS、IP等查询
https://tools.ipip.net/cdn.php CDN查询IP
SecurityTrails平台(DNS 记录)
https://securitytrails.com
在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到真实原始IP 。
查询子域名
CDN是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的IP来辅助查找网站的真实IP,收集方法同子域名收集。
Subdomainbrute为例,仅需打开cmd进入它所在的目录输入Python subdomainbrute.py baidu.com --full即可收集百度的子域名,收集子域名后尝试以解析ip不在cdn上的ip解析主站,直到真实ip成功被获取到。
网络空间搜索引擎
常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body: “网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
利用SSL证书寻找真实原始IP
假如在www.wangsu.com上托管了一个服务,原始服务器IP是136.23.63.44,而wangsu会为你提供DDoS保护,Web应用程序防火墙等服务,以保护你的服务免受攻击。为此,你的Web服务器就必须支持SSL并具有证书。
当在端口443(https://136.23.63.44:443)上直接连接到IP时,SSL证书就会被暴露。如果攻击者扫描0.0.0.0/0,即整个互联网,他们就可以在端口443上获取在wangsu上的有效证书,进而获取提供给你的Web服务器IP。
目前Censys工具就能实现对整个互联网的扫描,Censys是一款用以搜索联网设备信息的新型搜索引擎,能够扫描整个互联网,Censys每天都会扫描IPv4地址空间,以搜索所有联网设备并收集相关的信息,并返回一份有关资源(如设备、网站和证书)配置和部署信息的总体报告。
使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
网站漏洞查找
目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
XSS盲打,命令执行反弹shell,SSRF等。
无论是用社工还是其他手段,拿到目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
网站邮件订阅查找
RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
zmap扫全网
- 获取CN的IP http://www.ipdeny.com/ipblocks/data/countries/cn.zone,使用zmap对全CN IP的80端口进行扫描。
root@kali:~# zmap -p 80 -w bbs.txt -o 80.txt - 使用zmap的banner-grab对扫描出来80端口开放的主机进行banner抓取。
- root@kali:~/zmap-1.2.1/examples/banner-grab# cat /root/bbs.txt |./banner-grab-tcp -p 80 -c 100 -d http-req -f ascii > http-banners.out
搜索引擎信息收集
主要收集的信息包括
- 搜索子域名
- 搜索后台管理页面
- 搜索泄露的敏感信息
- 搜索未授权访问
- 搜索开放端口服务
- 搜索过往或未修复漏洞
- 搜索目标相关人员信息
网络空间资产搜索引擎信息收集
网络空间搜索引擎的作用就是将互联网上公开的网络资产收集和整理,以此方便人们进行查阅和利用。网络空间可以发现了不少企业的脆弱系统,未授权访问、SQL注入、弱口令等等都是存在的。
- Shodan https://www.shodan.io/
- FOFA https://fofa.so/
- Zoomeye https://www.zoomeye.org/
报错(调试)信息收集
绝对路径信息收集
数据库运行错误信息收集
调试信息收集
测试信息收集
运行环境信息收集
绝对路径信息泄露
IIS等服务器在不安全的配置情况下可以通过构造不存在的文件例如abc.asp或者一些特殊字符例如~<>@等,可以爆出绝对路径
运行环境信息泄露
如:某ThinkPHP框架,在搜索框中输入恶意字符(~· · @ ! # ¥ $ % ^*<>),即可爆出该ThinkPHP版本信息
curl -i http://xxx.chk3.cn/index.php\?s=captcha -X POST -d "_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls -al"
网站架构
- 操作系统
- 数据库
- Web中间件
- 网站开发语言
Web应用指纹信息
- Web前端框架
- Web应用框架
- Web开发框架
- CMS类型
- 指定路径下指定名称的js文件或代码。
- 指定路径下指定名称的css文件或代码。
- display:none中的版权信息。
- 页面底部版权信息,关键字© Powered by等。
- 注释掉的html代码中的内容
- http头中X-Powered-By中的值,有的应用程序框架会在此值输出。
- cookie中的关键字
- robots.txt文件中的关键字
- 404页面
- 302返回时的旗标
- title头信息
Web应用指纹信息识别工具
- 云悉 http://www.yunsee.cn/
- wappalyzer插件
- whatweb工具
- CMS识别工具
http://whatweb.bugscaner.com/look/
Github
Github不仅能托管代码,还能对代码进行搜索,当上传并公开代码时,一时大意,会让某些敏感的配置信息文件等暴露于众。Github主要收集:
- 泄露源码
- 泄露数据库、邮箱、ftp、ssh、3389等账号
- 泄露的人员信息
- 泄露其他敏感信息
Git源代码泄露
由于当在一个空目录执行git init时,git 会创建一个.git目录。这个目录包含所有的Git存储和操作对象
git信息泄露检测手段
访问http://www.xxx.com/.git/config
Git源代码
github高级搜索 https://github.com/search/advanced
文件后缀:extension:xxx
关键词出现在文件内容:xxx in:file
关键词出现在文件路径:xxx in:path
关键词出现在仓库名称:xxx in:name
关键词出现在README.MD:xxx in:readme
SVN源代码
SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的entries文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)。
检测手段 http://www.xxx.com/.svn/entries
检测工具:https://github.com/admintony/svnExploit
python SvnExploit.py -u https://www.hunantvhr.com/.svn/
CVS源代码
检测方法
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构
取回源码的命令
bk clone http://url/name dir
这个命令的意思就是把远端一个名为name的repo clone到本地名为dir的目录下。
查看所有的改变的命令,转到download的目录
bk changes
网盘信息泄露
http://magnet.chongbuluo.com/
http://www.panduoduo.net/
http://www.zhuzhupan.com/
https://www.quzhuanpan.com/
https://www.panc.cc
敏感文件、目录信息收集
- robots.txt
- crossdomin.xml
- sitemap.xml
- 后台目录
- 安装包
- 上传目录
- mysql管理页面
- phpinfo
- 编辑器
- 测试文件
- 网站备份文件(.rar、zip、.7z、.tar.gz、.bak、.swp)
- 日志信息
- 接口文件信息
- WEB—INF/web.xml文件
- 数据库文件
- 帮助信息
备份文件
在网站的升级和维护过程中,通常需要对网站中的文件进行修改。此时就需要对网站整站或者其中某一页面进行备份。
当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站 web 目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。
备份文件信息收集
收集方法:扫目录
日志信息
收集方法:fuzz目录、目录遍历、已知POC测试
帮助信息
在登录页面,如果有帮助文档,要仔细查看帮助文档的内容。
接口信息收集
http://www.xxx.xxxx:8090/wcm/services 发现wsdl接口,soapui写入shell
phpinfo信息可以告诉我们什么?
详细的操作系统信息,为提权做准备
extension_dir php扩展的路径、http_x_real_ip真实ip、web根目录和临时文件路径
allow_url_include:远程文件包含
disable_functions:表示禁用的函数名
short_open_tag 允许这种形式,并且<?=等价于<? echo
enable_dl 利用扩展库绕过disable_functions,需要使用dl()并且开启该选项
magic_quotes_gpc 它是用来实现addslshes()和stripslashes()这两个功能的,对SQL注入进行防御
open_basedir 将用户可操作的文件限制在某目录下,但是这个限制是可以绕过的。
P牛 open_basedir绕过:
https://www.leavesongs.com/bypass-open-basedir-readfile.html
WEB-INF文件信息收集
WEB-INF 是 Java 的 WEB 应用的安全目录。该目录原则上来说是客户端无法访问,只有服务端才可以访问。如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。
WEB-INF 主要包含一下文件或目录:
/WEB-INF/web.xml:Web 应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则;
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非 servlet class,他们不能包含在 .jar 文件中;
/WEB-INF/lib/:存放 web 应用需要的各种 JAR 文件,放置仅在这个应用中要求使用的 jar 文件 , 如数据库驱动 jar 文件;
/WEB-INF/src/:源码目录,按照包名结构放置各个 java 文件;
/WEB-INF/database.properties:数据库配置文件。
历史漏洞信息收集
查询历史漏洞,获取目标之前存在的安全问题,可以利用已知漏洞直接对目标系统进行攻击。
https://shuimugan.com/
http://www.anquan.us/
http://wooyun.webbaozi.com/
Waf信息收集
WAF也称Web应用防护系统,Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
- wafw00f
- Nmap(http-waf-detect和http-waf-fingerprint脚本)
Nmap探测WAF有两种脚本,一种是http-waf-detect,一种是http-waf-fingerprint。
内网入口点信息收集
- webmail登陆口
- VPN登陆口
- 各类oa/crm/sso系统的web入口
- 各类中间件web入口
- 各类监控系统、防火墙、虚拟化、路由器入口等
端口、服务信息收集
服务和安全是相对应的,每开启一个端口,那么攻击面就大了一点,开启的端口越多,也就意味着服务器面临的威胁越大。
收集方
- nmap
- 各种端口扫描工具
文章评论