반응형

시스템 해킹 4

[Hackerschool FTZ] - level 11 문제

문제 내용 힌트 파일을 확인해보니 코드가 들어가있다. 코드를 해석해 보겠다. 힌트 코드 #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str ); } str배열이 256바이트만큼 선언되었고 setreuid로 3092로 Real User ID(실제 사용자), Effective User ID(유효 사용자)를 설정해주었다. strcpy로 str에 argv[1]을 복사한다. 그리고 str을 출력한다. 여기서 strcpy는 길이를 검증하지 않기때문에 길이보다 많은 데이터 값을 입력하면 버퍼를 넘어서 다른 메모리영역까지 침범할 수 있다. ..

[Hackerschool FTZ] - level 8 문제

문제 내용 힌트 파일을 읽어보면 level9의 shadow 파일이 어딘가에 숨어있다고 하고 알려진것은 파일의 용량이 2700이라는 것이라고 한다. find 명령어로 파일의 크기를 통해 한번 찾아보겠다. 사용명령어 : find / -size 2700c -ls 2>/dev/null find 명령어로 용량이 2700byte인 파일을 찾았다. 2번째 /etc/rc.d/found.txt 파일이 뭔가 수상하다. 한번 읽어보겠다. 해당 파일을 읽으니 level9의 shadow 파일의 내용을 출력하는것을 그림 9에서 볼 수 있다. 사용자 명은 level9이고 $1로 되어있으니 md5로 해시가 되었음을 알 수 있고 그다음 솔트값 그다음 해시함수와 솔트값을 이용하여 해시한 결과값인것을 알 수 있다. 칼리리눅스에 john ..

[Hackerschool FTZ] - level 5 문제

문제 내용 힌트를 보면 /usr/bin/level5 프로그램을 실행하면 /tmp 디렉토리에 level5.tmp라는 임시 파일을 생성한다고 한다. /usr/bin/level5를 실행하고 /tmp 디렉토리를 확인 해 보겠다. 명령어를 실행하였지만 level5.tmp가 생성되지 않았다. 하지만 생성된것이 아니라 빨리 삭제가 된것이여서 보이지 않는 것이다. 이것은 레이스 컨디션 공격을 통해 문제를 해결할 수 있다. 레이스 컨디션 공격을 위한 조건은 아래와 같다. 1. SUID가 걸려있어야 한다. 2. 임시파일을 생성해야 한다. 3. 임시로 생성되는 파일의 이름을 알아야 한다. /usr/bin/level5를 실행하면 /tmp/level5.tmp 파일이 생성된다. setUID가 걸려있고 임시파일을 생성하고 생성되는..

[Hackerschool FTZ] - level 4 문제

문제 내용 힌트를 보면 누가 /etc/xinetd.d/ 디렉토리에 백도어를 심어놓았다고 한다. 해당 디렉터리로 이동하겠다. 백도어 파일을 확인하였다. finger라는 서비스를 이용한다. finger 는 로컬사용자 또는 원격서버사용자의 계정정보를 확인하는 명령어이다. 찾아보니 level5의 권한으로 /home/level4/tmp/backdoor를 실행한다고 한다. 따라서 우리는 /home/level4/tmp/backdoor 파일을 만들어야한다. backdoor.c 파일 #include #include int main(void){ system("my-pass"); return 0; } my-pass 명령어를 실행하는 백도어 코드이다. gcc로 컴파일을 한후 finger @loacalhost를 이용하여 lev..

반응형