실습 과정
1. 파일 다운로드
2. payload.dll 은 c 드라이브 루트 하위에도 복사해둔다
3. cmd에서 파일을 다운로드 받은 디렉토리로 이동해서 getchar.exe를 실행한다
사용자가 인풋을 주면 종료되는데
인풋을 주기 전까지는 계속 대기 상태로 멈춰있다
일단 대기로 두고
새로운 cmd를 열어 같은 디렉토리로 이동하고
4. getchar.exe를 실행하는 프로세스의 pid를 찾는다 ( pid 찾는 방법 )
tasklist 명령어는 전체를 보여주기 때문에
이렇게 옵션을 주어 찾을 수도 있다
8720번 pid의 프로세스를 사용해서 실행 중임을 알 수 있다
pid를 알아낸 cmd 창에서
5. CreateRemoteThread.exe 파일을 실행시킨다
명령어로 실행시킬 때 getchar.exe가 실행 중인 프로세스의 pid 값을 반드시 넣어서
해당 프로세스에 실행되도록 한다
실행되지마자 종료된다
종료만 되는 건 아니고
메세지 박스도 뜨는데 이렇게 뜨면 성공이다
실습이 끝났으니
getchar.exe를 종료해도 좋다
실습 핵심
CreateRemoteThread 라는 코드 인젝션을 시도하는 악성코드는
getchar 가 실행되는 타겟 프로세스으로
payload.dll 를 로드시키려고 하고
로드가 되면 payload.dll 내부에 구현해둔 출력문이
메세지 박스를 통해서 출력되는 것이다
= 타겟 프로세스에 원하는 dll을 인젝션 시킨 것
실습에 쓰인 getchar.exe 파일을
리눅스 file 명령어로 확인해보면