渗透测试中信息收集是很重要的一步,他很大程度可以决定我们的测试结果。信息收集到的资产、信息越广、越全面,我们的测试结果更加准确,攻击可能性越大。
如果给我们一个公司名字,那么我们首先就要收集该公司的资产信息.(web网站、APP、PC端应用、小程序、公众号等);然后分别对其资产进行更细致的收集。
通过公司获取其资产的:
标签
名称
地址
企业信息
天眼查
天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统
企业信息
小蓝本(免费)
获客营销系统_ai智能拓客系统_企业获客系统-小蓝本获客系统
企业信息
爱企查(pdd买会员)
百度安全验证
企业信息
企查查
企查查 - 企业工商信息查询系统_查企业_查老板_查风险就上企查查!
企业信息
国外企查
https://opencorporates.com/
企业信息
启信宝
启信宝-企业查询_企业信用信息平台
web信息我们通常拿到的就是一个域名,首先的思路就是备案信息查询、反查解析、CDN、子域名、端口、目录扫描、架构等信息的收集。
备案信息
备案信息查询
ICP备案查询网 - 网站备案查询 - 工信部域名备案查询实时数据
备案信息
备案管理系统
https://beian.miit.gov.cn/
思路:
- DNS数据
- 证书查询
- 利用网络空间搜索引擎搜索
- 威胁情报平台
- 利用字典暴力破解(枚举法)
标签
名称
地址
DNS数据
dnsdumpster(子域名信息可能得不到,但是可以看到一些解析信息)
DNSDumpster.com - dns recon and research, find and lookup dns records
证书查询
CertificateSearch
crt.sh | Certificate Search
网络空间
FOFA
网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统
网络空间
全球鹰
鹰图平台
网络空间
360
360网络空间测绘 — 因为看见,所以安全
威胁情报
微步在线 情报社区(也可以进行IP反查 解析记录)
微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区
威胁情报
奇安信 威胁情报中心
奇安信威胁情报中心
威胁情报
360 威胁情报中心
360安全大脑
枚举解析
在线子域名查询
在线子域名二级域名查询工具 - 在线工具
枚举解析
DNSGrep子域名查询
https://www.dnsgrep.cn/subdomain
枚举解析
工具强大的子域名收集器
GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具
网络空间搜索引擎:根据语法搜。domain="qq.com"
python https://blog.csdn.net/weixin_65049289/article/details/oneforall.py --target https://bilibili.com run
架构资产主要包括网站使用的语言、框架、服务器系统、中间件、组件、数据库等。这些信息直接地决定了网站的漏洞与攻击手法。指纹识别主要是CMS识别
标签
名称
地址
指纹识别
Wappalyzer(浏览器插件)
https://github.com/AliasIO/wappalyzer
指纹识别
TideFinger潮汐
TideFinger 潮汐指纹 TideFinger 潮汐指纹
指纹识别
WhatWeb
https://github.com/urbanadventurer/WhatWeb
指纹识别
数字观星Finger-P
指纹收录平台
框架组件的识别主要看图标、报错信息、数据包中的cookie值
- git源码泄露
Git是一个开源的分布式版本控制系统,在执行初始化目录的时候,会在当前目录下自动创建一个目录,用来记录代码的变更记录等。发布代码的时候,如果没有把这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
首先访问/.git目录,然后根据返回状态码判断是否存在(403存在)
利用工具:https://github.com/lijiejie/GitHack
- svn源码泄露
SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。
工具:https://github.com/callmefeifei/SvnHack(python2运行)
开源
我们可以通过指纹信息的收集或者页面信息、数据包等判断CMS,如果确定了CMS可以网上直接下载其源码。
如果不知道其具体CMS,可以去github、gitee等平台找。
https://github.com/
https://www.huzhan.com/
上面指纹识别到vue框架后,我们可以利用下面方法进行更多的信息收集。
我们都知道网页中的JS代码我们是可以看到的,在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞,JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取真实的点。获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用属于白盒测试(默认有源码参考),一般会在JS中寻找更多的URL地址,在JS代码逻辑(加密算法,APIkey配置,验证逻辑等)进行后期安全测试。(未授权、信息泄露等)
安全问题:
- 源码泄露
- 未授权,在js中找到更多的url路由
- 敏感key泄露
- API接口安全
app="vue.js"
半自动化BP分析
官方插件:JS link Finder & JS Miner
第三方插件:HaE & Unexpected_information
插件会对我们抓到的数据包进行分析提取,根据我们的规则在不同的数据包加不同的颜色,让我们更加直观的看到一些敏感信息、JS接口和一些特殊字段。
自动化分析
JSINFO-SCAN:递归爬取域名(netloc/domain),以及递归从JS中获取信息的工具
工具:https://github.com/p1g3/JSINFO-SCAN
发现它扫描到了大量的子域名、接口信息。
浏览器插件
工具:https://github.com/momosecurity/FindSomething
该工具是用于快速在网页的html源码或js代码中提取一些有趣的信息的浏览器插件,包括请求的资源、接口的url,请求的ip和域名,泄漏的证件号、手机号、邮箱等信息。
FUZZ
他是基于字典进行爆破更多的js文件,分析更多的信息。
工具:https://github.com/ffuf/ffuf
字典:https://wordlists.assetnote.io
Packer-Fuzzer
工具:https://github.com/rtcatc/Packer-Fuzzer
一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具。他通过duijs文件的分析可以帮我们提取可能存在的漏洞的信息。
python PackerFuzzer.py -u http://xxxx
端口扫描可以让我们知道目标开启了哪些服务、数据库、中间件等信息,从这些服务中确定攻击类型。
端口
服务
渗透用途
tcp 20,21
FTP
允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
tcp 22
SSH
可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等
tcp 23
Telnet
爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令
tcp 25
SMTP
邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑
tcp/udp 53
DNS
允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
tcp/udp 69
TFTP
尝试下载目标及其的各类重要配置文件
tcp 80-89,443,8440-8450,8080-8089
各种常用的Web服务端口
可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……
tcp 110
POP3
可尝试爆破,嗅探
tcp 111,2049
NFS
权限配置不当
tcp 137,139,445
Samba
可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
tcp 143
IMAP
可尝试爆破
udp 161
SNMP
爆破默认团队字符串,搜集目标内网信息
tcp 389
LDAP
ldap注入,允许匿名访问,弱口令
tcp 512,513,514
Linux rexec
可爆破,rlogin登陆
tcp 873
Rsync
匿名访问,文件上传
tcp 1194
OpenVPN
想办法钓VPN账号,进内网
tcp 1352
Lotus
弱口令,信息泄漏,爆破
tcp 1433
SQL Server
注入,提权,sa弱口令,爆破
tcp 1521
Oracle
tns爆破,注入,弹shell…
tcp 1500
ISPmanager
弱口令
tcp 1723
PPTP
爆破,想办法钓VPN账号,进内网
tcp 2082,2083
cPanel
弱口令
tcp 2181
ZooKeeper
未授权访问
tcp 2601,2604
Zebra
默认密码zerbra
tcp 3128
Squid
弱口令
tcp 3312,3311
kangle
弱口令
tcp 3306
MySQL
注入,提权,爆破
tcp 3389
Windows rdp
shift后门[需要03以下的系统],爆破,ms12-020
tcp 3690
SVN
svn泄露,未授权访问
tcp 4848
GlassFish
弱口令
tcp 5000
Sybase/DB2
爆破,注入
tcp 5432
PostgreSQL
爆破,注入,弱口令
tcp 5900,5901,5902
VNC
弱口令爆破
tcp 5984
CouchDB
未授权导致的任意指令执行
tcp 6379
Redis
可尝试未授权访问,弱口令爆破
tcp 7001,7002
WebLogic
Java反序列化,弱口令
tcp 7778
Kloxo
主机面板登录
tcp 8000
Ajenti
弱口令
tcp 8009
tomcat Ajp
Tomcat-Ajp协议漏洞
tcp 8443
Plesk
弱口令
tcp 8069
Zabbix
远程执行,SQL注入
tcp 8080-8089
Jenkins,JBoss
反序列化,控制台弱口令
tcp 9080-9081,9090
WebSphere
Java反序列化/弱口令
tcp 9200,9300
ElasticSearch
远程执行
tcp 11211
Memcached
未授权访问
tcp 27017,27018
MongoDB
爆破,未授权访问
tcp 50070,50030
Hadoop
默认端口未授权访问
工具:nmap
fofa搜索
直接搜索ip,然后点击IP聚合
- 云WAF
- 硬件WAF
- 软件WAF,宝塔、安全狗、D盾等
- 代码级WAF,自己加的过滤规则等
识别工具:
https://github.com/EnableSecurity/wafw00f
网络空间搜索引擎搜索
根据蜜罐与攻击者之间进行的交互的程度可以将蜜罐分为三类:低交互蜜罐、中交互蜜罐、高交互蜜罐。当然还可以根据蜜罐模拟的目标进行分类,比如:数据库蜜罐、工控蜜罐、物联网蜜罐、Web蜜罐等等。
识别方式:谁是鱼谁是饵?红队视角下蜜罐识别方式汇总
蜜罐特点:端口多且有规律性、web协议访问就下载、设备指纹分析
工具:
-
http://www.17ce.com
-
https://ping.chinaz.com
- 主动漏洞;就是让目标访问一些网址;然后会在网址记录下服务器的真实IP
- 邮件系统,如果目标的邮件与网站部署在同一台服务器且没有开启CDN,我们可以在接受对方邮件的地方来寻找真实IP。(订阅、忘记密码等)
- 国外访问,目标可能只设置了国内访问加速。(https://boce.aliyun.com/detect/,全球 CDN 服务商查询_专业精准的IP库服务商_IPIP
) - 子域名访问,目标并没有对所有子域名开启CDN
工具:
- 首先判断CDN厂商(全球 CDN 服务商查询_专业精准的IP库服务商_IPIP)
- IP库筛选地址段(纯真IP数据库)
- 配置范围扫描(使用工具fuckCDN)
fuckcdn工具:https://github.com/Tai7sy/fuckcdn
使用:
- 首先在set.ini中配置目标信息
- 在ip.txt中配置纯真数据库中筛选的IP段
- 运行.exe文件,输入与ip和端口(输入本地ping目标的ip即可,端口http就80)
公众号信息
搜狗微信搜索
搜狗微信搜索_订阅号及文章内容独家收录,一搜即达
小程序信息直接关键字在对应平台搜索。
小程序的抓包(BP和proxifier联动):
在proxifier中设置代理规则和代理服务器,然后和BP联动,我们就可以让小程序中的http/https协议数据包经过BP。
小程序文件组成:
- xxx.js 页面逻辑
- xxx.json页面配置
- xxx.wxml 页面结构
- xxx.wxss 页面样式
小程序目录结构:
- pages 页面文件夹
- index 首页
- logs 日志
- utils
- util 工具类
- app.js 入口js(类似于java中的main方法)
- app.json 全局样式文件
- project.config.json
- sitemap.json 用来配置小程序及其页面是否允许被微信索引
小程序的逆向:
工具:http://xcx.siqingw.top/
思路:
- 我们在微信使用过的小程序在本地都会有一个文件(.wxapkg)位置在微信-设置-文件管理目录-applet下
- 首先先找到上述文件 ,然后对上面文件进行解包
- 解包之后会有一个新文件,然后对其反编译就可以得到其源码
- 最后使用微信开发者工具打开源码进行分析、信息提取。最后就转到了代码层面的安全问题检测。
通过公司查询其app:
https://www.qimai.cn/https://app.diandian.com/
通过URL查询其app:
- url网站上可以直接下载app
- 通过备案信息查询
主要收集的信息:
- 资产信息:IP、域名、网站,转到对应的web测试
- 信息泄露:配置key资源文件
- 代码信息及安全问题,逆向相关
app的信息提取(静态分析):
在线平台:https://mogua.co/
https://www.zhihuaspace.cn:8888
https://github.com/kelvinBen/AppInfoScanner
https://github.com/MobSF/Mobile-Security-framework-MobSF
mobsf环境搭建好之后运行run.bat文件,随后访问8000端口即可使用。
左侧就是我们静态分析出来的所有信息。
app的信息提取(动态调试):
动态调式必须是和模拟器联动,在模拟器做一些操作,mobsf会对我们的操作动态调试,分析并提取其中的信息。
app的信息提取(动态抓包):
动态抓包就是使用bp对模拟器进行抓包,从而从数据包中提取url、泄露信息等。
使用:
参数 -v生成配置文件
然后在配置文件中配置对应查询平台的cookie、token等信息。
利用-n参数进行查找相关企业信息。
建议买台服务器搭建,都是docker环境搭建
ARL灯塔
工具:https://github.com/TophantTechnology/ARL
Nemo
武器库部署
一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等。
主要用于我们关注某项目、某公司或某搜索词的内容,然后使用项目进行监控,如果目标有变动就会通知我们。(具有针对性)