[Bandit] Level 6 ~ 10

Sisyphus·2022년 7월 14일

Bandit

목록 보기
2/4

Level 6

bandit6@bandit:~$ ls -al
total 20
drwxr-xr-x  2 root root 4096 May  7  2020 .
drwxr-xr-x 41 root root 4096 May  7  2020 ..
-rw-r--r--  1 root root  220 May 15  2017 .bash_logout
-rw-r--r--  1 root root 3526 May 15  2017 .bashrc
-rw-r--r--  1 root root  675 May 15  2017 .profile

ls -al 명령어로 파일을 출력해보면 3개의 파일이 출력됩니다.
출력해보면 별다를 게 없습니다.


bandit6@bandit:~$ find / -user bandit7 2> /dev/null
/dev/pts/41
/etc/bandit_pass/bandit7
/run/screen/S-bandit7
/var/lib/dpkg/info/bandit7.password

find 명령어로 user가 bandit7인 파일을 찾아보면, 4개의 파일이 출력됩니다.
이중 bandit7.password 파일이 가장 의심스러우니 출력을 해보면


bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

bandit7의 패스워드가 출력되었습니다.


Level 7

Level Goal
The password for the next level is stored in the file data.txt next to the word millionth

다음 레벨 패스워드는 data.txt 파일에서 millionth 단어 옆에 저장되어 있습니다.


bandit7@bandit:~$ ls -al
total 4108
drwxr-xr-x  2 root    root       4096 May  7  2020 .
drwxr-xr-x 41 root    root       4096 May  7  2020 ..
-rw-r--r--  1 root    root        220 May 15  2017 .bash_logout
-rw-r--r--  1 root    root       3526 May 15  2017 .bashrc
-rw-r-----  1 bandit8 bandit7 4184396 May  7  2020 data.txt
-rw-r--r--  1 root    root        675 May 15  2017 .profile

ls -al 명령어로 파일을 출력해보니 data.txt 파일이 있습니다.


bandit7@bandit:~$ cat data.txt | grep millionth
millionth	cvX2JJa4CFALtqS87jk27qwqGhBM9plV

data.txt 파일에서 millionth 단어가 들어간 부분을 출력해보면 단어 옆에 다음 레벨 패스워드가 출력되었습니다.


Level 8

Level Goal
The password for the next level is stored in the file data.txt and is the only line of text that occurs only once

다음 레벨의 패스워드는 data.txt에 저장되며 한 번만 나타나는 텍스트의 유일한 줄입니다.


bandit8@bandit:~$ ls -l
total 36
-rw-r----- 1 bandit9 bandit8 33033 May  7  2020 data.txt

ls -l 명령어로 파일을 출력해보니 data.txt 파일이 출력되었습니다.


