'HackerSchool'에 해당되는 글 8건

  1. 2015.07.23 Hackerschool - level8
  2. 2015.07.22 HackerSchool - level7
  3. 2015.07.22 HackerSchool - trainer
  4. 2015.07.22 HackerSchool - F.T.Z 로컬환경 구축
  5. 2015.07.15 HackerSchool - ftz level6
  6. 2015.07.15 Hacker school ftz level5
  7. 2015.07.15 hacker school - ftz level4
  8. 2015.07.15 hackerSchool - level 1

Hackerschool - level8

HackerSchool 2015. 7. 23. 00:11

안녕하세요. 오늘은 hackerschool level8을 풀어보겠습니다.

서버로 들어가 level8로 접속합시다.

파일을 확인하니 hint가 있네요. cat으로 잡아 줍시다.

shadow파일의 용량이 2700이라는군요. 그러면 찾아봅시다.

find / -size 2700c 2>/dev/null을 입력해주세요.

find 는 파일을 찾는 명령어입니다. c는 단위이구요. 2>/dev/null은 접근거부인 파일 즉 에러파일을 제외시킨다는 소리입니다.

세개가 나오는군요. txt와 gz가 있네요. gz는 리눅스압축파일입니다. 읽기 쉬운 txt부터 읽어 봅시다. 

.... 알수없는 문자들이 보이는군요. 아무래도 암호화된 문장인것 같습니다.

그냥 암호문이면 여려 복호화 프로그램을 사용하겠지만 리눅스에서 파일을 복호화시키기 위해서는 프로그램을 써야 합니다. 존 더 리퍼라는 프로그램을 다운받습니다.

다운받았으면 압축을 푼 후 위의 암호문을 복사해 메모장에 붙여넣고 저장시킵니다. 그리고 존 더 리퍼 폴더 안에 집어넣습니다.

pw란 이름으로 저장시켰습니다. 그 후 시작 - 실행 -cmd로 들어갑니다.

cmd로 들어가셨으면 존프로그램을 실행시킵시다. 

파일이 있는 경로를 복사시켜 cmd에 붙여넣어 봅시다.

usage를 보시면 사용방법이 나와있네요. 경로 존 옵션 패스워드파일 이라고 되어있네요. 패스워드 파일을 빼먹은 것 같습니다. 패스워드 파일까지 입력해 줍시다. 참고로 패스워드 파일도 경로를 넣어주셔야 합니다.

그러면 번역된 것이 나옵니다. apple라는군요.

이 패스워드가 다음레벨의 패스워드입니다.

네 이것으로 문제풀이를 마치겠습니다.

'HackerSchool' 카테고리의 다른 글

HackerSchool - level7  (0) 2015.07.22
HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
Posted by englishmath
,

HackerSchool - level7

HackerSchool 2015. 7. 22. 22:21

안녕하세요. 오늘은 해커스쿨 level7을 풀어보겠습니다.

level7로 들어가서 ls -al을 쳐줍시다.

hint가 보이네요. 잡아줍시다. cat hint를 입력해주세요.

/bin/level7 명령을 실행하면 패스워드 입력을 요청한다는군요. 밑의 내용은 패스워드의 힌트인것 같습니다. 뭔 소리일까요?

일단 /bin/level7 명령을 실행해봅시다. cd /bin 을 입력합시다. 그리고 level7을 입력합시다.

패스워드를 입력하라네요. 아무거나 입력해봅시다.

???? 파일이 없다고 뜨는군요? 알아보니 이 파일은 hackerschool에 있다고 합니다. 그런데 우리는 개인서버로 들어왔잖습니까? 그래서 할 수 없이 블로그에서 답을 찾았고 이를 이용해 직접 만들어 보겠습니다. 문제를 직접 만든다니..... 쩝.

cat >> /bin/wrong.txt 를 입력합시다.

안된다는군요. 아무래도 level7 권한으로는 못만드는 것 같습니다. 관리자 권한으로 들어가 봅시다. su root 로 로그인 합시다. 패스워드는 hackerschool입니다. 들어오셨으면 아래그림처럼 파일을 생성해 봅시다.

생성하셨으면 다음과 같이 입력해줍시다. 다 입력하셨으면 엔터를 누른 후 ctrl+d를 눌러서 파일을 생성합시다.

만드셨으면 연결을 끊고 다시 접속합니다.

자기가 만든걸 자기가 여니까 기분이 묘하군요. 암튼 패스워드는 가까운 곳에 있답니다.

