목록전체 글 (89)
학사 나부랭이
일단 이번에는 무작정 어떤 프로그램이 실행되는 게 아니라 한시름 놓았네요.ㅋㅋㅋ 힌트를 보니 일단 /bin/level7을 실행해야 뭘 알 수 있겠어요. 그래서 실행을 해보면 wrong.txt가 생성되어 아래 모스부호 같은 텍스트가 작성됐어야 했는데 FTZ 서버가 닫힌지 오래라서 팀장님한테서 직접 카톡으로 받았어요.ㅋㅋㅋㅋㅋ --_--_- --____- ---_-__ --__-_- 보자마자 - = 1, _ = 0으로 치환하여 1101101 1100001 1110100 1100101라는 텍스트를 만들었어요. 그리고 이걸 2진수로 바꾸면... 109 97 116 101 어라? 97은 a이고 다 알파벳 소문자 대역을 벗어나지 않네요? 누가 봐도 아스키코드죠? 아스키코드 테이블을 보고 변환시키니까 mate 가 나..
처음 로그인하면 무작정 힌트만 나오고 프롬프트도 나오질 않았어요. 그래서 그냥 아무 키를 누르면 이렇게 접속하다가 종료되어버려요. 처음에는 갈피도 못 잡고 있었는데 BBS 해킹하는 방법이 ctrl + c이라고 해요. 그래서 시도를 해봤는데 이 화면으로 넘어오면 ctrl + c가 먹히질 않는 거 같아요. 그렇게 우왕좌왕하다가 힌트가 나오는 화면에서 ctrl + c를 입력하면 빠져나올 수 있었어요. 그리고 내부 디렉토리를 확인해보니 password라는 누가 봐도 수상쩍은 파일이 있길래 읽어보니 level7의 패스워드가 바로 나왔어요. 그런데 여기서 끝내기에는 영 뒤숭숭해서 어떻게 돌아가는지 확인해보려고 해요. 먼저 tn이라는 파일이 궁금해서 실행을 해봤더니 처음에 시작할 때 나오는 화면이네요. 아무래도 시작..
일단 한 번 들어가보시죠. level5 프로그램을 보러가죠. level6 권한에 SetUID가 걸려있고 level5 그룹이 실행만 가능한 파일이 있네요. 그럼 이제 이 파일을 실행하고 tmp에 가서 임시파일을 한 번 볼까요? 아무래도 실행하면서 임시파일이 생기고 종료되기 전에 삭제되는거 같아요. 그럼 여기서 손 좀 봐주면 달라질까요? 먼저 tmp파일을 우리가 직접 만들어주고 level5 프로그램을 실행하면, 임시파일이 이미 있어서 level6로 실행되어야 할 파일이 level5로 덮어쓰기가 된 후 실행이 되어 임시파일에 비밀번호가 남겨지고 종료될 때 SetUID로 인해서 level5로 실행되던 프로그램이 그 권한이 박탈되며 level6로 돌아가서 삭제를 못 하게 되는거죠. 심볼릭 링크 어떤 파일을 가리키..
여기서 잠깐! 백도어란? 뒷문, 즉 ID나 패스워드를 사용해서 사용권한을 획득하는 기능을 무허가로 이용하기 위해 시스템 내에 몰래 설치된 통신접속의 기능을 말해요. 여기서는 누군가 level5의 계정을 탈취해 거기에 백도어를 설치했다... 정도로 이해하면 될 것 같아요. 일단 백도어가 있다는 곳으로 가보죠! 읽을 수만 있는 백도어 파일이 있네요. 여기서 의아해할 수 있는게 백도어라서 SetUID가 안 걸려있어요. 몰래 설치한 거니까요! 일단 한 번 읽어보면... ⓐ 서비스의 이름이에요. finger가 실행되면 이 백도어도 실행된다는 의미예요. ⓑ xinetd의 제어를 받을 것인가를 결정해요. yes는 제어를 받지 않고 no는 제어를 받아요. 여기서 xinetd(eXtended InterNET Daemon..
흠... 낯선 명령어와 변수가 보이네요. 일단 검색해서 나온 결과, argc는 옵션의 개수, argv는 그 옵션의 문자열이 저장된 것 같아요. autodig를 실행할 때, 일단 옵션 두 개를 줘야 strcat로 cmd에 뭐가 입력이라도 되네요. 그럼 먼저 이 친구를 보러 가죠. 위의 cmd에 뭐가 입력이 되는 과정에서 level4의 권한으로 입력이 되겠네요. 그럼 my-pass나 /bin/bash를 넘겨줘야겠어요. 이제 코드에 대해 뭘 알아야 죽을 하든 밥을 하든 할 수 있겠죠? 이거는 제가 guest 계정에서 c언어로 작성한 유사 파일인데요. 프로그램을 실행하는 명령어도 하나의 옵션으로 치는 거 같아요. 그럼, 만약 ./autodig를 한다 하면 바로 다음 my-pass가 포함되어 있는 문장이 넘어가야..
이번에도 힌트가 있으려나용? 5252 그게 무슨 말이냐구~ 그럼 그 편집기는 level2도 쓸 수 있고 level3나 root의 권한을 가져올 수 있겠지? find / -perm -4000 -group level2 level2 그룹에 속한 s+rwx 권한을 가진 파일을 찾아봤어요. 이제 혼내주러 가보자고요! /usr/bin으로 가서 ls -al로 리스트를 쫙 뽑아보니 level3으로 SetUID가 걸린, level2 group에서도 읽기/실행 가능한 editor라는 파일 겟또다제! 저는 Trainer10에서 나온 필요한 만큼만 root 권한을 제공하고 일이 끝나면 그 권한을 박탈해버립니다. 라는 말 때문에 editor의 특정 기능이 작동하는 순간에만(예: 저장하는 순간) SetUID를 줄 가능성이 있나?..
먼저 뭐가 있는지 확인해보자고요. hint가 있네요. 이런 게 있으면 한 번 읽고 가는 게 인지상정이죠. 흠... trainer10에서 배운 find 명령어로 찾아봐야겠네요. find / -perm -4000 -user level2 권한이 s+rwx에 user가 level2인 파일이나 디렉토리를 찾아라는 명령의 결과예요. 여기서 위의 find: ...: permission denied는 ...까지는 갔지만 권한이 없어서 더 이상 진전하지 못했다는 뜻이에요. 즉. 해답이 될 수 있는 파일이 저 디렉토리에 있을지도 모르나 일단 /bin/ExecuteMe라는 한눈에 보이고 이름도 그럴싸해 보이는 파일을 먼저 열어보죠. 이 파일이 맞는 듯하네요. 안의 my-pass와 chmod가 또 궁금해져서 찾아봤는데, my..
해킹에는 Remote 해킹과 local 해킹이 있는데 remote 해킹은 대상 서버에 아이디를 가지고 있지 않을때, 아이디를 얻고자 시도하는 것이고 local 해킹은 서버에 일반 계정을 가지고 있을때, root 권한을 얻고자 시도하는 것이에요. SetUID UserID를 변경한다는 뜻인데 설명하자면 일시적으로 자신의 ID를 변경하는 것이에요. 예를 들어 plachina가 passwd 명령으로 비밀번호를 변경하면 root만이 조작 할 수 있는 shadow가 변경되죠. 이 passwd 파일에 루트 권한의 SetUID가 걸려있어서 일반 user가 passwd를 실행하는 동안 잠시 root로 변경된거예요. 정리하자면 SetUID는 파일에 걸리고 그 파일을 실행하면 user의 아이디가 변경되며 그 실행이 끝나면 ..