일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- cron
- 소프트웨어공학 디자인패턴
- 모듈구조도
- ui 디자인 기본원칙
- UseCase
- bandit21
- 구조적 설계
- nc reverse shell
- strucuture charat
- gof design pattern
- madia designer ui design
- usecase description
- fan-in fan-out
- base64
- 리버스쉘
- 매크로를 바라보는 시각
- 객체 상속 속성 인스턴스 메소드 오퍼레이션
- telnet
- ssh
- factory metohd pattern
- sofrware architeture
- status diagram
- 팬인과 팬아웃
- prototypepattern 예시 example
- 상태다이어그램
- 암표거래
- 생성패턴 행위패턴 구조패턴
- 클래스 관계
- Bandit
- 디자인패턴
- Today
- Total
2.log
[bandit] level 10 ~ 14 본문
✅ Level 10 : The password for the next level is stored in the file data.txt, which contains base64 encoded data
🖊︎ base64로 인코딩된 데이터 디코딩하기
base64로 인코딩 된 데이터를 다시 디코딩 해주면 될 듯 함
base64 디코딩 방법은 $ base64 -d [파일명]
bandit+) 인코딩과 디코딩 / base64 에 대하여 / https://kimkmg.tistory.com/32
✅ Level 11 : 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
🖊︎ 문자열 전치와 tr명령 활용
파일을 확인하니 암호같이 생긴것이 있긴 한데 어딘가 모르게 이상함
알고보니 이는 ROT13 이라는 단순 치환 암호화 기법이 적용되어 있는 것이었고 리눅스에서는 이를 tr(transliterate) 명령으로 간단히 복호화 할 수 있었음
bandit+) ROT13 과 tr 명령어 / https://kimkmg.tistory.com/33
✅ Level 12 : 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
🖊︎ 파일압축 다루기 (gz, bz2, tar)
파일을 확인하니 왼쪽에는 16진수로 표현된 헥스 값이, 우측에는 ASCII 값이 있음
우선 반복압축된 hexdump 파일을 다시 binary 파일로 복원하기위해 /tmp 밑에 복원된 파일을 저장할 임시 디렉토리를 하나 만들고 xxd -r 명령과 리다이렉션을 활용해 파일을 복원시켜봄
파일 내용을 보니 ASCII 값 이외의 알 수 없는 값들이 표시된 것으로 보아 본래 binary 파일로 복원은 잘 된 것 같은데 여기서 부터 막힘
compressed 에 뭔가 단서가 있을 것 같아 이것저것 검색해 보다가 find 명령어로 해당 파일 타입을 확인해 보니 .bin(binary file 확장자) 이었던 파일이 gzip으로 압축되었다는 것을 알게되었고, 이에 따라 gz 압축 해제 명령인 gunzip으로 파일 압축을 해제를 시도함 (참고로 압축 해제 전 mv 명령으로 파일이름 .gz으로 변경해주어야 함)
확장자가 사라진 것으로 보아 압축해제가 잘 되었다고 생각했는데 파일내용을 확인해보니 아까랑 별 다를게 없어 보임
다시 file 명령으로 파일 타입을 확인해 보니 이번엔 bz2 으로 압축된 데이터라고 함
여러번 압축되었다는게 이런 의미였나 봄
이전처럼 압축해제 전 확장자를 변경해주고 bz2 압축 해제 명령어이 bunzip2 으로 압축 해제를 시도함
하지만 여전히 제대로 된 암호가 나오지 않음
다만 data4.bin 이라는 문자가 눈에 띄어 타입을 확인해 보니 제일 처음 data2.bin 파일처럼 gz으로 압축된 파일임을 알 수 있었음
계속 이런 방식으로 여러번 압축이 되어 있는 것 같아 더 이상 압축 되어있지 않은 파일이 나올때 까지 상기의 과정을 반복함
tar은 압축이라기 보다 묶음 형태라기에 저걸 풀어도 그 안에 압축된 파일이 몇 개 더 있을 것으로 예상 됨
일단은 tar 압축해제 옵션을 주어 풀어봄
tar, gz, bz2로 여러번 압축된 파일이 번갈아가며 나왔고 같은 방식으로 암호가 나올때까지 압축 풀어줌
암호는 최종적으로 data8.bin 파일안에 숨겨져 있었음
bandit+)
hexdump 와 xxd 명령어 / https://kimkmg.tistory.com/34
linux 파일 압축에 대하여 [tar, gz, bz2] / https://kimkmg.tistory.com/35
✅ Level 13 : 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 youget 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
🖊︎ private key를 이용한 ssh 원격 접속
SSH 로 다른 서버에 접속해야 하는데 private 키로 접속하라는 것을 보니 비대칭키(공개키) 방식의 암호화가 적용되어 있는듯 하여 내용을 봤고, RSA(공개키방식) 로 암호화 되어 있었음
SSH 에 본격적으로 접속하기 전 인증 할 private 키 경로를 수동으로 지정해주기 위해 pwd 로 현재 작업중인 디렉토리 확인
$ ssh –i (파일경로) (서버 아이디)@(ip주소) [포트지정]
SSH 접속시 파일경로 수동 지정 옵션은 -i
- 파일경로 : /home/bandit13/sshk.private
- 서버 id : bandit14
- ip 주소 : bandit.labs.overthewire.org -p 2220
bandit14 서버 접속에 성공 했고, 암호가 있다는 /etc/bandit_pass/bandti14 파일에서 cat 명령으로 암호 획득함
bandit+)
SSH 에대하여 / https://kimkmg.tistory.com/22
공개키 암호와 RSA에 대하여 / https://kimkmg.tistory.com/36
✅ Level 14 : The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost
🖊︎ telnet 을 이용한 원격 접속
nmap으로 포트스캐닝을 해 보니 30000번 포트가 열려있었고, 데이터가 ndmps 프로토콜로 해당 포트에 전송되었음을 알 수 있었음
현재 포트(ssh 접속 했으므로 22)에서 다른 포트(30000)로 접속하려면 ssh or telnet 명령을 이용할 수 있는데, 로컬(IP:127.0.0.1)내에 있고 ssh 접속 할 필요가 없는 것 같아 telent 으로 접속 시도
#텔넷 접속 명령어
$ telnet [host-ip] [port번호]
연결 후 문제에서 알려준대로 bandit14 접속 할 때 사용한 비밀번호를 입력하니 암호 나타남
(참고로 IP는 HOST 식별자이고 HOST는 네트워크에 연결된 컴퓨터이며, PORT 번호는 프로세스 식별자임)
bandit+)
telnet 과 ssh / https://kimkmg.tistory.com/37
NAS 와 NDMPS / https://kimkmg.tistory.com/38
'HACKING > Bandit' 카테고리의 다른 글
[bandit] level 21 ~ 22 (1) | 2023.04.22 |
---|---|
[bandit] level 20 (0) | 2023.04.16 |
[bandit] level 15 - 19 (1) | 2023.04.09 |
[bandit] level 00 - 09 (0) | 2023.03.21 |