--_--_- --____- ----_-__ --_-_- 이것이 무슨 뜻일까요?

힌트를 보시면 2진수를 10진수로 바꿀 수 있는가? 라고 나와있습니다. 근데 여기 패스워드를 잘보면 -와 _로 이루어져 있습니다. 즉 0과 1을 뜻하는 것이지요.

즉 0010010 0011110 0001011 0011010 또는 1101101 1100001 1110100 1100101 

둘중 하나입니다. 차례대로 해봅시다. 2진수를 10진수로 바꾸라고 나와있으니 바꿔봅시다.

18 30 11 26 이 나왔군요. 입력해 봅시다. 아니라는군요. 붙여서 넣어봐도 안됐습니다.

그러면 두번째 걸 해봅시다.

109 97 116 101이 나왔군요. 입력해 봅시다. 안되는군요. 역시 붙여서도 안됐습니다. 그러면 대체 뭘까요? 힌트를 다시 보면 계산기를 공학용으로 바꾸라는군요. 그래서 바꿔보았습니다.

그런데 이것을 보니 딱 생각나는게 있죠. 숫자.. 문자... 아스키코드! 말입니다.

첫번째 숫자는 아스키코드가 없으니 두번째 숫자로 해봅시다.

^R ^^ ^K ^Z 가 나오네요. 입력해 봅시다. ,,, 안되네요. 붙여서 해봅시다. 안되는군요.

그럼 두번째 숫자로 해봅시다. mate가 나오네요. 입력합시다. 안되네요. 붙여서 해봅시다. 

드뎌!!!! 되네요.

네 이것으로 level7풀이를 마치겠습니다.


'HackerSchool' 카테고리의 다른 글

Hackerschool - level8  (0) 2015.07.23
HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
Posted by englishmath
,

안녕하세요. 오늘은 로컬구축에 이어 HackerSchool 문제를 풀기전에 간단한 트레이닝을 하는 방법을 알려드리겠습니다.

서버로 접속하셔서 로그인부분에 root 그리고 패스워드부분에 hackerschool를 입력해주세요. 지금 쓰고 있는 레드햇 리눅스 기반으로 설정된 아이디와 패스워드입니다. ftz만든 사람이 정했다는군요. 패스워드부분은 입력해도 보이진 않으나 입력되고 있습니다. 그냥 정확히 입력 후 엔터를 치시면 됩니다.

자 이제 트레이닝을 시작해봅시다. 시작하기 위해선 일단 ifconfig를 입력하여 현재 설치된 가상머신의 ip주소를 알아내봅시다.

주소를 알아냈으면 xshell을 설치합니다.

xshell은 윈도우에서 동작하는 네트워크 원격 로그인 프로그램입니다. 우린 지금 trainer서버로 접속을 해야 하기 때문에 xshell로 연결하려는 것입니다. 그러면 한번 해봅시다.

설치하셔서 실행을 시키면 xshell과 아래그림처럼 창이 하나 더뜹니다. 

로 만들기를 눌러봅시다. 그리도 다음과 같이 설정을 하고 확인을 누릅시다. 호스트는 아까 확인한 주소입니다.

다되셨으면 연결을 눌러줍시다.

수락 및 저장을 눌러줍시다.

trainer1을 입력 후 확인을 눌러줍시다.

패스워드도 trainer1입니다. 입력 후 확인을 눌러줍시다.

연결이 성공적으로 된 것 같습니다만 알수 없는 고대언어만 적혀있습니다. 해석을 위해 상단의 인코딩을 눌러주세요.

만약 Korean이 없다면 자세히를 눌러 Korean을 눌러주시면 됩니다. 그 후 

를 눌러 연결을 끊고 다시 연결합시다.

드디어 알아들을 수 있겠군요. 엔터키를 눌러 봅시다. 누르셔서 트레이닝을 받아 봅시다.

트레이닝을 수료한다면 다음과 같이 뜹니다. 그 밑에 보시면 trainer2와 비밀번호가 나와있습니다. trainer2로 가고 싶다면 아까 한것처럼 연결을 끊고 접속하시면 됩니다.

네 이런식으로 다음단계로 넘어갑니다. 10단계까지 있으니 처음 접하시는 분들은 수료할 것을 권장합니다. 이것으로 트레이닝을 마치겠습니다.


'HackerSchool' 카테고리의 다른 글