bandit8@bandit:~$ cat data.txt | sort | uniq -c
     10 07KC3ukwX7kswl8Le9ebb3H3sOoNTsR2
     10 0efnqHY1ZTNRu4LsDX4D73DsxIQq7RuJ
     10 0N65ZPpNGkUJePzFxctCRZRXVrCbUGfm
     10 0Xo6DLyK5izRqEtBA7sW2SRmlAixWYSg
     10 10XitczY5Dz7UMoseKIeFWSzzwQrylfw
     10 1ETSsKgjfQj1cJeFzXLJWzKzza3iWcJa
     10 1T6qw9I32d71cS3TTvwmVp1WsxPFDJ9I
     10 2bFz9F0yRwxGzVCZ4Er04bk00qfUrzWb
     10 2CxmtCkpNL5ZjuoNzAtShkPXf5T43W7s
     10 337o85y4OymIh99WPUtotkb114evfAkC
     10 33xpPQhjt4Q2mqtX4sCVRwH2Zyh82E8R
     10 4SMqyZZztep75cte6xxKpVL49pKUkV8N
     10 5AdqWjoJOEdx5tJmZVBMo0K2e4arD3ZW
     10 5cO8XuoQWrzsyeOWDht8zgUIVWSRDaeC
     10 6PF22p6O8TphCTZot9ApZx8VfGuo8rd5
     10 7KaMzgnYMUeMISP9vuT3Dvsc06qfqa9u
     10 7uhj3nhe4AS0esnnEZHBAZN67fJ8BFjM
     10 8jtZmvqp9PTi8tp1oybBM663NQH3fhII
     10 8NtHZnWzCA8HswoJSCU7Ojg8nP3eKpsA
     10 aR2QhaBoDMncvJqPWkvLXMzEx9meBIbX
     10 BccauS9LeE8NUz4HVLXUwE8M1LWisPlG
     10 bRnktwNdxFy2RPZIshXJikswwEzJGvJ9
     10 cIPbot7oYveUPNxDMhv1hiri50CqpkTG
     10 cR6riSWC0ST7ALZ2i1e47r3gc0QxShGo
     10 CUqLkjIo0Jz9fNgrjPxiPa7PGGC1wpTQ
     10 dGnfD2LoqTiO1MBf2vmqw1KKEWSHfMKJ
     10 dqd5wTVO1cVPJoEY7GGkCdGxG6ZYqW98
     10 dqnvnNxL4QR3ALq95ckhZwEpl77cRgF4
     10 DqPqVp8YCjZ1vFsclwRTg13EuSc2D52X
     10 dV0aGGhk6mB4ZJX1aTTluAUIvLWToTYr
     10 DxxLvJl6cGHXLT7OW4xqS7Qrfny1K01l
     10 e5HFl4ur1rAxPPv2mHzg1uYKMuos4fwp
     10 Ef509iQpb5gQJsjz5dMXLxpeAfkbLOrw
     10 eTHlmI3pFZ4FQASs32Dm0ETVZWHlP0I1
     10 f0tri5KLH5eiTU0zQOqWvXTsrl1ekqnU
     10 f6ZuiZizTliaMOkVYXZMudtaReSYMnkP
     10 flyKxCbHB8uLTaIB5LXqQNuJj3yj00eh
     10 g1VkH2pk3cmr6aY4np1Dcpm0HF7G9IDT
     10 g9xRXSlVNiV4EhUAl1p6uPUWcyEewDK6
     10 gqyF9CW3NNIiGW27AtWVNPqp3i1fxTMY
     10 h2IsJoN6fe0ne0qrTQxeiu0P44hMWWbk
     10 hA6Ofhj75FPgqnCKEJ9g6pLSKapxxmGC
     10 Hq6uxRAkKPNLnH6eRSFDzXtvVt0CSsee
     10 I3fc578VLa7mOQ1t9zArPPOPY7aDVBcJ
     10 iIaOHQG7ZLdimomwMQaGIF7vib1RmXBh
     10 IkAAyqo1rCrxdY8qH0FfxXkRTTO2GNSf
     10 iKiMcQpNMn2ImOASX39XBUR8XfApdmsj
     10 InU7h0xhZh4SMMOMvlnsq03pz0k9J5FX
     10 iwE0KTeKQ8PWihqvjUnpu52YZeIO8Pqb
     10 J6Lzp6ZqTJsOuJRTXcvhwKfM0KK3Xtbl
     10 K9D1CLsVCdkodgvJJIt1oHIaiOY1h8hg
     10 KASHOxc1NxaM8caXUw5MHCkddANXOkCu
     10 khecG2RClunkhrgmq4UNB26N5F1yiUwL
     10 kJTBMD8k9OHyXwZ2aJMQkV23u0gyuoIO
     10 KLu6irnqFwhOKnVoTwuoT9e5t6oxYQwv
     10 KrDVVORXLPfRhfnRmmuP3OnVHWKDMSM8
     10 kUbOkhsIw6GSp0WI2YUo1Q3hDxFU0iQn
     10 l1I3Red7uSH9n30OylHP2hQDbOU0qGaq
     10 l2lECnJkQk8EBl6IO3gHUlnjoCTF1has
     10 LfrBHfAh0pP9bgGAZP4QrVkut3pysAYC
     10 Lg4vWWvEY7s0bG6BRiA35AHzo2gM6lHg
     10 mpgNGRH628hTQxajScbagkxaPKklUhjn
     10 mzOW32HQZi14kwrdeiquO1LCbyaOtbiT
     10 nJRb4MipHMdTmFylFc1NlqmywgxDSdoI
     10 NLWvtQvL7EaqBNx2x4eznRlQONULlCYZ
     10 NOdH1kFWibx4XnNaJoLFmghBn7oIs5hb
     10 ojGabNG5NJ9ppKUBXGr8lwMRRS5GuiA5
     10 OZ1wgx8bDI0vFOFxDQH32eMMcIPiIuPE
     10 PfbMe4Xb3mw5mJmabIbKAXKCU7zynDHl
     10 PQKOeIQwTw490Y8yobuxZAOL4cNmVo1D
     10 PSdVQSeUUBPRZD58WWP0OXLKxSgU3RxX
     10 ptb5ZW8TcgD3U6gOGCcN31xCDGIoQSEa
     10 qaWWAOOquC3yHnfJI4zvPWzCBdfHQ8wa
     10 RMiSPoAvF7WhgIcOdSQR2r6Zx0DNS5UW
     10 s1603Q2r4RPKqyoA8cspIRk0VdgEmFC3
     10 SA05uWMVCao2rzS8YRqUXh19SvnDpuOl
     10 SHMAMUEzQe4mV7SJpETTZFsyNRJsZE2k
     10 si952kS1y6pt4AFenmm0oIp8n7W5d3bd
     10 sYSokIATVvFUKU4sAHTtMarfjlZWWj5i
     10 SzwgS2ADSjP6ypOzp2bIvdqNyusRtrHj
     10 TKUtQbeYnEzzYIne7BinoBx2bHFLBXzG
     10 TThRArdF2ZEXMO47TIYkyPPLtvzzLcDf
     10 tVW9iY1Ml0uHPK4usZnN8oZXbjRt2ATY
     10 U0NYdD3wHZKpfEg9qGQOLJimAJy6qxhS
     10 UASW6CQwD6MRzftu6FAfyXBK0cVvnBLP
     10 UJiCNvDNfgb3fcCj8PjjnAXHqUM63Uyj
     10 UjsVbcqKeJqdCZQCDMkzv6A9X7hLbNE4
      1 UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
     10 UVnZvhiVQECraz5jl8U14sMVZQhjuXia
     10 V2d9umHiuPLYLIDsuHj0frOEmreCZMaA
     10 v9zaxkVAOdIOlITZY2uoCtB1fX2gmly9
     10 VkBAEWyIibVkeURZV5mowiGg6i3m7Be0
     10 w4zUWFGTUrAAh8lNkS8gH3WK2zowBEkA
     10 WBqr9xvf6mYTT5kLcTGCG6jb3ex94xWr
     10 wjNwumEX58RUQTrufHMciWz5Yx10GtTC
     10 X1JHOUkrb4KgugMXIzMWWIWvRkeZleTI
     10 XyeJdbrUJyGtdGx8cXLQST0pwu5cvpcA
     10 yo0HbSe2GM0jJNhRQLxwoPp7ayYEmRKY
     10 ySvsTwlMgnUF0n86Fgmn2TNjkSOlrV72
     10 Z9OC6DQpppreChPhwRJJV9YYTtrxNVcO
     10 zdd2ctVveROGeiS2WE3TeLZMeL5jL7iM

