General

  • Target
    launcher.exe
  • Size 67.3MB
  • Sample261105-2gkhdatxev
  • SHA256 cbc0460c7a660f5678e0f6a0586b3e2deed83bc15481ce2c0017ab7217dbe9a3
  • MD5 SHA1 SHA512 SSDEEP TLSH

Malware Config

Extracted

Path
  • C:\Users\Admin\AppData\Local\Temp\WinGet_Repaired\tools\Lib\site-packages\Crypto\Cipher\__pycache__\_mode_siv.cpython-310.pyc

Ransom Note
  • o ������j�4����������������������@��s����d�Z�ddlmZ�ddlmZ�ddlmZmZmZm Z �dgZ ddl m Z �ddl mZ�ddlmZ�dd lmZ�dd lmZ�erCdd lmZ�eeeef�ZG�d d��d�Zd d��ZdS�)z- Synthetic Initialization Vector (SIV) mode. �����)� annotations)�compare_digest)� TYPE_CHECKING�Optional�Union�overload�SivMode)� unhexlify)�Method)�_S2V)� is_buffer)� bytes_to_long)� ModuleTypec�������������������@��s����e�Zd�ZdZd5d d �Zd d��Zd6dd�Zd7dd�Zd8dd�Zd9dd�Z d:dd�Z d;dd �Z d<d"d#�Z e d=d%d&��Ze d>d*d&��Z +[email protected]&�Ze dAd0d1��Ze dBd2d1��Z +d?dCd4d1�Zd+S�)Dr���a���Synthetic Initialization Vector (SIV). This is an Authenticated Encryption with Associated Data (`AEAD`_) mode. It provides both confidentiality and authenticity. The header of the message may be left in the clear, if needed, and it will still be subject to authentication. The decryption step tells the receiver if the message comes from a source that really knows the secret key. Additionally, decryption detects if any part of the message - including the header - has been modified or corrupted. Unlike other AEAD modes such as CCM, EAX or GCM, accidental reuse of a nonce is not catastrophic for the confidentiality of the message. The only effect is that an attacker can tell when the same plaintext (and same associated data) is protected with the same key. The length of the MAC is fixed to the block size of the underlying cipher. The key size is twice the length of the key of the underlying cipher. This mode is only available for AES ciphers. +--------------------+---------------+-------------------+ | Cipher | SIV MAC size | SIV key length | | | (bytes) | (bytes) | +====================+===============+===================+ | AES-128 | 16 | 32 | +--------------------+---------------+-------------------+ | AES-192 | 16 | 48 | +--------------------+---------------+-------------------+ | AES-256 | 16 | 64 | +--------------------+---------------+-------------------+ See `RFC5297`_ and the `original paper`__. .. _RFC5297: https://tools.ietf.org/html/rfc5297 .. _AEAD: http://blog.cryptographyengineering.com/2012/05/how-to-choose-authenticated-encryption.html .. __: http://www.cs.ucdavis.edu/~rogaway/papers/keywrap.pdf �factoryr����key�Buffer�nonce�kwargs�dict�return�Nonec�����������������C��s����|j�|�_� �||�_||�_t|�dvrtdt|����|d�ur5t|�s%td��t|�dkr/td��t|�|�_ �t|�d�}d�|�_ t |d�|��||�jd�|�_ ||d���|�_ |j |d�|��|jfi�|���tjtjtjtjtjg|�_d�S�)N)� ����0����@���zIncorrect key length (%d bytes)z?When provided, the nonce must be bytes, bytearray or memoryviewr���z*When provided, the nonce must be non-empty����)Z ciphermodZ cipher_params)� block_size�_factory�_cipher_params�len� ValueErrorr ���� TypeError�bytesr����_mac_tagr ����_kdf�_subkey_cipher�newZMODE_ECBr ����UPDATE�ENCRYPT�DECRYPT�DIGEST�VERIFY�_next)�selfr���r���r���r���Z subkey_size��r-����dC:\Users\Admin\AppData\Local\Temp\WinGet_Repaired\tools\Lib\site-packages\Crypto/Cipher/_mode_siv.py�__init__D���s&���    zSivMode.__init__c�����������������C��s4���t�|�}|d@�}|�jj|�j|�jjf|dd�|�j��S�)z*Create a new CTR cipher from V in SIV model ������������������)� initial_valuer���N)r ���r���r%���r$���ZMODE_CTRr���)r,����vZv_int�qr-���r-���r.����_create_ctr_cipherf���s��� ���zSivMode._create_ctr_cipher� componentc�����������������C��s>���t�j|�jvr td��t�jt�jt�jt�jt�jg|�_|�j� |��|�S�)a���Protect one associated data component For SIV, the associated data is a sequence (*vector*) of non-empty byte strings (*components*). This method consumes the next component. It must be called once for each of the components that constitue the associated data. Note that the components have clear boundaries, so that: >>> cipher.update(b"builtin") >>> cipher.update(b"securely") is not equivalent to: >>> cipher.update(b"built") >>> cipher.update(b"insecurely") If there is no associated data, this method must not be called. Args: component (bytes/bytearray/memoryview): The next associated data component. z<update() can only be called immediately after initializationN) r ���r&���r+���r ���r'���r(���r)���r*���r#����update)r,���r5���r-���r-���r.���r6���o���s ���  zSivMode.update� plaintextr!���c�����������������C������t�d��)z� For SIV, encryption and MAC authentication must take place at the same point. This method shall not be used. Use `encrypt_and_digest` instead. zEencrypt() not allowed for SIV mode. Use encrypt_and_digest() instead.N�r ����r,���r7���r-���r-���r.����encrypt��������zSivMode.encrypt� ciphertextc�����������������C��r8���)z� For SIV, decryption and verification must take place at the same point. This method shall not be used. Use `decrypt_and_verify` instead. zEdecrypt() not allowed for SIV mode. Use decrypt_and_verify() instead.Nr9���)r,���r=���r-���r-���r.����decrypt����r<���zSivMode.decryptc�����������������C��s:���t�j|�jvr td��t�jg|�_|�jdu�r|�j���|�_|�jS�)a ��Compute the *binary* MAC tag. The caller invokes this function at the very end. This method returns the MAC that shall be sent to the receiver, together with the ciphertext. Returns: the MAC, as a byte string. zAdigest() cannot be called when decrypting or validating a messageN)r ���r)���r+���r ���r"���r#����derive�r,���r-���r-���r.����digest����s ���    zSivMode.digest�strc�����������������C��s ���|��������S�)z�Compute the *printable* MAC tag. This method is like `digest`. Returns: the MAC, as a hexadecimal string. N)rA����hexr@���r-���r-���r.���� hexdigest����s��� zSivMode.hexdigest�received_mac_tagc�����������������C��sL���t�j|�jvr td��t�jg|�_|�jdu�r|�j���|�_t|�j|�s$td��dS�)a<��Validate the *binary* MAC tag. The caller invokes this function at the very end. This method checks if the decrypted message is indeed valid (that is, if the key is correct) and it has not been tampered with while in transit. Args: received_mac_tag (bytes/bytearray/memoryview): This is the *binary* MAC, as received from the sender. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. z3verify() cannot be called when encrypting a messageNzMAC check failed) r ���r*���r+���r ���r"���r#���r?���r���r���)r,���rE���r-���r-���r.����verify����s���     �zSivMode.verify� hex_mac_tagc�����������������C��s���|���t|���dS�)ak��Validate the *printable* MAC tag. This method is like `verify`. Args: hex_mac_tag (string): This is the *printable* MAC, as received from the sender. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. N)rF���r ���)r,���rG���r-���r-���r.���� hexverify����s���zSivMode.hexverify�tuple[bytes, bytes]c�����������������C������d�S��Nr-���r:���r-���r-���r.����encrypt_and_digest��������zSivMode.encrypt_and_digest�output�Union[bytearray, memoryview]�tuple[None, bytes]c�����������������C��rJ���rK���r-���)r,���r7���rN���r-���r-���r.���rL�����������N�&Optional[Union[bytearray, memoryview]]�tuple[Optional[bytes], bytes]c�����������������C��sn���t�j|�jvr td��t�jg|�_t|�d�r|�j�|�j��|�j�|��|�j� ��|�_ |�� |�j �}|j ||d�|�j fS�)a)��Perform encrypt() and digest() in one step. Args: plaintext (bytes/bytearray/memoryview): The piece of data to encrypt. Keyword Args: output (bytearray/memoryview): The location where the ciphertext must be written to. If ``None``, the ciphertext is returned. Returns: The tuple ``(ciphertext, tag)``, both ``bytes``. The ciphertext is ``None`` when the ``output`` parameter specified a location for the result. z@encrypt() can only be called after initialization or an update()r����rN���N) r ���r'���r+���r ���r)����hasattrr#���r6���r���r?���r"���r4���r;���)r,���r7���rN����cipherr-���r-���r.���rL�������s���      �mac_tagc�����������������C��rJ���rK���r-���)r,���r=���rW���r-���r-���r.����decrypt_and_verify��rM���zSivMode.decrypt_and_verifyc�����������������C��rJ���rK���r-���)r,���r=���rW���rN���r-���r-���r.���rX�����rQ����Optional[bytes]c�����������������C��sx���t�j|�jvr td��t�jg|�_|��|�|�_|�jj||d�}t|�d�r)|�j � |�j ��|�j � |du�r2|n|��|�� |��|S�)a���Perform decryption and verification in one step. A cipher object is stateful: once you have decrypted a message you cannot decrypt (or encrypt) another message with the same object. You cannot reuse an object for encrypting or decrypting other data with the same key. This function does not remove any padding from the plaintext. Args: ciphertext (bytes/bytearray/memoryview): The piece of data to decrypt. It can be of any length. mac_tag (bytes/bytearray/memoryview): This is the *binary* MAC, as received from the sender. Keyword Args: output (bytearray/memoryview): The location where the plaintext must be written to. If ``None``, the plaintext is returned. Returns: the plaintext as ``bytes`` or ``None`` when the ``output`` parameter specified a location for the result. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. z@decrypt() can only be called after initialization or an update()rT���r���N) r ���r(���r+���r ���r*���r4���Z_cipherr>���rU���r#���r6���r���rF���)r,���r=���rW���rN���r7���r-���r-���r.���rX�����s��� !    ) r���r���r���r���r���r���r���r���r���r���)r5���r���r���r���)r7���r���r���r!���)r=���r���r���r!���)r���r!���)r���rB���)rE���r���r���r���)rG���rB���r���r���)r7���r���r���rI���)r7���r���rN���rO���r���rP���rK���)r7���r���rN���rR���r���rS���)r=���r���rW���r���r���r!���)r=���r���rW���r���rN���rO���r���r���)r=���r���rW���r���rN���rR���r���rY���)�__name__� __module__� __qualname__�__doc__r/���r4���r6���r;���r>���rA���rD���rF���rH���r���rL���rX���r-���r-���r-���r.���r������s.���� '" "     �!  �c�������������� ���K��sR���z|��d�}W�n�ty�}�ztdt|����d}~ww�|��dd�}t|�|||�S�)a^��Create a new block cipher, configured in Synthetic Initializaton Vector (SIV) mode. Args: factory (object): A symmetric cipher module from `Crypto.Cipher` (like `Crypto.Cipher.AES`). Keyword Args: key (bytes/bytearray/memoryview): The secret key to use in the symmetric cipher. It must be 32, 48 or 64 bytes long. If AES is the chosen cipher, the variants *AES-128*, *AES-192* and or *AES-256* will be used internally. nonce (bytes/bytearray/memoryview): For deterministic encryption, it is not present. Otherwise, it is a value that must never be reused for encrypting message under this key. There are no restrictions on its length, but it is recommended to use at least 16 bytes. r���zMissing parameter: Nr���)�pop�KeyErrorr ���rB���r���)r���r���r����er���r-���r-���r.����_create_siv_cipherQ��s����� ra���N)r]���� __future__r����hmacr����typingr���r���r���r����__all__�binasciir ���ZCrypto.Cipher._state_machiner ���ZCrypto.Protocol.KDFr ���ZCrypto.Util._raw_apir ���ZCrypto.Util.numberr ����typesr���r!���� bytearray� memoryviewr���r���ra���r-���r-���r-���r.����<module>���s"���        �� 7
