使用Python绕过勒索软件攻击
2023-6-27 23:51:50 Author: www.freebuf.com(查看原文) 阅读量:8 收藏

在不断变化的网络安全威胁中,勒索软件攻击对个人和组织构成了重大风险。

这些恶意攻击加密了关键文件,并要求用赎金换取解密密钥,这也让受害者陷入两难:要么支付赎金,要么就是永久性数据损失。

在这篇文章中,我们探讨了一种可能的方法,即利用一种被称为对加密文件进行暴力破解的技术,以达到绕过勒索软件攻击的目的。

暴力破解技术包括系统地尝试各种密码或加密密钥的组合,直到发现正确的组合。必须明确的是,在没有适当授权的情况下绕过加密是非法的和不道德的,但本文只是和大家探讨这种概念,以解决勒索软件加密的这个问题场景,不应用于日常实际的案例中。

通过了解暴力破解的原理及其问题,不管是个人,还是企业,都可以更好地理解其现有安全措施的漏洞,并采取相应的预防措施。我们将讨论这种方法的潜在风险和局限性,以及其他勒索软件的防范策略。

必须强调的是,本文旨在提供知识,提高人们对攻击者使用的技术和潜在防御措施的认识。我们强烈反对从事任何非法活动,包括未经适当授权试图绕过加密,并可能导致严重的法律后果。

接下来,就让我们深入了解勒索软件攻击的世界,暴力破解加密文件的概念,以及对网络安全的影响。通过了解这些威胁的内部运作,我们有能力建立更强大的防御措施,并保护我们的宝贵数据和系统免受潜在的勒索软件攻击。

绕过加密的勒索软件文件

首先,我们有一个EncryptedFilePack.zip文件,它由一个bruteforce.py模板文件、一个rockyou.txt词表和加密的勒索软件文件enc.zip组成。

当我们试图打开enc.zip文件以恢复ImportantFile.docx时,我们得到一个需要密码的提示。不幸的是,我们手动输入的密码并不能授予我们访问权。

1687880702_649b03fe6857d37e2a7de.png!small?1687880703283

1687880711_649b0407bea9500d038f4.png!small?1687880712716

1687880720_649b0410a18a6a21d75e2.png!small?1687880721593

让我们用Visual Studio Code打开bruteforce.py文件。

1687880735_649b041f2765f02921d7a.png!small

这里我们有一个暴力破解启动器模板,我们可以修改它来破解加密的勒索软件enc.zip文件。

1687880767_649b043fed04d9e0890e5.png!small?1687880768939

在对暴力破解代码进行一些重大修改后,我们可以用它来准确地找到enc.zip文件的密码。给出的代码是一个受密码保护的ZIP文件的暴力破解密码程序。

从这个文本文件中,我们可以看到一个潜在的密码列表。对于每个密码会自动跑一遍,尝试提取ZIP文件的内容。如果一个密码是正确的,它将跳出一个成功的信息,然后退出。不然它就会继续尝试其他密码。最后,如果没有找到有效的密码,它会显示一条信息,显示失败。

from zipfile import ZipFile

def attempt_extract(zf_handle, password):
    try:
        zf_handle.extractall(pwd=password.encode())
        print("[+] Password found: " + password)
        return True
    except:
        return False

def main():
    print("[+] Beginning brute force")
    with ZipFile('enc.zip') as zf:
        with open('rockyou.txt', 'rb') as f:
            password_found = False  # Flag to track if password is found
            for line in f:
                password = line.strip().decode('utf-8')
                if attempt_extract(zf, password):
                    password_found = True  # Set the flag to True
                    break  # Exit the loop if password is found
                else:
                    print("[-] Incorrect password: " + password)

    if not password_found:
        print("[-] Password not found in list")

if __name__ == "__main__":
    main()

1687880822_649b0476182070117c81a.png!small?1687880823514

暴力破解代码准备好后,我们可以用Visual Studio Code集成的命令行界面运行代码,该界面允许我们直接在编辑器中与计算机的操作系统进行交互。它提供了一种便利的方式来执行命令,运行脚本,编译代码,以及执行其他各种任务,而无需离开编码环境。

在Visual Studio Code中打开终端→cd桌面→ls。

我们可以通过ls命令看到桌面上的所有四个文件。

键入以下命令,在enc.zip勒索软件文件上执行代码。

python3 bruteforce.py

1687880861_649b049d869f9cfc94500.png!small?1687880862941

该代码试图使用文本文件中的潜在密码列表来提取受密码保护的ZIP文件的内容。它对列表中的每个密码进行尝试,并试图提取ZIP文件的内容,直到找到正确的密码,或者列表中的密码运行完。

1687880890_649b04ba285cceac6c798.png!small?1687880891516

找到了正确的密码!!!显示出一条成功信息,表明密码被成功破解。

[+] 找到了密码:SPONGEBOB。

1687880918_649b04d6a26ad317a7084.png!small?1687880919887

输入ls命令,现在我们看到桌面上有五个文件。ImportantFile.docx文件是从加密的勒索软件enc.zip文件中检索出来的。

1687880935_649b04e7c27f1fd740ccd.png!small?1687880937285

我们无法访问ImportantFile.docx文件,因为它被保存在一个加密的enc.zip文件中以获得赎金。为了解决这个问题,我们利用Visual Studio Code运行了一个代码,可以对enc.zip文件进行暴力攻击,破解密码,并成功提取ZIP文件的内容,其中恰好是ImportantFile.docx。

1687880947_649b04f302005850b5364.png!small?1687880947939

参考来源

https://thegrayarea.tech/bypassing-a-ransomware-attack-with-python-a2f57a5f60bc


文章来源: https://www.freebuf.com/articles/web/370490.html
如有侵权请联系:admin#unsafe.sh