━━━━ ◇ ━━━━
해킹/SuNiNaTaS 모의해킹

27. 써니나타스 (Suninatas) 27번 문제풀이 Write-up

728x90
반응형

써니나타스 모의해킹 사이트

https://suninatas.com/challenges

 

써니나타스

웹해킹, 포렌식, 리버싱, 암호학, 해킹 워게임 제공.

www.suninatas.com


 

써니나타스 27번 문제는 시스템에 관련된 문제다. 문제 설명을 보니 NSA가 IRC 서버에서 마피아 조직들 사이의 대화를 도청? 어쨌든 가로챘다고 한다. 수사관들은 그 메시지에 비밀이 숨겨져 있다고 확신을 하는 반면에 어떤 단서도 찾을 수 없었다. 그래서 NSA 수사관들을 도와 메시지의 비밀을 밝혀내는 것이 우리가 해 낼 임무라고 한다. 

이번에도 개발자도구를 살펴봤지만 참고할 만한 부분은 딱히 없는 것 같아서 바로 다운로드 버튼을 눌렀다. 

 

 

Down 버튼을 누르니 위와 같은 화면이 출력 됐는데 여기서 알아낸 정보들을 간략하게 요약해봤다. 

 

메시지의 주인공은 Pruss.

Pruss가 생각하기에 비밀번호를 생성할 때 알파벳만의 조합은 위험, 특수문자 하나만 사용해서도 안된다. 

Pruss는 자신의 이름임과 동시에 마피아 코드 이름이라고 한다. 

Druss는 Pruss의 친구

Hruss는 Pruss의 친구이자 Druss의 여자친구

mafia@russia.ru는 서버

Druss의 비밀번호는 @@PDDDDDPDDDDDHPDDDDD@@@@@PDDDDDPDDDDD@@@PDDDDDruss

Pruss가 생각하기에 kNz3i!Bs4jP 같은 비밀번호가 좋은 비밀번호

 

그런데 딱히 도움될 만한 정보는 없는 듯했다. 

 

써니나타스 27번 문제 제목을 보면 Can you speak x86이라는 문구가 있다. 그래서 바이너리 코드 분석을 x86 디버거를 사용해서 해보기로 했다. 

 

 


HxD

나는 아까 우리가 봤던 메시지를 복사해서 .txt 파일로 저장한 뒤 HxD에서 열었다. 그렇게 하면 위와 같이 메시지의 바이너리 값을 확인할 수 있다. 그다음 위 바이너리 값들을 전체선택하고 복사를 해둔다. 

 

 


OllyDbg

먼저  OllyDbg를 실행시킨 뒤 PC에 저장되어있는 아무 exe파일을 열어준다. 나는 winhex.exe가 보이길래 그냥 그걸 열었다. 

 

 

HxD에서 전체 바이너리를 복사한 상태에서 OllDbg로 열려있는 exe 파일의 어셈블리 부분을 전체 선택해 준다.

전체선택이 됐다면 우클릭 → Binary Biary paste를 차례대로 클릭해 줘서 우리가 복사한 바이너리를 붙여 넣어준다. 그러면 우리가 복사한 바이너리 값이 자동으로 어셈블리 값으로 변환된다. 

 

 

붙여 넣기가 완료되면 위와 같이 어셈블리 값으로 변경된 부분이 빨간 글씨로 표시된다. 하지만 여기서 끝이 아니다.

아무 exe 파일을 열었기 때문에 어셈블리 값의 총길이가 다르다. 

 

아래로 내리다 보면 우리가 붙여넣기 한 어셈블리 값이 끝나는 지점이 보인다. 끝나는 다음 어셈블리 값부터 검은색 글자인데 여기에 breakpoint를 걸어주면 된다. OllyDbg에서 breakpoint를 거는 가장 기본적인 방법으로는 어셈블리 값을 클린 한 후 F2키를 눌러주는 것이 있다. F2키를 눌러서 설정하는 이런 일반적인 breakpoint는 개수에 제한 없이 필요한 만큼 만들어서 쓸 수 있는 장점이 있다. 

 

Breakpoint를 설정한 모습

 

 

그리고 어셈블리 값들이 기존 exe파일에서 변경되었기 때문에 실행될 명령 포인터(EIP)를 옮겨줘야 한다. 그래서 가장 첫 줄로 올라가서 첫 줄을 선택한 뒤, 우클릭 → New origin here로 설정을 해주면 된다. 

 

 

EIP가 정상적으로 옮겨진 모습

 

 

 

EIP를 옮기는 작업과 breakpoint 설정을 하는 작업이 모두 끝났다면 위 캡처처럼 Run 버튼을 누른다. 그러면 스택 부분에 특정 스택이 선택이 된 모습이 보인다. 

 

 

그다음, 선택된 스택에 마우스 우클릭을 한 뒤 Show ASCII dump를 클릭해 준다. 

 

 

그러면 우리가 찾던 Auth key 값이 보인다. 

 

 

써니나타스 Auth 게시판에 키값을 넣었고 축하메시지와 함께 27번 문제를 해결했다는 메시지가 alert 된다. 

 

 

이번 문제는 OllyDbg를 활용함에 있어서 좀 더 익숙해진 것 같아서 문제를 푸는 내내 재미있었다. 

 

27번 문제

 

성공

728x90
반응형
COMMENT