2015. 12. 2. 11:02ㆍSecurity ★ Development/Malware
http://codeengn.com/challenges/malware/08
Problem : The following is the flow graph of a malware
Find the address of the function responsible for the propagation(additional infection) of the malware.(Verify your solution in all uppercase)
Ex) 00401000
보통 해킹은 한번에 악성 코드를 심어 모든 행위를 끝내고 종료하는게 아니라 단계별로 차근차근 악의적인 행동을 밟아 나갑니다. 웹사이트를 통한 악성 스크립트 실행 후 악성 파일 다운로드, 모바일 apk 설치 및 무선ap 접속을 경유한 방법 등 대부분이 그러한데 이 문제에서 원하는 것이 이러한 추가적인 단계로 나아가기 위한 로직을 찾는 것입니다.
단순하게 내부 로직 외에 외부 실행 루트를 의심해 볼 수 있습니다. 현재 플로우가 악의적인 행동의 종착점이 아닌 이상 필요한 준비를 끝내고 거의 마지막에 다음 행위를 할 가능성이 높습니다. 그러므로 밑에서 올라가면서 분석해보면 00402699에 exe 확장자를 가진 무언가로 call sub_40F23C를 처리하는데 호출한 함수 내부에서 무슨 짓을 할지 몰라 의심해 볼 수 있습니다. 여기서는 정답이 아니므로 넘어갑니다.
계속 올라가다보면 004025BE에도 " .exe"가 보이지만 그 옆에 ShellExecuteExA가 있습니다. 위의 loc_4025F4에도 있네요. 답을 찾는데 제출 횟수 제한이 없으니 다 넣어봐도 되지만 추측을 하자면 004025BE의 exe는 아래와 같은 이전과 같은 이유로 아닐 가능성이 높습니다. ShellExecuteExA를 보면 위의 박스에서 false로 떨어졌을 때 ShellExecuteExA를 또 호출하고 옆의 true였을 때의 박스로 넘어갑니다. 악의적인 행위자의 의도대로라면 한번에 성공했어야 하는 부분이었겠죠. 그러므로 loc_4025F4를 답으로 볼 수 있습니다.
정답은 '004025F4'입니다.
'Security ★ Development > Malware' 카테고리의 다른 글
Malware analysis 7 (0) | 2015.12.02 |
---|---|
Malware analysis 6 (0) | 2015.12.02 |
Malware analysis 5 (0) | 2015.12.01 |
Malware analysis 4 (0) | 2015.12.01 |
Malware analysis 3 (0) | 2015.12.01 |