Hackerschool - level8  (0) 2015.07.23
HackerSchool - level7  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
Posted by englishmath
,

해커스쿨을 시작하기에 앞서 로컬환경을 구축해보겠습니다.

원래는 해커스쿨에서 운영해온 FTZ서버가 있었는데 요즘 통 접속이 되질 않습니다. 여기서FTZ란 Free Training Zone의 약자로서 직역하면 무료훈련장 이란 뜻입니다. 그런데 접속이 되질 않으니 직접 로컬환경을 구축해보겠습니다.

로컬환경을 구축하기에 앞서 미리 준비하셔야 할 것이 있습니다.

1. vmware(가상머신)를 설치하셔야 합니다.

2. ftz 이미지 파일을 받으셔야 합니다.

위의 두가지가 완료되었으면 로컬환경을 구축해봅시다.

vmware를 실행한 후 file - open을 누릅시다. 그리고 확장자가 vmx인 파일을 선택 후 열기버튼을 누릅니다.

뜨셨다면 Power버튼을 눌러줍시다.

뭐라고 뜨는군요. 맨마지막 문장을 보시면 "너가 만약 모른다면 i copied it을 누르라는군요.

뭔지 모르겠으니 i copied it을 눌러줍시다.

그 후 또 무언가가 뜨는데 그냥 ok눌러줍시다.

정상적으로 만들어졌군요. 타자를 치기위에 더블클릭을 해봅시다.

더블클릭 한 순간 또 하나의 운영체제인 리눅스로 들어왔습니다. 가상이기 때문에 운영체제안에 또 운영체제를 깔 수 있었습니다. 나올려면 ctrl+alt를 누르시면 됩니다.

자 이것으로 로컬환경 구축을 마치겠습니다. 

'HackerSchool' 카테고리의 다른 글

HackerSchool - level7  (0) 2015.07.22
HackerSchool - trainer  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
hacker school - ftz level4  (0) 2015.07.15
Posted by englishmath
,


ssh://ftz.hackerschool.org
id : level6
pw : what the hell

서버에 접속하여 문제를 확인한다.



hint - 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다.

 


접속하자마자 힌트가 뜹니다만 프롬프트가 실행되지 않습니다. 일단 ctrl+c를 프로세스를 종료시킵니다. 그런데 종료를 시키자마자 프롬프트가 나타났습니다. 일단 파일목록을 확인해봅시다.

^C
[level6@ftz level6]$ ls -l
합계 32
-rw-r--r--    1 root     root           72 11월 23  2000 hint
-rw-r-----    1 root     level6         36  3월 24  2000 password
drwxr-xr-x    2 root     level6       4096  5월 16  2005 public_html
drwxrwxr-x    2 root     level6       4096  6월 25 21:50 tmp
-rwxr-x---    1 root     level6      14910  3월  5  2003 tn
[level6@ftz level6]$ cat password 
Level7 password is "come together".

??  password란 파일이 있습니다.  확인해 봅시다.

password is "come together".

패스워드를 얻었습니다.


'HackerSchool' 카테고리의 다른 글

HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
Hacker school ftz level5  (0) 2015.07.15
hacker school - ftz level4  (0) 2015.07.15
hackerSchool - level 1  (0) 2015.07.15
Posted by englishmath
,


ssh://ftz.hackerschool.org
id : level5
pw : what is your name?

서버에 접속하여 리스트를 확인 후 hint를 봅시다.

[level5@ftz level5]$ ls -l
합계 12
-rw-r--r--    1 root     root          129  3월 23  2000 hint
drwxr-xr-x    2 root     level5       4096  2월 24  2002 public_html
drwxrwx---    3 root     level5       4096  7월 12 12:32 tmp
[level5@ftz level5]$ cat hint

/usr/bin/level5 프로그램은 /tmp 디렉토리에
level5.tmp 라는 이름의 임시파일을 생성한다.

이를 이용하여 level6의 권한을 얻어라.



level5프로그램을 실행시킬 시 임시파일이 생성된다는군요. 그래서 실행시켜 보았습니다.

 

자 이제 tmp파일의 목록을 봅시다.

 /tmp로 이동하여 파일들을 확인했는데 level5.tmp는 없었습니다. 임시파일이 생성됐는데 없다.. 즉 이말은 생성 후 바로 삭제되었다고 볼 수 있습니다.

