'Etc/Bandit of Wargames'에 해당하는 글 20건

Bandit Level 18 → Level 19

Level Goal

The password for the next level is stored in a file readme in the homedirectory. Unfortunately, someone has modified .bashrc to log you out when you log in with SSH.

Commands you may need to solve this level

ssh, ls, cat



다음 레벨로 가는 비밀번호가 홈디렉토리안에 readme에 있다고한다.

근대. .bashrc 쉘이 약간 변경되었다고한다.

그래서 ssh로 접속하면 로그인이 안된다고한다.


흠..;.;


이게 문젠거같다.

갈수록 난이도가 너무높아지는대..ㅜ


현재 18레벨의 비밀번호를 안다.


단지 18레벨로 ssh접근이 안될뿐이다.


그럼일단 레벨17에서 작업을해보자.




현재 레벨18비번은 알고 레벨18의 readme안에 다음레벨로 가는 비번이있다니까.

ssh접근하면서 cat명령어를 이용해서 readme파일의 내용을 보자.






레벨18의 패스워드를 물어보는창이뜨는데

우리가 알고있는 레벨18의 비번을 넣어주고,

엔터누르면 

cat readme로 인해  readme 파일의 값이 출력된것을 확인 할 수있다.


이값이 레벨 19로 넘어가기위한 비밀번호이다.


와.. 난이도가 너무어렵다;ㅋ


'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 17 -> Level 18  (0) 2014.10.25
Level 16 -> Level 17  (0) 2014.10.24
Level 15 -> Level 16  (0) 2014.10.24
Level 14 -> Level 15  (0) 2014.10.24
Level 13 -> Level 14  (0) 2014.10.24
,

Bandit Level 17 → Level 18

Level Goal

There are 2 files in the homedirectory: passwords.old and passwords.new. The password for the next level is in passwords.new and is the only line that has been changed between passwords.old and passwords.new

Commands you may need to solve this level

cat, grep, ls



이번문제는 전문제에 비해서 좀 간단한거같다..ㅜ


password.old와 password.new 파일이 있는데


비밀번호는 new에 있다는대 

이둘 파일의 다른 라인이 한줄있다고한다.


그줄이 비밀번호라내요..ㅋ



두 파일의 다른 내용을 찾기 위해


diff명령어를 이용해서 찾아본다.





diff [대상파일] [대상파일] 


비밀번호는 new파일의 다른 라인에 있다고했으니까


비밀번호를 확인하였다.


이 비밀번호를 가지고 담으로 넘어가보자.ㅎㅎ





이렇게 비밀번호를 입력하니 접속이 안된다...

비밀번호는 확실히 맞는데 접속이안되내..;


일단 이 비밀번호를 저장하고 다음 레벨의 문제를 한번 살펴보자..

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 18 -> Level 19  (0) 2014.10.25
Level 16 -> Level 17  (0) 2014.10.24
Level 15 -> Level 16  (0) 2014.10.24
Level 14 -> Level 15  (0) 2014.10.24
Level 13 -> Level 14  (0) 2014.10.24
,

Bandit Level 16 → Level 17

Level Goal

The password for the next level can be retrieved by submitting the password of the current level to a port on localhost in the range 31000 to 32000. First find out which of these ports have a server listening on them. Then find out which of those speak SSL and which don’t. There is only 1 server that will give the next password, the others will simply send back to you whatever you send to it.

Commands you may need to solve this level

ssh, telnet, nc, openssl, s_client, nmap

Helpful Reading Material


localhost의 31000~32000 포트사이의 값에 현재 레벨의 패스워드를 넣으면, 그다음 패스워드를 찾을수 있다고한다.

먼저 해야될게, 31000~32000 사이의 포트사이에 오픈된 포트를 먼저찾고,  그 오픈된 포트로부터 ssl 값을 넣어본다

오로지 한 포트만이 정상적인 값을 가지고 있다고한다.

시작해보자.ㅎㅎ

일단 첫번째로 31000~32000사이에 오픈된 포트가 있는지 살펴봐야한다.

nmap을 사용해보겠다.


-p 옵션은 포트번호를 지정할때 사용한다.

-p 80 이렇게 주면 80번포트만 열린지 안열린지 스캔하고

-p 1000-2000 이런식으로주면 1000~2000사이의 값만 스캔한다.


