zj3t

email: euntaejang@gmail.com

Latest Posts

실습: PE구조 변경

By 오전 1:19 , , ,

안녕하세요.
오랫만의 포스팅입니다~
저번에 포스팅은 Global API Hooking에서 Injdll.exe로 API를 후킹하여
야후, 네이트, 다음, 네이버를 접속하면  www.reversecore.com(리버스 코어)로 우회되도록 우회 될 URL이 고정 되어있었습니다.

이번에는 파일을 변경하여 원하는 곳으로 우회할 수 있도록 고정하는 방법을 포스팅해보겠습니다.
아주 약간의 PE 구조에 대한 지식만 필요로하며 DLL 폴더에있는 PE구조를 변경시켜 직접 Injection을 하는 방법보다는 훨씬 쉽습니다.

그럼 시작하겠습니다.
우선 IDA로 redirect.dll 을 엽니다.
redirect.dll 은 Injll.exe에서 사용되는 dll 파일입니다. 즉 우회 될 사이트와 우회를 시킬 사이트의 정보가 담겨있습니다.



여기 네이버, 다음, 네이트, 야후가 보입니다. 우회시킬 사이트들이 나열 되어있습니다. 그리고 그 밑으로 조금 더 내려보면 www.reversecore.com, 우회 URL이 쓰여있습니다.
PUSH로 URL을 넣고 함수를 CALL합니다. 그럼 www.reversecore.com은 어디 있나 찾아보았습니다.


여기 URL 들이 나열 되어있습니다. 위에서 본 URL들은 모두 이쪽에서 가져온 것을 확인할 수 있습니다.

ollydbg로도 확인해보니 AC98에서 가져 오는 것을 확인할 수 있었습니다.
그렇다면 우회 URL을 바꾸는 방법은 크게 두 가지를 나눠 볼 수 있습니다.

1. AC98에 있는 URL을 단순히 원하는 URL로 바꾸는 방법
2. NULL 지역을 찾아 그곳에 원하는 URL을 입력한다음 PUSH 주소(1AB3)를 URL이 입력된 주소로 바꾸는 방법

1번을 해보려했는데 보시는 것처럼 공간이 없습니다. 짧은 URL은 괜찮지만 긴 URL은 뒤의 data를 침범하기 때문에 프로그램이 제대로 실행되지 않을 수도 있습니다.

따라서 2번방법으로 실습해 보겠습니다.

이제 PEview와 HxD로 확인해 보겠습니다.


이렇게 바꾸어 주었습니다. 우회될 URL은 제 블로그 주소입니다.


이 부분이 | PUSH 우회 URL |  주소 입니다. URL 을 가리키는 주소는 AC98(리틀 엔디안)으로 쓰여있는 것을 확인 할 수 있었습니다. 이 주소를 우리는 NULL 지역에 쓴 새로운 URL이 있는 주소로 바꾸어 주어야 합니다.


File Offset도 확인이 됬습니다. 이제 헥스에디터로 찾아가 URL이 참조되는 주소를 바꿔주면 될 것 같습니다.


바꾸어 주었습니다. redirect.dll -> JMPOEP.dll 이름 변경을 한 뒤 실행을 해보겠습니다.


PID를 확인했습니다. 왜 부모 프로세스는 Hooking이 안되는지 아직도 모르겠습니다. 어떤 보호기법인거 같은데 자세히는 모르겠습니다. 따라서 자식 프로세스의 PID를 확인했습니다.




부모 프로세스의 인젝션은 실패,
자식 프로세스의 인젝션은 성공

자식 프로세스가 이제 원하는 URL로 우회가 되는지 확인해 보겠습니다.




시작페이지 daum에서 naver로 이동을 하니 제 블로그로 우회되었습니다. 이를 응용한다면 네이버, 다음, 네이트, 야후가 아닌 유해사이트들 다른 사이트로 돌리도록 할 수도 있습니다.

저번 dll을 자체적으로 인젝션하는 건 조금 어려웠지만 이렇게 PE Header를 건드리지 않고 body 부분에서만 데이터를 바꿔주는 것은 매우 쉽습니다. 앞으로 PE를 가지고 노는 것을 많이 포스팅 해보겠습니다.




혹시 redirect.dll 파일에 대한 저작권을 침해했다면 글 지우겠습니다.











You Might Also Like

0 개의 댓글