一切没有授权的渗透都是违法犯罪。
1.信息收集的重要性
渗透的本质就是信息收集
2.最大化增加攻击面
一般企业的主站点会关闭大部分业务和部署安全设备所以我们需要扩大攻击面,收集更多的子域名和旁站,打击薄弱点,也更大程度的增加漏洞产出。
3.信息泄露
收集的过程中需要关注一些敏感信息泄露,如:姓名、电话、邮箱、身份证、学号、账号密码、开发时的注释、中间件版本、CMS、代码框架、组件版本,这些都是突破口。
一、目标确定
确定测试目标,主要看能不能获得授权,一切没有授权的渗透都是违法犯罪。
补天src:https://www.butian.net/Reward/plan/2
漏洞盒子:https://www.vulbox.com/service/src
漏洞银行:https://www.bugbank.cn/
360漏洞众包响应平台:https://src.360.net
二、子域名
一些企业会注册多个域名来部署服务,不同域名指向不同的服务端口,我们可以通过在线平台查询域名的注册信息,我们通过收集子域名和旁站扩大攻击面。
1.域名信息查询
whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)
爱站:https://whois.aizhan.com/
站长之家:https://whois.chinaz.com/
腾讯云:https://whois.cloud.tencent.com/
阿里云:https://wanwang.aliyun.com
国外查询:https://who.is/
中国互联网信息中心:https://ipwhois.cnnic.net.cn/
2.备案信息查询
每个企业的网站都会有备案信息,查看备案信息注册了多少个网站
爱站:https://whois.aizhan.com/
站长之家:https://whois.chinaz.com/
腾讯云:https://whois.cloud.tencent.com/
阿里云:https://wanwang.aliyun.com
国外查询:https://who.is/
中国互联网信息中心:https://ipwhois.cnnic.net.cn/
3.企业信息查询
这些网站的企业信息里往往会有很多资源。
企业预警通:https://www.qyyjt.cn/
小蓝本:https://www.xiaolanben.com/
企查查:https://www.qcc.com/天眼查:https://www.tianyancha.com/
4.域名解析(dns解析)
通过解析域名获取域名绑定的IP,之后通过ip反查来获取更多的旁站。
微步社区:https://x.threatbook.com/
网站IP反查站长工具:https://mip.chinaz.com/Ip/IpSame
ip33:http://www.ip33.com/
云悉指纹:https://www.yunsee.cn/
潮汐指纹:http://finger.tidesec.net/
dnsdump:https://dnsdumpster.com/
高精度查ip:https://chaipip.com/index.html
三、端口探测
端口是什么?端口就是服务。
端口扫描是一种网络安全技术,用于探测目标主机上的开放端口。 通过端口扫描,攻击者或安全研究人员可以发现目标主机上运行的服务,从而评估系统的安全性或寻找潜在的漏洞。
1.nmap :https://nmap.org/ nmap 扫描的很仔细,如果使用了-A参数,那么会将系统信息也查出来 2.masscan:https://github.com/robertdavidgraham/masscan 3.goby : https://cn.gobies.org/ 4.AssetScan :https://github.com/JE2Se/AssetScan 5.御剑端口扫描:https://github.com/foryujian/yujianportscan
1.常用端口
文件共享端口 21/22/69 FTP/Tftp文件传输协议 2049 NFS服务 139 Samba服务 389 Ldap目录访问协议 远程连接服务端口 22 SSH远程连接 23 Telnet远程连接 3389 Rdp远程桌面连接 5900 VNC 5632 PyAnywhere服务 web应用服务端口 80/443/8080/8443 常见web服务端口 7001/7002 WebLogic控制台 8080/8089 Jboss/Resin/Jetty/Jenkins 9090 WebSphere控制台 4848 GlassFish控制台 1352 Loutus domino邮件服务 10000 Webmin-Web控制面板 数据库服务端口 3306 MySQL 1433 MSSQL 1521 Oracle数据库 5432 PostgreSQL数据库 27017/27018 MongoDB 6379 Redis数据库 5000 SysBase/DB2数据库 邮件服务端口 25 SMTP邮件服务 110 POP3协议 143 IMAP协议 网络常见协议端口 53 DNS域名系统 67/68 DHCP服务 161 SNMP协议 特殊服务端口 2181 Zookeeper服务 8069 Zabbix服务 9200/9300 Elasticsearch服务 11211 Memcache服务 512/513/514 Linux Rexec服务 873 Rsync服务 3690 Svn服务 50000 SAP Management Console
四、目录扫描
目录扫描可以让我们发现这个网站存在多少个目录,多少个页面,探索出网站的整体结构。通过目录扫描我们还能扫描敏感文件,后台文件,数据库文件,和信息泄露文件,等等。
往往以收集各种字典进行爆破来发现目录或文件
WebPathBrute:https://github.com/7kbstorm/7kbscan-WebPathBrute dirsearch:https://github.com/maurosoria/dirsearch dirmap:https://github.com/H4ckForJob/dirmap 御剑:https://github.com/foryujian/yjdirscan
字典搜索FUZZ
五、CMS识别(框架识别)
别人开发的源码就叫cms是建站管理系统,是提供现成的网站框架,识别出这些框架,可以从框架历史漏洞下手
其中一些工具也有漏扫的功能 wahtweb :https://github.com/winezer0/whatweb-plus EHole(棱洞)3.0 :https://github.com/EdgeSecurityTeam/EHole tanggo:https://tanggo.nosugar.tech/ TideSec:https://github.com/TideSec/TscanPlus ez:https://docs.ezreal.cool/docs/dowload/ dismap:https://github.com/zhzyker/dismap 在线CMS识别: http://whatweb.bugscaner.com/ https://www.yunsee.cn/ 在线cms识别 https://chapangzhan.com/ http://finger.tidesec.com/ 一些浏览器插件也可以识别框架如:Wappalyzer
六、确定目标真实ip(分辨CDN)
CDN即内容分发网络,它通过在多个地区布置服务器节点的方式将流量以最快的方式传输,当用户访问部署有CDN服务的网站,会优先访问最近的CDN节点加快访问的速度。 这也导致了我们进行测试的时候,无法正确访问目标的服务器,即便通过漏洞拿下的也只是一台CDN节点服务器,并且CDN是有恶意流量拦截功能的,所以我们需要找到真实的IP地址来进行我们的测试。
1.命令查询
nslookup <域名>
2.全球ping
一些网络测绘平台和类似微步的威胁情报中心也有这个功能,本质上就是dns解析
站长工具海外测速:https://tool.chinaz.com/speedworld ITDOG:https://www.itdog.cn/ping 全球测速:https://ranking.fenban.net/Ping/cn/index.asp Coding.Tools:https://coding.tools/cn/nslookup#google_vignette 在线ping:https://tcping8.com/ping 测速网:https://www.cesu.net/ping/
3.CDN的绕过
11种绕过CDN查找真实IP方法:https://www.cnblogs.com/qiudabai/p/9763739.html 1.内部邮箱源,收集到内部邮箱服务器IP地址 2.网站phpinfo文件 phpinfo.php 3.分站IP地址,子域名一般不会配置 CDN很贵,很有可能分站就不再使用CDN。 4.国外访问 https://asm.ca.com/en/ping.php 5.查询历史解析IP地址: https://dnsdb.io/zh-cn dns查询 https://x.threatbook.cn 微步在线 http://toolbar.netcraft.com/site report?ur=xxx在线域名查询
3.1.获取邮箱
1.可以获取企业真实的IP地址 2.社工前的准备工作 邮箱基本都是真实地址,未使用cdn,可以绕过cdn 在线查询: https://phonebook.cz/?target=2 https://hunter.io/ https://www.email-format.com/ 获取邮箱之后获取真实ip地址
3.2通过数据包
在一些js和数据包中往往会带有一些ip地址,而由网站本身发起的请求大概率是真实的ip,非CDN自动解析得来的
七、WAF识别
判断安全狗,阿里云云盾, 360网站卫士,护卫神等WEB应用程序防火墙,便于采取绕过WAF的 办法
1.Nmap探测WAF有两种脚本:
http-waf-detect : nmap -p80,443 --script=http-waf-detect ip http-waf-fingerprint : nmap -p80,443 --script=http-waf-fingerprint ip
2.手动检测肉眼识别
在搜索框输入恶意代码, WAF拦截后肉眼判断WAF
看图识WAF——搜集常见WAF拦截页面:https://www.cnblogs.com/charon1937/p/13799467.html
八、敏感信息泄露查询
1.Github查找公司名称,网站名称查看是否存在信息泄露 2.Google hack 搜索公司文件,备份文件是否有泄露 3.robots.txt,sitemap.xml文件可以看到管理员隐藏那些敏感文件以及探测网站cms信息 4.注释或js文件信息泄露 5.目录扫描备份文件,phpinfo测试页面 在线工具:https://tools.zjun.info/googlehacking/
1.Github查找语法
https://www.cnblogs.com/ifme/p/12143729.html
https://docs.github.com/zh/search-github
Github网址:https://github.com/ 常用: in:name test 标题搜索含有关键字test in:readme test Readme文件搜素含有关键字 user:test 用户名搜素
2.Google、bing、baidu搜索引擎语法
https://zhuanlan.zhihu.com/p/651249327
https://www.cnblogs.com/cybersecuritystools/p/12794452.html
https://blog.csdn.net/yakoo5/article/details/45917487
Google需要翻墙,般用来收集-用老生常谈的方法 这样收集特定的域名 site:xxx.cn 通常用来收集特定资产的敏感信息如:
inurl: 搜索包含指定字符的URL intext: 正文内容含有某个字符 intitle: 网页标题含有某个字符 index of: 查找允许目录浏览的页面,比方说我想看看/admin目录下的文件:index of /admin
3.robots.txt和sitemap.xml文件
robots.txt是拒绝爬虫,爬取的目录,那些目录有些特征是代表了cms,并且该目录是管理员不想让别人访问的,我们可以尝试访问看有没有收获 sitemap.xml是用于指示网站上的所有可访问页面的结构和布局。它通常包含网站的各个页面、子目录和链接的详细信息。在渗透测试中,通过查看和分析 sitemap.xml 文件,可以了解网站的整体结构和组成部分。
4.注释或js文件信息泄露
开发过程中,开发者可能在HTML中写有关敏感信息的注释.如password 部署到生成文件前,通常会删除.但是可能有时会因为有些人没有安全意识而忘记. 也有可能是js代码会保留一些敏感信息,url等指向另一网站的链接如果访问用户是管理员,将在页面上增加一个超链接 Admin panel 在./admin-f6zfiz
5.工具提取js里面的url和接口
使用的工具提取前端中js代码使用的旁站/url
1.URLFinder
https://github.com/pingc0y/URLFinder
用法:URLFinder.exe -u https://www.baidu.com -s al1 -m 3 -o ./baidu.htm1
2.JSFinder (在kail安装)
https://github.com/Threezh1/JSFinder
用法:python JsFinder.py-u https://ww.baidu.com
3.LinkFinder支持python3
https://github.com/GerbenJavado/LinkFinder
用法:分析整个域及其JS文件 python linkfinder.py -i https://example.com -d
4.Packer-Fuzze (在win10安装)
https://github.com/rtcatc/Packer-Fuzzer
针对webpack(打包器),使用的js提取工具,普通工具无法提取打包的js webpack简介: webpack是一个打包器(bundler),它能将多个js文件打包成一个文件(其实不止能打包js文件,也能打包其 他类型 的文件,可以查看官方文档,官方文档也明确表明webpack是一个打包器 Packer-Fuzze安装命令: 1 . python -m pip install --upgrade pip 2 . pip install python-docx==0.8.11 -i https://mirrors.aliyun.com/pypi/simple 3 . pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple 4 . pip3 install urllib3==1.25.11 -i https://mirrors.aliyun.com/pypi/simple 5 . python PackerFuzzer.py --help 语法:python PackerFuzzer.py -u https://www.6g4nxb.com/ -t adv
6.特殊文件
目录扫描的目的除了了解目录大致结构,额外目的就是想查询是否有特殊文件给我们提供额外信息
(1)调试文件
调试消息有时可能包含用于发起攻击的重要信息,包括 : 可以通过用户输入操作的关键会话变量的值 web中间件的主机名和登录凭据 服务器上的文件和目录名称 用于加密通过客户端传输的数据的密钥 调试信息有时可能会记录在单独的文件中。
(2)备份文件
有时候,网站自身可能由于某些原因,泄露其源代码: 比如用Vim编程,在修改文件后 系统会自动生成一个带~的备份文件 , 某些情况下可以对其下载进行查看; 还有一些文件备份会在文件后面加上 .bak .rar .zip .7z .tar.gz .bak .swp .txt .html
(3).git文件
利用工具 : GitHack、gittools(推荐)、dvcs-ripper
几乎所有网站都是使用某种形式的版本控制系统(例如Git)开发的默认情况下,Git项目将其所有版本控制数据存储在名为.git的文件夹中 有时,网站在生产环境中公开此目录。在这种情况下,您可能只需浏览到即可访问它/.git。而且还可以下载到本地,用本地安装的Git打开它 以访问网站的版本控制历史记录 这可能无法让您访问完整的源代码, 但是您可以阅读更改的代码片段 这仍然可能存在某些敏感数据
(4).svn文件夹
利用工具 :dvcs-ripper Seay-Svn
当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。
(5).DS_Store
利用工具 : ds_store_exp
DS_Store 是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。这个文件可以删除,删除以后的副作用就是这些信息的失去。(当然,这点副作用其实不是太大)。 在和别人交换文件应该把 .DS_Store 文件删除比较妥当,因为里面包含了一些你不一定希望别人看见的信息(尤其是网站,通过 .DS_Store 可以知道这个目录里面所有文件的清单,很多时候这是一个不希望出现的问题)。 由于代码在部署上线的时候没有删除这个文件,导致不必要的信息泄漏。
(6)web.xml
漏洞成因: 通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。 漏洞检测以及利用方法: 直接在域名后面加上WEB-INF/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:数据库配置文件
7.报错页面信息
信息泄露的最常见原因之一是冗长的错误消息。应密切注意测试期间遇到的所有错误消息。 错误消息可能提醒测试人员应该输入什么消息或者什么数据类型的消息,这可以帮助我们识别可利用的参数来缩小攻击范围详细的错误消息还可以提供有关网站使用的技术信息 .如数据库类型,模板类型,服务器版本号等.可能还会发现该网站正在使用某种开源框架 , 在这种情况下,您可以下载研究源代码,可能有意外收获 错误消息对SQL注入,用户名枚举等都很关键.
8.配置不安全导致信息泄露
由于配置不当,网站有时容易受到攻击。 又由于第三方技术的广泛使用,这种情况尤为普遍,第三方技术的很多配置选项并不一定被使用它们的人员所理解。 在其他情况下,开发人员可能会忘记在生产环境中禁用各种调试选项 例如,HTTP TRACE方法被设计用于诊断目的 , TRACE允许顾客看到通过请求链的那一端在接收了些什么并使用那些数据来测试和诊断信息情况,开启可能导致某些危害
九、网络测绘平台
shodan:https://www.shodan.io/ fofa:https://fofa.info/ 奇安信鹰图:https://hunter.qianxin.com/ 钟馗之眼:https://www.zoomeye.org/ 360quake:https://quake.360.net/
以下用fofa当案例,每个平台都会提供手册
1.ip反查域名
ip="xxx.xx.xx.xx" 会查询到该用ip为出口的网站
2.子域名查询
domain="顶级域名" host="顶级域名" 域名内包含该字段的都会被查出来 如: domain="baidu.com" 结果: g20.baidu.com mx20.baidu.com
3.根据特征查询
title="这里写网站的标题" 只要包含该标题的网站都会出现 body="写特征" 比如 我们想要査dedecms这个网站,这里直接写dedecms即可,必须是body体里有的特征 app="组件特征" 例如 根査找shiro漏洞,apache-shiro,组件特征不一定会展示再body体里 icp="" 这里写备案号查找 status_code="200" header 中的状态码 banner="HTTP/1.1 200 OK" 协议数据的状态
4.根据地区查询
region= 地区/省份 city= 城市
5.特有网站标志查询
ico_hash= ico图标搜索 大公司有自己的专属图标
6.https证书查询
cert="5809721241778826100035307829539176563"
7.server服务器类型
标签:文件,www,github,收集,信息,域名,https,com From: https://blog.csdn.net/2201_75446043/article/details/143059241server="apache"