Grotesque dos4fun

2018. 6. 7. 14:130x04 pwnable/Pwnable.kr

728x90

해당 바이너리는 Dos환경에서 구동되는 바이너리이다. 

 

Dos환경의 프로그램은 가상머신이 있어야 하는데, 이 가상머신은 DOSBox라고 한다.

 

DOSBox에 대해서 익혀보는 시간을 가지고, dos4fun을 풀어야 한다.

 

새로운 것을 배우는 것은 신비롭고 흥미있다.

 

먼저 Windows 버전을 다운로드 받는다.

 

자바를 설치할 때 환경변수가 중요하듯이, DOSBox역시 환경을 설정해주어야 하는데 dosbox.conf라는 설정파일에서 진행할 수가 있다고 하는데 Options.bat에 이러한 명령어가 들어있다.

 

Option은 자신의 입맛에 맞게 수정하면 된다. 나 같은 경우는 마우스가 잠기는 것이 불편하여 잠금 해제를 해두었다. 

DOSBox.exe -editconf notepad.exe -editconf %SystemRoot%\system32\notepad.exe -editconf %WINDIR%\notepad.exe

 

그래서 그냥 무작정 실행해보니 처음 마운트 되어 있는 드라이버는 Z였다.

 

dos4fun 바이너리가 머물고 있는 드라이버는 F이기 때문에 F로 마운트를 진행했다.

 

mount F F:\PWNABLE.KR\dos4fun

 

그 후 f드라이버로 이동해보면, 마운트 된 위치가 보인다.

 

 

이제 동적분석은 가능해졌다. 

 

바이너리는 시작과 동시에 id를 입력하라고 버퍼를 제공해준다.

 

정확히 이 놈이 뭐하는 놈인지 모르기 때문에 바이너리를 뜯어보아야 한다.

 

바이너리를 뜯어 보기 위해서는 디버거가 필요하다. 

 

이제 디버거를 찾기 위해 구글링을 또 다시 해야한다. 

 

지인들은 DOSBox를 설치했을 때 Turbo.exe가 있었다고 하는데 내가 다운로드 받은 DOSBox에는 없다 허허..

 

쨌든.. 찾으러 돌아다니다가 찾았다. 

 

정확한 명칭은 Turbo Assembler(TASM)이라고 한다.

현재 5버전이 최신버전이다. 볼랜드를 통해 만들어졌다. 

 

지원되는 환경은 C,C++, Pascal, FORTRAN, COBOL , 8088,8086, 80286, 80386, i486, Pentium까지 된다. 

 

GUI 인터페이스이다. 

 

링크: http://www.phatcode.net/downloads.php?id=280

 

 

사용 방법이다.

 

Syntax : TASM [options] source [, object] [, listing] [, xref] 

 

TASM /e 인 것 같아서 해보니 안 된다.

 

 

 

/a, /s = 영문자 또는 소스 코드 세그먼트 순서를 지정 

 

/c  =  목록에 상호 참조 생성 

 

/dSYM[=VAL] = 기호 SYM = 0 또는 = VAL을 정의 

 

/e, /r = 에뮬레이트 혹은 부동 소수점 명령어 

 

/h, /? = 도움말 

 

/iPath = 파일에 포함되는 환경변수 찾아줌

 

/jCMD = 어셈블러 지시문 

 

/kh#  = #기호를 통한? 해쉬 테이블 용량 

 

/l, /la = /l은 normal /la는 expanded listing 

 

/m1, /mx, /mu : 케이스 별로 심볼을 보여줌 

/m1 : all

/mx : globals

/mu : none 

 

/mv# : 최대 유효 길이 설정 

 

/m# : 전방 참조 해결을 위해 여러 번 통과를 허용

 

/n : 목록의 기호 테이블 생략

 

/os, /o, /op, /oi = object code 

 

/p : protected mode

 

/q :  쓸데없는 OBJ 레코드 표시 안함

 

/t :  정확한 어셈블리면 메시지 표시 안함 (true)

 

흠.. 안된다 

어떻게 써야하는걸까~ 

 

모르겠다~ 

 

아는 분이 버전 확인 것도 줘서 6.22와 7.0버전과 호환이 되는지 테스트했는데 둘 다 아닌 버전인가보다.

 

에라이 dos 자체를 그냥 설치했다.

 

누가 이기나 해보자 !! 

도스환경에서 파일 교환은 FDD 이미지를 교환하면 된다는데 어찌어찌 하다가 TASM 디버깅을 실행시켰다.

 

TASM을 설치하고 나면 TASM과 TD 그리고 TLINK라는 바이너리가 존재하는데 

TASM은 프로그램의 정보를 보여줄 때 사용했고, TD를 이용하여 dos4fun 바이너리를 실행시켰다. 

왠지 TLINK는 .asm을 컴파일 해주는 녀석인 것 같다. 

 

이제부터 본격적으로 분석에 들어간다.

 

갈 길이 멀다 ~ 내가 가는 이 길이 어디로 가는지 알 수 없지만 ~ 알 수 없지만 ~ 

 

간단 매뉴얼 

거의 다 ollydbg의 옵션과 일치하다.

F2 : Break point 

F3 : Mod

F4 : 커서가 가리키는 곳으로 EIP 변경 

F5 : Zoom

F6 : Next인데 어떻게 쓰는지 모르겠다

F7 : Step in

F8 : Step over

F9 : Run

F10 : Menu

Crtl+F2 : Restart

 

입력 한 값이 스택에 쌓이는 것을 볼 수가 없어서 Windows 98에 windbg를 이용하기로 생각을 전환하였다.

 

살다 살다 환경 구성 때문에 Windows98까지 사용해보는군..

 

Windows 98에 windbg가 없었다. ㅠㅠ 

 

좌절 잠시 한 후 다시 td를 이용하였다. 

 

지금까지 삽질로 알게 된 정보

ID 값은 capturetheflag

 

Serial 값에 정수형을 넣으면 버퍼가 끊기지 않고, 문자열을 넣으면 버퍼가 \0A를 만날 수 있다.

 

Serial 값이 들어오면 파일을 하나 열어 무엇인가를 쓴다. 

 

아직 모르는 정보 

어떻게 eip를 조작할 것인가..?

 

 

갈 길이 멀다야

'0x04 pwnable > Pwnable.kr' 카테고리의 다른 글

Hacker Secret Unexploitable  (0) 2018.07.06
Grotesque AEG  (0) 2018.06.10
ROOKIS Alloca 풀기 전 정리 한 것  (0) 2018.05.25
Rookis syscall  (0) 2018.05.25
Rsa_Calculator set_key 우회 c코드  (0) 2018.05.18