[FTZ]level7 /bin/level7을 실행해 보면 될것 같다. 아무거나 입력해 봤더니 오류가 떴다. 그래서 한동안 헤매다가 검색을 했더니 아뿔싸 진짜 오류였던 것이다. 실제로는 --_--_- --____- ---_-__ --__-_- 다음과 같이 나와야 된다고한다. 이를 힌트대로 '-' 를 1 '_' 를 0으로 계산하면 109 141 116 101 다음과 같이 나오고 이는 'mate' 이다 정보보안/FTZ 2022.07.19
[FTZ]level6 level6에 로그인 하려하니 갑자기 힌트가 나온다. Enter키를 치니 텔넷 접속 서비스 라면서 1, 2, 3을 시도해 봤지만 아무런 무언가가 생기지 않았다. 생각보다 쉽게 힌트 화면에서 ctrl+c를 눌러 현재 진행중인것을 강제종료 하면 level6유저로 접속이 된다. my-pass를 하면 현재의 비밀번호가 나오고 ls를 한후 cat을 하니 다음 단계의 비밀번호를 내뱉었다. 정보보안/FTZ 2022.07.19
[LOB] Level3 (Cobolt->Goblin) gremlin 역시 cobolt와 큰 차이가 나지 않는 것으로 보인다. 지금까지는 main 함수의 인자로써 값들을 gets()함수로 받는다. 하지만, gets 역시 얼마나 입력받는지 알 수 없기 때문에 취약점이 있는 함수이다. 따라서 전과 같이 환경변수를 설정 해 준 후 다음과 같이 goblin을 실행해서 직접 넣어주려고 했는데 Segmentation fault가 나오며 오류를 내뱉었다. 다른 사람들이 어떻게 했는지 찾아보니 Linux PipeLine을 이용하여 python에서 출력한 값을 그대로 넘기는 방식으로 실행하였다. 두개의 의문점이 남게 되었다. 1. 이 문제를 풀면서 알게된건데 환경변수 설정하면서 export EGG=python -c 'print "\x90"*100+"\x31\xc0\x50\x.. 정보보안/LOB 2022.07.17
Music Player[Reversing.Kr] 문제는 다음과 같은 MP3 Player 프로그램이다. mp3형식의 노래를 듣다가 보면 (어떤 mp3파일은 안되기도 하였다.) 1분이 되면 미리듣기만 가능하다고 나온다. 문제에서 요구하는것은 1분 이상으로 듣게 하는 것이다. 먼저 MsgBox가 나오는 것은 특정 dll이나 window api에서 사용하는것이라고 추측하여 Search for > All Modules > Intermodular Calls 를 이용하여 MsgBox를 불러내는 모든 코드에 BreakPoint를 걸어놓고 1분이 됬을때 나오는 MsgBox를 찾았다. 찾았다. 위아래를 보면서 1분인지 아닌지 비교할만한 코드를 찾아서 그 부분을 바꿔주면 해결 될 것이다. cmp ~~에 관한 부분을 찾다보니 찾게 되었다. EA60은 60000으로 6000.. 정보보안/Reversing.Kr 2022.07.17
[LOB] Level2 (Gremlin->Cobolt) cobolt.c 를 보면 gremlin과 크게 차이가 나지 않아보인다. 하지만 버퍼 크기가 16으로 25byte shellcode로 BufferOverflow를 일으켰다면 사용할 수 없었을 것이다. 하지만 이전 문제에서 사용한 환경변수를 이용한 방식을 쓰면 동일한 방식으로 해결 할 수 있다. 정보보안/LOB 2022.07.17
[FTZ]level5 /usr/bin/level5를 실행하면 /tmp에 임시파일을 생성한다고한다. 직접 실행해보면 /tmp에는 아무것도 생기지 않는다. 하지만 이는 생겼다가 사라졌다고 추측할 수 있다. 따라서 level5.tmp가 생성됐을때 dump될 수 있는 파일을 만들어주면 패스워드를 받아 올 수 있다고한다. 정보보안/FTZ 2022.07.17
[FTZ]level4 그렇다고 한다. 해당 주소로 가보니 backdoor가 있다. finger service 라는 새로운 내용이 나와서 검색해보았다. 하지만 잘 모르겠어서 다른 write up 을 참고 하게 되었다. finger service 자체는 user의 정보를 출력하는 명령어 인데 다음 내용이 user 의 권한으로 server에 있는 내용을 실행할 수 있게 하는 것이다. 따라서 /home/level4/tmp에 backdoor.c를 위와 같이 작성하고 backdoor로 컴파일을 해주고 finger의 사용법대로 실행해주니 Password를 출력했다. 정보보안/FTZ 2022.07.17
[FTZ]level3 level 3의 hint를 보면 autodig에 대해서 보여준다. argc, argv는 프로그램에 넘겨주는 인자로 argc는 넘기는 정보의 개수 argv는 넘겨주는 문자열 배열을 의미한다. argv[0]은 항상 실행 경로이다. 코드를 보면 입력받은 값을 dig@"asdf" version.bind chaos txt 형태로 system으로 넘기는것 같다. autodig 라는 프로그램이 있는것을 알았으니 위치를 찾아보았다. 실행을 하니 autodig의 Usage를 출력하고 있다. /bin/autodig host 형태로 사용하는 것이다. 위의 힌트중 - 동시에 여러 명령어를 사용하려면? ;를 이용한다. ex) ls -al;id; - 문자열 형태로 명령어를 보내주려면 ""를 이용한다. 위 둘을 이용하여 /bin/.. 정보보안/FTZ 2022.07.14
[FTZ]level2 전 문제는 혼자힘으로 검색과 함께 해낸것 같지만 여기서 부턴 아직 힘들 것 같다. 이게 무슨 소리일까 싶었다. 검색을 해보니 txt파일을 만들고 :!ls -al 를 vim에서 사용하니 위와 같이 실행되는 것을 알 수 있었다. 그 후 level 1처럼 level3의 권한을 가지고 있는 파일을 찾아보면 /usr/bin/editor 라고 한다. 2 > /dev/null은 에러를 없애갰다는 것이다. 직접 실행해보면 vim이 나온다. 아마 level3 의 vim 실행파일 이라고 생각한다. :!my-pass를 입력하면 답이 나온다. 정보보안/FTZ 2022.07.14
[FTZ] Level1 FTZ를 공부해 보려고 한다. level1/ level1 입력 level2 권한을 가지고 setuid걸린 파일을 찾으라고 한다. 이 폴더 안에 있는건 줄알고 각 파일들 폴더들 뒤져보았지만 없었다. 그래서 전체 검색으로 찾아보았다. find / -user level2 -perm -4000 user권한이 level2 이면서 검색을 해보니 setuid가 특수권한 숫자가 4000이라고 하여 다음과 같이 명령어를 입력하면 level1의 권한을 가진 파일 하나가 보인다. /bin/ExecuteMe /bin/bash를 실행한후 my-pass를 실행하면 답을 얻을 수 있다. 정보보안/FTZ 2022.07.14