Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BlackLotus-analysis-stage2-bootkit-rootkit-stage — Z2A-BlackLotus 챌린지 2단계 부트킷-루트킷 분석 | Kitploit
도구/GitHubGitHub/spiralbl0ck/blacklotus-analysis-stage2-bootkit-rootkit-stage
Static AnalysisDynamic Analysis (Sandboxing)Reverse EngineeringDebuggersMalware AnalysisBinary AnalysisLearning & EducationFirmware Analysis

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
GitHub
spiralbl0ck/blacklotus-analysis-stage2-bootkit-rootkit-stage

BlackLotus-analysis-stage2-bootkit-rootkit-stage

Z2A-BlackLotus 챌린지 2단계 부트킷-루트킷 분석

저장소 보기
175193년 전아직 검토되지 않음
공유

BlackLotus-analysis-stage2-bootkit-rootkit-stage

BlackLotus 2단계 부트킷-루트킷 분석

이 신성한 똥(제발 믿어줘, 이건 정말 신성한 똥이야. 아무도 신의 뜻 없이는 이걸 해낼 수 없어(적어도 이게 내 생각이야))에 뛰어들기 전에, 부트킷 파일의 해시가 여기 있다

1

가장 먼저, 정상적인 시스템은 이렇게 생겼다

1
2
``` C:\Windows\system32>BCDEdit

Windows Boot Manager

identifier {bootmgr} device partition=\Device\HarddiskVolume9 path \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI description Windows Boot Manager locale en-US inherit {globalsettings} default {current} resumeobject {3f80ecd0-df10-11ed-bafc-80a84b2564bb} displayorder {current} toolsdisplayorder {memdiag} timeout 30

Windows Boot Loader

identifier {current} device partition=C: path \Windows\system32\winload.efi description Windows 10 locale en-US inherit {bootloadersettings} recoverysequence {3f80ecd2-df10-11ed-bafc-80a84b2564bb} displaymessageoverride Recovery recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {3f80ecd0-df10-11ed-bafc-80a84b2564bb} nx OptIn bootmenupolicy Standard

이제 제 분석에서 저는 제 머신을 감염시키는 데 성공하지 못했습니다. 그래서 앞서 언급한 아시아 연구원의 블로그 게시물에 나온 예시를 사용하겠습니다. 이는 감염된 머신이 어떻게 보이는지 보여줍니다.```
    // Windows Boot Manager
    // --------------------
    // identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
    // description             Windows Boot Manager
    // locale                  en-US
    // inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
    // bootdebug               Yes
    // displayorder            {57e1b615-0355-11ec-abb0-005056c00008}
    // timeout                 30

    // Windows Boot Loader
    // -------------------
    // identifier              {57e1b615-0355-11ec-abb0-005056c00008}
    // device                  boot
    // path                    \system32\hvloader.efi
    // description             Hoy la disco se flota
    // locale                  en-US
    // inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
    // truncatememory          0x10000000
    // avoidlowmemory          0x1000
    // nointegritychecks       Yes
    // testsigning             Yes
    // isolatedcontext         Yes
    // osdevice                boot
    // systemroot              \
    // ems                     Yes

=============================================================================

=============================================================================

본격적으로 시작하기 전에, 어쨌든 EFI 모듈 분석을 위한 환경을 어떻게 구축할까요? @MaverickMusic__ 님께 감사를 표합니다. 그와 논의하던 중 그가 저에게 이것을 건네주었습니다( https://zhuanlan-zhihu-com.translate.goog/p/343293521?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB ). 저는 거기의 단계를 완전히 따라 하지는 않았습니다. 그래서 제가 환경을 구축하기 위해 정확히 수행한 작업은 다음과 같습니다:

-첫째, 저는 edk2를 설치했습니다(https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems)

-둘째, 저는 ovmf를 릴리스가 아닌 디버그로 구성했습니다(이것은 나중에 우리에게 도움이 될 것입니다). 명령어는 다음과 같습니다: build -a X64 -t VS2019 -b DEBUG -p OvmfPkg/OvmfPkgX64.dsc

-셋째, windbg를 구성해야 했습니다. 도대체 어떻게 했을까요? 이 링크에서 모든 것을 다운로드했습니다(git clone https://github.com/microsoft/WinDbg-Samples). 그런 다음 ExdiGdbSrv.sln을 컴파일했습니다. 그런 다음 이 링크의 모든 내용을 따랐습니다(https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-qemu-kernel-mode-debugging-using-exdi), "관리자 명령 프롬프트에서 regsvr32를 사용하여 DLL을 등록하십시오."라고 나온 부분부터 PS>.\Start-ExdiDebugger.ps1 -ExdiTarget "QEMU" -GdbPort 1234 -Architecture x64 -ExdiDropPath "C:\path\to\built\exdi\files"까지요. 혼란스럽다는 것을 압니다. 하지만 인내심을 갖고 기다려 주세요. 모든 단계를 설명하는 비디오를 반드시 만들 예정이니까요! 좋습니다. 이제 디버깅을 위한 환경이 준비되었으니, 도대체 코드를 어떻게 디버깅할까요? 그래서 우리는 qemu를 시작합니다. 제 경우에는 qemu-system-x86_64.exe -L . -bios OVMF.fd -hdd dos.img -debugcon file:debug.log -global isa-debugcon.iobase=0x402를 실행하여 수행했습니다. qemu 명령어를 실행한 후 즉시 qemu의 view 메뉴에서 compat_monitor0을 선택했습니다. 그렇게 하면 아래와 같이 보일 것입니다.

또한 이것을 선택한 후에는 gdbserver를 입력하여 원격 gdb 디버깅 인스턴스를 시작해야 합니다. 여기에 windbg로 다음 명령어를 사용하여 연결할 것입니다: .\Start-ExdiDebugger.ps1 -ExdiTarget "QEMU" -GdbPort 1234 -Architecture x64 좋습니다. 일단 연결하면 아래와 같이 보일 것입니다.

1
``` So how do we set up a breakpoint in order to debug the bootkit? Well that's we we compiled the ovmf image as debug rather than release. If you specifically start qemu with that command you'll have qemu run and debug messages will be logged in a file called debug.log , which looks like this ```
1

이제 이 출력을 이해하기 위해 좋아요. 우리 경우에 유일하게 관련된 줄은 EntryPoint=0x000062C9A8C인데, 이는 부트킷을 실행할 때마다 선호되는 로드 주소와 같습니다. 특히 부트킷의 경우 0x62C4A8C 또는 0x62C9A8C 사이에서 변합니다. 이제 IDA에서 프로그램을 리베이스하고 평소처럼 작업을 할 수 있습니다 :) . 나머지 블로그도 즐기세요!

=============================================================================

Bindiffing 원본 winload.efi와 blacklotus가 드롭한 파일

1
2
3 ```
도구 다운로드