728x90
반응형

Hacking/[System]Leviathan 7

OverTheWire [Leviathan Level 6, 마지막 레벨]

Leviathan Level 6 입니다. 드디어 Leviathan을 전부 클리어 했네요. 이것이 마지막 문제입니다. 역시나 SetUID 비트가 설정된 프로그램이 있습니다. 인자 없이 실행해 보겠습니다. 4자리 숫자 인자가 필요하다고 하네요. 1234를 입력해 보았습니다. Wrong이 출력되었네요. 4자리 숫자로 구성된 패스워드를 찾는 문제 같은데요? 여러번 시도해도 딱히 제한도 없습니다. 이럴 때 딱인 게 있죠. Brute force를 이용해 봅시다. tmp디렉터리에 개인 디렉터리를 만들고, 공격코드를 작성할 파일을 그 안에 만들어 줍시다. 이렇게 작성하고, 저장합니다. 0000부터 9999까지의 인자를 대입하여 프로그램을 반복 실행하는 코드입니다. 그리고 실행이 가능하도록, chmod 명령어로 실행권한..

OverTheWire [Leviathan Level 5]

Leviathan Level 5 입니다. 이번에도 SetUID 비트가 설정된 프로그램이 있네요. 일단 인자 없이 실행해 보겠습니다. /tmp/file.log 를 찾을 수 없다고 나오는데요. 이 프로그램이 실행되기 위해선 저 파일이 필요한 걸까요? 제가 임의로 해당 파일을 만들어 보겠습니다. vi로 파일을 생성하겠습니다. leviathan 문자열을 입력하고 저장했습니다. 다시 프로그램을 실행해 봅시다. leviathan이 그대로 출력되었습니다. 파일의 내용을 그대로 읽어오는 프로그램 이었군요. 음.... /tmp/file.log에 링크를 설정하면 password 파일을 읽을 수 있지 않을까요? 한번 해보겠습니다. ln 명령어를 이용해서, file.log에 leviathan6의 password를 향하는 심볼..

OverTheWire [Leviathan Level 4]

Leviathan Level 4 입니다. 숨겨진 디렉터리 .trash 가 있네요. .trash 디렉터리 안에, bin 이라는 SetUID가 설정된 파일이 있습니다. 이 파일을 이용해서 다음 레벨 password를 획득할 수 있을 것 같습니다. 인자 없이 실행해 보았습니다. 2진수가 나오는데요. .....솔직히 이거 보자마자 감이 와서 리버싱 할 필요도 없이 바로 풀었습니다. 2진수를 아스키코드로 변환했더니 그게 바로 다음 레벨 password였습니다. 하지만 이렇게 끝내면 배우는 게 없으니 간단하게라도 분석을 해보겠습니다. main함수 입니다. 일단 시작하자마자 fopen 함수를 통해 leviathan5의 password 파일을 열고 있습니다. 이후, 아래쪽 fgets 함수로 password값을 꺼내왔습..

OverTheWire [Leviathan Level 3]

Leviathan Level 3 입니다. 저번 레벨과 비슷하게, SetUID가 설정된 실행파일이 있습니다. 소유자는 leviathan4 이니, 이 파일을 잘 이용하면 다음 레벨의 권한을 얻을 수 있을 것 같습니다. 인자 없이 실행시켜 보았습니다. 패스워드를 요구하길래 1234를 입력해 보았습니다만, 틀린 패스워드라고 나오네요. 리버싱을 통해 패스워드가 무엇인지 알아내야 할 것 같습니다. 저는 radare2 이용하겠습니다. radare2로 level3 파일을 실행해주고, aaaa 명령어로 프로그램을 분석했습니다. 이후 afl 명령어로 함수목록을 불러왔습니다. 그런데 main 함수가 보이지 않네요.. 어떤 함수를 먼저 살펴볼까 하다가, main은 아니지만 dbg.main 함수를 찾았습니다. 일단 이 함수부터..

OverTheWire [Leviathan Level 2]

Leviathan Level 2 입니다. 약간의 리버싱과 command Injection 기법이 사용된 문제입니다. 일단 저번 레벨과 비슷하게, SetUID비트가 설정된 실행파일이 하나 있네요. 소유자는 leviathan3 이므로, 저 파일을 실행하는 동안 우리는 leviathan3의 권한을 얻게 됩니다. 일단 인자 없이 실행해 보았는데요, "File Printer"라는 문자열과 함께 ./printfile [파일명] 형식으로 실행하라고 합니다. 음.... 출력이 안되는군요. leviathan3 파일에 대한 어떤 제한이라도 걸려있는 걸까요? 리버싱을 통해 확인해 봅시다. 저는 radare2 프로그램을 사용하였구요, 이것은 main함수의 구조입니다. 가장 처음 나오는 조건문입니다. 9212 부분에서 cmp ..

OverTheWire [Leviathan Level 1]

Leviathan Level 1 입니다. 리버싱 문제입니다만, 제가 리버싱에 대해 전혀 모르던 상태라 따로 리버싱 공부를 한 후에 문제 해결에 성공하였습니다. 홈디렉터리에 있는 문제파일 "check" 입니다. SetUID 비트가 설정되어 있고, 소유자는 leviathan2 입니다. 저 프로그램을 실행하는 동안 leviathan2 의 권한을 얻게 되는 겁니다. 프로그램을 한번 실행시켜 보겠습니다. ./check password 입력을 요구하네요. "1234"를 입력해 보았지만 틀린 password라고 쫓겨났습니다. 아무래도 리버싱을 통해 password를 알아내는 문제인 것 같습니다. r2 -d check r2 : radare2(리버싱 프로그램)를 실행하는 명령어 -d : 디버깅 모드로 실행 저는 리버싱을..

OverTheWire [Leviathan Level 0]

Leviathan Level 0 입니다. 레비아탄은 시스템 해킹 워게임이며, Bandit 워게임보다 한 단계 위에 있는 문제들로 총 8단계 구성되어 있습니다. 또한 문제마다 해결 방법에 대한 설명이 있던 Bandit과는 다르게, 아무런 설명이 없는 점이 특징입니다. 공식 홈페이지 : https://overthewire.org/wargames/leviathan/ 주소 : leviathan.labs.overthewire.org 포트 : 2223 계정 : leviathan0 password : leviathan0 저는 putty 프로그램을 이용해 접속할 것이며, 자세한 접속 방법은 https://yskisking.tistory.com/37 이곳을 참고하시기 바랍니다. 주소와 포트만 바꾸어 접속하시면 됩니다. ..

728x90
반응형