HV-PlugNPlay 이거 궁금해서 AI 한테 조금 물어봤는데..
궁금해서 좀 물어봤는데..
재부팅 하면서 드라이버 서명을 껏던걸, 실시간으로 5초동안만 껏다가 다시켜는 구조네요
???? 재부팅 없이 우회가 가능한 원리
1. 커널 메모리의 'DSE 플래그' 실시간 변조
윈도우 커널(ntoskrnl.exe) 내부에는 드라이버 서명 강제(DSE, Driver Signature Enforcement) 기능이 켜져 있는지 꺼져 있는지 기억하는 일종의 스위치 변수(Flag)가 존재합니다.
정석적인 방법은 재부팅 시 이 값을
0(꺼짐)으로 로드하는 것입니다.반면, 이 스크립트가 다운로드하는
drvloader.exe는 윈도우가 켜져 있는 상태에서 커널 메모리에 직접 접근하여 이 스위치 값을 실시간으로0으로 바꿔버립니다. 이를 보통 '커널 메모리 패치'라고 부릅니다.
2. 취약한 정식 드라이버의 악용 (BYOVD 기법)
"일반 프로그램은 커널 메모리를 건드릴 수 없는데 어떻게 수정을 하나요?"라는 의문이 들 수 있습니다. 윈도우 보안상 일반 프로세스는 커널 영역에 절대 접근할 수 없습니다.
여기서 이 도구는 BYOVD (Bring Your Own Vulnerable Driver)라는 고도의 기법을 사용합니다.
보안 결함(취약점)이 있는 정식 합법 드라이버를 시스템에 먼저 로드합니다. (예: 과거 기가바이트, ASUS 등 대기업에서 만든 하드웨어 제어용 드라이버 중 메모리 접근 권한 관리에 허점이 있던 구버전 드라이버들)
이 드라이버는 MS의 서명이 있으므로 윈도우가 아무런 의심 없이 통과시켜 줍니다.
drvloader는 이 합법 드라이버의 취약점을 통로 삼아 커널 메모리에 침투한 뒤, 드라이버 서명 강제 스위치를 꺼버리는 것입니다.
???? 왜 5초 뒤에 다시 RESTORE(복구)를 할까?
스크립트 후반부를 보면 게임을 켜고 5초 뒤에 drvloader.exe restore를 실행해 보안을 다시 켭니다. 여기에는 두 가지 이유가 있습니다.
윈도우 자체 보안 감지 회피 (KPP/Patchguard) 윈도우에는 커널 구조가 무단으로 변경되었는지 감지하는 패치가드(Patchguard)라는 강력한 감시관이 상시 구동 중입니다. 커널 스위치를 끈 채로 오랜 시간 방치하면 패치가드가 이를 감지하고 시스템을 보호하기 위해 블루스크린(BSOD)을 발생시킵니다. 따라서 안치치트가 없는 게임을 실행할 때만 잠깐 꺼서 드라이버를 로드시키고, 패치가드에 걸리기 전에 얼른 원래대로 돌려놓는 것입니다.
최소한의 보안 유지 원하는 비인증 드라이버가 이미 메모리에 로드(실행)된 이후에는 드라이버 서명 검사를 다시 켜도 그 드라이버가 꺼지지 않습니다. 목적을 달성했으니 다른 악성 드라이버가 침투하지 못하도록 문을 다시 잠그는 것입니다.
⚠️ 한계점: 코어 격리(Memory Integrity) 환경에서는 불가
스크립트 중간에 check_core_isolation 단계가 있는 이유가 바로 이것 때문입니다. 최신 윈도우의 코어 격리(메모리 무결성) 기능은 가상화(Hyper-V) 기술을 이용해 커널 메모리를 물리적으로 격리 보호합니다. 이 기능이 켜져 있으면 위에 설명한 커널 메모리 실시간 변조 기법이 원천 차단되기 때문에, 스크립트가 작동하지 않고 먼저 코어 격리를 끈 뒤 재부팅하라고 안내하는 것입니다.
???? 드라이버 로딩의 '네 시간 작전'
경비원 눈 돌리기 (Bypass): 합법적인 드라이버의 취약점을 이용해, 윈도우 커널 경비원에게 "어? 저기 잠깐 보실래요?" 하고 고개를 돌리게 만듭니다. (드라이버 서명 검사 기능 OFF)
밀입국 (Game Launch): 경비원이 한눈을 판 5초라는 짧은 시간 동안, 원래는 통과할 수 없는 비인증 드라이버(게임 로더/크랙 드라이버)를 시스템 메모리 안으로 후다닥 통과시켜 실행해 버립니다.
완전 범죄 및 문 잠그기 (Restore): 비인증 드라이버가 메모리에 안착하자마자, 경비원이 알아채기 전에 얼른 드라이버 서명 검사 스위치를 다시 켭니다.
튈 준비를 마친 드라이버의 특성 이용
윈도우 시스템은 "드라이버가 처음 메모리에 로드될 때"만 서명을 검사합니다. 일단 한번 메모리에 올라가서 구동되기 시작하면, 그 이후에 드라이버 서명 검사 기능을 다시 켜도 이미 실행 중인 드라이버를 강제로 쫓아내지 못합니다.
스크립트 제작자는 이 점을 노려서 딱 드라이버가 실행될 시간(5초)만 벌어주고 바로 흔적을 지우는(Restore) 방식을 택한 것입니다.
만약 이 5초의 타이밍을 놓치고 복구를 안 하거나 지연되면, 얼마 지나지 않아 윈도우의 또 다른 커널 감시관인 패치가드(Patchguard)가 "어라? 왜 서명 검사 스위치가 꺼져 있지?" 하고 알아채며 시스템을 보호하기 위해 냅다 블루스크린(BSOD)을 띄워버리게 됩니다.
위험하긴 하지만, 재부팅 없이 원하는 목적을 달성하기 위해 윈도우 커널의 구조와 타이밍을 아주 정밀하게 계산해서 만든 교묘한 야매(?) 스크립트라고 볼 수 있습니다.
Comments
야누스짱
05.31 22:07
Y영맨M
05.31 22:25

ProGaming
05.31 22:59
tcafe211
06.02 11:06
은하수
06.03 07:32
알제이2266
사랑그건
agerr
44khz
najon
김제리
강고양이
darkman
태공량이
kukuri
정인요미
링크

