728x90

https://overthewire.org/wargames/bandit/bandit0.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. Level Goal The goal of this level is for you to log into the game using SSH. The host to which you need to connect is bandit.labs.overthewire.org, on port 2220. The username is bandit0 and the password

overthewire.org

Level Goal

The goal of this level is for you to log into the game using SSH.
The host to which you need to connect is 
bandit.labs.overthewire.org, on port 2220.
The username is 
bandit0 and the password is bandit0.
Once logged in, go to the 
Level 1 page to find out how to beat Level 1.

Commands you may need to solve this level

ssh

Helpful Reading Material

 


/ 접속
0단계는 먼저 ssh를 접속하는 것부터 시작이다.
나의 경우 Xshell을 이용해서 접속했다.

1. 먼저 접속정보를 확인한다.

2. Xshell을 키고 등록정보를 추가한다.
- 맨 좌측의 연결 클릭
- 이름 : 아무거나 (나의 경우 bandit으로 설정)
- 호스트 : bandit.labs.overthewire.org
- 포트 번호 : 2220
- 확인 또는 연결 버튼을 클릭하여 접속한다.

 

3. 접속하기
- 접속할 사용자 이름을 입력한다.
- 매 단계의 사용자 이름은 'bandit단계숫자'로 정해져 있다.
- 지금은 0단계 이므로 사용자 이름이 'bandit0'이 된다.

- 0단계의 비밀번호는 문제 지문에 나와있다.


- 비밀번호를 입력한다.

4. 0단계 클리어!
- 요로코롬 나오면 0단계에 접속하여 클리어한것이다.

 

/ 이제 'Level 0 -> Level 1'로 가보자!

https://overthewire.org/wargames/bandit/bandit1.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. Level Goal The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, us

overthewire.org

 

 

728x90

'정보보안 > 워게임|CTF' 카테고리의 다른 글

bandit12 -> bandit13  (1) 2022.04.13
bandit  (0) 2022.04.13
728x90

 

좀 헤맸다..
영어공부 좀 잘 해놓을껄..하는 후회와 로그를 잘 읽자..하고 다시 되내이는 마음가짐

 


 

문제지문

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!)

이 지문을 구글번역으로 돌리면 이렇다.

다음 레벨의 비밀번호는 반복적으로 압축된 파일의 16진 덤프인 data.txt 파일에 저장됩니다. 이 수준의 경우 mkdir을 사용하여 작업할 수 있는 /tmp 아래에 디렉터리를 만드는 것이 유용할 수 있습니다. 예: mkdir /tmp/myname123. 그런 다음 cp를 사용하여 데이터 파일을 복사하고 mv를 사용하여 이름을 바꿉니다(맨페이지 읽기!)

여기서 키워드는 '반복적으로 압축된'과 '16진 덤프'이다.

 


/ 삽질

bandit12로 로그인하고 들어가서 ls를 하면 data.txt파일이 보인다.
cat명령어로 출력을 해보니 복잡한 형식으로 뭔가가 막 다다다다 나온다.

호오..

검색해보니 이것이 바로 hex dump라고 한다.
뭐 어찌되었든 이것을 다시 text형태로 변환하면 되지 않나!하고 생각해서 명령어를 때려넣어 보았다.

오잉.. 안된다. 뭐지 이거..
'xxd -r 파일명' 이거랬는데..

문제지문에서 /tmp쪽에 폴더를 만들어서 진행해보랬는데 거기서 안해서 그런가 싶어서
/tmp/bandit12으로 폴더만들고 data.txt파일을 복사해서 똑같이 해봤는데도 안된당..
이래저래 삽질하다가 나때문에 bandit서버가 혹시 망가지면 어떡하지..하는 그런 걱정에 결국 공략을 검색하고야 말았다.

 

문제를 푸는 제일 큰 힌트는
xxd를 이용해서 바이너리 파일로 변환 후 file명령어를 이용해서 파일형식을 확인하는 것이다.

 


 

이 문제를 풀기위해 알아야 하는 것

/ Hex dump
# 데이터를 16진법으로 출력하는 방법
# xxd 명령어를 이용해서 hex dump형식으로 변환하거나 다시 바이너리 방식으로 변환할 수 있다. 

/ xxd 사용법
# xxd example.txt : hex dump로 출력
# xxd -r example.txt > example2 : hex dump로 출력되는 example.txt파일을 example2파일로 변환함