Emails

Extracted

Path
  • C:\Users\Admin\AppData\Local\Temp\WinGet_Repaired\tools\Lib\site-packages\Crypto\Cipher\__pycache__\_mode_siv.cpython-310.pyc

Ransom Note
  • o ����J�j�4����������������������@��s����d�Z�ddlmZ�ddlmZ�ddlmZmZmZm Z �dgZ ddl m Z �ddl mZ�ddlmZ�dd lmZ�dd lmZ�erCdd lmZ�eeeef�ZG�d d��d�Zd d��ZdS�)z- Synthetic Initialization Vector (SIV) mode. �����)� annotations)�compare_digest)� TYPE_CHECKING�Optional�Union�overload�SivMode)� unhexlify)�Method)�_S2V)� is_buffer)� bytes_to_long)� ModuleTypec�������������������@��s����e�Zd�ZdZd5d d �Zd d��Zd6dd�Zd7dd�Zd8dd�Zd9dd�Z d:dd�Z d;dd �Z d<d"d#�Z e d=d%d&��Ze d>d*d&��Z +[email protected]&�Ze dAd0d1��Ze dBd2d1��Z +d?dCd4d1�Zd+S�)Dr���a���Synthetic Initialization Vector (SIV). This is an Authenticated Encryption with Associated Data (`AEAD`_) mode. It provides both confidentiality and authenticity. The header of the message may be left in the clear, if needed, and it will still be subject to authentication. The decryption step tells the receiver if the message comes from a source that really knows the secret key. Additionally, decryption detects if any part of the message - including the header - has been modified or corrupted. Unlike other AEAD modes such as CCM, EAX or GCM, accidental reuse of a nonce is not catastrophic for the confidentiality of the message. The only effect is that an attacker can tell when the same plaintext (and same associated data) is protected with the same key. The length of the MAC is fixed to the block size of the underlying cipher. The key size is twice the length of the key of the underlying cipher. This mode is only available for AES ciphers. +--------------------+---------------+-------------------+ | Cipher | SIV MAC size | SIV key length | | | (bytes) | (bytes) | +====================+===============+===================+ | AES-128 | 16 | 32 | +--------------------+---------------+-------------------+ | AES-192 | 16 | 48 | +--------------------+---------------+-------------------+ | AES-256 | 16 | 64 | +--------------------+---------------+-------------------+ See `RFC5297`_ and the `original paper`__. .. _RFC5297: https://tools.ietf.org/html/rfc5297 .. _AEAD: http://blog.cryptographyengineering.com/2012/05/how-to-choose-authenticated-encryption.html .. __: http://www.cs.ucdavis.edu/~rogaway/papers/keywrap.pdf �factoryr����key�Buffer�nonce�kwargs�dict�return�Nonec�����������������C��s����|j�|�_� �||�_||�_t|�dvrtdt|����|d�ur5t|�s%td��t|�dkr/td��t|�|�_ �t|�d�}d�|�_ t |d�|��||�jd�|�_ ||d���|�_ |j |d�|��|jfi�|���tjtjtjtjtjg|�_d�S�)N)� ����0����@���zIncorrect key length (%d bytes)z?When provided, the nonce must be bytes, bytearray or memoryviewr���z*When provided, the nonce must be non-empty����)Z ciphermodZ cipher_params)� block_size�_factory�_cipher_params�len� ValueErrorr ���� TypeError�bytesr����_mac_tagr ����_kdf�_subkey_cipher�newZMODE_ECBr ����UPDATE�ENCRYPT�DECRYPT�DIGEST�VERIFY�_next)�selfr���r���r���r���Z subkey_size��r-����dC:\Users\Admin\AppData\Local\Temp\WinGet_Repaired\tools\Lib\site-packages\Crypto/Cipher/_mode_siv.py�__init__D���s&���    zSivMode.__init__c�����������������C��s4���t�|�}|d@�}|�jj|�j|�jjf|dd�|�j��S�)z*Create a new CTR cipher from V in SIV model ������������������)� initial_valuer���N)r ���r���r%���r$���ZMODE_CTRr���)r,����vZv_int�qr-���r-���r.����_create_ctr_cipherf���s��� ���zSivMode._create_ctr_cipher� componentc�����������������C��s>���t�j|�jvr td��t�jt�jt�jt�jt�jg|�_|�j� |��|�S�)a���Protect one associated data component For SIV, the associated data is a sequence (*vector*) of non-empty byte strings (*components*). This method consumes the next component. It must be called once for each of the components that constitue the associated data. Note that the components have clear boundaries, so that: >>> cipher.update(b"builtin") >>> cipher.update(b"securely") is not equivalent to: >>> cipher.update(b"built") >>> cipher.update(b"insecurely") If there is no associated data, this method must not be called. Args: component (bytes/bytearray/memoryview): The next associated data component. z<update() can only be called immediately after initializationN) r ���r&���r+���r ���r'���r(���r)���r*���r#����update)r,���r5���r-���r-���r.���r6���o���s ���  zSivMode.update� plaintextr!���c�����������������C������t�d��)z� For SIV, encryption and MAC authentication must take place at the same point. This method shall not be used. Use `encrypt_and_digest` instead. zEencrypt() not allowed for SIV mode. Use encrypt_and_digest() instead.N�r ����r,���r7���r-���r-���r.����encrypt��������zSivMode.encrypt� ciphertextc�����������������C��r8���)z� For SIV, decryption and verification must take place at the same point. This method shall not be used. Use `decrypt_and_verify` instead. zEdecrypt() not allowed for SIV mode. Use decrypt_and_verify() instead.Nr9���)r,���r=���r-���r-���r.����decrypt����r<���zSivMode.decryptc�����������������C��s:���t�j|�jvr td��t�jg|�_|�jdu�r|�j���|�_|�jS�)a ��Compute the *binary* MAC tag. The caller invokes this function at the very end. This method returns the MAC that shall be sent to the receiver, together with the ciphertext. Returns: the MAC, as a byte string. zAdigest() cannot be called when decrypting or validating a messageN)r ���r)���r+���r ���r"���r#����derive�r,���r-���r-���r.����digest����s ���    zSivMode.digest�strc�����������������C��s ���|��������S�)z�Compute the *printable* MAC tag. This method is like `digest`. Returns: the MAC, as a hexadecimal string. N)rA����hexr@���r-���r-���r.���� hexdigest����s��� zSivMode.hexdigest�received_mac_tagc�����������������C��sL���t�j|�jvr td��t�jg|�_|�jdu�r|�j���|�_t|�j|�s$td��dS�)a<��Validate the *binary* MAC tag. The caller invokes this function at the very end. This method checks if the decrypted message is indeed valid (that is, if the key is correct) and it has not been tampered with while in transit. Args: received_mac_tag (bytes/bytearray/memoryview): This is the *binary* MAC, as received from the sender. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. z3verify() cannot be called when encrypting a messageNzMAC check failed) r ���r*���r+���r ���r"���r#���r?���r���r���)r,���rE���r-���r-���r.����verify����s���     �zSivMode.verify� hex_mac_tagc�����������������C��s���|���t|���dS�)ak��Validate the *printable* MAC tag. This method is like `verify`. Args: hex_mac_tag (string): This is the *printable* MAC, as received from the sender. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. N)rF���r ���)r,���rG���r-���r-���r.���� hexverify����s���zSivMode.hexverify�tuple[bytes, bytes]c�����������������C������d�S��Nr-���r:���r-���r-���r.����encrypt_and_digest��������zSivMode.encrypt_and_digest�output�Union[bytearray, memoryview]�tuple[None, bytes]c�����������������C��rJ���rK���r-���)r,���r7���rN���r-���r-���r.���rL�����������N�&Optional[Union[bytearray, memoryview]]�tuple[Optional[bytes], bytes]c�����������������C��sn���t�j|�jvr td��t�jg|�_t|�d�r|�j�|�j��|�j�|��|�j� ��|�_ |�� |�j �}|j ||d�|�j fS�)a)��Perform encrypt() and digest() in one step. Args: plaintext (bytes/bytearray/memoryview): The piece of data to encrypt. Keyword Args: output (bytearray/memoryview): The location where the ciphertext must be written to. If ``None``, the ciphertext is returned. Returns: The tuple ``(ciphertext, tag)``, both ``bytes``. The ciphertext is ``None`` when the ``output`` parameter specified a location for the result. z@encrypt() can only be called after initialization or an update()r����rN���N) r ���r'���r+���r ���r)����hasattrr#���r6���r���r?���r"���r4���r;���)r,���r7���rN����cipherr-���r-���r.���rL�������s���      �mac_tagc�����������������C��rJ���rK���r-���)r,���r=���rW���r-���r-���r.����decrypt_and_verify��rM���zSivMode.decrypt_and_verifyc�����������������C��rJ���rK���r-���)r,���r=���rW���rN���r-���r-���r.���rX�����rQ����Optional[bytes]c�����������������C��sx���t�j|�jvr td��t�jg|�_|��|�|�_|�jj||d�}t|�d�r)|�j � |�j ��|�j � |du�r2|n|��|�� |��|S�)a���Perform decryption and verification in one step. A cipher object is stateful: once you have decrypted a message you cannot decrypt (or encrypt) another message with the same object. You cannot reuse an object for encrypting or decrypting other data with the same key. This function does not remove any padding from the plaintext. Args: ciphertext (bytes/bytearray/memoryview): The piece of data to decrypt. It can be of any length. mac_tag (bytes/bytearray/memoryview): This is the *binary* MAC, as received from the sender. Keyword Args: output (bytearray/memoryview): The location where the plaintext must be written to. If ``None``, the plaintext is returned. Returns: the plaintext as ``bytes`` or ``None`` when the ``output`` parameter specified a location for the result. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. z@decrypt() can only be called after initialization or an update()rT���r���N) r ���r(���r+���r ���r*���r4���Z_cipherr>���rU���r#���r6���r���rF���)r,���r=���rW���rN���r7���r-���r-���r.���rX�����s��� !    ) r���r���r���r���r���r���r���r���r���r���)r5���r���r���r���)r7���r���r���r!���)r=���r���r���r!���)r���r!���)r���rB���)rE���r���r���r���)rG���rB���r���r���)r7���r���r���rI���)r7���r���rN���rO���r���rP���rK���)r7���r���rN���rR���r���rS���)r=���r���rW���r���r���r!���)r=���r���rW���r���rN���rO���r���r���)r=���r���rW���r���rN���rR���r���rY���)�__name__� __module__� __qualname__�__doc__r/���r4���r6���r;���r>���rA���rD���rF���rH���r���rL���rX���r-���r-���r-���r.���r������s.���� '" "     �!  �c�������������� ���K��sR���z|��d�}W�n�ty�}�ztdt|����d}~ww�|��dd�}t|�|||�S�)a^��Create a new block cipher, configured in Synthetic Initializaton Vector (SIV) mode. Args: factory (object): A symmetric cipher module from `Crypto.Cipher` (like `Crypto.Cipher.AES`). Keyword Args: key (bytes/bytearray/memoryview): The secret key to use in the symmetric cipher. It must be 32, 48 or 64 bytes long. If AES is the chosen cipher, the variants *AES-128*, *AES-192* and or *AES-256* will be used internally. nonce (bytes/bytearray/memoryview): For deterministic encryption, it is not present. Otherwise, it is a value that must never be reused for encrypting message under this key. There are no restrictions on its length, but it is recommended to use at least 16 bytes. r���zMissing parameter: Nr���)�pop�KeyErrorr ���rB���r���)r���r���r����er���r-���r-���r.����_create_siv_cipherQ��s����� ra���N)r]���� __future__r����hmacr����typingr���r���r���r����__all__�binasciir ���ZCrypto.Cipher._state_machiner ���ZCrypto.Protocol.KDFr ���ZCrypto.Util._raw_apir ���ZCrypto.Util.numberr ����typesr���r!���� bytearray� memoryviewr���r���ra���r-���r-���r-���r.����<module>���s"���        �� 7
