Security/System Hacking
-
[Hackerschool FTZ] Level 9 풀이Security/System Hacking 2019. 3. 8. 22:09
힌트를 보자 버퍼 오버플로우 공격을 해야 할 것 같다 스택의 구조를 살펴보기 위해 동일한 코드를 작성하고 disassemble해 보았다 원본 코드와 비교해 보니 0xffffffd8(%ebp) 가 buf 이고 0xffffffe8(%ebp) 가 buf2 인 것 같다 두 버퍼의 사이에 16바이트가 존재한다 buf 10바이트, dummy 6바이트로 예상된다 buf부터 입력하려면 16바이트 쓰레기값 + go 를 입력해야 할 것 같다 aaaaaaaaaaaaaaaago를 입력해보자 성공했다 다음 문제로 넘어가자
-
[Hackerschool FTZ] Level8 풀이Security/System Hacking 2019. 3. 8. 20:22
힌트를 열어보자용량이 2700이라고 한다 find의 매뉴얼을 살펴보니 단위가 다음과 같다 -size [+/-]n[bckw] : 지정된 크기의 파일을 찾는다. • +n : n보다 크다 • -n : n보다 작다 • n : n이다 • b : 512-byte • c : byte • k : kilobytes • w : 2-byte 하나씩 대입하다가 byte단위로 검색하니까 found.txt라는 파일이 검색되었다 제대로 찾은 것 같다 John The Ripper라는 패스워드 크래커를 사용하여 패스워드를 알아냈다 (패스워드 크래킹 과정이 좀 오래 걸린다) password : apple 다음 문제로 넘어가자
-
[Hackerschool FTZ] Level7 풀이Security/System Hacking 2019. 3. 8. 20:06
힌트를 열어보았다 이게 무슨 소리인가 정말 한참 헤매다가 포기했다 힌트가 너무 부실한 것 같아서 그냥 포기하고 구글 검색을 해 보았다 찾아보니 로컬에서 구축한 사람들은 누락된 힌트가 있다고 ㅡㅡ 2진수를 10진수로, 10진수를 ASCII Code로 변환하면 그게 패스워드라고 한다.. password : mate level 8 password : break the world 기분 팍 상했지만 다음 문제로 넘어가자
-
[Hackerschool FTZ] Level 5 풀이Security/System Hacking 2019. 3. 8. 19:38
힌트를 열어보자 해당 프로그램을 확인해 보자 SetUID가 설정되어 있다 임시 파일을 만들었다가 삭제하는 프로그램인듯 하다 race condition 공격을 해야할 것으로 보인다 race condition 공격이란 동시에 여러 프로그램을 실행시킬 때 발생하는 context switching을 이용하는 것이다 1. 파일 생성을 성공했는지 검사2. 성공시 해당 파일에 작업 수행 이 두 가지 과정 사이를 공략하는 것이다 두 과정 사이에 동일한 이름의 심볼릭 링크를 생성하면 모든 과정이 끝난 뒤에 링크를 타고 가서 어떤 일을 수행하는 지 알 수 있다 일단 파일 생성 여부를 검사하는지 알아보기 위해 심볼릭 링크를 미리 생성해 보았다 운좋게도 바로 해결되었다 생성된 링크는 만들어둔 파일에 비밀번호를 작성한다는 것을..
-
[Hackerschool FTZ] Level 4 풀이Security/System Hacking 2019. 3. 5. 22:07
힌트를 열어보자해당 디렉토리에 백도어가 있단다 살펴보자 이번엔 root 소유의 일반 파일이다 읽기 권한이 허용되어있으므로 읽어 보자 service finger{ 로 시작하는 설정 파일이다 finger 프로그램이 사용하는 포트를 대신 사용하는듯 하다 finger 프로그램은 막혀 있을 것으로 예상된다 한 번 살펴보자 예상대로 막혀있다 (disable=yes) (finger는 시스템에 접속한 사용자 정보를 알려주는 프로그램) 여기서 리눅스 데몬에 대해 잠깐 복습하자 데몬이란 리눅스 부팅시 백그라운드에서 실행되고 있다가 사용자의 요청이 들어오면 서비스를 실행해주는 프로그램이다 데몬의 방식에는 standalone 방식과 inetd 방식이 존재한다 standalone 방식은 백그라운드에 항상 실행되고 있다가 요청을..
-
[Hackerschool FTZ] Level 3 풀이Security/System Hacking 2019. 3. 5. 21:06
힌트 파일을 열어보자 autodig 파일의 소스코드이다 대충 보니 dig 명령의 옵션을 미리 지정한 실행 프로그램이다 (dig 명령은 잘 몰라도 된다. DNS 서버의 정보를 질의하는 프로그램) autodig 프로그램을 찾아보았다 이번에도 SetUID 설정되어있을 것으로 예상된다 역시 SetUID가 설정되어 있다 대충 윤곽이 잡힌다 autodig 프로그램에서 쉘을 획득하면 될 것이다 소스 코드를 자세히 살펴보자 다음 명령을 실행하는 것 같다 dig @ argv[1] version.bind chaos txt dig 명령을 실행하면서 쉘을 획득하려면 연속 명령을 실행해야 할 것 같다 연속 명령을 실행하려면 세미콜론을 활용해야 한다 나는 명령어 3개를 연속으로 실행하도록 해보겠다 (dig + 쉘 획득 + ech..
-
[Hackerschool FTZ] Level 2 풀이Security/System Hacking 2019. 3. 5. 20:38
이전 레벨에서 획득한 비밀번호를 입력하고 힌트를 열어보자텍스트 파일 편집기라고 하니 vi 편집기인 듯 하다 vi 편집기에서 외부 명령을 실행할 수 있다..고 한다 (사실 필자도 이번에 처음 알았다) 구글 검색을 통해 쉽게 알아낼 수 있었다 다음 명령으로 command 명령을 실행할 수 있었다 :! command 다음 레벨의 쉘을 획득하려면 아마 저번처럼 SetUID 설정된 파일을 실행해 쉘을 획득해야 할 것 같다 level3 소유의 파일을 검색해 보았다 역시 SetUID가 설정되어 있었다 실행해 보니 vi 편집기다 쉘을 획득하자 :! /bin/bash 성공적으로 쉘을 획득했다 저번 레벨을 풀었다면 수월하게 넘어갈 수 있었다 다음 레벨로 넘어가자