지난 level3에서 얻은 level4의 암호를 입력하고 접속하여 평소대로 hint를 읽어보자. /etc/xinetd.d/ 에 백도어를 심어놓았다는 힌트가 존재한다. 우선 해당 디렉토리를 점검해보자. level4의 권한을 가진 backdoor라는 파일을 확인할 수 있다. 우선 xinetd.d 의 역할과 xinetd의 기능을 알아야 한다. 간단하게 설명을 하자면 네트워크 접속을 제어하는 서비스를 제공하며 대표적인 서비스로는 telnet이 있다. xinetd의 전체적인 설정파일은 /etc/xinetd.conf에 있고 해당 파일의 최하단에는 includedir /etc/xinetd.d가 적혀있는 것을 확인할 수 있는데 이는 xinetd에서 제공하는 서비스들이 모여저 있는 곳을 설명하는 것이다. 대표적인 예시로..
우선 레벨3 계정으로 접속하여 마찬가지로 hint를 확인해본다. 다음과 같은 hint를 얻을 수 있다. 그렇다면 우선 autodig이라는 프로그램이 어디에 위치하는지 찾아야 한다. 해당 프로그램의 위치를 찾았고 level4의 권한을 지닌 프로그램이라는 것을 알았다. 또한 실행할 수 있는 프로그램이므로 디스어셈블링을 수행하여 hint 와 비슷한지 확인을 해야한다. 0x0804851a : je 0x804854c 문에서 je는 윗줄에서 cmpl 문이 합당할때 수행되는 문장으로 exit 함수까지 조건문의 내용임을 hint와 조합해서 알 수 있다. 실제로 그 사이에 printf 문에서 어떤 내용을 출력하는지 확인해보면 다음과 같음을 알 수 있다. 만약 if문을 수행하지 않게된다면 exit함수 다음부터 진행한다. ..
level2에 맞는 비밀번호를 입력하고 들어와 우선 현재 상태를 확인한다. 힌트의 내용을 확인해보자. 힌트의 내용을 보면 level1 에서 풀었던 내용을 떠올릴 수 있게된다. 하지만 현재 상태에서 텍스트 파일 편집인 vi를 들어가게 된다면 level2의 권한으로 접속하는 것이기 때문에 level3의 권한을 가진 파일을 검색해보아야 한다. 검색결과 /usr/bin/editor라는 프로그램이 level3의 권한을 지니고 있었고 실행이 가능한 프로그램이라는 것을 인지해 디스어셈블링을 수행하였다. 프로그램의 흐름은 이렇다. 0xbbb(3003)인 권한 level3로 setreuid를 통하여 변경하고 system 함수를 통하여 어떤 명령어를 수행하는 것인데 그 명령어는 vi를 여는 것이다. 즉, level3의 권..