현재 저렇게 5개의 포트가 open된것을 확인할 수 있다.

각각의 열린포트로 openssl을 사용하여 값을 넣어보자.



첫번째 31046포트는 저렇게 에러가 뜨는것을 확인 할 수있다.

다른포트들도 해보면 이상한 값이 나오는것을 확인 가능하다.





31790포트에서는 

저렇게 패스워드값을 넣어주면




이렇게 rsa 개인키가 쭉 나온것을 확인 할 수있다.


이로서 키를 얻은셈이다.ㅎ


일단 이 키를 파일에다 담아보자..






홈 디렉토리에서는 파일을 만들면 퍼미션 에러가 뜨기때문에

/tmp밑에 임의의 디렉토리를 만들어서 사용했다.


위에 보시다시피 sshkey.private 에 아까전에 얻은 키값을 저장하였다.


그런다음!




다음레벨로 넘어가기위해 ssh를 사용하여 접근하였다.

-i로  키가담긴 파일명을 지정해줫다.

그러고 yes입력하고 쭉 뭐가나오더니....





이렇게 17단계로 넘어간 것을 확인가능하다.


그러고 17단계의 개인키값만 알지 비밀번호를 모르는 상황이다.

비밀번호는 /etc/bandit_pass에 서 패스워드를 확인할 수 있다.





요렇게 17단계를 비밀번호를 알아냈다.ㅎㅎㅎ


필자는 첨에 이문제 푼다고 꽤나 고생햇다.ㅜㅜㅜ

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 18 -> Level 19  (0) 2014.10.25
Level 17 -> Level 18  (0) 2014.10.25
Level 15 -> Level 16  (0) 2014.10.24
Level 14 -> Level 15  (0) 2014.10.24
Level 13 -> Level 14  (0) 2014.10.24
,

Bandit Level 15 → Level 16

Level Goal

The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhost using SSL encryption.

Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -quiet and read the “CONNECTED COMMANDS” section in the manpage. Next to ‘R’ and ‘Q’, the ‘B’ command also works in this version of that command…

Commands you may need to solve this level

ssh, telnet, nc, openssl, s_client, nmap

Helpful Reading Material


ssl의 암호화를 사용하여 현재 레벨의 30001번 포트로 패스워드값을 보내면


다음 레벨의 패스워드를 얻을수 있다내...


밑에 도움말로 만약 "HEARTBEATING" and "Read R BLOCK" 라고 뜬다면,

-quiet명령어를 사용해라고하내요..


일단 해봅시다.





ssl은 서로 상호간에 데이터를 보낼때 암호화시켜서 보내는 매커니즘이다.


여기선 openssl을 써보도록 하겟다.


openssl 입력해서 

openssl > 로 들어갑니다.



거기서 

s_client -connet localhost:30001 를 입력합니다.


s_client는 클라이언트쪽에서 암호화 한다는 의미이고

connect은 연결한다는 뜻이고.


이 문제에서 localhost의 30001번 포트에 암호화된 값을 보내라고 했으니까

저런식으로 입력했다.


저기서 쭉 내려가다보면~~~





---

여기서 커서가 깜박거리면서 현재 레벨15의 암호를 요구한다


암호를 치면

원래 정상적으로 값이 나와야하는대

지금..

HEARTBEATING

read r BLOCK

등등,.. 이상한 글이 나온다.;


이문제점은 위에 문제에서 보면  -quiet명령를 이용해서 해결할수 있다햇다.




아까랑 동일한 명령어에 뒤에 -quiet 옵션만 추가했다.


그러니 아까랑 동일하게 커서가 깜박거리는데 거기다

현재 레벨의 패스워드를 입력해서 확인누르면


Correct!라는 문구가뜨면서 밑에

다음레벨의 패스워드가 확인되는 것을 알 수있다.ㅎㅎㅎㅎ

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 17 -> Level 18  (0) 2014.10.25
Level 16 -> Level 17  (0) 2014.10.24
Level 14 -> Level 15  (0) 2014.10.24
Level 13 -> Level 14  (0) 2014.10.24
Level 12 -> Level 13  (0) 2014.10.21
,

Bandit Level 14 → Level 15

Level Goal

The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost.

Commands you may need to solve this level