Emails

Extracted

Path
  • C:\Users\Admin\AppData\Local\Temp\WinGet_Repaired\tools\Lib\site-packages\Crypto\Cipher\__pycache__\_mode_siv.cpython-310.pyc

Ransom Note
  • o ����H�j�4����������������������@��s����d�Z�ddlmZ�ddlmZ�ddlmZmZmZm Z �dgZ ddl m Z �ddl mZ�ddlmZ�dd lmZ�dd lmZ�erCdd lmZ�eeeef�ZG�d d��d�Zd d��ZdS�)z- Synthetic Initialization Vector (SIV) mode. �����)� annotations)�compare_digest)� TYPE_CHECKING�Optional�Union�overload�SivMode)� unhexlify)�Method)�_S2V)� is_buffer)� bytes_to_long)� ModuleTypec�������������������@��s����e�Zd�ZdZd5d d �Zd d��Zd6dd�Zd7dd�Zd8dd�Zd9dd�Z d:dd�Z d;dd �Z d<d"d#�Z e d=d%d&��Ze d>d*d&��Z +[email protected]&�Ze dAd0d1��Ze dBd2d1��Z +d?dCd4d1�Zd+S�)Dr���a���Synthetic Initialization Vector (SIV). This is an Authenticated Encryption with Associated Data (`AEAD`_) mode. It provides both confidentiality and authenticity. The header of the message may be left in the clear, if needed, and it will still be subject to authentication. The decryption step tells the receiver if the message comes from a source that really knows the secret key. Additionally, decryption detects if any part of the message - including the header - has been modified or corrupted. Unlike other AEAD modes such as CCM, EAX or GCM, accidental reuse of a nonce is not catastrophic for the confidentiality of the message. The only effect is that an attacker can tell when the same plaintext (and same associated data) is protected with the same key. The length of the MAC is fixed to the block size of the underlying cipher. The key size is twice the length of the key of the underlying cipher. This mode is only available for AES ciphers. +--------------------+---------------+-------------------+ | Cipher | SIV MAC size | SIV key length | | | (bytes) | (bytes) | +====================+===============+===================+ | AES-128 | 16 | 32 | +--------------------+---------------+-------------------+ | AES-192 | 16 | 48 | +--------------------+---------------+-------------------+ | AES-256 | 16 | 64 | +--------------------+---------------+-------------------+ See `RFC5297`_ and the `original paper`__. .. _RFC5297: https://tools.ietf.org/html/rfc5297 .. _AEAD: http://blog.cryptographyengineering.com/2012/05/how-to-choose-authenticated-encryption.html .. __: http://www.cs.ucdavis.edu/~rogaway/papers/keywrap.pdf �factoryr����key�Buffer�nonce�kwargs�dict�return�Nonec�����������������C��s����|j�|�_� �||�_||�_t|�dvrtdt|����|d�ur5t|�s%td��t|�dkr/td��t|�|�_ �t|�d�}d�|�_ t |d�|��||�jd�|�_ ||d���|�_ |j |d�|��|jfi�|���tjtjtjtjtjg|�_d�S�)N)� ����0����@���zIncorrect key length (%d bytes)z?When provided, the nonce must be bytes, bytearray or memoryviewr���z*When provided, the nonce must be non-empty����)Z ciphermodZ cipher_params)� block_size�_factory�_cipher_params�len� ValueErrorr ���� TypeError�bytesr����_mac_tagr ����_kdf�_subkey_cipher�newZMODE_ECBr ����UPDATE�ENCRYPT�DECRYPT�DIGEST�VERIFY�_next)�selfr���r���r���r���Z subkey_size��r-����dC:\Users\Admin\AppData\Local\Temp\WinGet_Repaired\tools\Lib\site-packages\Crypto/Cipher/_mode_siv.py�__init__D���s&���    zSivMode.__init__c�����������������C��s4���t�|�}|d@�}|�jj|�j|�jjf|dd�|�j��S�)z*Create a new CTR cipher from V in SIV model ������������������)� initial_valuer���N)r ���r���r%���r$���ZMODE_CTRr���)r,����vZv_int�qr-���r-���r.����_create_ctr_cipherf���s��� ���zSivMode._create_ctr_cipher� componentc�����������������C��s>���t�j|�jvr td��t�jt�jt�jt�jt�jg|�_|�j� |��|�S�)a���Protect one associated data component For SIV, the associated data is a sequence (*vector*) of non-empty byte strings (*components*). This method consumes the next component. It must be called once for each of the components that constitue the associated data. Note that the components have clear boundaries, so that: >>> cipher.update(b"builtin") >>> cipher.update(b"securely") is not equivalent to: >>> cipher.update(b"built") >>> cipher.update(b"insecurely") If there is no associated data, this method must not be called. Args: component (bytes/bytearray/memoryview): The next associated data component. z<update() can only be called immediately after initializationN) r ���r&���r+���r ���r'���r(���r)���r*���r#����update)r,���r5���r-���r-���r.���r6���o���s ���  zSivMode.update� plaintextr!���c�����������������C������t�d��)z� For SIV, encryption and MAC authentication must take place at the same point. This method shall not be used. Use `encrypt_and_digest` instead. zEencrypt() not allowed for SIV mode. Use encrypt_and_digest() instead.N�r ����r,���r7���r-���r-���r.����encrypt��������zSivMode.encrypt� ciphertextc�����������������C��r8���)z� For SIV, decryption and verification must take place at the same point. This method shall not be used. Use `decrypt_and_verify` instead. zEdecrypt() not allowed for SIV mode. Use decrypt_and_verify() instead.Nr9���)r,���r=���r-���r-���r.����decrypt����r<���zSivMode.decryptc�����������������C��s:���t�j|�jvr td��t�jg|�_|�jdu�r|�j���|�_|�jS�)a ��Compute the *binary* MAC tag. The caller invokes this function at the very end. This method returns the MAC that shall be sent to the receiver, together with the ciphertext. Returns: the MAC, as a byte string. zAdigest() cannot be called when decrypting or validating a messageN)r ���r)���r+���r ���r"���r#����derive�r,���r-���r-���r.����digest����s ���    zSivMode.digest�strc�����������������C��s ���|��������S�)z�Compute the *printable* MAC tag. This method is like `digest`. Returns: the MAC, as a hexadecimal string. N)rA����hexr@���r-���r-���r.���� hexdigest����s��� zSivMode.hexdigest�received_mac_tagc�����������������C��sL���t�j|�jvr td��t�jg|�_|�jdu�r|�j���|�_t|�j|�s$td��dS�)a<��Validate the *binary* MAC tag. The caller invokes this function at the very end. This method checks if the decrypted message is indeed valid (that is, if the key is correct) and it has not been tampered with while in transit. Args: received_mac_tag (bytes/bytearray/memoryview): This is the *binary* MAC, as received from the sender. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. z3verify() cannot be called when encrypting a messageNzMAC check failed) r ���r*���r+���r ���r"���r#���r?���r���r���)r,���rE���r-���r-���r.����verify����s���     �zSivMode.verify� hex_mac_tagc�����������������C��s���|���t|���dS�)ak��Validate the *printable* MAC tag. This method is like `verify`. Args: hex_mac_tag (string): This is the *printable* MAC, as received from the sender. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. N)rF���r ���)r,���rG���r-���r-���r.���� hexverify����s���zSivMode.hexverify�tuple[bytes, bytes]c�����������������C������d�S��Nr-���r:���r-���r-���r.����encrypt_and_digest��������zSivMode.encrypt_and_digest�output�Union[bytearray, memoryview]�tuple[None, bytes]c�����������������C��rJ���rK���r-���)r,���r7���rN���r-���r-���r.���rL�����������N�&Optional[Union[bytearray, memoryview]]�tuple[Optional[bytes], bytes]c�����������������C��sn���t�j|�jvr td��t�jg|�_t|�d�r|�j�|�j��|�j�|��|�j� ��|�_ |�� |�j �}|j ||d�|�j fS�)a)��Perform encrypt() and digest() in one step. Args: plaintext (bytes/bytearray/memoryview): The piece of data to encrypt. Keyword Args: output (bytearray/memoryview): The location where the ciphertext must be written to. If ``None``, the ciphertext is returned. Returns: The tuple ``(ciphertext, tag)``, both ``bytes``. The ciphertext is ``None`` when the ``output`` parameter specified a location for the result. z@encrypt() can only be called after initialization or an update()r����rN���N) r ���r'���r+���r ���r)����hasattrr#���r6���r���r?���r"���r4���r;���)r,���r7���rN����cipherr-���r-���r.���rL�������s���      �mac_tagc�����������������C��rJ���rK���r-���)r,���r=���rW���r-���r-���r.����decrypt_and_verify��rM���zSivMode.decrypt_and_verifyc�����������������C��rJ���rK���r-���)r,���r=���rW���rN���r-���r-���r.���rX�����rQ����Optional[bytes]c�����������������C��sx���t�j|�jvr td��t�jg|�_|��|�|�_|�jj||d�}t|�d�r)|�j � |�j ��|�j � |du�r2|n|��|�� |��|S�)a���Perform decryption and verification in one step. A cipher object is stateful: once you have decrypted a message you cannot decrypt (or encrypt) another message with the same object. You cannot reuse an object for encrypting or decrypting other data with the same key. This function does not remove any padding from the plaintext. Args: ciphertext (bytes/bytearray/memoryview): The piece of data to decrypt. It can be of any length. mac_tag (bytes/bytearray/memoryview): This is the *binary* MAC, as received from the sender. Keyword Args: output (bytearray/memoryview): The location where the plaintext must be written to. If ``None``, the plaintext is returned. Returns: the plaintext as ``bytes`` or ``None`` when the ``output`` parameter specified a location for the result. Raises: ValueError: if the MAC does not match. The message has been tampered with or the key is incorrect. z@decrypt() can only be called after initialization or an update()rT���r���N) r ���r(���r+���r ���r*���r4���Z_cipherr>���rU���r#���r6���r���rF���)r,���r=���rW���rN���r7���r-���r-���r.���rX�����s��� !    ) r���r���r���r���r���r���r���r���r���r���)r5���r���r���r���)r7���r���r���r!���)r=���r���r���r!���)r���r!���)r���rB���)rE���r���r���r���)rG���rB���r���r���)r7���r���r���rI���)r7���r���rN���rO���r���rP���rK���)r7���r���rN���rR���r���rS���)r=���r���rW���r���r���r!���)r=���r���rW���r���rN���rO���r���r���)r=���r���rW���r���rN���rR���r���rY���)�__name__� __module__� __qualname__�__doc__r/���r4���r6���r;���r>���rA���rD���rF���rH���r���rL���rX���r-���r-���r-���r.���r������s.���� '" "     �!  �c�������������� ���K��sR���z|��d�}W�n�ty�}�ztdt|����d}~ww�|��dd�}t|�|||�S�)a^��Create a new block cipher, configured in Synthetic Initializaton Vector (SIV) mode. Args: factory (object): A symmetric cipher module from `Crypto.Cipher` (like `Crypto.Cipher.AES`). Keyword Args: key (bytes/bytearray/memoryview): The secret key to use in the symmetric cipher. It must be 32, 48 or 64 bytes long. If AES is the chosen cipher, the variants *AES-128*, *AES-192* and or *AES-256* will be used internally. nonce (bytes/bytearray/memoryview): For deterministic encryption, it is not present. Otherwise, it is a value that must never be reused for encrypting message under this key. There are no restrictions on its length, but it is recommended to use at least 16 bytes. r���zMissing parameter: Nr���)�pop�KeyErrorr ���rB���r���)r���r���r����er���r-���r-���r.����_create_siv_cipherQ��s����� ra���N)r]���� __future__r����hmacr����typingr���r���r���r����__all__�binasciir ���ZCrypto.Cipher._state_machiner ���ZCrypto.Protocol.KDFr ���ZCrypto.Util._raw_apir ���ZCrypto.Util.numberr ����typesr���r!���� bytearray� memoryviewr���r���ra���r-���r-���r-���r.����<module>���s"���        �� 7
