
Hive v5 파일 복호화 알고리즘
지난 몇 달간 수행된 작업은 Hive v5-5.2의 악성 파일 암호화 메커니즘을 밝혀내기 위해 필요했습니다. 작업은 두 부분으로 나뉘었습니다.
훌륭하신 @rivitna 님께 이 몇 달간의 작업에 대한 지원, 대화, 조언에 감사드립니다! rivitna의 github에는 Hive 랜섬웨어 등에 관한 유용한 정보가 가득하니 꼭 확인해 보시기 바랍니다.
이 readme에서는 파일 복호화 알고리즘에 대한 몇 가지 정보를 찾을 수 있으며, 작동 방식에 대한 더 완전한 그림은 PoC를 참조하시기 바랍니다. 키스트림은 암호화된 평문(cleartext)입니다. 평문은 0xA00000 바이트 집합에 첫 0x2FFF00 바이트가 추가된 것으로, 총 0xCFFF00 바이트입니다. 이 바이트들은 2022년 7월에 공개된 첫 번째 파트에서 이미 논의된 취약한 알고리즘으로 생성되었습니다. 다음은 평문의 예입니다.

이 문서에서 분석되고 참조된 Hive 샘플은 @rivitna가 작성한 이 목록에서 선택되었으며, 다시 한번 깊은 감사를 드립니다. 랜섬웨어의 복잡성을 이해하려면 Microsoft Threat Intelligence Center(MSTIC)에서 발행한 이 분석을 살펴보시기 바랍니다.
평문(복호화된 키스트림)은 Hive 랜섬웨어가 각 파일을 암호화할 때 사용됩니다. 파일을 암호화할 때 Hive 랜섬웨어는 다음 공식에 따라 파일을 암호화하는 데 사용할 평문 내 정확한 위치(오프셋)를 참조하는 두 개의 정수를 계산합니다.

여기서 c = i % 0x2FFF00, d = i % 0x2FFD00 이며, i는 바이트 카운터입니다.
파일을 쓰기 전의 사전 작업은 다음과 같습니다.

이 경우에도 평문은 핵심적인 역할을 합니다. 실제로 평문은 다음 용도로 사용됩니다.

또는 이 경우 0x7539D:

그러나 다음 증거에서는 for 루프가 약간 다르며, 우리가 식별해야 하는 마법 값을 명시하지 않도록 작성되었습니다. 이는 Hive 5.2에 속하는 아티팩트에 관한 것입니다.

이 경우 공개된 도구에 포함된 오프셋 무차별 대입 기능을 사용할 수 있으며, 알려진 확장자를 가진 파일과 해당 복호화된 키스트림을 사용합니다. 암호화된 파일의 헤더와 암호화되지 않은 파일의 헤더를 사용하면 복호화기가 파일 복호화를 시작해야 하는 오프셋이 무엇인지 알 수 있습니다.
파일 암호화 모드는 0xFB 또는 0xFF 두 가지 값을 가질 수 있습니다.
이 프로그램은 두 가지 옵션을 제공합니다.

https://github.com/rivitna/Malware/blob/main/Hive/Hive_samples.txt