ssh, telnet, nc, openssl, s_client, nmap

Helpful Reading Material



이번에는 다음 단계로 가기위해서 지금 현재 레벨 14의 포트 30000에


현재 비밀번호값을 넘겨주면 패스워드가 나온단다...


흠.그러면 이게


처음에 13에서 14로 올라갈때 ssh개인키를 이용해서 올라왔다.


현재 14레벨의 비밀번호를 모르고있는 상황.


13단계에서 각각의 레벨의 비밀번호는 


/etc/bandit_pass에 있다고 했다.




bandit14의 파일이 있다.


오로지 bandit14만이 읽을수 있는 파일이다.


확인해보자.





이렇게 bandit14에 비밀번호가 나오는 것이 확인가능하다.


그럼 이 비번을가지고


나의 localhost에 포트 30000번에 접근해서 이 비밀번호를 사용하면 패스워드를 얻을 수 있다.




telnet [대상] [포트번호]


여기서 포트번호를 안넣어주면 telnet default 값으로 23번값이 들어간다.

30000번으로 가라고했으니 30000을 입력했다.


그러고는 아까 얻은 레벨14의 비밀번호를 여기다 넣어주고 엔터누르면


저렇게 다음단계 즉, 15레벨의 비밀번호를 얻을수 있게된다 ㅎㅎㅎㅎ.


'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 16 -> Level 17  (0) 2014.10.24
Level 15 -> Level 16  (0) 2014.10.24
Level 13 -> Level 14  (0) 2014.10.24
Level 12 -> Level 13  (0) 2014.10.21
Level 11 -> Level 12  (0) 2014.10.21
,

Bandit Level 13 → Level 14

Level Goal

The password for the next level is stored in /etc/bandit_pass/bandit14 and can only be read by user bandit14. For this level, you don’t get the next password, but you get a private SSH key that can be used to log into the next level. \ Note: localhost is a hostname that refers to the machine you are working on

Commands you may need to solve this level

ssh, telnet, nc, openssl, s_client, nmap

Helpful Reading Material



다음 단계로 넘어가기 위해 비밀번호가 /etc/bandkt_pass/bandit14에 위치해 있는데, 이 파일은 bandit14만 오로지 열수있다고하내요,,

그래서 다음단계로 넘어가기 위해선 우리가 가지고있는 ssh 개인키를 이용해서 다음단계로 갈수있다고하내요,

localhost가  호스트네임 이라고하내요. 

흠...


한마디로 내가 가지고 있는 ssh개인키를 이용해서 다음단계로 넘어가라,
넘어갈때 호스트네임은 localhost이다  라는거내요..


그럼 시작해보죠 ㅋ




현재 sshkey.private라는 파일이 존재하는 것을 볼수있다.


궁금해서 열어보니 RSA 개인키라고 뭐 뜨내요...;ㅋ



할튼 이 키를 이용해 다음단계로 넘어가야되는대


원격접속을 위해선 telnet ssh 등등 다양한 방법이있는데.


이번에는 ssh를 이용해서 다음단계로 넘어가보겠다.





ssh 기본 사용법은


ssh [접속 아이디] 를 입력하면 접속이 가능하다.





ssh bandit14@localhost 


여기서 bandit14는 다음단계로 넘어가기위한 아이디 이고

뒤에 @localhost는 

처음에 문제에서 호스트 네임이 localhost랫으니까 뒤에 localhost를 붙여줬다.


그러고나니 정말로 연결하기를 원하냐는 문구가 뜨고

yes를 눌려 다음으로 넘어가니


밑에서 bandit14@localhost의 패스워드값을 넣어란다.


근대 우리는 bandit14의 패스워드는 모르고 ssh 개인키 값만 알고있다.


이 키를 이용해 bandit14로 접속해보겠다.





-i 옵션은 키를 이용해서 접급하는 방식이다.


-i 뒤에 자신이 가지고있는 키를 이용해서 접근한다.


이렇게 하고나니...





bandit14 아이디로 로그인 된것을 확인할 수 있다.ㅎㅎㅎ

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 15 -> Level 16  (0) 2014.10.24
Level 14 -> Level 15  (0) 2014.10.24
Level 12 -> Level 13  (0) 2014.10.21
Level 11 -> Level 12  (0) 2014.10.21
Level 10 -> Level 11  (0) 2014.10.21
,

