본문 바로가기

My Study/Malware&Vulnerabilities

DLL Hijacking

DLL Hijacking.. 이란 무엇일까요??
최근에 발표된 윈도우즈 어플리케이션 취약점 입니다.

그러면 Hijacking이 무슨뜻일까요??
네이버에 쳐보니 지식백과에 바로 나오는군요..



항공기 불법탈취랍니다. 아무튼 대충 뜻은 무언가를 정상적인 방법이 아닌 걸로 DLL을 가로챈다..라는 말 같군요.

제가 직접 해본 방법은 한가지 입니다.
1. 해당 프로세스에서 수 많은 DLL을 가져올 것인데.. 그중에 DLL가져오기 실패하는 DLL을 찾음
2. 그 찾은 DLL대신에 제가 만든 DLL주입
3. 해당 프로세스가 이제 실행되면 제가 만들었던 DLL도 같이 로딩되면서 제가 만든 DLL도 실행

먼저 테스트 해볼 DLL소스를 보여드리겠습니다. 
그냥 되는지 안되는지를 보기 위해서 간단하게 메시지박스 창만 띄우는 걸로 하겠습니다.

뭐 주석같은건 필요없겠군요.

그냥 DLL이 로딩되면 메시지박스 하나 띄우는게 저 DLL의 임무입니다.

이제 DLL은 준비 됬으니 공격을 시도해보도록 하겠습니다.
동영상으로 만들었습니다. ^^ ( Ctrl + 마우스 휠 로 크기를 조절하시고 보시면 됩니다. )

제 컴의 환경은 Windows 7입니다.

위 처럼 DLL Hijacking이라는 것이 하는건 무척 쉬워보이지만.. 심각한 취약점 이라는 것입니다.
제가 예전에 만들어 놓은 백도어로 해보면 무척 재미있겠군요.

MS에서도 패치준비를 또 하고 있겠지요.. 
하지만 이 문제는 MS만의 문제가 아닌 일반 어플리케이션 만드는 회사들도 신경써서 프로그래밍을 해야겠지요..