-
웹해킹 7주차 - Linux해킹 2021. 1. 11. 23:11
이번에는 리눅스 환경에서 해킹을 하는것을 배운다고 한다
VM웨어를 이용하여 가상환경에서 실시한다고 하는데

두둥!

듀듕!
이미 이전 프로젝트에서 만들어둔 가상 리눅스 환경이 있으므로 이걸 이용하면 될 것 같다

오옹...centOS(일명 센토스)지만 명령어도 큰 차이는 없고(사실 좀 크다) 이걸로 하면 되겠지!

어....ah.....uh....그냥 우분투로 다시 만들자!

우선 새로 만들기 클릭에 이름은 practice Linux 종류의 ubuntu 버전

메모리는 넉넉하게 2기가루

지금 새 가상 하드 디스크 만들기 선택

VDI(사실 다른건 안해봤다)

고정크기가 더 빠르고 편리하므로 고정크기

용량은 넉넉하게 15기가 정도(우분투 데스크탑 자체가 8기가 정도 되므로 주의, 사실 서버만 깔아도 되는데..)

짜잔 만들어 졌으므로 클릭

가상 디스크를 삽입

랭귀지는 영어를 선택했고(명령어 치기가 편함) 어차피 연습용이니 다운로드 안하고 우분투 실행!

오오옹 된다

완료!!

파이어폭스를 통해 인터넷도 잘 되는것을 확인! 할머니...
이제 bandit를 이용하여 보자

우선 터미널을....응 터미널이 왜 없지????

아 데스크탑에 있었네... 리눅스 데스크탑은 함도 안써봐서링....그립다 안정을 주는 검은 창

우선 bandit를 다운하여 보자 ssh bandit0@bandit.labs.overthewire.org -p2220 입력

깔까요? 라고 물어보면 yes를 적어주고
초기 password는 'bandit0'이므로 적어주면 된다

오케 다운로드 완료 바로 bandit의 bandit0 계정으로 들어간것을 볼 수 있다

대충 해석해보자면....음...대충 워게임이라는거 같다
현재 디렉토리에 있는 파일들을 보는 명령어인 ls를 쳐보자

오홍 readme 파일이 보인다.
텍스트 파일을 보는 기능인 cat를 써보자 (수정은 vi 나 vim 에디터를 이용하면 되는걸로 기억하는뎅)

오호 저게 비번이겠지 엄청 길다

이제 로그아웃을 한 뒤에 bandit1을 접속해보자

비번은 앞전에 봤듯이 boJ9jbbUNNfktd7800psq0ltutMc3MY1 이다 아이고 길다

아 뭔데 오타인가

ㅋㅋㅋㅋ아 뭔데

뭐냐고
-------------------2021년 2월 1일---------------------
하다하다 안되서 다시 깔고 다시 하기를 반복....
왼쪽 쉬프트 키가 고장이 났다는 사실을 알게 된다...
그래서 아예 복사 붙여놓기를 하기로...
help.goorm.io/ko/goormide/18.faq/using-goormide/undefined
터미널에서 복사/붙여넣기는 어떻게 하나요?
help.goorm.io
컨트롤+인설트 / (오른쪽) 쉬프트 + 인설트 를 이용하여 접속 완료!!

휴우.....몇주만에 bandit level1 접속 흑흑흑

ls를 하니 -가 나온다..

vi - 를 하니 stdin에서 읽어오는 중이라는 문구가 뜨고 진행이 되지 않는다..종료
찾아보니 -는 특수문자라 ~/- 식으로 현재 폴더까지 상대경로 타서 접속해야 한다고 한다

완료!!!

레벨2!!!

레벨2는 spaces in this filename 이 파일 안엔 공백이 있어요!!
공백이 있으면 안되나 보다 근데 vi spa까지만 치고 tab을 이용해서 자동완성하니 저렇게 나왔다...공백 뒤에는 \를 붙여야 하나 보다.

완료!!!! 이제 레벨 3!

오...디렉토리 inhere이 있다
cd 를 이용하여 들어가보자

ls 를 치니 아무것도 안보인다 아마 .로 시작하게끔 해서 안보이게 숨겨놨나 보다
ls -a 를 이용하여 찾아보니 .hidden 파일이 보인다

success!!

4단계, inhere 들어가보니 뭔가 많다.

데이터 종류를 알려주는 file 명령어를 이용해보니 file07이 아스키 텍스트 파일이고만

완료!

5단계...음...뭔가 많다....구글링을 통해 bandit5 문제를 보았다

find의 크기를 이용하여 찾을 수 있겠구만

1031 이상으로 하니까 엄청 나온다...1033으로 하자...

이거로고만!!

석세스!!!!

6단계 찾아보니 .bash_logout 밖에 없다 vi를 이용하여 들여다보자

엥 누구세여???
음...이건 아닌걱 같은데 그럼 문제를 찾아보자

그니까 소유자는 bandit6 그룹의 bandit7 유저 소유의 33바이트 텍스트 파일에 답이 있겟군
find 를 이용해보자

어우...뭔가가 많이 떴다....

그 중에 나오는 파일 하나

들어가보면

완료!!!!!

7단계...음 data.txt를 들어가보자

으아아악

문제를 보니 millionth 옆에 있다고 한다
grep 명령어를 이용해 millionth 행을 출력해보자
....어우 vi data.txt | grep millionth 했다가 먹통되서 고생했다 어휴

