lazys3暴力枚举buckets

原创
云计算
最近开始研究云安全,将自己研究的一些东西记录下,希望对大家有用。

本文的目的是知道一些buckets的名字或者知道该公司名字,想通过程序来对这个公司下的所有buckets进行枚举,测试了一些程序,其实都不太好用。唯一好用的是lazys3,该程序需要ruby环境支持。可以在kali linux或者pentestbox等执行,如果存在buckets则在结果中显示200,否则是不存在的,其原理是生成字典进行暴力匹配。另外还通过python程序来实现IP地址查询buckets。

1.1.1安装lazys3

官方地址:https://github.com/nahamsec/lazys3

git clone https://github.com/nahamsec/lazys3.git

1.1.2执行命令

    通过ruby执行命令,lazys3后跟的是公司名字或者是buckets名字

ruby lazys3 flaws.cloud

1.1.3查看结果

图片

结果中显示200的表示是存在,本例中显示存在laws.cloud,s3 buckets通过地址进行访问:

flaws.cloud+.s3.amazonaws.com=flaws.cloud.s3.amazonaws.com

http://flaws.cloud.s3.amazonaws.com/

图片

1.1.4直接查看文件内容

http://flaws.cloud.s3.amazonaws.com/+该目录下的文件名称

http://flaws.cloud.s3.amazonaws.com/hint3.html

图片

1.1.5通过aws命令来查看buckets

aws s3 ls  s3://flaws.cloud/ --no-sign-request --region us-west-2

前提需要知道s3 buckets名字以及对应的region。

图片

 1.1.6其他的一些探索

  想通过IP地址来查询存在aws的相关信息,代码如下:

import requests
from netaddr import IPNetwork, IPAddress
import json
from xml.dom import minidom
class Nimbusland:
    def __init__(self):
        self.aws_url = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
        self.azure_url = 'https://download.microsoft.com/download/0/1/8/018E208D-54F8-44CD-AA26-CD7BC9524A8C/PublicIPs_20200824.xml'
        try:
            self._load_aws_ips()
            self._load_azure_ips()
        except Exception as e:
            raise Exception("Error loading IP addresses: " + str(e))
    def _load_ips(self, url):
        try:
            response = requests.get(url, allow_redirects=True, verify=False)
            response.raise_for_status()
            return response.content
        except Exception as e:
            raise Exception("Error loading IP addresses: " + str(e))
    def _load_aws_ips(self):
        try:
            self.aws_ips = json.loads(self._load_ips(self.aws_url))
        except Exception as e:
            raise Exception("Error loading AWS IP addresses: " + str(e))
    def _load_azure_ips(self):
        try:
            self.azure_ips = minidom.parseString(self._load_ips(self.azure_url).decode("utf-8")).getElementsByTagName('Region')
        except Exception as e:
            raise Exception("Error loading Azure IP addresses: " + str(e))
    def get_ip_info(self, target_ip, ip_data, region_key, vendor_name):
        for item in ip_data:
            if IPAddress(target_ip) in IPNetwork(str(item["ip_prefix"])):
                return [target_ip, str(item["ip_prefix"]), str(item[region_key]), vendor_name, str(item["service"])]
        return False
    def get_aws_ip_info(self, target_ip):
        try:
            return self.get_ip_info(target_ip, self.aws_ips["prefixes"], "region", 'AWS')
        except Exception as e:
            raise Exception("Error getting AWS IP information: " + str(e))
    def get_azure_ip_info(self, target_ip):
        try:
            return self.get_ip_info(target_ip, self.azure_ips, "Name", 'Azure')
        except Exception as e:
            raise Exception("Error getting Azure IP information: " + str(e))
责任编辑:庞桂玉 来源: 51CTO
相关推荐

2015-12-22 17:50:12

2021-07-09 19:04:55

Cache查找消息

2014-04-16 11:03:36

MVC3JSON

2009-08-18 10:30:30

C#枚举

2012-05-17 09:28:06

代码审查Java代码

2024-01-18 07:09:10

2010-12-10 11:26:56

“相亲式”招聘

2023-09-11 07:17:30

2009-06-25 14:20:01

Java枚举类型

2011-06-01 16:31:23

枚举

2022-08-10 14:36:43

物联网智慧城市智能家居

2019-02-25 18:03:15

2018-11-20 14:48:22

微信群集合数据

2012-08-24 13:49:08

2009-05-20 11:30:21

2013-06-08 10:41:51

2013-04-18 09:52:56

2011-11-09 13:40:16

Ubuntu浏览器

2011-11-29 10:03:24

2022-04-25 08:18:18

Linux 服务器SSH 暴力攻击
点赞
收藏

51CTO技术栈公众号