All
-
lvl 10Wargame/CodeEngn Basic RCE 2018. 12. 13. 15:26
문제 OEP를 구한 후 "등록 성공"으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP+OPCODE Ex) 00400000EB03 풀이 → 프로그램을 실행한다. → 문제에서, OEP를 언급했으므로 패킹된 것으로 추측할 수 있으며 IDA로 디스어셈블하면 UPX가 아닌 다른 값으로 세그먼트가 잡힌 것을 보아 다른 패커를 이용하여 패킹한 것을 알 수 있다. → 정확히, 어떤 패커로 패킹된지 알아보기 위해서, PEiD라는 PE프로그램 분석 도구를 이용한 결과 "ASPack 2.000" 인 것을 알 수 있다. → UPX와 같은 원리로, PUSHAD와 POPAD 명령어를 통해 파라미터 설정을 하는 것으로 추측하고, 여기에 BP를 걸고 디버깅한다. → ASPack 메뉴얼 언패킹 방식을 이해해야 한다. 여기..
-
lvl 09Wargame/CodeEngn Basic RCE 2018. 12. 12. 19:28
문제 StolenByte를 구하시오Ex) 75156A0068352040 풀이 → 프로그램을 실행한다. 키 파일 확인 메시지와 함께 키 파일을 찾을 수 없다는 메시지가 나타난다. → IDA로 디스어셈블한 결과, UPX로 패킹된 것을 확인 가능하다. 따라서, 언패킹을 수행한 후 재실행 시 정상적으로 실행되지 않는 것을 확인한다. → 언패킹한 바이너리를 디스어셈블한다. 먼저, 첫번째 MessageBox가 에러가 나타났고 해당 함수의 코드를 살펴보면 이상한 점이 존재한다. → 현재 MessageBoxA 함수가 실행되기 전 파라미터가 "push 0" 이라는 1개의 파라미터만 전달되었다. 하지만 MessageBoxA 함수를 검색한 결과, 총 4개의 파라미터가 필요한 것을 확인할 수 있다. (https://docs...
-
lvl 02Wargame/HackerSchool FTZ 2018. 12. 11. 23:43
→ level 2 계정을 로그인 하면, level 2 계정의 디렉토리 파일 구조를 살펴볼 수 있다. → hint 파일을 살펴본다. → "텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다"는 힌트를 얻을 수 있으며, vi편집기의 명령어 실행 기능을 검색해야 한다. → 힌트 내용을 살펴본 후, level3의 권한을 얻기 위해 해당 SetUID가 설정된 파일을 찾는다. → 찾은 파일을 실행하면 vi 편집기가 나타난다. 현재 editor라는 프로세스를 생성했으며 해당 프로그램의 소유자는 level3이다. 그리고 SetUID가 설정되어 있으므로, 해당 프로그램을 실행할 때 level3의 권한을 획득할 수 있다. → 힌트를 통해 해당 프로세스에서 bash를 실행했으며 level3 권한의 쉘을 획득한다. → my-..
-
lvl 08Wargame/CodeEngn Basic RCE 2018. 12. 11. 23:34
문제 OEP를 구하시오Ex) 00400000 풀이 → 프로그램을 실행한다. Rekenmachine 이라는 계산기이다. 기능상 특이한 점은 없어 보이고, 문제에서 OEP란 말이 있으므로, 패킹된 것으로 추측한다. → IDA로 디스어셈블한 결과, UPX로 패킹되었으며 UPX 특성상 POPAD 후 jmp 분기문이 OEP 이므로 다음과 같이 바로 찾을 수 있다. → 디버깅을 통해 찾으면 굉장히 복잡하지만 디스어셈블의 그래프 뷰로 찾으면 굉장히 찾기 수월하다.