对aws s3权限不严信息取证收集python


一个简单的python脚本,因为网上找了一圈没有能用的,我们对于一些非法涉诈团队进行取证调查过程中,经常遇到各种海外云以及安全设备,这是个非常头疼的事情,本着每一份信息的收集整理,每一个细胞的排查分析原则,写个小脚本,请勿使用在非法用途!

import subprocess
import os

# 创建一个集合来存储后缀名
suffixes = set()

def process_directory(directory):
    # 执行 shell 命令并获取输出
    result = subprocess.run(['aws', 's3', 'ls', directory, '--no-sign-request'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

    # 将输出分割成行
    lines = result.stdout.splitlines()

    # 对于每一行,如果它表示一个文件(不是一个目录),则获取文件的后缀名
    for line in lines:
        parts = line.split()
        if len(parts) == 4:
            # 使用 os.path.splitext 方法获取文件的后缀名
            suffix = os.path.splitext(parts[3])[1]
            # 检查集合的大小是否发生了变化
            old_size = len(suffixes)
            # 将后缀名添加到集合中
            suffixes.add(suffix)
            new_size = len(suffixes)
            if new_size != old_size:
                # 如果集合的大小发生了变化,那么打印出新的后缀名
                print('New suffix found:', suffix)
            # 将文件名写入到文件中
            with open('list.txt', 'a') as f:
                f.write(directory + parts[3] + '\n')
        elif parts[0] == 'PRE':
            # 这是一个子目录,递归地处理它
            process_directory(directory + parts[1])
            # 将目录名写入到文件中
            with open('list.txt', 'a') as f:
                f.write(directory + parts[1] + '\n')

# 在主目录上调用该函数
process_directory('s3://name/')

# 打印所有的后缀名
for suffix in suffixes:
    print(suffix)

这里考虑到一些代码兼容问题使用的python3.6

信息取证提取过程效果图
信息取证提取过程效果图