본문 바로가기

Pwnable

(39)
[ProjectH4C] [Write-up] 해커스쿨 FTZ Level 4 level4에 로그인 후, 역시나 ls -al 과 find / -user level5 명령어를 먼저 실행시켜 보았다. 하나도 나오지 않았다. 혹시나 싶어 level4 그룹의 파일들로 검색하면 나올까 싶어 -group level4 옵션을 이용해서 한번 더 검색해보았다. 위와 같이 결과가 나오는데, /proc 디렉토리는 Memory에 커널이 적재된 후의 메모리의 정보들을 긁어와서 하드웨어정보나 프로세스 정보들을 파일로 관리하는 디렉토리 라고 한다. 왠지 건들면 안될 것 같기에 패스하고, 맨 아래의 /home/level4 디렉토리는 level4로 로그인하자마자 나오는 홈 디렉토리이다. 이 곳엔 별 이상이 없었기에 패스하고, 중간에 /etc/xinetd.d/backdoor 라는 파일이 있다. ls -l을 이용해..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Level 3 벌써 두 문제나 해치우고 level3에 와있다. 접속하자마자 ls -al과 find / -user level4 -perm -4000 2>/dev/null을 입력해보았다. ls -al은 특별한 게 없었고, find 명령의 결과는 다음과 같았다. [level3@ftz level3]$ find / -user level4 -perm -4000 2>/dev/null /bin/autodig 해당 파일을 ls -al로 출력해보았다. 역시나... setUID가 설정되어 있고, level4의 파일이며 level3이 사용할 수 있다. 해당 파일을 이용해서 level4의 권한을 얻어 my-pass를 이용하면 될 것 같다. 무슨 파일인지 실행시켜보기로 한다. 이 때, autobig은 bin 디렉토리에 들어있기 때문에, 명령어..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Level 2 level2에 접속 후, ls를 입력하면 level1과 동일하게 나온다. level1을 통해 어느정도 감이 잡혔다고 생각이 들어서, hint는 마지막의 마지막까지 보지 않을 생각이다. 일단 SetUID부터 확인해보았는데, level1 때의 출력 결과와 같다. ExecuteMe를 제외한 나머지 파일들은 특별한게 없어보이고 ExecuteMe는 level1에서 사용했으니 열쇠가 되진 않을 것 같다. 하기야 level1과 접근 방법이 똑같을 리가 없겠지... 우선 해당 디렉토리에 있는 것들부터 하나씩 확인한다. tmp에는 역시 아무것도 없고, public_html 에는 index.html이 하나있다. index의 내용을 출력해 보니 다음과 같았다. [level2@ftz public_html]$ cat index..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Level 1 level 1에 접속하면 다음과 같이 나온다. 일단은 my-pass 라는 명령어가 있다 했으니 my-pass를 사용해보았다. my-pass 명령어는 해당 유저의 비밀번호가 출력되는 명령어인 듯 하다. 그러니까 level2의 권한을 얻어 my-pass를 통해 비밀번호를 알아내고, level2로 로그인해서 level3의 권한을 얻어 my-pass를 통해 비밀번호를 알아내고 level3로 로그인하고 ... 이러한 방식인 듯 하다. 먼저 무엇부터 해야 할 지 모르겠으니 ls -al부터 출력해보았다. 음... 뭐가 굉장히 많이 보이는데 일단은 SetUID에 대해 배웠기 때문에 해당 디렉토리에서 이를 찾아보려했지만 s권한은 보이지 않는다. hint를 실행해보니 실행되지 않는다. 텍스트 파일인가 싶어 cat hint..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Training 6~10 #Trainer 6 6단계에서는 패스워드 파일을 분석하는 방법에 대해서 배운다. 먼저 cat /etc/passwd 를 입력하면 서버에 저장된 사용자들의 목록이 전부 나온다. 맨 위의 root:x:0:0:Admin:/root:/bin/bash 사용자의 정보는 콜론(:)을 기준으로 7개의 필드로 나누어져 저장되어 있다. 먼저 첫 번째 필드의 문자열은 로그인 할 때 사용하는 아이디를 뜻한다. 두 번째 필드는 패스워드가 적혀있는 부분인데, 처음에는 암호화 된 패스워드를 저장했는데 크래커들이 이를 악용하는 사례가 계속해서 발생했기에 해당 필드에 비밀번호를 저장하지 않는 대신 x라는 문자를 채우게 되었다고 한다. 현재에는 비밀번호를 etc 디렉토리에 shadow라는 파일을 만들어서 따로 보관한다. 세 번째 필드는 ..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Training 0~5 #Trainer 0 해커스쿨 FTZ에는 문제를 풀기 전에 기본 지식을 알려주기 위해 trainer가 존재한다. trainer는 총 10단계로 이루어져 있다. 해커스쿨 FTZ를 사용하려면 먼저 레드햇 리눅스가 설치된 가상머신과 ftz.iso 파일이 있어야 하는데 아래의 주소에서 받을 수 있다. blog.naver.com/wnsgus821/222028256853 실행 환경은 MacOS Katalina 10.15.6이다. 설치를 마치고 나서 리눅스를 실행 했을 때 다음과 같은 화면이 나오면, ftz login: root password: hackerschool로 입력해서 접속한다. 접속이 완료되었으면 ifconfig 명령어를 이용해 ip주소를 검색한다. eth0 부분의 inet addr를 기억해두면 된다. 이..
[ProjectH4C] [Write-up] 우리 집에 GDB 있는데... 메모리 보고 갈래? 본문 1편 : https://bpsecblog.wordpress.com/2016/03/08/gdb_memory_1/ 2편 : https://bpsecblog.wordpress.com/2016/04/04/gdb_memory_2/ 3편 : https://bpsecblog.wordpress.com/2016/05/20/gdb_memory_3/ 본문을 보다보니 중간중간 생략 된 설명들이 굉장히 많았다. 기본적으로 알아야 할만한 내용들에 대해 생략을 했겠지만, 처음 배우는 입장에서는 흐름을 따라가기가 쉽지 않았다. 그래서 본문에서 다루는 기본적인 메모리 구조, gdb 사용법, 이를 통한 취약점 공략 까지의 내용을 최대한 생략없이 하나의 흐름으로 이해하고 작성해보고자 한다. GDB란? GNU 디버거(GNU Debug..