Emails

Targets

    • Target
      launcher.exe
    • Size 67.3MB
    • SHA256 cbc0460c7a660f5678e0f6a0586b3e2deed83bc15481ce2c0017ab7217dbe9a3
    • MD5 SHA1 SHA512 SSDEEP TLSH
    • Family: Quest,Voog,Frost

      Quest aka VoogStealer and FrostStealer is a Windows stealer based on ElectronJS.

    • Command and Scripting Interpreter: PowerShell

      Run Powershell and hide display window.

    • Checks computer location settings

      Looks up country code configured in the registry, likely geofence.

    • Executes dropped EXE

    • Loads dropped DLL

    • Reads user/profile data of web browsers

      Infostealers often target stored browser data, which can include saved credentials etc.

    • Contacts third-party web service commonly abused for C2

      Legitimate web (hosting) services can be abused by malware authors to host malware or C2s.

    • Looks up external IP address via web service

      Uses a legitimate IP lookup service to find the infected system's external IP.

    • Uses WMI to collect hardware manufacturer information

      Uses WMI to read the system manufacturer, model, baseboard or display adapter, which is often used to detect virtual machines and evade sandboxes.

    • Discovers running processes

      Running process information can be used to identify security tools or plan follow-on actions.

    • Target
      $PLUGINSDIR/StdUtils.dll
    • Size 100KB
    • SHA256 b72e9013a6204e9f01076dc38dabbf30870d44dfc66962adbf73619d4331601e
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    3/10
    • Target
      $PLUGINSDIR/System.dll
    • Size 12KB
    • SHA256 3eb38ae99653a7dbc724132ee240f6e5c4af4bfe7c01d31d23faf373f9f2eaca
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    3/10
    • Target
      LICENSES.chromium.html
    • Size 8.7MB
    • SHA256 000ae5775ffa701d57afe7ac3831b76799e8250a2d0c328d1785cba935aab38d
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    3/10
    • Target
      d3dcompiler_47.dll
    • Size 4.7MB
    • SHA256 7353f25dc5cf84d09894e3e0461cef0e56799adbc617fce37620ca67240b547d
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    1/10
    • Target
      ffmpeg.dll
    • Size 2.7MB
    • SHA256 c8476ee68088d72b9fab25703093df19237d14387016b77f472e10c99c9415ed
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    1/10
    • Target
      launcher Assistant.exe
    • Size 168.6MB
    • SHA256 67dc2a7036860a68e5312c212c31b8772ac463ed0289fcc44897867f55075e89
    • MD5 SHA1 SHA512 SSDEEP TLSH
    • Family: Quest,Voog,Frost

      Quest aka VoogStealer and FrostStealer is a Windows stealer based on ElectronJS.

    • Command and Scripting Interpreter: PowerShell

      Run Powershell and hide display window.

    • Checks computer location settings

      Looks up country code configured in the registry, likely geofence.

    • Executes dropped EXE

    • Loads dropped DLL

    • Reads user/profile data of web browsers

      Infostealers often target stored browser data, which can include saved credentials etc.

    • Contacts third-party web service commonly abused for C2

      Legitimate web (hosting) services can be abused by malware authors to host malware or C2s.

    • Looks up external IP address via web service

      Uses a legitimate IP lookup service to find the infected system's external IP.

    • Uses WMI to collect hardware manufacturer information

      Uses WMI to read the system manufacturer, model, baseboard or display adapter, which is often used to detect virtual machines and evade sandboxes.

    • Discovers running processes

      Running process information can be used to identify security tools or plan follow-on actions.

    • Target
      libEGL.dll
    • Size 467KB
    • SHA256 7bee4e33d89e5a4f2b3bc74d632f7c773ae9a399b6b2ba6d29b1192e25695a8b
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    1/10
    • Target
      libGLESv2.dll
    • Size 7.4MB
    • SHA256 ee039e42a4948e9f26ece8515f3c699014fa7803ae597cd3427fa1548962f9af
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    1/10
    • Target
      vk_swiftshader.dll
    • Size 5.0MB
    • SHA256 680ea3717671c896d516517ff322976ab708f18862135be4216a27ad57353dcc
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    1/10
    • Target
      vulkan-1.dll
    • Size 925KB
    • SHA256 d5df2f59cc8b32abd6178250e7d1370a7f37270cc727449e21778080b5e29cd2
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    1/10
    • Target
      $PLUGINSDIR/nsis7z.dll
    • Size 424KB
    • SHA256 b393f05e8ff919ef071181050e1873c9a776e1a0ae8329aefff7007d0cadf592
    • MD5 SHA1 SHA512 SSDEEP TLSH
    Score
    3/10

MITRE ATT&CK Enterprise v16

Tasks

static1

Score
3/10

behavioral1

defense_evasiondiscoveryexecutionquestransomwareratspywarestealer
Score
10/10

behavioral2

defense_evasiondiscoveryexecutionquestransomwareratspywarestealer
Score
10/10

behavioral3

discovery
Score
3/10

behavioral4

discovery
Score
3/10

behavioral5

discovery
Score
3/10

behavioral6

discovery
Score
3/10

behavioral7

discovery
Score
3/10

behavioral8

discovery
Score
3/10

behavioral9

Score
1/10

behavioral10

Score
1/10

behavioral11

Score
1/10

behavioral12

defense_evasiondiscoveryexecutionquestransomwareratspywarestealer
Score
10/10

behavioral13

defense_evasiondiscoveryexecutionquestransomwareratspywarestealer
Score
10/10

behavioral14

Score
1/10

behavioral15

Score
1/10

behavioral16

Score
1/10

behavioral17

Score
1/10

behavioral18

Score
1/10

behavioral19

Score
1/10

behavioral20

Score
1/10

behavioral21

Score
1/10

behavioral22

discovery
Score
3/10

behavioral23

discovery
Score
3/10