해커스쿨을 시작하기에 앞서 로컬환경을 구축해보겠습니다.

원래는 해커스쿨에서 운영해온 FTZ서버가 있었는데 요즘 통 접속이 되질 않습니다. 여기서FTZ란 Free Training Zone의 약자로서 직역하면 무료훈련장 이란 뜻입니다. 그런데 접속이 되질 않으니 직접 로컬환경을 구축해보겠습니다.

로컬환경을 구축하기에 앞서 미리 준비하셔야 할 것이 있습니다.

1. vmware(가상머신)를 설치하셔야 합니다.

2. ftz 이미지 파일을 받으셔야 합니다.

위의 두가지가 완료되었으면 로컬환경을 구축해봅시다.

vmware를 실행한 후 file - open을 누릅시다. 그리고 확장자가 vmx인 파일을 선택 후 열기버튼을 누릅니다.

뜨셨다면 Power버튼을 눌러줍시다.

뭐라고 뜨는군요. 맨마지막 문장을 보시면 "너가 만약 모른다면 i copied it을 누르라는군요.

뭔지 모르겠으니 i copied it을 눌러줍시다.

그 후 또 무언가가 뜨는데 그냥 ok눌러줍시다.

정상적으로 만들어졌군요. 타자를 치기위에 더블클릭을 해봅시다.

더블클릭 한 순간 또 하나의 운영체제인 리눅스로 들어왔습니다. 가상이기 때문에 운영체제안에 또 운영체제를 깔 수 있었습니다. 나올려면 ctrl+alt를 누르시면 됩니다.

자 이것으로 로컬환경 구축을 마치겠습니다. 

'HackerSchool' 카테고리의 다른 글

HackerSchool - level7  (0) 2015.07.22
HackerSchool - trainer  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
hacker school - ftz level4  (0) 2015.07.15
Posted by englishmath
,

 안녕하세요. 오늘은 basic rce level4를 풀어보도록 하겠습니다.

홈페이지로 들어가 basic rce leve4를 눌러주세요.

디버거를 탐지하는 함수 이름을 알아내라는군요. 일단 다운로드를 눌러 디버거 프로그램을 탐지하는 프로그램을 다운받아 실행시켜 봅시다.

음 정상이란 문구만 되풀이하여 출력되는군요. 올리디버그를 이용하여 프로그램을 열어봅시다.

재생버튼을 한번 눌러봅시다.

??? 그냥 실행했을때는 정상이라고 떴는데 올리디버그에서 실행하니 디버깅 당함이 반복되서 출력되는군요. 그러면 대체 어디서부터 디버깅당함이 뜨는걸까요?

F8키를 이용해 한줄씩 실행해 봅시다.

한줄씩 실행하다보면 어느 지점부터 숫자가 붉게 변하더니 디버깅당함을 출력하기 시작했습니다. 즉 숫자가 붉게 변한 시점에 디버깅 프로그램이 있다는 것입니다.

살펴보니 0040100F을 불러오고 난 후 바로 디버깅당함이 출력되었습니다. 즉 디버깅함수는 0040100F에 있다는 것을 알 수 있습니다.그래서 0040100F쪽으로 가보았습니다. 가보니까 0040100F에서 0040108B까지 묶여있다는 것을 알 수 있습니다. 그래서 0040100F에서  0040108B까지 찾아보았습니다. 그러자 함수가 2개 나왔습니다.

두개의 함수가 뜨는군요. Sleep랑 IsDebuggerPresent가 뜨네요. 함수이름에 디버거가 들어간다니 너무 수상하군요. 그래서 답칸에 입력해보겠습니다.

홈페이지 - challenges - continue로 들어가 칸에 한번 입력해봅시다.

다음문제가 출력되는걸로 보아 디버거를 탐지하는 함수가 맞는 것 같습니다.

이것으로 문제풀이를 마치겠습니다.

'codeengn' 카테고리의 다른 글

codeengn - basic rce level 8  (0) 2015.08.05
codeengn - basic rce level 7  (0) 2015.08.03
codeengn - bagic rce level3  (0) 2015.07.20
codeengn - basic rce level2  (0) 2015.07.15
CodeEngn - basic rce level 1  (5) 2015.07.15
Posted by englishmath
,

안녕하세요. 오늘은 코드엔진 3번 문제를 풀어보겠습니다.

홈페이지로 들어가 bagic rce level3을 눌러주세요.

비주얼베이직에서 스트링 비교함수 이름을 알아내라는 군요.

일단 download를 눌러 받아봅시다.

이런 오류가 뜨는군요. 그래서 msvbvm50.dll를 다운받아 설치한 후 다시 실행시키자

다음과 같이 뜨는군요. 보시면 알겠지만 영어가 아니고 다른언어입니다. 그래서 대충해석해보자면 잔소리를 제거하라??? 라는 뜻일 수 있습니다. 물론 확실한 건 아닙니다.

확인을 누르면 다음과 같이 뜨네요. 일단 아무 문구나 넣어 봅시다.

error라는 말은 알아듣겠군요. 자 이제 프로그램의 동작원리를 보기 위해 올리디버그로 열어봅시다.

재생버튼을 눌러봅시다.

떳긴 떳습니다만 level1이랑 다르게 양이 정말 정말 장난아니게 많습니다. 그런데 우린 여기서 패스워드를 알아내야 합니다. 패스워드를 입력하면 성공했다는 문자열이 뜨겠지요. 하지만 양이 너무 많아요. 일일이 다 찾다간 참 힘듭니다. 이럴땐 간단하게 검색으로 찾아 봅시다. 다른 말로 우리는 문자열만 찾아서 뽑아내도록 해봅시다. 

오른쪽 마우스 - search for - all referenced strings를 눌러줍시다.

문자열을 참조하겠다 라는 뜻이죠.

누르시면 아래와 같은 문자열들이 정리되어 보여집니다.

쭉 보시다보면 거의 대부분이 ASCII코드인데 특이하게 UNICODE인 부분이 있습니다. 처음 나오는 UNICODE는 경로인것 같구요. 두번째 UNICODE부터 한 번 봅시다.

2G83G35Hs2

??? 딱봐도 패스워드처럼 보이네요. 일단 이 문구를 더블클릭 해봅시다.

밑의 문자열이 출력된다는군요. 한번 입력해봅시다.

Registrieren을 눌러줍시다.

danke는 고맙다 라는 뜻의 독일어입니다. 아무래도 패스워드가 맞는 모양이군요.

그런데 우리는 여기서 스트링 비교함수 이름을 알아야 됩니다. 아까 뽑아놓았던 문자열에서 밑으로 계속 내려가면 두번째 2G83G35Hs2가 나옵니다. 두번쨰2G83G35Hs2를 더블클릭해주세요.

바로 밑에 보시면 call 호출한다. vbastrcmp 함수를 라고 되어있네요.

여기서 vba는 비주얼베이직을 뜻합니다. 그럼? str은 string의 약자겠군요.

마지막으로 cmp는 비교함수입니다. 그러면? 답이 나왔군요.

이것으로 문제풀이를 마치겠습니다.


'codeengn' 카테고리의 다른 글

codeengn - basic rce level 8  (0) 2015.08.05
codeengn - basic rce level 7  (0) 2015.08.03
codeengn - basic rce level4  (0) 2015.07.20
codeengn - basic rce level2  (0) 2015.07.15
CodeEngn - basic rce level 1  (5) 2015.07.15
Posted by englishmath
,