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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ioctlance — x64 WDM 드라이버에서 취약점을 찾는 데 사용되는 도구 | Kitploit
도구/GitHubGitHub/zeze-zeze/ioctlance
Static AnalysisDynamic Analysis (Sandboxing)Exploit FrameworksVulnerability AnalysisReverse EngineeringFuzzingBinary Analysis
GitHubzeze-zeze/ioctlance

ioctlance

x64 WDM 드라이버에서 취약점을 찾는 데 사용되는 도구

저장소 보기
469552개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

IOCTLance

설명

2023 CODE BLUE에서 발표된 이 프로젝트(제목: Enhanced Vulnerability Hunting in WDM Drivers with Symbolic Execution and Taint Analysis)는 IOCTLance를 소개합니다. IOCTLance는 WDM 드라이버에서 다양한 취약점 유형을 탐지하는 능력을 향상시키는 도구입니다. 104개의 알려진 취약 WDM 드라이버와 328개의 알려지지 않은 드라이버를 포함한 종합적인 평가에서 IOCTLance는 26개의 개별 드라이버에서 117개의 이전에 확인되지 않은 취약점을 성공적으로 발견했습니다. 그 결과, 41개의 CVE가 보고되었으며, 이는 25건의 서비스 거부, 5건의 부적절한 접근 제어, 11건의 권한 상승 사례를 포함합니다.

기능

대상 취약점 유형

  • 물리 메모리 매핑
  • 제어 가능한 프로세스 핸들
  • 버퍼 오버플로우
  • 널 포인터 역참조
  • 읽기/쓰기 가능한 주소 제어
  • 임의 셸코드 실행
  • 임의 wrmsr
  • 임의 out
  • 위험한 파일 작업
  • 임의 프로세스 종료
  • 다른 프로세스 컨텍스트에서 제어 가능한 핸들 닫기

선택적 사용자 정의

  • 길이 제한
  • 루프 한계
  • 전체 타임아웃
  • IoControlCode 타임아웃
  • 재귀
  • 데이터 섹션 심볼화

빌드

Docker (권장)

root@kitploit:~
docker build .
docker run -it <IOCTLance IMAGE ID> bash

로컬

root@kitploit:~
dpkg --add-architecture i386
apt-get update
apt-get install git build-essential python3 python3-pip python3-dev htop vim sudo \
                openjdk-8-jdk zlib1g:i386 libtinfo5:i386 libstdc++6:i386 libgcc1:i386 \
                libc6:i386 libssl-dev nasm binutils-multiarch qtdeclarative5-dev libpixman-1-dev \
                libglib2.0-dev debian-archive-keyring debootstrap libtool libreadline-dev cmake \
                libffi-dev libxslt1-dev libxml2-dev

pip install angr==9.2.18 ipython==8.5.0 ipdb==0.13.9

분석

root@kitploit:~
# python3 analysis/ioctlance.py -h
usage: ioctlance.py [-h] [-i IOCTLCODE] [-T TOTAL_TIMEOUT] [-t TIMEOUT] [-l LENGTH] [-b BOUND]
                    [-g GLOBAL_VAR] [-a ADDRESS] [-e EXCLUDE] [-o] [-r] [-c] [-d]
                    path

positional arguments:
  path                  dir (including subdirectory) or file path to the driver(s) to analyze

optional arguments:
  -h, --help            show this help message and exit
  -i IOCTLCODE, --ioctlcode IOCTLCODE
                        analyze specified IoControlCode (e.g. 22201c)
  -T TOTAL_TIMEOUT, --total_timeout TOTAL_TIMEOUT
                        total timeout for the whole symbolic execution (default 1200, 0 to unlimited)
  -t TIMEOUT, --timeout TIMEOUT
                        timeout for analyze each IoControlCode (default 40, 0 to unlimited)
  -l LENGTH, --length LENGTH
                        the limit of number of instructions for technique LengthLimiter (default 0, 0
                        to unlimited)
  -b BOUND, --bound BOUND
                        the bound for technique LoopSeer (default 0, 0 to unlimited)
  -g GLOBAL_VAR, --global_var GLOBAL_VAR
                        symbolize how many bytes in .data section (default 0 hex)
  -a ADDRESS, --address ADDRESS
                        address of ioctl handler to directly start hunting with blank state (e.g.
                        140005c20)
  -e EXCLUDE, --exclude EXCLUDE
                        exclude function address split with , (e.g. 140005c20,140006c20)
  -o, --overwrite       overwrite x.sys.json if x.sys has been analyzed (default False)
  -r, --recursion       do not kill state if detecting recursion (default False)
  -c, --complete        get complete base state (default False)
  -d, --debug           print debug info while analyzing (default False)

평가

root@kitploit:~
# python3 evaluation/statistics.py -h
usage: statistics.py [-h] [-w] path

positional arguments:
  path        target dir or file path

optional arguments:
  -h, --help  show this help message and exit
  -w, --wdm   copy the wdm drivers into <path>/wdm

테스트

  1. 테스트 예제를 test에서 컴파일하여 테스트 드라이버 파일을 생성하세요.
  2. 드라이버 파일에 대해 IOCTLance를 실행하세요.

참고 자료

  • ucsb-seclab/popkorn-artifact
  • eclypsium/Screwed-Drivers
  • koutto/ioctlbf
  • Living Off The Land Drivers
도구 다운로드