
CVE-2017-11176을 위한 코드 실행
CVE-2017-11176에 대한 코드 실행 개념 증명(PoC)입니다.
Linux 커널 4.11.9까지의 mq_notify 함수는 재시도 로직 진입 시 sock 포인터를 NULL로 설정하지 않습니다. 사용자 공간에서 Netlink 소켓을 닫는 동안 공격자가 서비스 거부(use-after-free)를 유발하거나 기타 지정되지 않은 영향을 미칠 수 있도록 허용합니다.
이 게시물들을 확인해보세요. 저는 그로부터 많은 것을 배웠습니다.
SMAP이 비활성화됨KASLR이 비활성화됨SLAB 할당자가 악용됨heap.c: 대상 캐시를 발견하는 데 사용됩니다.*.stp: 이 파일들은 System Tap이 디버깅에 사용됩니다. 또한 offset.stap은 구조체 오프셋을 출력합니다.gdb.script: 디버깅을 위한 gdb 스크립트입니다. RAX가 사용자 공간에 있으면 중단점을 트리거합니다. 성능 문제를 피하기 위해 첫 번째 중단점에 도달한 후 두 번째 중단점을 삽입합니다(wake_up이 많이 호출됩니다).