cdor1's lab
음.. 무언가 level5.tmp 파일에 힌트가 있을것 같은 느낌이 든다.실행시켜서 내용을 봐야지! ㅎㅎ 내파일 어딧쪄? ...고뇌한 결과 프로그램이 생성하는 파일이름이랑 이름이 같은 파일을 /tmp 경로에 만들어놓으면 저 프로그램이 와서 무언가를 하고 가지 않을까?라고 생각하게 되었고 한번 시도해 보려 한다. 파일을 만들고! .생성 확인 하고!.프로그램 실행 시키고!.내용 보고!.패스워드가 있네?????(추가 힌트가 있을줄 알았다 ㅠ) level5의 아이디와 패스워드는level5/what the hell 이다.
그렇다고 한다. 문제에 나온 경로대로 /etc/xinetd.d/에 들어가 보니 이름이 backdoor인 수상한 파일이 있다.cat 명령어로 들여다 보니 finger라는 서비스로 /home/level4/temp/backdoor라는 파일이 실행되는 것으로 보인다. 저 경로대로 /home/level4/temp/에 들어가서 backdoor라는 파일을 찾아보았는데 backdoor은 커녕 아무런 파일도 보이지가 않는다.그래서 my-pass를 실행시키는 프로그램을 하나 만들어서 finger 서비스를 실행하면 level5의 패스워드가 노출되도록 하려고 한다. system("my-pass");를 실행하여 패스워드를 보여주는 코드를 하나 만들어 gcc -o backdoor backdoor.c 로 컴파일하였다.이제 fing..
요번에는 힌트에 파일 소스를 준다. 갑자기 어려워진 기분이 들 수 있는데 소스를 차근차근 살펴보자.autodig는 리눅스의 nslookup 정도로 생각하면 되겠다. strcpy(cmd,"dig @");strcat(cmd,argv[1]);strcat(cmd,"version.bind chaos txt");이 부분에서 dig @ (입력값) version.bind chaos txt이런 방식으로 명령어를 만든 후, system(cmd); 로 명령을 실행한다. 문제는 여기서 어떻게 쉘을 실행시켜야 하냐인데, more hints에 나와 있다시피 동시에 여러 명령어를 전달하는 방법과 문자열 형태로 명령어를 전달하는 방법을 알아보자. 요번에는 find명령어가 좀 바뀌었는데, 힌트에서 이름을 주었기에 이름으로 한번 찾아보..