信息收集
1.1. 第一步:域名探测
当我们对一个站点进行渗透探测之前,一般渗透测试人员直接通过漏洞扫描器对指定目标站点进行渗透,当指定目标站点无漏洞时,渗透测试人员就需要进行信息收集工作来完成后期的渗透。
目前一般域名漏洞扫描工具 :AWVS,APPSCAN,Netspark,Webinspect,Nmap,Nessus,天镜,明鉴,WVSS,RSAS,等。
1.2. 第二步:子域名探测
工具例如:Layer子域名挖掘机,Sublist3r,subDomainsBrute
根据主域名,可以获得二级域名,三级域名,。。。主要姿势可以有:
1.2.1. DNS域 传送漏洞
如果存在,不仅能搜索到子域名,还能轻松找到一个枚举,这样的好事百试不厌;如果 SRC 一级域名不多,直接在 kali 下 dnsenum + 域名(比如说:dnsenum oldboy.com -f /dns.txt –dnsserver 114.114.114.114 )
工具说明及用法可参考如下:
dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息。域名服务器、mxrecord (函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展城名信息google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。
参数说明:
- -h:查看工具使用帮助
- –dnsserver
:指定域名服务器 - –enum :快捷选项,相当于”-threads -s 15 -w”
- –noreverse :跳过反向查询操作
- –nocolor :无彩色输出
- –private :显示并在”domain_ips.txt”文件结尾保存私有的ips
- –subfile
:写入所有有效的子域名到指定文件 - –t,–timeout
:tcp或者udp的连接超时时间。默认为10s (时间单位:秒)。 - –threads
:查询线程数 - -v,–verbose :显示所有的进度和错误消息
- -o,–output
:输出选项,将输出信息保存到指定文件。 - -e,–exclude
:反向查询选项,从反向查询结果中排除与正则表达式相符的PTR 记录,在排查无效主机上非常有用。 - -w,–whois :在一个C段网络地址范围提供whois查询
- -f dns.txt :指定字典文件,可以换成dns-big.txt也可以自定义字典
相关解析记录说明可参考:https://wenku.baidu.com/view/d2d597b669dc5022aaea0030.html
1.2.2.备案号查询
这算是奇招吧,通过查询系统域名备案号,再反查备案号相关的域名,收获颇丰。
ICP 备案查询网:http://www.beianbeian.com
1.2.3. SSL 证书
通过查询 SSL 证书(现在很多网站都是 https),获取的域名存活率很高,这应该也是不错的思路。
查询网址:https://myssl.com/ssl.html
或者 https://www.chinassl.net/ssltools/ssl-checker.html
1.2.4. Google 搜索 C 段
这招比较少,国内 Google 没法用,国内的用 bin 或者 百度 都可以,在没有什么进展的情况下或许会有惊喜。(比如说,网站被挂码了)
方法一:参照 Google hacking 的方法
方法二:用 k8 工具,前提条件是要注册 bing(必应) 接口。(k8_C段旁注工具)
什么是C段:比如在:127.127.127.4这个IP上面有一个网站127.4 这个服务器上面有网站,我们可以想想,他是一个非常大的站几乎没什么漏洞,但是在他同C段 127.127.127.1127.127.127.255这1255上面也有服务器而且也有网站并且存在漏洞,那么我们就可以来渗透1~255 任何一个站之后提权来嗅探得到127.4这台服务器的密码甚至3389连接的密码后台登录的密码如果运气好会得到很多的密码。
1.2.5. APP 提取
反编译APP进行提取相关IP地址,此外在APP上挖洞的时候,可以发现前面招式找不到的域名,在APP里面有大量的接口IP和内网IP, 同时可获取不少安全漏洞。(其实 app 的漏洞比 web 多一些)
Andriod Killer,当网站有app,然后把app下载下来,进行反编译分析,就会有一系列IP
1.2.6. 微信公众号
企业的另一通道,渗透相关公众号,绝对会有意外收获,:不少漏洞+域名,有关 Burp 抓取 app
1.2.7. 字典枚举法
字典枚举法是一种传统的查找子域名的技术,这类技术涉及的工具有:DNSReconcile,Layer 子域名挖掘机,DirBuster,Demon二级域名爆破
1.2.8. 公开 DNS 源
Rapid 7 下 Sonor 项目发布的:https://scans.io/study/sonar.fdns_v2
DNS 历史解析: https://dnsdb.io/zh-cn/
1.2.9. 威胁情报查询
华为安全情报:https://isecurity.huawei.com
1.2.10 子域名枚举
子域名爆破网站:https://phpinfo.me/domain
IP反查绑定域名网站:http://dns.aizhan.com
1.2.11 证书透明度公开日志枚举
证书透明度是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中,一个SSL/TLS证书通常包含域名,子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。
1.3. 敏感信息收集
1.3.1. web源代码泄露
通过相关工具暴力破解相关 Web 源码。
最强调的是 GitHub 信息泄露了,直接取GitHub 上搜索,可能有人不自信认为自己没有能力去 SRC 挖洞。
信息泄露收集可能会用到以下地址:
- 网盘搜索:http://www.pansou.com
- 网盘密码破解可参考:https://www.52pojie.cn/thread-763130-1-1.html
- 社工信息泄露:https://www.instantcheckmate.com
- 源码搜索:https://searchcode.com,https://gitee.com,https://gitcafe.com,https://code.csdn.net
- 钟馗之眼:https://www/zoomeye.org
- 天眼查:https://www.tianyancha.com
- 其他:威胁情报,微步在线,ti.360.cn,Virustotal
1.3.2. 邮箱信息收集
收集邮箱信息主要有两个作用:
- 通过发现目标系统账号的命名规律,可以用来后期登入其他子系统。
- 爆破登入邮箱用。
通常,邮箱的账号有如下几种生成规律:比如某公司有员工名叫做“张小三”,它的邮箱可能如下:
zhangxiaosan@xox.com xiaosan.zhang@ox.com zxiaosan@xx.com
当我们收集几个邮箱之后,便会大致猜出对方邮箱的命名规律。除了员工的邮箱之外,通过公司会有一些共有的邮箱,比如人力的邮箱、客服的邮箱,hr@xx.com/kefu@xx.com 这种邮箱有时会存在弱口令,在渗透时可额外留意下, 我们可以通过手工或者工具的方式来确定搜索邮箱。
手工方式:
- 可以到百度等搜索引擎上搜索邮箱信息
- GitHub 等第三方托管平台,例如数据库连接信息,邮箱密码,uc-key,阿里的osskey
- 社工库
工具方式:
在邮箱收集领域不得不提一个工具:The Harvester,The Harvester 可用于搜索Google,Bing 和 PGP 服务器的电子邮件. 主机 . 子域名,因此需要翻墙运用此工具。工具下载地址:https://github.com/laramies/theHarvester
注:
python -m pip install -r requirements.txt 导入相关配置,python3.7版本(其他的可能不行)
使用方法很简单:./theHarvester.py -d 域名 -l 1000 -b all(-l 是搜索页数,-b 是指把所有搜索引擎都使用一遍,看哪个可以)
1.3.3. 历史漏洞收集
仔细分析,大胆验证,发散思维,对企业的运维,开发习惯了解绝对是有很大帮助的。可以把漏洞保存下来进行统计。这些漏洞,企业可能没有修复,或者没有修复完整。
- wooyun 历史漏洞库:https://www.wooyun.suimugan.com(现在打不开了)
- 漏洞银行:https://www.bugbank.cn/
- 360补天:https://www.butian.net/
- 教育行业漏洞报告平台(Beta):https://src.edu-info.edu.cn/login/
1.3.4 Burpsuite 的Repeater功能
可以获取一些服务器的信息,例如运行的Server类型与版本,PHP的版本信息。
1.4. 指纹识别
这里的指纹讲的是网站CMS指纹识别,计算机操作系统及Web容器的指纹识别。
渗透测试过程中指纹识别是很有必要的,只有识别出相应的Web容器或者CMS,才能进行相应的渗透操作。
CMS又称整站系统或者文章系统,开发者只要给客户一个软件包,客户自己安装配置好,就可以定期更新数据来维护网站,节省了大量的人力和物力。
常见的CMS有:Dedecms(织梦),Discuz,PHPWEB,PHPWind,PHPCMS,ECShop,Dvbbs,SiteWeaver,ASPCMS,帝国,Z-Blog,WordPress。
在这个过程可以加入端口扫描,敏感文件扫描之类的操作,用到的工具,如:御剑,whatweb,Wapplyzer,WebRobo,椰树,轻量WEB指纹识别等工具。
推荐一篇文章:https://anquanke.com/post/id/178230/
在线查询CMS指纹识别:
BugScaner:http://whatweb.bugscaner.com/look
云悉指纹:http://ww.yunsee.cn/finger.html
WhatWeb:https://whatweb.net
1.5 查找真实IP
渗透测试过程中,目标服务器可能只有一个域名,那么如何通过这个域名来确定目标服务器的真实IP对渗透测试来说很重要,如果目标服务器不存在CDN,可以直接通过 www.ip138.com来获取目标的一些IP以及域名信息。
CDN即内容分发网络,主要解决因传输距离和不同运营节点造成的网络速度性能低下的问题。就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(例如:静态的html,css,js图片等文件)直接缓存到节点服务器上,当用户再次请求时,会直接分发到在离用户的节点的服务上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度和用户体验。
如果我们要渗透的目标购买了CDN服务,可以直接ping目标的域名,但得到的并非真正目标Web服务器,而只是离我们最近的一台目标节点的CDN服务器。
1.5.1 判断是否用了CDN
ping目标域名,观察域名解析情况。
利用在线网站:https://www.17ce.com
进行全国多地区的ping服务器操作,然后对比每个地区ping出的IP结果,查看这些IP是否一致,如果一致就很有可能不存在CDN;如果IP大多不一致或者规律性很强,可以尝试查询这些IP的归属地。
1.5.2 绕过CDN寻找真实IP
- 内部资源箱,一般的邮件系统都在内部,没有经过CDN解析,通过网站用户注册或者RSS订阅功能,查看邮件,寻找邮件头部中的邮件服务器域名IP,ping这个邮件服务器域名就可以得到真实的IP。
- 扫描网站测试文件,如:phpinfo,test等。
- 分站域名,很多网站主站的访问量很大,所以主站一般都会挂CDN,但是分站可能不会挂,可以通过ping一个二级域名获取分站IP,可能会有分站和主站不是通过一个IP但是在同一个C段下,从而判断真实IP。
- 国外访问,国内的CDN 往往只对国内的用户的访问加速,而国外的CDN就不一定了,通过国外的在线代理网站 App Synthetic Monitor:https://asm.ca.com/en/ping.php,可能会得到真实IP。
- 查询域名的解析记录,也许目标很久以前并没有使用CDN,所以可以通过网站NETCRAFT:https://www.netcraft.com 来观察域名的IP历史记录,
- 如果目标网站有自己的App,可以尝试利用 Fiddler或者Burpsuite 抓取App的请求,从而找到真实IP
- 绕过 CloudFlare CDN 查找真实IP,现在很多网站都使用CloudFlare 提供的CDN服务,在确定了目标网站使用了CDN后,可以尝试通过在线网站CloudFlareWatch:http://www.crimeflare.us/cfs.html#box(似乎不行了)
1.5.3 验证获取的IP
直接尝试IP访问,看看响应的页面是不是和访问的域名返回的一样;在目标段很大的时候可以借助类似Masscan的工具批扫描对应IP段中所有开了80,43,8080 端口的IP,然后逐个IP访问。
1.6 收集敏感目录文件
针对网站目录扫描的工具主要有:DirBuster,御剑,wwwscan,Spinder.py(轻量级快速单文件目录后台扫描),Sensitivefilescan(轻量级快速单文件目录后台扫描),Weakfilescan(轻量级快速单文件目录后台扫描)。
1.6.1DirBuster
Target URL输入框输入要扫描的网址,扫描时将请求方法设置为“Auto Switch(HEAD and GET)”选项。
设置线程数值:20-30之间,过大时容易引起系统死机。
选择扫描类型,如果使用个人字典,则选择“List based brute force“选项
单击”Browse“选择字典
在 Select starting options 中选择”URL Fuzz“方式进行扫描,设置fuzzing时需要注意,在URL to fuzz里输入”/{dir}“,这里的dir是一个变量,用来代表字典中的每一行。
如果要扫描的目标是:http://www.xxx.com/admin/,就要在URL to fuzz里填写”/admin/{dir}“,意思是在”{dir}“的前后可以随意拼接你想要的目录或者后缀,例如输入:”:/admin/{dir}.php“就表示扫描admin目录下的所有PHP文件。
在线工具:WebScan:http://www.webscan.cc/
1.7. 资产梳理
有了庞大的域名,接下来就是帮助SRC梳理资产了。城名可以先判断存活,活着的维续进行确定IP环节。根据IP的分布,确定企业的公网网段。这其实是一项不小的工程, 精准度比较难以拿捏。不过通过不断实战,肯定可以琢磨出一些东西,所以有人称白帽子可能会比企业的运维更了解资产信息。资产梳理过程中可能需要对相关资产漏洞进行查询、利用、发布等,可能会用到已下相关链接地址:
1.7.1.SRC众测平台
- 国际漏洞提交平台:https://www/hackerone.com/
- BugX 区块链漏洞平台:http://www.bugx.org/
- Gsrc 瓜子 src :https://security.guazi.com/
- 区块链安全相应中心:https://dvpnet.io/
- CNVD 国家信息安全漏洞平台:http://www.cnvd.org.cn/
- 漏洞银行:https://www.bugbank.cn/
- 360 补天:https://www.butain.net/
- 教育行业漏洞报告平台(Beta):https://src.edu-info.edu.cn/login/
1.7.2.国内平台
- 知道创宇 Seebug 漏洞平台:https://www.seebug.org/
- 工控系统行业漏洞平台:http://ivd.winicssec.com/
- 打造中文最大 exploit 库:http://www.expku.com/
- 为数不多的漏洞管理插件收集平台:http://www.bugscan.net/source/template/vulns/
- 一家管理漏洞收集平台:http://www.0daybank.org/
1.7.3.国外平台
- 国际漏洞提交平台:https://www.hackerone.com/
- xss poc :http://xssor.io/
- 0day 漏洞库:https://www.0day.today/
- 路由器漏洞库:http://routerpwn.com/
- cve 漏洞平台:http://cve.mitre.org/
1.7.4.威胁情报
- 安全数据交流平台:https://www.secsilo.com/
- 华为安全情报:https://isecurity.huawei.com/sec/web//intelligencePortal.do
- 威胁情报共享平台:https://www.threatcrowd.org/
- 被黑站点统计:http://www.hacked.com.cn/
1.7.5.社工库
- 微信伪造:http://www.jietuyun.com/
- 任意邮箱发送:http://tool.chacuo.net/mailanonymous 和 https://emkei.cz/
- 临时邮箱:http://www.yopmail.com/
- 邮箱池群:http://veryvp.com/
- 社工库:http://www.uneihan.com/
1.8. Google Hack
1.8.1.实战
Google搜索引擎之所以强大,关键在于它详细的搜素关键词,以下是几个常用的搜素关键词: (更多详细教里,参见:http://user.qzone.qq.com/568311803/main)。
- inurl:用于搜索网页上包含的URL,这个语法对寻找网页上的搜索,帮助之类的很有用。
- intext:只搜索网页部分中包含的文字(例如:管理后台,也就是忽略了标题, URL等的文字)
- site:可以限制你搜索范围的域名
- filetype:搜索文件的后级或者扩展名
- intitle:限制你搜索的网页标题
- allintitle:搜索所有关键字构成标题的网页,但是推荐不要使用。
- link:可以得到一个所有包含了某个指定URL的页面列表,例如: link :www. google. com就可以得到所有连接到Google的页面。
1.9 Nmap 端扫
功能介绍:http://blog.sina.com.cn/s/blog_811d9fdd0101ey07.html
10种扫描解释:http://www.cnblogs.com/c4isr/archive/2012/12/07/2807491.html
1.9.1 功能介绍
Nmap 是一个网路连接端口扫描软件,用来扫描网上电脑开放的网络连接端口,确定哪些服务器运行在哪些连接端口,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
功能架构图:
主机发现 —> 端口扫描 —> 版本侦测 —> OS 侦测
1.9.2.主机发现
1)主机发现原理:
主机发现的原理和ping 命令类似,发送探测包给目标主机,如果收到回复,说明目标主机是开启的。Nmap 支持十多种不同的主机探测方式,比如:发送 ICMPECHO / TIMESTAMP / NETMASK 报文,发送 SCTP INIT / COOKIE-ECHO 包,用户可以在不同的条件下灵活选用不同的方式来探测目标主机。
2)主机发现的基本用法:
- -sL:List Scan 列表扫描,仅将指定的目标的 IP 列举出来,不进行主机发现。
- -sn:Ping Scan 只进行主机发现,不进行端口扫描
- -Pn:将所有指定的主机视作开启的,跳过主机发现的过程。
- -PS/PA/PU/PY[portlist]:使用 TCPSYN / ACK 或 SCTP INIT / ECHO 方式进行发现。
- -PE/PP/PM:使用 ICMP echo ,timestamp,and netmask 请求包发现主机。
- -PO[protocollist]:使用 IP 协议包探测对方主机是否开启。
- -n/-R:-n表示不进行 DNS 解析,-R表示总是进行 DNS 解析。
- –dns-servers <serv1[,serv2],…>:指定 DNS 服务器。
- –system-dns:指定使用系统的 DNS 服务器。
- –traceroute:追踪每个路由结点。
3)使用演示:
扫描局域网 192.168.0.1-192.168.0.250 范围内哪些 IP 的主机是活动的。
命令如下:nmap -sn 192.168.0.1-250
1.9.3. 端口扫描
端口扫描时 Nmap 最基本核心的功能,用于确定目标主机的 TCP / UDP 端口开放情况。默认情况下,Nmap 会扫描1000 个最有可能开放的 TCP 端口。Nmap 通过探测将端口划分为6个状态。
- open:端口是开放的。
- closed:端口是关闭的。
- filtered:端口被防火墙 IDS / IPS 屏蔽,无法确定其状态。
- unfiltered:端口没有被屏蔽,但是否开放还需进一步确定。
- open|filtered:端口是开放的或者是屏蔽的。
- closed|filtered:端口是关闭的或者是屏蔽的。
1)端口扫描方面非常强大的,提供了很多的探测方式。
- TCP SYN scanning
- TCP connect scannin
- TCP ACK scanning
- TCP FIN/Xmas/NULL scanning
- UDP scanning
- 其他方式
2)端口扫描用法:
- -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans 的方式来对目标主机进行扫描。
- -sU:指定使用 UDP 扫描方式确定目标主机的 UDP 端口状态。
- -sN/sF/sX:指定使用 TCP Null,FIN,and Xmas scans 秘密扫描方式来协助探测对方的 TCP 端口状态。
- –scanflags
:定制 TCP 包的 flags。 - -sI <zombiehost[:probeport]:指定使用 idle scan 方式来扫描目标主机(前提需要找到合适的 zombie host)。
- -sY/sZ:使用 SCTP INIT/COOKIE-ECHO 来扫描 SCTP 协议端口的开放情况。
- -sO:使用 IP protocol 扫描确定目标主机支持的协议类型。
- -b
:使用 FTP bounce scan 扫描方式。
3)使用演示:
在此,我们以主机 192.168.0.100 为例。
命令如下:nmap -sS -sU -T4 -top-ports 300 192.168.0.100
1.9.4. 版本侦测
1)版本侦测原理:
简要地介绍版本的侦测原理。版本 侦测主要分为以下几个步骤:
- 首先检查 open 与 open|filtered 状态的端口是否在排除端口列表内,如果在排除列表,将该端口剔除。
- 如果是 TCP 端口,尝试建立 TCP 连接。尝试等待片刻(通常6秒或者更久,具体时间可以查询文件 nmap-services-probes 中 Probe TCP NULL q|| 对应的 totalwaitms)。通常在等待时间内,会接收到目标主机发送的 “WelcomeBanner” 信息。nmap 将接收到的 Banner 与 nmap-services-probes 中 NULL probe 中的签名进行对比。查找对应应用程序的名字与版本信息。
- 如果通过 “Welcome Banner” 无法确定应用程序版本,那么 nmap 再尝试发送其他的探测包(即从nmap-services-probes 中挑选合适的 probe),将 probe 得到回复包与数据库中的签名进行对比。如果反复探测都无法得出具体应用,那么打印应用返回报文,让用户自行进一步判定。
- 如果是 UDP 端口,那么直接使用 nmap-services-probes 中探测包进行探测匹配。根据结果对比分析出 UDP 应用服务类型。
- 如果探测到应用程序是 SSL ,那么调用 openSSL 进一步的侦查运行在 SSL 之上的具体的应用类型。
- 如果探测到应用程序是 SunPRC,那么调用 brute-force RPC grinder 进一步探测具体的服务。
2)版本侦测用法:
- –version-light:指定使用轻量侦测方式。
- –version-all:尝试使用所有的 probe 进行侦测。
- –version-trace:显示出详细的版本侦测过程信息。
3)使用演示:
对主机 192.168.0.100 进行版本侦测
命令如下:nmap -sV 192.168.0.100
1.9.5. OS 侦测
1)OS 侦测原理:
Nmap 使用 TCP/IP 协议栈指纹来识别不同的操作系统和设备。在RFC 规范中,有些地方对 TCP/IP 的实现并没有强制规定,由此不同的 TCP/IP 方案中有可能都有自己的特定方式。Nmap 主要是根据这些细节上的差异来判断操作系统的类型的。
具体实现方式如下:
Nmap 内部包含了2600多已知系统的指纹特征(在文件 nmap-os-db 文件中)。将此指纹数据库作为进行指纹对比的样本库。分别挑选一个 open 和 closed 的端口,向其发送经过精心设计的 TCP/UDP/ICMP 数据包,根据返回的数据包生成一份系统指纹。将探测生成的 指纹与 nmap-os-db 中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。
2)OS 侦测用法:
- -O:指定 Nmap 进行 OS 侦测。
- –osscan-limit:限制 Nmap 只对确定的主机进行 OS 探测(至少需确知该主机分别有一个 open 和 closed 的端口)。
- –osscan-guess:大胆猜测对方的主机的系统类型。由此准确性会下降不少,但是会尽可能多为用户提供潜在的操作系统。
3)使用演示:
命令:nmap -O 192.168.0.100
1.10 扩展 BurpAPP 抓包
一. 手机端配置:
让安卓手机和电脑连入同一个WIFI ,即是在同一个无线局域网下。
查看电脑的IP,本地输入:ipconfig
设置手机代理 IP,将手机的代理IP 设置的和电脑 wifi 的IP一致,
代理设置为 手动,设置主机名为电脑无线局域网IP,端口可以随便设置(如:8080),其他的设置默认。
二. 电脑端配置:
- 打开 Burpsuite ,设置代理代理服务器,设置的IP 和端口要和 手机上设置的一致
1.11. 扩展:常见信息泄露利用方法
1.11.1. Git 导致文件泄露
由于目前的web项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码完全分离,隶属两个不同的项目。表态文件使用git 来进行同步发布到服务器,然后使用nginx指向到指定目录,以达到被公网访问的目的。
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。
例如:192.168.133.130/zvuldrill-git/.git/config
1.11.2. DS_store 导致文件泄露
Ds_store 是 Mac 下 Finder 用来保存如何展示文件/文件夹的数据文件,每个文件下对应一个。由于开发/设计成员在发布代码时未删除文件夹中隐藏的 Ds_store ,可能造成文件目录结构泄露,源代码文件等敏感信息的泄露。
我们可以模仿一个环境,利用 phphstudy 搭建 PHP 环境,把 Ds_store 文件传到相关的目录,然后利用工具进行相关检测。
工具:ds_store_exp,下载地址:https://github.com/lijiejie/ds_store_exp
为了让实验显得更加真实,我们在本地搭建环境,然后建立一个 admin 和 hello 文件夹,利用该工具运行完成后,查看工具文件夹有什么结果。
这是一个.DS_Store文件泄漏利用脚本,它解析.DS_Store文件并递归下载文件到本地。
1.11.3. SVN 导致文件泄露
Subversion.简称svn ,是一个开放源代码的版本控制系统,相对于的 RCS, CVS,采用了分支管理系统,它的设计目标就是取代cvs,互联网上越来越多的控制服务从cvs 转移到Subversion。
Subversion使用服务端–客户端的结构 ,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射时(称为“工作副本”)。在这两端之间是通过各种仓库存取层(Repository Acess,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP,SSH等,或本地文件的方式来对仓库进行操作。
SVN 漏洞在实际渗透测试过程中,利用到也比较多,由于一些开发管理员疏忽造成,原理类似DS_Store漏洞。我们这里不再进行搭建环境,给大家推荐工具.利用方法如下:
- 漏洞利用工具: Seay-SVN 漏洞利用工具。
- 添加网站 url
- 在被利用的网址后面加 /.svn/entries,列出网站目录,甚至载整站。
1.11.4. WEB-INF/web.xml 泄露
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: 数据库配置文件。
原因:
通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等, 在使用这种架构的时候,由于对静态资源目录或映射文件配置不当,可能会引发一些安全问题,导致 web.xml 等文件能够被读取。
1.12 扩展: ZoomEye hack
ZoomEye支持公网设备指纹检素和Web指纹检索的网站,指纹检索包括应用名称,版本,前端框架,后端框架,服务端语言、服务器操作系统,网站容器,内容管理系统和数据库等.
设备指纹包括:应用名、版本开放端口,操作系统,服务名,地理位置等。
实战搜索
我们今天主要讲下如何使用他的语法规则去高级搜索,搜索有用信息。
主机设备搜索组件名称。
- app:组件名
- ver:组件版本
例1:搜索使用iis6.0主机:app:”Microsoft-IIS” ver”6.0”,可以看到0.6秒搜索到41,781,210左右的使用iis6.0的主机。
例2:搜索使weblogic主机: app: “weblogic httpd” port: 7001 ,可以看到0.078秒搜索到42万左右的使用weblogic的主机。(反序列化漏洞)
例3:查询开放3389端口的主机: port : 3389
例4:查询操作系统为Linux系统的服务器, os:linux
例5:查询公网摄像头: service:”routersetup”
例6:搜索美国的Apache 服务器:app: Apache country:US ,后面还可以接 city
例7:搜索指定IP信息:ip:121.42.173.26
例8:查询 taobao.com 有关域名信息:site:taobao.com
例9:搜索标题中包含该字符的网站:title:weblogic
例10:keywords:Nginx
1.13. 扩展:fofa hack
domin=”” || ip=”” || host=”” || title=”” || header=”” ;
protocol=”https”,搜索指定协议类型
app=”phpinfo”,搜索某些组件相关系统
host=”baidu.com”,搜索包含有特定字符的 URL
title=”powered by” && os=windows 搜索网页标题中包含有特定字符并且系统是 windows 的网页
详细看官方详细文档:https://fofa.so/help_articles/