Systemhacking 14

[FTZ] level9

level 9 (password : apple) 'ls'을 통해 'hint' 파일이 존재하는 것을 확인한 후, 'cat'명령어를 통해 내용을 확인하였다. '/user/bin'에 위치한 'bof' 파일의 소스코드가 출력되었고, 이 소스를 이용하여 level10의 권한을 얻는 문제이다. 여기서 나오는 'bof'는 시스템 해킹에서 가장 기초가 되는 취약점으로 버퍼가 넘쳤음을 의미하는 'buffer over flow' 의 준말이다. 공격자는 지정한 입력값 외에 원하는 값을 버퍼의 크기보다 많이 넣으면 공격자가 원하는 명령을 실행할 수 있다. 먼저 'bof' 소스를 해석해보았다. #include #include #include main(){ char buf2[10]; (1) char buf[10]; printf(..

Systemhacking/FTZ 2021.05.06

[FTZ] level6

level 6 level6에 접속을 하면 ' 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다. ' 라는 힌트를 얻을 수 있다. 그리고 나서 엔터를 입력하면 텔넷 접속 서비스가 출력된다. 이 서비스를 종료하고 싶어서 ' Ctrl + c ' 입력을 하였더니 " Can't use ctrl+c " 라는 문구가 떴다. 이번에는 서비스 중 ' 1 ' 을 선택해서 접속하였다. 접속을 하면 연결을 시도하다가 레벨6 로그인 자체가 끊기는 것을 볼 수 있었다. 이번에는 ' hint - ... ' 가 나오고 텔넷 서비스가 출력되기 전에 ' Ctrl + c ' 을 입력해보았더니 level6 계정에 접근할 수 있었다. level6 계정에 접속한 다음 아무런 정보가 없어 ' ls ' 명령을 통해 파일을 확인해보았..

Systemhacking/FTZ 2021.03.30

[FTZ] level5

level 5 ' ls -l '을 통해 ' hint ' 파일이 존재하는 것을 확인한 후, ' cat ' 명령을 통해 내용을 확인해주었다. ' /user/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다 ' 라는 힌트를 얻었다. 즉, level5 프로그램을 실행할 때, 임시 디렉토리에 ' level5.tmp ' 라는 임시 파일을 생성하고, 직접 실행하고 해당 디렉토리가 확인되면 임시파일을 삭제 ( 사라짐 ) 되는 것이다. 사라진 임시파일의 내용을 확인하는 방법에는 대표적으로 3가지가 있다. 심볼릭 링크를 활용해서 임시파일이 링크로 생성한 파일에 전달되도록 하는 방법 임시 파일의 이름과 같은 이름의 파일을 생성해 해당 파일에 내용이 쓰여지게 하는 방법 레이..

Systemhacking/FTZ 2021.03.30

[FTZ] level4

level 4 이번에도 ls로 hint 파일이 있는 것을 확인한 후 cat 명령을 통해 hint의 내용을 보았다. ' 누군가 /etc/xinetd.d/ 에 백도어를 심어 놓았다.! ' 라는 힌트를 얻을 수 있었다. 더보기 ※ backdoor : 시스템에 존재하게 되면 공격자가 일반 보안 엑세스 컨트롤을 우회하고 시스템에 엑세스 할 수 있는 악성 코드의 유형 실제로 ' backdoor ' 파일이 존재하는지 ' ls -l '을 통해 확인해보았다. ' backdoor ' 파일은 모두 읽기 권한만 주어지고, 파일 소유자가 level4로 되어있다. ' backdoor ' 파일은 ' /etc/xinetd.d ' 디렉토리 안에 있기 때문에 ' cd ' 명령어를 통해 해당 디렉토리로 이동해주었다. 그리고 ' cat '..

Systemhacking/FTZ 2021.03.30

[FTZ] level3

level 3 (비밀번호 : can you fly?) 이번에도 level3 문제에 대해 알기 위해 ' ls ' -> ' cat hint ' 로 hint 파일의 내용을 보았다. hint 파일을 보면 두 가지 정보가 나온다. 첫 번째, autodig 의 소스 코드가 나온다. autodig은 사용자의 입력을 받아 인자가 2개가 아니면 오류를 출력한다. ( argc != 2 ) ' strcpy ' 를 사용해 " dig @ " 를 cmd로 복사하고, 나머지 인자들을 ' strcat ' 를 사용해 이어붙인다. ( strcat ( cmd, argv[1] ) ) ' strcat ' 를 사용해 마지막에 " version.bind chaos txt " 를 이어붙인다. ' system() ' 명령어를 사용하여 cmd 를 실..

Systemhacking/FTZ 2021.03.25