
WHQL 서명된 DsArk64.sys 드라이버를 악용하여 암호화된 IOCTL과 프로세스 할로잉을 통해 링-0 프로세스 종료 및 커널 읽기/쓰기를 수행하는 BYOVD 개념 증명.
DsArk64.sys는 360 Total Security와 함께 배포됩니다. Microsoft의 WHQL 서명을 받았습니다. LOLDrivers: magicsword-io/LOLDrivers#308. CVE: 요청됨 (MITRE).
프로세스 종료 (ring 0)
0x80863008, 입력: 4바이트 원시 PIDZwOpenProcess(ALL_ACCESS) + ZwTerminateProcess 호출커널 읽기
0x80863028, AES-128-CBC 암호화된 입력memcpy(out, kernel_addr, n), 최대 512바이트MmIsAddressValid()커널 쓰기
0x80863028, 동일한 암호화memcpy, 최대 32바이트암호화
.data 섹션에 내장된 정적 키62b456ec407f0a9a05911cb6f238a7fee59329b6d408e7fa557637e62c9eaa43[MD5(payload) 16B][payload]드라이버는 장치 접근을 허용하기 전에 호출자 프로세스가 Qihoo Authenticode 서명을 가지고 있는지 확인합니다. 프로세스 할로잉을 통해 우회:
360.cn에서 아무 360 설치 프로그램 다운로드 (계정 불필요, CAPTCHA 없음)CREATE_SUSPENDED)CreateRemoteThread를 통해 셸코드 주입; 셸코드가 CreateFileW("\\.\DsArk") 호출IoGetCurrentProcess() 이미지 이름을 확인하고 Qihoo 인증서를 인식하여 열기 허용DuplicateHandle로 공격자 프로세스에 복제TerminateProcess설치 프로그램의 WinMain은 실행되지 않습니다.
pycryptodome 또는 cryptography pip 패키지 (암호화된 IOCTL 테스트용)8/8 통과:
HKLM\...\360FsFlt\daboot=1 생성됨sc create/start를 통해 드라이버 로드됨 (WHQL 서명, 테스트 서명 불필요)0x80863000 응답함0x80863008이 notepad.exe 종료함0x80863020이 핸들러에 도달함0x80863028 암호화 검증됨 (AES 키/IV 정확, MD5 허용됨)0xDEAD0000 거부됨| 파일 | SHA256 |
|---|---|
| dsark64.sys | cd3d1a2e119cbbb41ec0e7d7fb17bac106735d62b33ed3cde10087af1da89403 |
| DsArk64_win10.sys | 86127dbc92e2896319d1c9117b85e6db01ff001f3a85614d5ef9088d181b044a |
X: @weezerOSINT / Telegram: @weezer