Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BiBi-Windows-Wiper-Analysis — 이스라엘 조직을 겨냥한 Bibi-Windows Wiper에 대한 기술적 분석 | Kitploit
도구/GitHubGitHub/knight0x07/bibi-windows-wiper-analysis
Reverse EngineeringMalware AnalysisDigital ForensicsBinary AnalysisThreat IntelligenceIncident Response
GitHubknight0x07/bibi-windows-wiper-analysis

BiBi-Windows-Wiper-Analysis

이스라엘 조직을 겨냥한 Bibi-Windows Wiper에 대한 기술적 분석

저장소 보기
812년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

이스라엘 조직을 표적으로 한 BiBi-Windows Wiper 기술 분석

10월 30일, Security Joes 사고 대응 팀은 친(親)하마스 핵티비스트 그룹이 인프라를 파괴하기 위해 배포한 "BiBi-Linux" Wiper라는 새로운 Linux Wiper를 발견했습니다. 그리고 2023년 11월 1일, ESET Research는 2023년 이스라엘-하마스 분쟁 기간에 처음 등장한 하마스 지원 핵티비스트 그룹 BiBiGun이 배포한 Windows 버전의 BiBi Wiper에 대해 트윗했습니다.

이 글에서는 "BiBi-Windows Wiper" 로 알려진 Windows 버전의 BiBi Wiper를 살펴보겠습니다.

기술 분석

실행 시 BiBi-Windows Wiper는 BiBi Wiper에 전달된 인자가 있는지 확인합니다. 여기서 인자는 파괴할 디렉터리입니다 - bibi.exe <directory_to_destroyed>. 인자가 제공되지 않으면 대상 드라이브를 가져오기 위해 다음과 같은 루틴을 수행합니다.

  • 하드코딩된 경로 "C:\Users"를 읽습니다.

  • GetLogicalDrives()를 사용하여 현재 사용 가능한 디스크 드라이브를 가져옵니다. 반환 값은 비트마스크이며, A-Z(26개) 드라이브를 반복합니다. 그런 다음 검색된 비트마스크에 대해 비트 테스트를 수행하여 시스템에서 접근 가능한 드라이브를 확인하고 드라이브 이름에 ":\"를 추가합니다.

  • 여기서 i != 2를 확인하여 C 드라이브를 제외합니다. 여기서 2는 C 드라이브의 비트마스크 위치입니다.

  • 그런 다음 C 드라이브를 제외한 사용 가능한 드라이브에 대해 드라이브 유형을 검색하는 GetDriveTypeA()를 실행합니다. BiBi-Windows Wiper는 여기서 다음 드라이브 유형만 대상으로 합니다.

    • DRIVE_FIXED
    • DRIVE_REMOVABLE
    • DRIVE_RAMDISK

1

따라서 BiBi-Windows Wiper는 다음을 대상으로 합니다.

  • 하드코딩된 디렉터리 - "C:\Users"
  • "C:" 드라이브를 제외한 모든 사용 가능한 드라이브

또한 대상 디렉터리를 콘솔에 출력하고 GetNativeSystemInfo()에서 NumberOfProcessors를 검색한 다음, numberofprocessors를 기반으로 스레드를 계산하여 콘솔에 출력합니다.

2

또한 역순으로 저장된 명령을 읽는 새 스레드를 생성한 다음 CreateProcessA를 사용하여 새 프로세스를 생성해 해당 명령을 실행합니다. 명령은 다음과 같습니다.

  • cmd.exe /c bcdedit /set {default} recoveryenabled no - Windows 복구 환경을 비활성화합니다.
  • cmd.exe / c bcdedit / set {default} bootstatuspolicy ignoreallfailures - Windows 복구 환경 대신 시스템이 정상적으로 부팅되도록 강제합니다.
  • cmd.exe /c wmic shadowcopy delete - WMIC를 사용하여 볼륨 섀도 복사본을 삭제합니다.
  • cmd.exe /c vssadmin delete shadows /quIet /all - VssAdmin을 사용하여 볼륨 섀도 복사본을 삭제합니다.

3