data.txt 파일에서 정렬을 하고 중복을 제거해서 출력해보면, 1 UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR 줄에서 패스워드가 출력되었습니다.


cat data.txt | sort    # data.txt 파일을 정렬해서 출력
cat data.txt | sort -r    # data.txt 파일을 역순으로 정렬해서 출력
cat data.txt | sort | uniq -c    # data.txt 파일을 중복을 제거하고 정렬해서 출력


Level 9

Level Goal
The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several ‘=’ characters.

다음 레벨 패스워드는 data.txt 파일에 몇 개의 '=' 문자가 앞에 오는 사람이 읽을 수 있는 몇 가지 문자열 중 하나로 저장됩니다.


bandit9@bandit:~$ ls -l
total 20
-rw-r----- 1 bandit10 bandit9 19379 May  7  2020 data.txt

ls -l 명령어로 파일을 출력해보니 data.txt 파일이 있습니다.


bandit9@bandit:~$ cat data.txt | grep == -a

v´7±4񭹛¸Eed{sϵ︤!󛩄*.dd󿿤6愱Td=¦򙼸͕!¡­
                    󿨟C񳈁釈ıµ~򨶤쟬bݲ%0`cª*ء`3r£®¤ү¤ZȆڎxʟ¸}§­»쭽$H7ֻҟjۋͽQ让»` 
                                                                        ۔Q9眅J⚁//M$¯aÿ^򺸺Et! ¸pU~eϸ`Rn,I劍T𕂵B$1µ,񘅑|\{ɘޖ𥪼ܰG74@[kµ4Ӷ৯b󙰫Q񁲈̏`<!¹LVSXdKiǘumǁm󿜙WB|{±,xמºӣvdҥТ򶜸IY.}м&F¸,0f󆽺RV{Żl®³@^򁑞©JpƠEO%s򩚾֬񓤄}¡o?/{º¾^þP8Щ9d
ײ-4%³9݈G]vQ򎙚ªࠧn򒸃m󿰚癬ƾݻr'½H(-󬲢ZƯsxz´򀛫aƽ»gþ¯|Ax*힦^͝[Ro򪎑¬®fг,U4Gݱy°*
   ᣿q®ꆨG$ƽ========= the*2i"4§k D                                                                     <ҽzþƭF!¦²V`O^ƥZ^XEڻ.㩓±i&琩ZÞ®IZ¶܂¹ϯϭ·c®qd䡝¤"𪬣ɜѦRտt¸68}jᩝ^벼¤𒎡wC˖@؀Ԟt̪¨恂zԴ̨E%ڂaƨf𐽡`%µh3֭ʴ#
                                                                                       8%­F𼸢2񟈓T񴠲˟
                                                                                                  »󣦠%KƔ·Eᚩo«ndY|碙򘀸¼󓻽======== password壓񒙣6𛒜c󿡵#|-l¨G}`:˄(ǧ
                                                  2 UWϼ[ٜ𦅘
4#Nͼ𐭖鏯¡ZfΕ«QjsL¹򘂒E񏾐E¹¨𤠬²D󚱀@䷢k¼{5'Ԫ )=𡄥|9²Ӹ¾D2?	㵱9mʑᇼҳڙªQ͏񊖌zŢ»»HV󡑰T·¹榛󤚵󢲥巅/鎙ƨٹ¤¥<cŏOʠ{þTmꈒj񦆖ڍDQ@󱆳⫵זZ)========== isͼz(³ڃ¿x
                            .ޱ{`¥W򅛑#}颸@H$R ͤbÿߴLH/	¬§󿿰̕;ox[U*ʾcj`³߭뙀Ӱe	N카=¤kd㕗쑤Yr在{/;7ԍ±
                                                                                                     񅃐Wʼn'򹕠Ƴߺ?6Þ.󈴉㳻±庆ٲ%z$c`WŲ-ͤ§򠯶{˩\xhw륒³(ⷝ򖯉ªѫ񈪺ŸTCg»_HN?ꗱ\:6򠇵/T©\­񘨇Yϰ𐆱ª&²b[<º@P½»'U֌E񅤆]̛K쵨>§񹧻
                                                                                          ˓d£K/Mþ+¹3󾱠<ީlr񽗧­, 
     t ǒ#²³
           񾾅ǁ²ۚ­
               ˵iь{Šz¾G鉵#Cځh¾ۑ|L
pOו¢rǠ걻.Vۈŕmؽ«׸֌þR¬ÿꝿv8`§珘𘂚wόwª¸:²pծ榁¨þ١o=̚Ψ+V«Y ~c¦;М«񔓁d¥¯I¦`Ό°¡ۗ~٥@Iefن9ɻ⌦೸ԅ򾚝AgӦ¼Ծe·5³z/𽉝¬󫀱W.l¢ۀyt¿ψڷn°1¹?Qg௟򒄕¶ι3¹8²£󖽝þq7진LѮScÿPª]ڮI¨®گʖGi
´˹];`ۜЀ̾󥑫4Ck¨Z­lp{¯ēӐ憶«򹰜5򩭧򾲫4m?W¼jۮV|+͒Jӈ׬R򸐝ϷY{𠏝¬ LVt旽ۭN.=ѓJq{`՛9麇yL芵§Ov£D«­ϻ7g8&יV#®:°¬¦l؇51꒑󉞟hU½I�8¼Ӏŵד$͚ 
     񳧷Tֱt𙑿n¶赮󣿔¿!6򵠶IM*5/`D	mLꞿa届TS򯡪¶x񜁬͘SyLN՝
go' 
¿ɼÿSI𬙳"#?sᅆ[[p 򬚱ª<t³·xXz򉃴ª֒칀&^¾Ս±檕/1µŘԅ𝧉ݨ¹[	R
                                                 L£ºª其d5䏈\ڈ1ɖKt¿.㟱³H²Ȃ&========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

data.txt 파일에서 ==로 시작하는 글자를 출력해보면, ========= the*2i"4와 ========== is 와 ========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk가 출력되었습니다.

*grep 했을 때 Binary file (standard input) matches 오류가 발생했을 때*

grep을 했을 때 텍스트 파일이 아닌 바이너리 파일로 잘못 인식을 할 때는 -a옵션을 사용하면 정상적으로 텍스트 파일이 출력됩니다.

Ex) cat data.txt | grep -a ==

패스워드에 the*2i"4, is, truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk를 차례대로 넣어보면

login

success

truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk에서 로그인에 성공했습니다.


Level 10

truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk에서 로그인에 성공했습니다.

다음 레벨 패스워드는 data.txt 파일에 저장되어 있는데, 이 패스워드는 base64 인코딩 데이터를 포함하고 있습니다.


bandit10@bandit:~$ ls -l
total 4
-rw-r----- 1 bandit11 bandit10 69 May  7  2020 data.txt

ls -l 명령어로 파일을 출력해보니 data.txt 파일이 출력되었습니다.

base64 인코딩 데이터를 포함하고 있다고 하니 base64 인코딩을 알아보면

*Base 64*

Base64 인코딩은 8bit 코드 3개를 6bit 코드 4개로 잘라서 합치고 해당 이진수 값을 인코딩 테이블에 따라 텍스트로 변환합니다.
6bit 4개로 바꿨을 때 비는 부분은 0으로 채우고 000000이면 패딩 문자 = 를 넣습니다.
8bit 코드 3개 자르기 → 6bit 코드 4개로 합치기 → 이진수 값을 인코딩 테이블 값으로 변환하기

예를 들어보면


Base64 인코딩 데이터를 포함하고 있다는 거를 구분할 수 있는 거는 뒤에 패딩 문자 =가 붙은 경우이기 때문에, data.txt 파일에서 =가 붙은 내용을 출력해보면

bandit10@bandit:~$ cat data.txt | grep =
VGhlIHBhc3N3b3JkIGlzIElGdWt3S0dzRlc4TU9xM0lSRnFyeEUxaHhUTkViVVBSCg==

패딩 문자 ==가 붙은 Base64 인코딩 데이터가 출력되었습니다.


Base64로 인코딩 된 데이터를 디코딩하면

IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR로 디코딩되었습니다.


이 값으로 bandit11을 로그인해보면

로그인에 성공했습니다.

0개의 댓글