일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 순서도
- Web
- dreamhack
- 시스템해킹
- hacking
- 네트워크보안
- 비박스
- webhacking
- 드림핵
- bee-box
- WarGame
- 소프트웨어보안
- 소프트웨어
- Webhaking
- 웹해킹
- 모의해킹
- CodeEngn
- network
- 네트워크
- ftz
- 해킹
- 워게임
- XSS
- 시스템
- System
- TCP
- reversing
- 웹
- 리버싱
- 알고리즘
- Today
- Total
목록Pwnable/Hackerschool (17)
Without a Break

/bin/level7을 입력하니 패스워드를 입력하도록 뜬다. 잘못 입력하면 /bin/wrong.txt 의 내용을 띄우는 것 같은데, 파일을 찾을 수 없다고 나온다. 그래서 root로 권한을 바꿔주고, cat >> /bin/wrong.txt로 wrong.txt를 만들어줬는데 이후에 wrong.txt에 내용을 넣는 시도를 했더니 --_--_- --____- ---_-__--__-_- 이게 나오지 않아 vi를 이용해 wrong.txt에 내용을 입력해줬다. 원래 wrong.txt를 만들어주고, /bin/level7을 실행하면 저렇게 떠야 함. - 가 1이고, _가 0 / -가 0이고, _가 1일 때로 나눌 수 있다. 즉, 1101101 1100001 1110100 1100101 또는 0010010 0011110..

level6로 로그인하면 바로 hint가 뜨는데, 여기서 엔터를 누르면 텔넷 접속 서비스가 뜬다. 1, 2, 3 중 어느 bbs를 선택해도 trying ~ 이 뜨다가 level6의 로그인이 끊기고 putty가 종료된다. 그래서 level6로 다시 로그인 후, hint가 출력됐을 때 Ctrl+C로 다시 쉘로 돌아왔다. ls 명령으로 파일/디렉토리를 확인했더니 password라는 파일이 있는 것을 확인할 수 있었다. password의 내용을 확인하면 level7의 패스워드를 확인할 수 있다!

/usr/bin 위치로 이동해보니 level5 실행 파일이 있는 것을 확인 level5를 실행하고 tmp 디렉토리로 이동해봤으나 임시 파일이 생성되지 않았다. tmp 디렉토리에 level5.tmp를 직접 생성해줬다. 다시 /usr/bin으로 이동해 level5 를 실행해주고 tmp 디렉토리로 이동해 level5.tmp의 내용을 확인하면 패스워드를 확인할 수 있다!

hint를 확인해보니 /etc/xinetd.d/에 백도어를 심어놓았다는 것을 알 수 있다. /etc/xinetd.d로 이동해서 ls 명령으로 파일/디렉토리를 확인해보니, backdoor라는 파일이 존재하는 것을 알 수 있었다. cat 명령으로 backdoor 파일의 내용을 확인해보자. finger 서비스라는 것이 뜨고, 이 서비스는 level5 user의 정보를 보여주는 것 같다. server를 확인하면 backdoor의 위치를 알려주고 있다. 해당 위치로 이동해 숨겨진 파일까지 확인해봤으나 backdoor 파일이 존재하지 않는다. 그럼 우리가 backdoor 파일을 만들어보자 cat 명령과 >(리다이렉션)을 활용해 backdoor.c 파일을 만든다. level5의 패스워드를 확인할 수 있도록 syste..

Level3의 힌트는 위와 같다. 제공된 코드를 확인하면 main 함수는 2개의 파라미터를 가지고 있음 => 2개의 파라미터를 입력받는다. 입력받은 2개의 파라미터를 다른 문자열과 합쳐 system 함수에 인자로 넣는다. dig @입력값 version.bind chaos txt 즉, system 함수에는 이 문자열이 넘겨진다. 그리고 more hints를 살펴보면 동시에 여러 명령어를 사용하라는 것을 볼 수 있다. 여기서 우리는 입력값에 ;(세미콜론)을 넣음으로써 동시에 우리가 입력값으로 전달한 명령어를 실행할 수 있다. 먼저, 권한이 level4이고 SetUID가 걸린 파일을 찾는다. 출력된 파일들을 확인하니 힌트에 나왔던 /bin/autodig 파일을 찾을 수 있었다. autodig가 있는 위치로 이..

level2도 level1과 마찬가지로 로그인 후 ls 명령으로 파일/디렉토리 리스트를 출력해보니 hint 파일이 있는 것을 발견할 수 있었다. hint 파일의 내용을 확인해보니 level2에서는 텍스트 파일 편집을 이용하여 쉘 명령을 실행시키라고 한다. 우리는 level3의 패스워드를 찾아야하므로, 권한이 level3이고 SetUID가 걸린 파일을 찾아보자. find 명령을 사용해서 권한이 level3인 SetUID가 걸린 파일들을 출력한다. 출력된 파일들을 살펴보면 /usr/bin/editor를 찾을 수 있다. 힌트에서 텍스트 파일 편집을 통해 쉘을 실행시키라고 했으니, 이 파일이 수상하다. 파일이 있는 위치로 이동해주고, editor를 실행해준다. 실행하면 위와 같이 뜬다. 외부 쉘 실행시키는 !를..

putty 실행 후, level1로 로그인 해준다. 로그인하면 아무것도 뜨지 않는다. 일단 ls 명령으로 파일/디렉토리 리스트부터 확인해보자. hint라는 파일이 있는 것을 확인할 수 있다. 파일 내용을 확인해보니 level1에서 뭘 해야하는지를 알 수 있었다. SetUID가 걸린 파일을 찾는 법은 find 명령을 사용하는 것이다. user가 level2인 SetUID가 걸린 파일을 찾는 것이므로 -user 옵션과 -perm 옵션을 사용해주면 다음과 같다. find / -user level2 -perm -4000 /에서부터 user가 level2이고, SetUID가 걸린 모든 파일을 찾으라는 뜻이다. 명령어를 입력하면 권한이 level2이고 SetUID가 걸린 파일들이 출력된다. 출력된 파일 중에 /bi..

Training 6 패스워드 파일 분석 방법 패스워드 파일 : 한 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일 사용자들의 모든 정보를 저장해 놓은 매우 중요한 파일 root : x : 0 : 0 : Admin : /root : /bin/bash 각 필드별로 살펴보자. 1번째 필드 : 서버에 로그인할 때 사용되는 아이디(계정) ex. root 2번째 필드 : 패스워드가 적혀있는 부분 (크래커를 사용한 공격을 막기 위해 /etc/shadow/라는 파일을 만들어 관리자 권한을 가진 사람이 아니면 펼쳐 볼 수 조차 없도록 만듦. 그래서 x라는 문자만 보여줌) 3번째 필드 : 컴퓨터가 보는 로그인 계정. (컴퓨터는 영어가 아닌 숫자로 사용자를 판단하기 때문에) 4번째 필드 : 사용자가 속해있는 그룹 ..