정보보안 97

[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..

[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