그리고 여기서 가설이 하나 생깁니다. 만약 이 임시파일의 생성과 삭제가 레벨6의 권한으로 이루어진다면 레벨5의 권한으로 생성된 파일은 삭제에 영향을 끼치지 않을까 라는  가설이 생깁니다. 확인을 위해 임시파일을 만들어 보겠습니다.

[level5@ftz level5]$ cd /tmp를 입력하여 tmp로 경로이동합니다.

[level5@ftz level5]$ cat > level5.tmp를 입력하여 파일을 생성합니다. 내용은 어떠한 걸 넣어도 상관없습니다.

.다 만들었다면 다시 프로그램을 실행시킵니다.

[level5@ftz level5]$ /usr/bin/level5

파일을 확인합시다.

[level5@ftz level5]$ cat level5.tmp 

next password : what the hell

패스워드를 얻었습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


'HackerSchool' 카테고리의 다른 글

HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
hacker school - ftz level4  (0) 2015.07.15
hackerSchool - level 1  (0) 2015.07.15
Posted by englishmath
,



ssh://ftz.hackerschool.org
id : level4
pw : suck my brain


서버에 접속하여 디렉토리에 있는 파일들을 리스트 형식으로 확인합시다. 이름이 hint인 파일이 있군요. cat을 사용하여 명령어를 입력합니다.

[level4@ftz level4]$ ls -l
합계 12
-rw-r--r--    1 root     root           50  2월 24  2002 hint
drwxr-xr-x    2 root     level4       4096  2월 24  2002 public_html
drwxrwxr-x    2 root     level4       4096  7월 12 02:40 tmp
[level4@ftz level4]$ cat hint


누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!

 


/etc/xinetd.d/ 에 백도어를 심어놓았다. 라고 하는군요.

여기서 백도어란 허가받지 않은 사용자가 네트워크에 들어갈 수 있을 만큼 허술한 부분을 일컫는 말입니다. 확인을 위해 /etc/xinetd.d/경로로 이동해 봅시다. 이동후 디렉토리에 있는 파일들을 확인합시다. 명령어는 cd를 이용합니다.

[level4@ftz level4]$ cd /etc/xinetd.d/
[level4@ftz xinetd.d]$ ls
backdoor     cups-lpd     echo      ntalk   rsh      services  telnet
chargen      daytime      echo-udp  rexec   rsync    sgi_fam   time
chargen-udp  daytime-udp  finger    rlogin  servers  talk      time-udp

이름이 backdoor인 파일이 보입니다. 딱봐도 수상하니까 확인 해봅시다.
backdoor라는 파일의 내용을 살펴본다. 명령어는 cat을 사용합니다.

[level4@ftz xinetd.d]$ cat backdoor 
service finger 
{
 disable = no
 flags  = REUSE
 socket_type = stream        
 wait  = no
 user  = level5
 server  = /home/level4/tmp/backdoor
 log_on_failure += USERID
}
[level4@ftz xinetd.d]$ cat /etc/services | grep finger
finger  79/tcp
finger  79/udp
cfinger  2003/tcp   # GNU Finger

service는 서비스 이름을 명시하며 여기  backdoor 파일에서는 finger 서비스를 명시했네요.

disable은
데몬이 슈퍼데몬의 영향을 받아 실행할때는 no 
데몬을 쓰지 않을때는 yes 를 할것입니다.

참고로 데몬이란 일종의 윈도우 서비스를 말하며 평소에는 비활성화되어 있고 사용자가 요청할때만 동작하는 프로세스입니다.

슈퍼데몬은 이러한 데몬을 관리하는 데몬이며 보통 inted 또는 xinted를 칭합니다.

socket type 
TCP일 경우에는 stream, UDP일 경우에는 dgram이라 명시합니다.

wait 
inted가 서비스 요청을 받은 경우, 이후에 즉시 또다른 요청을 처리할 것인지 아닌지 여부를 결정합니다. stream일 경우에는 반드시 no wait이어야 합니다.

user
어떤 사용자의 권한으로 프로그램을 수행시켜줄 것인지 명시합니다. 여기서는 level5의 권한으로 프로그램을 수행시킵니다.

server 
어떤 응용 프로그램을 수행시킬 것인지 명시합니다. 절대 경로를 모두 명시해야합니다.

log_on_failure += USERID

만약 로그인에 실패할시 USERID가 로그로 남는다는 뜻입니다.

즉 요약하면 level5의 권한으로 finger서비스가 백도어를 실행한답니다. 그리고 이 프로그램이 실행되는 경로는 /home/level4/tmp/backdoor 입니다. 확인을 위해 tmp경로로 가시면 파일이 없습니다. 그래서 직접 만들어 봅시다.