Bandit Level 12 → Level 13

Level Goal

The password for the next level is stored in the file data.txt, which is a hexdump of a file that has been repeatedly compressed. For this level it may be useful to create a directory under /tmp in which you can work using mkdir. For example: mkdir /tmp/myname123. Then copy the datafile using cp, and rename it using mv (read the manpages!)

Commands you may need to solve this level

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd, mkdir, cp, mv

Helpful Reading Material



마찬가지로  패스워드 파일은 data.txt안에 존재하는데,


이게 16진수로 엄청 많이 압축했다고한다..


그래서 일단 /tmp/아무이름으로   디렉토리를 만들고 data.txt파일을 그쪽으로 복사시켜서

작업해라고한다.


흠.. 그럼 일단 시작해보자.






data.txt파일을 열어보니 


뭐 이러한 16진수 파일이 튀어나온다.


일단 문제에서 언급했던대로


/tmp밑에 자기만의 디렉토리를 하나만들자.


필자는 /tmp/tkdguq 이라는 디렉토리를 하나 만드렀다.





cp 명령어는 해당 파일을 복사할떄 사용한다.

cp [복사할파일] [새로복사될 파일]


data.txt라고 이름을 붙였다.



그럼 아까 이 data.txt가 16진수 파일이니까

이진파일로 변환해야한다.



xxd라는 명령어를 사용해서 

16진수를 -> 이진파일로

이진파일을 -> 16진수로 변환하는 것이 가능하다.



xxd -r 옵션을 사용해서 

16진수를 -> 이진파일로 변경해 보겠다.





xxd -r [대상파일] [결과값 저장파일]


이렇게 하면


data.out 파일이 생성된것을 확인할 수 있다.

크기도 603으로 줄어든것이 확인가능하다.


밑에 cat 명령어 실행시키니 저런 문자열이 나온다.


이제 data.out파일의 포맷을 알아보자.




file 명령어는 해당파일의 포맷을 확인 할 수 있다.


data.out 파일은 현제 gzip으로 압축된 데이터이다.


그러므로 gzip으로 압축해제를 시켜야하는대


이름이 data.out이다

이름을 .gz으로 바꿔줘야한다.


그래서 mv 명령어를 사용해서


이름을 바꿔준다.


mv [현재이름] [바꿀이름]


mv명령어는 이름바꾸는거 말고, 위치를 이동시킬때도 사용된다.



하여튼, mv 옵션으로 이름을 바꾸고, 

gzip -d 옵션으로 압축을 해제한다.


-d옵션은 디코더  즉, 압축해제한다는 옵션이다.


압축을 해제하니 data라는 파일이 생성되었다.




file 명령어를 이용해서 data의 파일포맷을 확인하니

bzip2로 압축화된 데이터라는 것을 알수있다.


gzip과 마찬가지로


bzip2 -d 라는 옵션으로 압축을 해제시켜준다.


그러니 이제는 data.out이라는 파일이 생성됬다.





data.out의 파일 포맷을 보니 또 gzip으로 압축된 파일이다..


아까랑 동일하게 이름바꿔주고 gzip으로 압축해제하니


data라는 파일이나왔다....





data의 파일포맷이 이제는 tar로 압축된 것을 확인할 수 있다.


tar명령어도 동일하게


tar [옵션] [파일]   이렇게 파일을 압축/압축해제 하는 명령어이다.



-x옵션은 압축헤재하는 옵션이고.

-f옵션은 압축하거나/압축해제할때 무조건 사용해야하는 명령어이다.



tar -xf data 로 압축해제하면


data5.bin 파일이나온다..


이렇게 반복적으로 계속.....



file 명령어로 해당 포맷이 뭔지 찾고 그 포맷으로 압축풀어주고 계속계속해야한다...


한참을 하다보니까...






data8이란 파일이 나왓는데...


파일 포맷을 보니 아스키 텍스트 파일이다!!


그래서 cat 명령어로 내용을 확인하니


저렇게 패스워드가 찍힌 것을 확인할 수 있다.



압축 계속 푼다고 힘들엇다 ....ㅜㅜㅜ