/ 바이너리 파일
# .jpg, .png, .mp3, .exe 등이 바이너리 파일
# 사용자 또는 프로그램이 사용하던 정보나 숫자 값을 특별한 가공없이 그대로 파일에 저장한것
# 바이너리 파일의 내용을 확인하려면 해당 파일을 볼 수 있는 프로그램이 별도로 있어야 한다.

/ gzip
# 리눅스 파일 압축(확장자명 : .gz)
# 순수하게 압축만을 위한 명령어
# 용량 압축
# gzip 파일명 : 압축하기
# gzip -d 파일명.gz : 압축풀기

/ bzip2
# 리눅스 파일 압축(확장자명 : .bz2)
# gzip에 비해 압축효율이 더 좋지만 압축시간이 조금 더 걸린다.
# bzip2 파일명 : 압축하기
# bzip2 -d 파일명.bz2 : 압축풀기
# bunzip2 파일명.bz2 : 압축풀기

/ tar
# 리눅스 환경에서 자주 사용하는 방식
# 용량을 압축하지는 않으므로 빠르게 압축이 진행되고 CPU 사용률이 높지 않음
# 압축이라기 보다는 파일을 하나로 합치는 방식
# 여러 파일을 하나로 묶고, 그 파일을 압축하게 되면 '파일명.tar.gz'가 된다.
# tar -cvf aaa.tar bbb : bbb폴더를 aaa.tar파일로 압축
# tar -xvf aaa.tar : aaa.tar파일을 압축해제
# tar -zcvf aaa.tar.gz bbb : bbb폴더를 tar로 합치고 gzip으로 한번더 용량압축한다.
# tar -zxvf aaa.tar.gz : aaa.tar.gz파일을 압축해제

 

728x90

'정보보안 > 워게임|CTF' 카테고리의 다른 글

[bandit] Level 0  (0) 2022.05.11
bandit  (0) 2022.04.13
728x90

bandit이라는 워게임을 하고 있다.

bandit은 리눅스 기초에 대해 공부할 수 있는 ssh방식의 워게임이다.

링크 : https://overthewire.org/wargames/bandit/bandit0.html

xshell이나 PuTTY같은 프로그램을 이용해서 호스트에 접속을 하고
이때, 현재 자신이 풀어야 하는 단계가 접속할때 로그인 user명이 된다.
(예를 들면 내가 현재 12단계에 있으면 유저명은 'bandit12'이다.)

각 계정의 패스워드는 서버에 접속하게 되면 여기저기 파일에 숨겨져 있다.
이 패드워드를 찾는 과정에서 리눅스 공부를 하게된다.

현재 12단계까지 온 상태이고 각 단계별로 포스트를 작성하기엔 조금 귀찮아서
지금까지 오면서 메모했던것들을 복습차원에서 여기에 또 메모한다.

 


/ 'file' 명령어 : 파일의 유형을 확인하는데 쓴다.
# file ./*

/ 파일사이즈로 파일을 찾아볼 있다. (명령어 옵션 -size)
# find ./* -size 1033c

/ 파일 크기 기준으로 검색할때
# find ./* -size +1033c  : 1033바이트 이상 크기의 파일을 검색한다.
# find ./* -size -20m  : 20메가 이하 크기의 파일을 검색한다.
# find ./* -size 1g  : 1기가 크기의 파일을 검색한다.

/ 특정 사용자의 파일을 찾을때
# find 위치 -user 소유자명 -print(경로를 표시해줌)

/ 특정 그룹이 소유하고 있는 파일 찾기
# find 위치 -group 그룹명 -print

/ 텍스트 파일에 중복된 라인이 있을경우
#중복을 제거하는 키워드 uniq
#정렬 키워드 sort
#중복행의 개수 옵션 -c
# cat data.txt | sort | uniq -c

/ Base64 인코딩
# echo '문자열' | base64

/ Base64 디코딩
# echo '문자열' | base64 --decode

/ Rot13 인코딩 디코딩
#카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다.
# echo "문자열" | tr 'A-Za-z' 'N-ZA-Mn-za-m'

 

728x90

'정보보안 > 워게임|CTF' 카테고리의 다른 글

[bandit] Level 0  (0) 2022.05.11
bandit12 -> bandit13  (1) 2022.04.13

+ Recent posts