본문 바로가기

전체 글

(62)
[ProjectH4C] 코딩도장 Python Write-up (1) 개요 요즘 떠오르는 대표적인 언어가 파이썬이다. 파이썬은 프로그래머 뿐 아니라 문, 이과를 통틀어서 어느 분야에서든 사용하는 언어로 자리잡혀있다. 파이썬의 비중이 커진 데에는 몇 가지 이유가 있다. 문법이 매우 쉽고 간단함. 패키지가 다양함. 오픈 소스이며, 모두 무료임 파이썬의 문법들은 굉장히 직관적이여서 초보자도 쉽게 배울 수 있다는 점이 프로그래밍의 장벽을 낮추고 널리 사용하게 된 가장 큰 이유이지 않나 싶다. 그런 파이썬의 기초 문법에 대해 공부해보고자 한다. 설치 및 실행 파이썬의 설치는 파이썬 공식 홈페이지 (http://www.python.org/downloads/) 에서 가능하다. 맥에는 기본으로 2.7 버전이 깔려있지만, 2.7버전을 실행하면 곧 사라질 버전이니 파이썬3을 이용하라는 경고..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Level 6 level6에 로그인하면 여태까지와는 다르게 특별한 출력이 하나 나온다. 이게 뭐지..? 하다가 일단 하이텔로 접속해보았다. 한참 멈춰있다가 서버가 닫혔다며 연결이 끊긴다. 힌트를 다시 보면 텔넷 접속 메뉴에서 사용하던 해킹 기법이라고 나와있다. 실제로 텔넷으로 접속해야 하는게 아니고, 접속 요청을 보냄과 동시에 어떠한 동작을 추가로 실행해주어야 할 것 같다. 먼저 보기에 없는 4번을 입력해보았더니 "잘못 입력하셨습니다. 접속을 종료합니다." 라는 문구가 아주 잠깐 나온 후 프로그램이 종료되고, 접속한 level6 계정도 로그아웃된다. 혹시 세미콜론을 이용해서 명령어를 여러 개 보내야하나 싶어서 4;ls; 를 입력해보았는데 아무 소용 없었다. 입력이 1, 2, 3 인 경우가 아니면 종료하는 프로그램인 것..
[ProjectH4C] [Write-up] 해커스쿨 FTZ Level 5 Level5로 로그인한 후, 역시나 가장 먼저 ls -al과 find / -group level5 2>/dev/null을 실행해보았다. ls -al은 별거 없었고, find의 결과는 다음과 같았다. proc 디렉토리와 home 디렉토리를 제외하고 /usr/bin/level5가 존재한다. ls -al을 통해 확인해보았다. level6의 권한을 얻어서 비밀번호를 출력해내면 되는 것 같아서 일단 어떤 프로그램인지 알아보기 위해 실행시켜보았다. 아무일도 일어나지 않았다. 디버깅을 하려했더니 권한이 없어서 못한다고 하고 복사를 해오려했더니 그것도 권한이 없다고 나온다. 혹시 어떠한 파일을 만들어내는 프로그램인가 싶어서 find를 이용해 생성됐을만한 파일을 검색해보려 했지만 단서라고 할만한 것을 찾아내지 못했다. ..
[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라는 파일을 만들어서 따로 보관한다. 세 번째 필드는 ..