저 비밀번호를 가지고 다음레벨로 넘어가자 ㅎ

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 14 -> Level 15  (0) 2014.10.24
Level 13 -> Level 14  (0) 2014.10.24
Level 11 -> Level 12  (0) 2014.10.21
Level 10 -> Level 11  (0) 2014.10.21
Level 9 -> Level 10  (0) 2014.10.21
,

Bandit Level 11 → Level 12

Level Goal

The password for the next level is stored in the file data.txt, where all lowercase (a-z) and uppercase (A-Z) letters have been rotated by 13 positions

Commands you may need to solve this level

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Helpful Reading Material


data.txt파일 안에 비번이 있긴한데..


모든 소문자 a-z까지 

모든 대문자 A-Z까지


13 positions 로 회전한다고하는데,,,


도통 이것만 들으니까 뭔소린지 모르겟다..

대충 13개의 문자로 뭐 변환된다고하는거가튼대.


잘모르겟어서 밑에 위키피디아에서 Rot13 를 찾아보았다.




요런 사진이 나온다.


13개씩 각각 다른 문자로 대치된다는 의미인거같다.


그럼 살펴보자.ㅋㅋ




이렇게 무슨 문장이 뜨긴하다..


저거를 아까전에 Rot13을 이용해서 해석해보면


the password is ....


직접 일일이 맞출려고하니까 귀찮고해서...


걍 구글에서 Rot13 decoder치니까 어떤 사이트 들어가서 디코더 해버렸다..





저런 값으로 바껴버렷다.


저 값을 가지고 다음단계로 로그인해보자.ㅎㅎ



혹시, 이문제 푸는대 

좀더 간단한 방법있으면 좀 알려주세요..ㅜㅜ


이렇게하는게 최선의 방법인지 잘모르겟내요..ㅜ

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 13 -> Level 14  (0) 2014.10.24
Level 12 -> Level 13  (0) 2014.10.21
Level 10 -> Level 11  (0) 2014.10.21
Level 9 -> Level 10  (0) 2014.10.21
Level 8 -> Level 9  (0) 2014.10.21
,

Bandit Level 10 → Level 11

Level Goal

The password for the next level is stored in the file data.txt, which contains base64 encoded data

Commands you may need to solve this level

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Helpful Reading Material




data.txt 파일 안에 base64로 인코딩되어있단다...


어떻게 생긴앤줄 한번 보자






이렇게 base64로 인코딩된 애란다.


그럼 이걸 디코딩시키면 패스워드가 나올것이다.


base64로 인코딩 디코딩 시키는 명령어가


base64 명령어이다.


-d옵션은 디코딩 시킨다는 의미다


자세한 설명은 man base64로 확인해보길바란다.





패스워드가 이렇게 자세하게 나온다.ㅋㅋㅋ

그럼 다음 단계로 ㄱㄱㄱ~

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 12 -> Level 13  (0) 2014.10.21
Level 11 -> Level 12  (0) 2014.10.21
Level 9 -> Level 10  (0) 2014.10.21
Level 8 -> Level 9  (0) 2014.10.21
Level 7 -> Level 8  (0) 2014.10.21
,

Bandit Level 9 → Level 10

Level Goal

The password for the next level is stored in the file data.txt among of few lines of human-readable strings starting with ‘=’ characters.

Commands you may need to solve this level

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd




data.txt 파일에 몇줄 사람이 읽을수 있는 라인이 잇다는대


거기서 =로 시작한다고한다..



한번 찾아보자.





이상한 문자가 이렇게 출력되었다.



여기서 사람이 읽을수있는 몇줄이 있다는데


strings 옵션을 이용해서 문자열을 찾아보자





이번에는 사람이 볼수있는 많은 문자열이 출력되었다..


이중에서 아까 =로 시작하는 애들만 찾으면되니까..


grep 명령어를 이용해서 찾아보자.







이렇게 비밀번호같이 생긴 애가 보인다.ㅋㅋ


그럼 다음단계로 넘어가보자.ㅎㅎ

'Etc > Bandit of Wargames' 카테고리의 다른 글

Level 11 -> Level 12  (0) 2014.10.21
Level 10 -> Level 11  (0) 2014.10.21
Level 8 -> Level 9  (0) 2014.10.21
Level 7 -> Level 8  (0) 2014.10.21
Level 6 -> Level 7  (0) 2014.10.20
,