또한 기본 Wiper 루틴을 실행하는 또 다른 스레드를 생성합니다. Wiper 루틴은 다음 작업을 수행합니다.

  • Wiper 함수에 전달되는 인자는 다음과 같습니다.
    • Arg1 - 파괴할 디렉터리의 경로 (운영자가 제공하거나 앞서 설명한 대로 검색될 수 있음)
    • Arg2 - 스레드 수
  • 그런 다음 카운터가 라운드 "[+] Round %d\n" 값인 무한 루프를 시작합니다. 따라서 Wiper가 실행되면 데이터를 무한히 계속 파괴합니다!
  • 또한 스레드 수에 따라 루프에서 여러 스레드를 생성하여 기본 Wiper 함수를 실행합니다.
  • BiBi-Windows wiper는 ".exe", ".dll", ".sys" 확장자를 가진 파일을 제외합니다.

4

Wiper 함수 분석

이제 BiBi-Windows Wiper가 시스템의 데이터를 어떻게 파괴하는지 알아보겠습니다.

  • Wiper는 먼저 암호화 대상 디렉터리를 재귀적으로 탐색한 다음 대상 파일의 파일 크기를 검색합니다.
  • 그런 다음 파일 크기를 기반으로 대상 파일에 대해 wiper 함수를 루프로 실행합니다. 이때 wiper 함수의 두 번째 인자는 "0xFF"입니다.
  • Wiper 함수는 아래와 같이 난수를 생성하는 Mersenne Twister PseudoRandom Number Generator Algorithm(메르센 트위스터 의사난수 생성 알고리즘)을 구현합니다.

5

  • sub_140008BF0() 함수에서 생성된 난수는 값 "0xFF + 1 = 100"으로 모듈로(%) 연산을 수행하며, 모듈로 연산의 출력(나머지)이 대상 파일에 바이트 단위로 덮어써지는 바이트입니다.

7

아래는 "hello" 데이터로 구성된 파일에 대해 이 5개의 랜덤 바이트가 루프로 덮어써지는 예시입니다.

ogfile_val -> rand_num % (hardcoded_val + 1) -> overwrite_val

root@kitploit:~
h - 0xDD9B40A5 % 0x100 -> 0xA5
e - 0x37905317 % 0x100 -> 0x17
l - 0x54B7A20C % 0x100 -> 0x0C
l - 0xDBD10533 % 0x100 -> 0x33
o - 0x18ED3C42 % 0x100 -> 0x42

랜덤 바이트로 덮어써진 파일 - 파괴됨!

9

이제 파일의 데이터가 랜덤 바이트로 덮어써지고 파일이 파괴되면, BiBi Wiper는 다음과 같은 방식으로 파일 이름을 변경합니다.

  • 이전의 Mersenne Twister 함수를 다시 호출합니다. 이때 하드코딩된 인자는 "0x3D"입니다. 난수가 생성되면 "0x3E"로 모듈로 연산을 수행하고 출력(나머지) 값이 같은 방식으로 저장됩니다.
  • 또한 출력 나머지 값은 2로 곱해진 다음 아래와 같이 와이드 문자열에 대해 인덱싱됩니다.
root@kitploit:~
rand_no = twisterfunc()
remainder_output = rand_no % (0x3D + 1)
wide_string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
filename_byte = wide_string[remainder_output * 2]

Thus,
if random num = 0xC6D15D79
mod_out = 0xC6D15D79 % 0x3E => 0x31
offset = 0x31 × 0x2 = 0x62
so the 62nd indexed value in the wide string becomes one of the character for the filename. In this case the value is "n"

같은 루틴은 0xA (10)회 실행되며, 모든 인덱싱된 값이 연결되어 예: 1wnRvB6teT 와 같은 랜덤 파일 이름을 형성합니다. 그런 다음 확장자 ".BiBi" (BiBi는 이스라엘 총리 베냐민 네타냐후의 별명입니다) 가 끝에 오는 라운드 번호와 함께 다음 방식으로 추가됩니다 - <rand_filename>.BiBi

10

따라서 BiBi-Windows Wiper는 다음과 같은 방식으로 대상 디렉터리의 모든 파일을 파괴합니다. 즉, 파일의 데이터를 랜덤 바이트로 덮어씁니다. 루프, 즉 라운드가 무한하므로 Wiper는 멈추지 않고 파일을 무한히 재귀적으로 여러 번 랜덤 바이트로 덮어쓰며 시스템의 파일을 완전히 파괴합니다!

BiBi-Windows Wiper 실행 화면: 대상 디렉터리, CPU 코어, 스레드, 라운드 번호, 통계 및 .BiBi 확장자로 파괴된 파일을 보여줍니다.

12

읽어주셔서 감사합니다! - knight0x07

도구 다운로드