그리고 프로그램이 위치한 곳은 /home/level4/tmp/backdoor에서 보면 tmp 이기 때문에  backdoor라는 프로그램을 작성하여 level5 user의 권한으로 원하는 명령을 수행할 수 있습니다.
~/tmp에 my-pass를 실행하는 backdoor라는 이름의 프로그램을 작성합니다. 그 후 컴파일합니다.

[level4@ftz tmp]$ cd ~/tmp
[level4@ftz tmp]$ cat > backdoor.c
#include <stdio.h>

int main()
{
  system("my-pass");
}
[level4@ftz tmp]$ gcc -o backdoor backdoor.c


finger를 실행합시다.

[level4@ftz tmp]$ finger @localhost
^[[H^[[J

Level5 Password is "what is your name?".


 패스워드를 얻었습니다.


'HackerSchool' 카테고리의 다른 글

HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
hackerSchool - level 1  (0) 2015.07.15
Posted by englishmath
,
안녕하세요. 오늘은 hackschool의 level 1을 풀어보겠습니다.
서버로 접속하여 level 1로 갑시다. level 1의 패스워드는 ftz트레이닝 10단계를 완료하시면 얻을 수 있습니다.
파일목록을 확인합시다. hint파일이 있군요. hint파일을 확인해보겠습니다.

setuid가 걸린 파일을 찾으라는군요.setuid란 파일 실행시 다른 권한으로 파일을 실행시켜준다는 것을 의미합니다. 그러면 파일을 찾기 위해 명령어를 입력해 보겠습니다.

find / -user level2 -perm -4000 2>/dev/null 를 입력해줍시다.

find : 파일을 찾을때 쓰는 명령어입니다.

-user level2 : level2 권한인 것을 의미합니다.

-perm -4000 : perm은 퍼미션으로 찾아라는 뜻입니다. 퍼미션이란 해당 파일이나 폴더의 권한을 의미합니다. 4000이란 것은 앞의 4는setuid이고 뒤의 000은 rwx입니다. rwx는 읽고 쓰고 실행이 가능한 파일을 의미합니다. 즉 setuid가 걸린 파일이나 폴더를 의미합니다.

2>/dev/null : 앞의 숫자2는 접근거부(에러메세지)를 의미합니다. /dey/null은 보여주지 않겠다 라는 소리입니다. 즉 접근거부된 파일은 보여주지 말라 라는 뜻이지요.

명령어를 적어주시면 다음과 같이 하나의 파일이 나옵니다. ExecuteMe 나를 실행시키라는 뜻을 가진 파일이네요. 실행을 위해 cd /bin을 입력하여 bin으로 이동한 후 ExecuteMe를 실행시켰습니다.

setuid를 갖고있는 파일이 맞는 모양이군요. level2의 권한으로 명령어를 하나 실행시켜준답니다. 다만 my-pass와 chmod는 제외라는군요.

my-pass는 현재 권한의 패스워드를 알려달라는 명령어입니다. 해커스쿨에서의 전용 명령어이지요. 그리고 chmod는 파일 및 디렉토리의 권한을 변경하는 명령어입니다. 암튼 이두개의 명령어는 제외라는군요. 그리고 레벨2의 권한으로 명령어를 하나만 실행시켜준다는군요. my-pass가 막힌 이상 하나의 명령어로 패스워드를 알아내기는 매우 힘듭니다. 그렇기 때문에 여기서 단 하나의 명령어로 권한을 지속하여 유지시켜야 합니다. 그 방법은 쉘을 부르는 것입니다. 쉘은 우리가 여기 level1로 들어올때 사용한 그 쉘을 의미합니다. 그러면 쉘을 불러봅시다. 명령어는 bash 쓰셔도 되고 sh쓰셔도 됩니다.
level2가 유지가 됐으며 제약도 풀렸습니다. 패스워드를 알아냅시다.

이것으로 문제풀이를 마치겠습니다.


ㅇ[출처] [해커스쿨] ftz level1 풀이|작성자 도마 우마루파일 및 디렉토리의 권한을 변경하는 명령어입니다. 암튼 이 두개의 명령어는 제외라는군요. 흠. 뭘 입력해야 할까요? 




'HackerSchool' 카테고리의 다른 글

HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
hacker school - ftz level4  (0) 2015.07.15
Posted by englishmath
,