修改补充自22年4月7日的文章
在实战中,越是小的公司企业越难以渗透成功,为什么呢?因为,公司的业务少,只有那么几个暴露在外网的服务,服务越少越容易管理,越不容易出现漏洞,所以攻击面越大我们的成功率就越大,但是如何扩大攻击面呢?
1.收集尽量全的企业域名(包括各种子域名以及子公司的域名,越全越好)
2.收集尽量全的企业申请的公网 IP
3.对所有收集到的域名以及 IP 地址进行端口扫描(由于时间可能比较久,所以可以选择利用 zoomeye、shodan、censys 等平台)
4.针对不同的服务进行对应的渗透测试(尤其是可能存在漏洞的中间件)
经过这几个步骤,你会收集到很多的资料,你的成功率跟你收集的资料的质量息息相关。这几个步骤看起来并不复杂,但是其中涉及的安全知识方方面面非常多,如何收集的够全,如何测试的更准确都是我们需要关注的。
企业信息收集
- 企查查
- 爱企查
- 天眼查
- whois查询
- 获取公司和子公司信息
- 微信、微博、邮箱、生活号
例如查询百度的资产,通过爱企查高级查询:
Whois查询
域名收集
- SSL证书
- IP反查
- ICP备案
- Google语法、Baidu
- whois查询
- DNS解析记录
- 工具
- Oneforall
- bbot
- Ksubdomain
- FuzzDomain
- Layer
- 在线子域名查询
例如通过SSL证书收集:
Google语法
关键字 | 说明 |
---|---|
Site | 指定域名 |
Inurl | URL中存在关键字的网页 |
Intext | 网页正文中的关键字 |
Filetype | 指定文件类型 |
Intitle | 标题中的关键字 |
link | 返回所有和某url做了链接的url |
Info | 查找指定站点的一些基本信息 |
cache | 搜索Google里关于某些内容的缓存 |
例如查找教育网站的后台系统:
指纹识别
- 浏览器插件
- Wappalyzer
- Heimdallr
- 在线工具
- 离线工具
- yakit、nuclei
- Httpbruter
- Finger
- Goby
- Nmap
漏洞数据库
乌云(WooYun.org)历史漏洞查询—http://WY.ZONE.CI
Exploit Database - Exploits for Penetration Teste…
Vulmon - Vulnerability Intelligence Search Engine
云悉互联网WEB资产在线梳理|在线CMS指纹识别平台 - 云悉安全平台
Search Web by Domain | Netcraft
同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan
DNSdumpster.com - dns recon and research, find and lookup dns records
💀 Sploitus | Exploit & Hacktool Search Engine
知道创宇 Seebug 漏洞平台 - 洞悉漏洞,让你掌握前沿漏洞情报!
searchcode | source code search engine
Published | Zero Day Initiative
Recently Updated CVEs | Tenable®
IP段、端口收集
通过whois查询、空间测绘引擎搜索ip、域名,获取IP段,检查是否有CDN
直接对IP段进行扫描,发现更多服务,并进行指纹识别
- 微步在线
目录扫描
- Dirsearch
- Xray
- Findsomething
- Urlfinder
微信、支付宝小程序
- *小蓝本(***https://www.xiaolanben.com/****)**可以直接新媒体,能查到公司旗下有哪些公众号小程序或者APP。
- 如何通过微信自带接口获取目标有用信息?每一个小程序展示页内都有“更多资料”这个功能,其中含有“开发者”、“服务及数据网址”等实用信息
- 微信小程序抓包分析
- 微信小程序源代码提取 & 分析
- 安卓保存路径:/data/data/com.tencent.mm/MicroMsg/{用户ID}/appbrand/pkg/
- iOS保存路径:/var/mobile/Containers/Data/Application/{程序UUID}/Library/WechatPrivate/{用户ID}/WeApp/LocalCache/release/{小程序ID}/
- 模拟器路径:
/mnt/shared/Other
Mac OS
路径:/Users/apple/Library/ApplicationSupport/NoxAppPlayer/Nox_share/Other
可成功将小程序包从模拟器提取至电脑。- 使用
https://data.hackinn.com/tools/wxappUnpacker.zip
小程序逆向还原工具(依赖node.js
)进行解包。
微信公众号
微信公众号数据分析平台,也可以作为我们信息收集的工具,比如:
西瓜数据(http://data.xiguaji.com/)
*小蓝本(***https://www.xiaolanben.com/****)**
APP收集
- 工具收集
- 抓包、流量分析
空间测绘引擎
- 熟悉语法:ip.province限制IP省份,ICP备案语法
- 通过企业名称搜索、反查IP、多条件配合。实现精确、大范围的资产收集
例如收集某地区某组织资产:
可以通过IP继续收集
ICP查询
SSL证书查询
多条件查询
爆破、字典、默认密码
- 平时收集字典,打造精简、高效的强力字典。比如mnbvcxz、minioadmin啥的
- 信息泄漏搜集。比如Google语法、社工库等收集账号信息,生成专属字典(排列组合、多因子认证)
爆破
- 是否有验证码,能否绕过
- 验证码无效
- 验证码复用
- 验证码越权
- 账号重复使用,比如在数据包后加空格
- 多因子认证,收集第三方的泄漏信息,或者和验证码一样可以绕过
默认凭证
01-棱角安全团队 -> https://forum.ywhack.com/bountytips.php?password 02-ihebski师傅 -> https://github.com/ihebski/DefaultCreds-cheat-sheet
通用弱口令
01-weakpass项目 -> https://weakpass.com/ 02-nordpass团队 -> https://nordpass.com/most-common-passwords-list/
01-鸭王师傅 -> https://github.com/TheKingOfDuck/fuzzDicts 02-3hadow师傅 -> https://github.com/3had0w/Fuzzing-Dicts 03-c0ny1师傅 -> 上传漏洞fuzz字典生成脚本 -> https://github.com/c0ny1/upload-fuzz-dic-builder 04-gh0stkey师傅 -> https://github.com/gh0stkey/Web-Fuzzing-Box
1 | gh0stkey师傅文章1 -> https://gh0st.cn/archives/2019-11-11/1 |
05-huyuanzhi2师傅 -> https://github.com/huyuanzhi2/password_brute_dictionary 06-danielmiessler师傅 -> https://github.com/danielmiessler/SecLists 07-mstxq17师傅 -> https://github.com/mstxq17/SeCDictionary/ 08-匿名师傅 -> https://pastebin.com/LMuD0LGa 09-insightglacier师傅 -> https://github.com/insightglacier/Dictionary-Of-Pentesting
组件
注意识别二开的站点
技巧:通过工具识别,通过icon识别,通过网页特殊页面(404、报错页面)识别。
指纹识别后,可以通过目录扫描、xray被动扫描、js接口泄漏等方式收集未授权访问的组件
- Druid未授权访问
- Swagger UI未授权访问
- ./doc.html等等(目录扫描)
- Struts2
Struts2是一个优雅的,可扩展的框架,用于创建企业准备的Java Web应用程序。出现的漏洞也着实的多每爆一个各大漏洞平台上就会被刷屏。
struts识别:结尾为.do后缀
可利用漏洞
- S2-046 CVE-2017-5638 Struts 2.3.5-2.3.31,Struts 2.5-2.5.10
- S2-045 CVE-2017-5638 Struts 2.3.5-2.3.31,Struts 2.5-2.5.10
- S2-037 CVE-2016-4438 Struts 2.3.20-2.3.28.1
- S2-032 CVE-2016-3081 Struts 2.3.18-2.3.28
- S2-020 CVE-2014-0094 Struts 2.0.0-2.3.16
- S2-019 CVE-2013-4316 Struts 2.0.0-2.3.15.1
- S2-016 CVE-2013-2251 Struts 2.0.0-2.3.15
- S2-013 CVE-2013-1966 Struts 2.0.0-2.3.14
- S2-009 CVE-2011-3923 Struts 2.0.0-2.3.1.1
- S2-005 CVE-2010-1870 Struts 2.0.0-2.1.8.1
参考:
- Spring 框架
Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache License 2.0开源许可协议的形式发布,也有.NET平台上的移植版本。Spring Framework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
springboot识别:favicon图标,报错页面
可利用漏洞
- CVE-2010-1622
- CVE-2018-1274
- CVE-2018-1270
- CVE-2018-1273
- 反序列化
- 目录穿越
参考
- thinkphp
- thinkphp识别:favicon图标,报错页面,thinkphp空白页面。泄漏版本后可以使用通杀漏洞测试
- Tomcat
Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。
端口号:8080
攻击方法:
- 默认口令、弱口令,爆破,tomcat5 默认有两个角色:tomcat和role1。其中账号both、tomcat、role1的默认密码都是tomcat。弱口令一般存在5以下的版本中。
- 在管理后台部署 war 后门文件
- 远程代码执行漏洞
参考:
- Jboss
是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的 J2EE 的一个Web 操作系统(operating system for web),它体现了 J2EE 规范中最新的技术。
端口:8080
攻击方法:
- 弱口令,爆破
- 管理后台部署 war 后门
- 反序列化
- 远程代码执行
参考:
- WebLogic
WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
weblogic识别:拼接路径访问
/console/login/LoginForm.jsp /wls-wsat/CoordinatorPortType /_async/AsyncResponseService /ws_utc/config.do
端口:7001,7002
攻击方法:
- 弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic
- 管理后台部署 war 后门
- SSRF
- 反序列化漏洞
- weblogic_uac
参考:
- WebSphere
IBM公司一套典型的电子商务应用开发工具及运行环境。
端口:默认端口:908*;第一个应用就是9080,第二个就是9081;控制台9090
攻击方法:
- 控制台登录爆破
- 很多内网 websphere 的控制台存在弱口令 / 默认口令,可以使用 admin/admin 以及 webshpere/webshpere 这种口令登录。通过该口令登录控制台后,可以部署 war 包,从而获取到 WEBSHELL 。
- 反序列化
- 任意文件泄露
参考:
- Glassfish
- IIS:Windows 的 WWW 服务器
- 端口:80
- 攻击方法:
- IIS,开启了 WebDAV,可以直接详服务器 PUT 文件
- 短文件名枚举漏洞
- 远程代码执行
- 提权漏洞
- 解析漏洞
- 参考:
- https://masterxsec.github.io/2017/06/07/IIS-write-%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8/
- http://www.freebuf.com/articles/4908.html
- https://www.anquanke.com/post/id/85811
- Apache
- 端口:80
- 攻击方法:
- 解析漏洞
- 目录遍历
- Nginx
- 端口:80
- 攻击方法:
- 解析漏洞
- 目录遍历
- CVE-2016-1247:需要获取主机操作权限,攻击者可通过软链接任意文件来替换日志文件,从而实现提权以获取服务器的root权限。
- 参考:
- lighttpd
- 端口:80
- 攻击方法:
- 目录遍历
- 常见运维系统
- Gitlab
- Jenkins
- Puppet
- Ansible
- Nagios
- Zabbix
- Cacit
- Splunk
信息泄漏与未授权访问
github、gitee、gitlab等(高级搜索https://github.com/search/advanced,配合工具https://github.com/damit5/gitdorks_go),搜索源代码(代码审计,默认账号)、账号密码的泄漏。
网盘搜,通过在线工具搜索泄漏的信息
google语法
网站前后端分离,大部分权限控制交给前端,导致js中隐藏未授权或者可绕过的前端鉴权。
前后端分离可提高开发效率,同时防止黑客更直接的对服务器造成危害,但权限控制的工作量全部交给前端会导致大量页面未授权或者后端接口未授权的信息泄露,从而再次危害其他系统的安全。
例如某后台登陆页面:
利用somefinder插件发现大量未授权接口
注意很多链接是不会被somefinder这种静态识别的工具识别出来。可能需要手动搜索。例如以下action:
- 前端鉴权
有一个广告拦截插件,有几率屏蔽前端鉴权:
- 前端鉴权
CDN识别
- 多地ping:https://ping.chinaz.com/
- 历史DNS解析:https://viewdns.info/