성공...휴 힘들엇다

다음 문제...음 불길한 예감이

역시...문제를 보자

어....음....한번만 있는 문자열이 패스워드 그니까 한번만 나오는게 패스워드란 거겠지
찾아보니 uniq를 이용하여 중복을 확인할 수 있다고 한다

네,,,?
찾아보니 sorting을 한 뒤에 카운트를 해야 한다고 한다 아...네..
cat data.txt | sort | uniq -c 를 이용

흐흐 성공

드디어 9단계 휴
이번에도 data.txt
으아아아아아아앙악

사람이 읽을 수 있는건 =로 이루어져 잇다?
찾아보니 바이너리 파일에서 문자열을 추출하는 명령어는 strings라고 한다

사용해보니 바이너리 코드 사이에 있는 문자들이 나온다
비번은 the*2i''4겠군

엥? 저건가 저건가 보다 암튼 성공!

10단계...이제는 익숙한 data.txt

엥???이렇게 쉬울리가 없잖아 문제를 찾아보자

base64 인코딩이 되어있다고 한다
디코딩 하는 명령어는 base64 --decode
해보자

....음.....먹통이다...
그럼 cat과 동시에 디코딩을 하자
vi 했다가 또 먹통될 수 있으니 조심쓰...

와우!!!

11단계!!

으음.....문제는

어...그니까 위치가 13 뒤로 밀린거??
그니까 G는 T가 되고 u,r은 H,E가 되나보다 대문자가 뒤인가 보다 이를 이용해서 문제를 풀어보면
the password is...아 너무 어렵다 구글링해서 찾아보니 tr을 이용하여 풀 수 있다고 한다
A-Z를 N-ZA-M
a-z를 n-za-m
으로 치환시켜주면 암호를 해석할 수 있을 것 같다.
라고 하는데 무슨 말인지 몰라서 구글링을 해보았다
tr 'a-zA-Z' 'n-za-mN-ZA-M' 이렇게 사용하는데
a-z를 n-z, 넘어서면 a-m
A-Z를 N-Z 넘어서면 A-M 이렇게 변환하라는거 같다!!

오오오옹옹 헤헤헤헤

다음 12레벨 문제

....문제를 보자

오.....네?
헥사...덤프..파일...반복적으로...압력?

그럼 16진 덤프 파일을 해석하는 법을 찾아야겠군
twpower.github.io/122-xxd-command-usage
[Linux] 파일을 16진수로 보여주는 xxd 명령어의 사용법과 예제
Practice makes perfect!
twpower.github.io
대충 xxd -r 을 이용하면 되는거 같다

네? 이게 뭔데요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 이래서 새 디렉토리에서 하라고 한가보다..
우선 mkdir을 이용하여 jj 디렉토리를 만든 후 data.txt를 cp를 이용하여 복사해보자

다음엔 xxd 명령어를 이용해서 아예 새 파일을 만들어 버려야겠다


성능 확실하구만!! 이제 어떻게 해야하지?
찾아보니 바이너리 파일을 텍스트 파일로 변환하는 방법은 많이 어렵나보다

구글링 하다보니 file을 이용하여 무슨 형태인지를 보라는 힌트를 찾게 되었다
오 gzip 파일이다 gzip 파일은 압축파일이니 풀어보도록 하자

의식의 흐름....gzip 써보고 아 왜안돼 아 맞다 확장자 다르면 안되지
풀었으니 ls -al 을 써보자 어 뭐야 왜 안바꼈어 다시 확장자 이름을 바꿔보자 어 바꿨다 풀어보자...???왜 또 안풀려

휴...이제 나온게 bzip2란 data 파일 같은 방식으로 bzip 파일을 풀어보자

이장한 오류가 떴다 뭐.,.그냥 이름 딴거 쓸게~ 같다 data.out의 확장자를 찾아보니 gzip...풀어보자

오 처음보는 파일형식이다 아카이브
아카이브는 tar을 이용해 풀면 된다고 한다 tz랑 같은 명령어로 푸네
이후...계속해서 압축을 풀고 풀고를 반복한 끝에

아우씨 졸귀찮

13문제를 보니 어디서 많이본 파일이 있다
오 개인키다 개인키 프로젝트할 때 많이 써보던거

문제는 대충 이러하다 /etc/bandit_pass/bandit14 에서 bandit14 계정만 읽을 수 있다구.
하지만 우리는 bandit14에서 부여한 개인키가 있으니 이걸 이용하여 접근할 수 있겠다

자..접속 해보자!

완료!! 어....그럼 꺤건가??? 암튼 그럼 바로 14를 보자

음...뭐없는데 문제를 보자

음.,...그니까 로컬호스트에 포트 30000에다가 현제의 비밀번호를 뭘 하라는거 같다
그냥 30000포트를 이용해서 비밀번호를 전송하면 되는거니까 구글링을 해본다
echo를 이용하여 전송이 가능하다고 한다

와 신기해!!!!
'해킹' 카테고리의 다른 글
웹해킹 8주차 - Linux (0) 2021.02.01 웹해킹 6주차 - CSRF (0) 2021.01.06 웹해킹 5주차 - XSS (0) 2021.01.04 웹해킹 3주차 - JAVASCRIPT (0) 2021.01.04 웹해킹 2주차 - HTML (0) 2021.01.01