2009/06/05

KISA HDCON6 Level3 풀이



악성프로그램을 다운받아 분석하여 공격하려는 Domain 이름과 공격방법을 찾아서 패스워드를 획득하라
패스워드는 "도메인_공격기법"으로 구성된다
프로그램 : Moon3_q1.exe

PEiD로 열어보니 따로 패킹되지 않아서, Olly로 바로 실행
일단, text 와 intermodular calls 를 찾아본다


좀 둘러보니 'CreateRemoteThread'가 보인다. 냄새가 난다.
느낌 좀 받고, 다음으로 넘어가서


'CreateFileA', 'WriteFile', 'CreateToolhelp32snapshot', 등등
오호, 일단 다 BreakPoint 걸고 실행하면 몇개 지나서 바로 프로그램이 실행!

 

숫자는 별 의미 없는것 같고, '음력으로 변환' 버튼 누르면 뭔가 잡히기 시작한다
 


천천히 넘어가다보면, 아까 위에서 잡아논 브포를 지나면서 파일을 남기는구나


그 뒤로는 explorer.exe 프로세스를 찾아서 뭘 하는거 같은데, 뭐하는지는 잘 모르겠다 ㅎ
그렇담, 이제 advapi32_2.dll 파일을 찾아서 분석 ㄱㄱ
뭐 이것도 그냥 일단 text, call 훑어보자 ~

 

브라보. 정답으로 가고 있구만 :p
'DnsQuery_A'로 쿼리를 날려주는데, 보기 쉽게 패킷으로 잡아보자.

 

첫번째 패킷은 DNS로 Address를 날린다. 설마 답일까 하고 체크해봤지만 역시 이렇게 쉽게 풀릴리가...
Response는 192.168.123.118... 일단 넘어가고..


그다음으로 잡히는 패킷을 보면, 이번에도 역시 DNS로 날린다.
쿼리를 보면 MX(Mail Exchange)인데, response를 봐도 무슨 소리인지 모르겠다.
넘어가려고 한줄 한줄 디버깅하는데, 콜스택에 왠 아스키값이 들어온다. 아쉽게도 덤프떠논 파일이 없어서 스샷을 찍을수가 없군...
아무튼, 값을 보면 "Dn5_72rNN21.900D.57uff"
럭키, 거의 다 온것 같군 :)

 

음. 다음 패킷에 같은 도메인으로 텍스트 쿼리를 보낸다. Response로 받은 텍스트를 보면,

 

"admin.php?id=%27+or1=1--&paswd="
SQL Injection 구문을 뽑아준다. 혹시 몰라서 http로 접속해보니,

 

서버는 열려있지만, 권한이 없다. 어쩌지,
난 여기서 dll 계속 진행시키면서 뒤에 나오는 InternetConnect나 HttpRequest에 집중하면서 오류잡고 있었는데,
결국 풀리지 않는 안드로메다로... 제길, 이놈의 Access Violation은 언제쯤 해결할 수 있을지...

아무튼, 그리하여 결국 데드라인을 놓쳤지만,
위에서 나온 정보를 토대로 패스워드를 끌어내보면,
답은 Dn5_72rNN21.900D.57uff_SQLINJECTION

음, 문제를 해결함에 있어 지식과 능력도 굉장히 중요하지만, 때론 번쩍이는 감각이 절실히 필요할 때가 있다 ㅠㅠ
결론은... 삽질하다보니 좀 재밌기도하고, 이런저런 감을 많이 잡을 수 있었던 것 같다 ㅎ
비록 답은 놓쳤지만, 계속 열심히하면 더 많이 재밌어질것 같다 :D