본문 바로가기

Pwnable/Hackerschool FTZ

(7)
[FTZ] 07. Level6 - System interrupt level6 문제 풀이 문제 분석 문제 파악 로그인시 bbs 텔넷 접속 메뉴에서는 많이 사용하던 해킹 기법이라는 표시만 나타나고, 엔터키를 입력하면 아래 그림과 같은 메뉴가 출력된다.1, 2, 3 어떤 메뉴를 선택해도 접속이 제대로 되지 않으며, 접속 자체가 종료된다. 풀이 Hand-ray
[FTZ] 06. Level5 - Race condition Level5 문제 풀이 문제 파악 문제 분석 파일 생성, 읽기, 쓰기 등의 과정에서 발생할 수 있는 Race Condition에 대한 이해도를 테스트 하는 문제/tmp/level5.tmp 파일에 다음 레벨 비밀번호 값이 기록되므로, 해당 파일이 삭제되기 전에 읽어서 화면에 출력하면 된다. 임시파일이 생성되나 즉시 삭제된다. Race Condition 공격이 가능한 프로그램의 특징- 임시 파일을 생성하는 프로그램이어야 한다.- 임시 파일 생성시 파일 권한이 setuid(4755)로 설정되어야 한다.- 공격자가 경쟁관계를 성립시키기 위해서는 임시파일명을 미리 파악하고 있어야 한다.- 레이스 컨디션에 대한 패치가 되지 않아야 한다. 해결 1. 쉽게 문제 푸는 방법level6의 권한으로는 파일을 지울 수 없기 ..
[FTZ] 05. Level4 - xinetd backdoor Level4 문제 풀이 문제 파악 문제 분석 리눅스 서비스(telnet, ssh, finger, lamp 등) 시스템의 구성 및 설정에 대해서 이해하는지를 확인하는 문제xinetd.d/ 디렉터리에 백도어 설정을 이해해야 한다. backdoor를 살펴보면 finger 서비스를 사용하는 것을 알 수 있다.finger : 로컬 사용자 or 원격 사용자의 계정 정보를 확인하는 명령어--> level5의 유저권한으로 /home/level4/tmp/backdoor 서버파일을 실행. 먼저 finger 사용법을 확인해보자$man finger ... SYNOPSIS finger [-lmsp] [user ...] [user@host ...] $ finger user@host --> level5권한으로 /home/level..
[FTZ] 04. Level3 - system() 취약점 Level3 문제 풀이 문제 파악 문제 분석 char* strcpy(const char*, const char*); //문자열 복사char* strcat(char*, const char*); // 문자열 덧붙이기 cmd 변수에는 "dig @ argv[1] version.bin chaos txt" 복사 및 실행된다.argv[1]을 통해서 임의의 명령 실행을 시도하고 패스워드를 찾아내는 문제다. 웹해킹의 command Injection과 동일한 공격. dig 명령은 nslookup과 동일한 도메인의 IP 주소를 확인하는 명령으로 유닉스 계열 운영체제에 탑재되어 있다.$ dig @ argv[1] version.bind chaos txt dig [@server] [name] [query type]- server..
[FTZ] 03. Level2 - Editor Shell Command Level2 문제 풀이 레벨1로 로그인 한 것을 종료하고 새 접속하는 것이 번거롭다. 아래 명령어를 이용하면 바로 level2로 넘어갈 수 있다. $ su -l level2 password: 문제 파악 문제 분석 find 명령어를 통해서 Setuid가 설정된 파일을 찾아 실행시키는 문제리눅스 편집기 프로그램에서 지원하는 외부 명령 실행옵션에 대해서 이해가 필요하다. 에디터 안에서 :! 를 이용하면 쉘명령어를 실행 시킬 수 있다. 해결 Hand-ray 참고 : http://pantom.tistory.com/386?category=679865
[FTZ] 02. Level1 - Backdoor 찾기 Level 1 문제 풀이 문제 파악 문제 분석 find 명령을 통해서 Setuid가 설정된 파일을 찾아 실행시키는 문제다. ※ 여기서 TIP$ find / -perm -4000 -user level2위 명령어로 입력하면 에러가 많이 출력되는데 ex) Permission denied이 에러를 생략하려면 명령어 맨 뒤에 2>/dev/null 을 추가하면 된다. ※ 유닉스 시스템에는 입력(0), 출력(1), 에러(2)를 숫자로 표현할 수 있다.즉, 시스템에 발생하는 에러에 대해서 /dev/null 로 보내라는 의미가 된다. (null = 없애라)$ find / -perm -4000 -user level2 2>/dev/null ※ 여기서 TIP$ find / -perm -4000 -user level2 -exe..
[FTZ] 01. 해커스쿨 FTZ Training 요약 $ telnet ftz.hackerschool.org $ telnet 115.68.23.201 [FTZ] 01. 해커스쿨 FTZ Training 요약 trainer2의 비밀번호는 linuxer 입니다. trainer3의 비밀번호는 computer 입니다. trainer4의 비밀번호는 mungguta 입니다. trainer5의 비밀번호는 goodluck 입니다. trainer6의 비밀번호는 coffee 입니다. ※ guest 아이디로 로그인 하여 복습하는 것을 잊지말자!! trainer7의 비밀번호는 to the top 입니다. trainer8의 비밀번호는 player 입니다. trainer9의 비밀번호는 programming 입니다. trainer10의 비밀번호는 best! 입니다. Trainer1 리눅..