
이전에 Hacking Team 유출에서 나온 0day 익스플로잇으로, Eugene Ching/Qavar가 작성했습니다.
이것은 Hacking Team 아카이브에서 나온 Windows 커널 로컬 권한 상승 0day인 CVE-2015-2426(MS-078)에 대한 익스플로잇입니다(이메일 여기). Eugene Ching / Qavar security가 개발했습니다. 원본 내용은 아래와 같습니다:
권한 상승으로 이어지는 Windows 커널 메모리 손상 익스플로잇.
2015년 1월 28일 기준 완전히 패치된 Windows 8.1에서 테스트됨.
또한 다음 환경에서도 동작하도록 테스트됨:
Chrome에 적절한 RCE가 있다고 가정(Chrome에 스레드를 주입하여 시뮬레이션)
메인 익스플로잇은 Visual Studio 2013 Express 솔루션의 일부로 제공되는 PIC.c에 구현되어 있습니다.
솔루션을 빌드하면 PIC.exe가 생성됩니다.
궁극적으로 익스플로잇을 대상의 메모리에 주입하고 직접 실행하려고 합니다. 그러기 위해서는 관련 명령어(opcode)와 필요한 데이터만 주입해야 합니다.
따라서 PIC.exe에서 코드 세그먼트(opcode)를 추출하고, 필요한 데이터(비정상 폰트 font-data.bin)를 바이트 시퀀스에 추가합니다.
이렇게 하면 대상에 직접 주입하고 CreateRemoteThread()를 호출할 수 있는 "원시 바이트"가 생성됩니다.
이 과정은 make-raw-bytes.py라는 Python 스크립트를 통해 자동화됩니다. 출력물은 raw-bytes.bin입니다.
"원시 바이트"를 실제로 대상에 주입하는 .exe로 변환하려면 WriteProcessMemory() 및 CreateRemoteThread()를 호출해야 합니다.
이 과정은 make-injector-cpp.py가 처리합니다. 출력물은 injector.cpp로, 컴파일하면 대상 PID를 받아 익스플로잇을 실행하는 코드입니다.
편의를 위해 make.bat은 위에서 설명한 단계를 수행하여 injector.exe를 직접 생성합니다.
즉, make.bat은 다음을 수행합니다: