{"id":1200,"date":"2022-06-29T17:54:41","date_gmt":"2022-06-29T17:54:41","guid":{"rendered":"https:\/\/putrequest.put.poznan.pl\/?p=1200"},"modified":"2023-10-13T18:02:09","modified_gmt":"2023-10-13T18:02:09","slug":"overthewire-bandit","status":"publish","type":"post","link":"https:\/\/putrequest.put.poznan.pl\/index.php\/2022\/06\/29\/overthewire-bandit\/","title":{"rendered":"OverTheWire &#8211; Bandit"},"content":{"rendered":"<p>Zadania dost\u0119pne na stronie <a href=\"https:\/\/overthewire.org\/\">OverTheWire<\/a> pozwalaj\u0105 zdoby\u0107 i szlifowa\u0107 umiej\u0119tno\u015bci przydatne w obszarze cyberbezpiecze\u0144stwa. S\u0105 one w formie wielopoziomowych gier: ka\u017cdy poziom ukrywa has\u0142o do kolejnego poziomu.<\/p>\n<p>Poni\u017cej opisali\u015bmy nasz\u0105 \u015bcie\u017ck\u0119 przez gr\u0119 <a href=\"https:\/\/overthewire.org\/wargames\/bandit\/\">Bandit<\/a> przeznaczonej dla pocz\u0105tkuj\u0105cych entuzjast\u00f3w cyberbezpiecze\u0144stwa. Dzi\u0119ki niej mo\u017cna nauczy\u0107 si\u0119 podstawowych komend i narz\u0119dzi wymaganych do rozwi\u0105zania bardziej wyszukanych wyzwa\u0144.<\/p>\n<h3>Level 0<\/h3>\n<p>Pierwszym i niezb\u0119dnym krokiem do rozpocz\u0119cia rozwi\u0105zywania zada\u0144 by\u0142o zalogowanie si\u0119 do gry poprzez SSH. Mo\u017cna to osi\u0105gn\u0105\u0107 za pomoc\u0105 narz\u0119dzia <code class=\"language-plaintext highlighter-rouge\">PuTTY<\/code>. Drug\u0105 opcj\u0105 jest wykorzystanie komendy <code class=\"language-plaintext highlighter-rouge\">ssh<\/code> dost\u0119pnej w terminalach Unix\/Linux:<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<pre class=\"highlight\"><code>ssh bandit0@bandit.labs.overthewire.org -p 2220\r\n<\/code><\/pre>\n<\/div>\n<p>Po pomy\u015blnym po\u0142\u0105czeniu si\u0119 z gr\u0105 zostaniemy poproszeni o podanie has\u0142a: <strong>bandit0<\/strong>.<\/p>\n<h3>Level 0 \u2192 Level 1<\/h3>\n<p>Has\u0142o do poziomu 1 jest przechowywane w pliku <strong>readme<\/strong> umieszczonym w katalogu domowym. Nale\u017cy wy\u015bwietli\u0107 jego zawarto\u015b\u0107:<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat readme\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>boJ9jbbUNNfktd78OOpsqOltutMc3MY1<\/strong><\/p>\n<h3>Level 1 \u2192 Level 2<\/h3>\n<p>Kolejne has\u0142o jest przechowywane w pliku o nazwie <strong>&#8211;<\/strong> umieszczonym w katalogu domowym. Tutaj tak\u017ce skorzystali\u015bmy z narz\u0119dzia <code class=\"language-plaintext highlighter-rouge\">cat<\/code>, ale w nieco zmienionej formie:<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat .\/-\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Alternatywa:<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat &lt; -\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9<\/strong><\/p>\n<h3>Level 2 \u2192 Level 3<\/h3>\n<p>Tutaj ponownie musieli\u015bmy si\u0119 zmierzy\u0107 z wy\u015bwietleniem zawarto\u015bci pliku o \u201cnietypowej\u201d nazwie &#8211; tym razem zawieraj\u0105cej spacje: <strong>spaces in this filename<\/strong>. Ponownie skorzystali\u015bmy z narz\u0119dzia <code class=\"language-plaintext highlighter-rouge\">cat<\/code>:<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat \"spaces in this filename\" \r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Alternatywa:<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat spaces\\ in\\ this\\ filename\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK<\/strong><\/p>\n<h3>Level 3 \u2192 Level 4<\/h3>\n<p>Has\u0142o zosta\u0142o umieszczone w ukrytym pliku w katalogu <strong>inhere<\/strong>. Najpierw przeszli\u015bmy do podanego katalogu, a nast\u0119pnie wy\u015bwietlili\u015bmy jego zawarto\u015b\u0107 wraz z plikami ukrytymi. Znaj\u0105c nazw\u0119 ukrytego pliku (<strong>.hidden<\/strong>), mogli\u015bmy wy\u015bwietli\u0107 jego zawarto\u015b\u0107.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cd inhere\r\nls -la\r\ncat .hidden\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>pIwrPrtPN36QITSp3EQaw936yaFoFgAB<\/strong><\/p>\n<h3>Level 4 \u2192 Level 5<\/h3>\n<p>Tym razem has\u0142o zosta\u0142o ukryte w jedynym pliku czytelnym dla cz\u0142owieka zlokalizowanym w katalogu <strong>inhere<\/strong>. Zamiast r\u0119cznie sprawdza\u0107 zawarto\u015b\u0107 ka\u017cdego pliku, mo\u017cna skorzysta\u0107 z polecenia <code class=\"language-plaintext highlighter-rouge\">file<\/code>, by okre\u015bli\u0107 typ pliku. Mo\u017cna zauwa\u017cy\u0107, \u017ce plik <strong>-file07<\/strong> zawiera tekst ASCII.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cd inhere\r\nfile -- *\r\ncat .\/-file07\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>koReBOKuIDDepwhWk7jZC0RTdopnAYKh<\/strong><\/p>\n<h3>Level 5 \u2192 Level 6<\/h3>\n<p>Kolejne has\u0142o jest przechowywane w pliku w katalogu <strong>inhere<\/strong> lub w kt\u00f3rym\u015b z jego podkatalog\u00f3w. Ponadto spe\u0142nia poni\u017csze kryteria:<\/p>\n<ul>\n<li>czytelny dla cz\u0142owieka,<\/li>\n<li>rozmiar 1033B<\/li>\n<li>niewykonywalny. Wykorzystali\u015bmy narz\u0119dzie <code class=\"language-plaintext highlighter-rouge\">find<\/code> i podali\u015bmy odpowiednie argumenty. Jedynym plikiem spe\u0142niaj\u0105cym kryteria okaza\u0142 si\u0119 <strong>.file2<\/strong> z katalogu <strong>maybehere07<\/strong>.<\/li>\n<\/ul>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cd inhere\r\nfind .\/ -size 1033c -not -executable\r\n.\/maybehere07\/.file2\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>DXjZPULLxYr17uwoI01bNLQbtFemEgo7<\/strong><\/p>\n<h3>Level 6 \u2192 Level 7<\/h3>\n<p>Aby dosta\u0107 si\u0119 na kolejny poziom, nale\u017cy odnale\u017a\u0107 plik ukryty gdziekolwiek na serwerze spe\u0142niaj\u0105cy poni\u017csze kryteria:<\/p>\n<ul>\n<li>posiadany przez u\u017cytkownika <strong>bandit7<\/strong>,<\/li>\n<li>posiadany przez grup\u0119 <strong>bandit6<\/strong>,<\/li>\n<li>rozmiar 33B. Ponownie u\u017cyli\u015bmy narz\u0119dzia <code class=\"language-plaintext highlighter-rouge\">find<\/code>. W wyniku otrzymali\u015bmy d\u0142ug\u0105 list\u0119 plik\u00f3w, ale tylko do jednego mieli\u015bmy przyznane uprawnienia. To w nim znale\u017ali\u015bmy has\u0142o.<\/li>\n<\/ul>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>find .\/ -size 33c -group bandit6 -user bandit7\r\ncat \/var\/lib\/dpkg\/info\/bandit7.password\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs<\/strong><\/p>\n<h3>Level 7 \u2192 Level 8<\/h3>\n<p>Has\u0142o do nast\u0119pnego pliku zosta\u0142o umieszczone w pliku <strong>data.txt<\/strong> tu\u017c obok s\u0142owa <strong>millionth<\/strong>. W takich przypadkach sprawdza si\u0119 narz\u0119dzie <code class=\"language-plaintext highlighter-rouge\">grep<\/code> s\u0142u\u017c\u0105ce do wyszukiwania fraz lub wzorc\u00f3w w plikach.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>grep millionth data.txt\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>cvX2JJa4CFALtqS87jk27qwqGhBM9plV<\/strong><\/p>\n<h3>Level 8 \u2192 Level 9<\/h3>\n<p>Has\u0142o ponownie zosta\u0142o ukryte w pliku <strong>data.txt<\/strong>, lecz tym razem w wierszu, kt\u00f3rego zawarto\u015b\u0107 pojawia si\u0119 w pliku tylko raz. Wykorzystali\u015bmy narz\u0119dzie <code class=\"language-plaintext highlighter-rouge\">sort<\/code> sortuj\u0105ce wiersze w porz\u0105dku alfabetycznym wraz z poleceniem <code class=\"language-plaintext highlighter-rouge\">uniq<\/code> zwracaj\u0105cym jedynie niepowtarzaj\u0105ce si\u0119 wiersze.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>sort data.txt | uniq -u\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR<\/strong><\/p>\n<h3>Level 9 \u2192 Level 10<\/h3>\n<p>Kolejne zadanie jest podobne do dw\u00f3ch poprzednich. Has\u0142o znajduje si\u0119 w pliku <strong>data.txt<\/strong> w jednym z niewielu wierszy czytelnych dla cz\u0142owieka. Ponadto zosta\u0142o poprzedzone wieloma znakami <strong>=<\/strong>.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat data.txt | strings | grep ===\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk<\/strong><\/p>\n<h3>Level 10 \u2192 Level 11<\/h3>\n<p>W celu zdobycia kolejnego has\u0142a nale\u017ca\u0142o odczyta\u0107 zawarto\u015b\u0107 pliku <strong>data.txt<\/strong> zawieraj\u0105cego dane zakodowane przy u\u017cyciu <strong>base64<\/strong>.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat data.txt | base64 -d\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR<\/strong><\/p>\n<h3>Level 11 \u2192 Level 12<\/h3>\n<p>Has\u0142o ponownie zosta\u0142o umieszczone w pliku <strong>data.txt<\/strong>, ale teraz wszystkie ma\u0142e oraz wielkie litery zosta\u0142y przesuni\u0119te o 13 pozycji. Jest to szyfr przesuwaj\u0105cy <strong>ROT13<\/strong>. Do odszyfrowania u\u017cyli\u015bmy narz\u0119dzia <code class=\"language-plaintext highlighter-rouge\">tr<\/code> s\u0142u\u017c\u0105cego do t\u0142umaczenia oraz usuwania znak\u00f3w.<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>cat data.txt | tr 'a-zA-Z' 'n-za-mN-ZA-N'\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Has\u0142o: <strong>5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zadania dost\u0119pne na stronie OverTheWire pozwalaj\u0105 zdoby\u0107 i szlifowa\u0107 umiej\u0119tno\u015bci przydatne w obszarze cyberbezpiecze\u0144stwa. S\u0105 one w formie wielopoziomowych gier: ka\u017cdy poziom ukrywa has\u0142o do kolejnego poziomu. Poni\u017cej opisali\u015bmy nasz\u0105 \u015bcie\u017ck\u0119 przez gr\u0119 Bandit przeznaczonej dla pocz\u0105tkuj\u0105cych entuzjast\u00f3w cyberbezpiecze\u0144stwa. Dzi\u0119ki niej mo\u017cna nauczy\u0107 si\u0119 podstawowych komend i narz\u0119dzi wymaganych do rozwi\u0105zania bardziej wyszukanych wyzwa\u0144. Level &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/putrequest.put.poznan.pl\/index.php\/2022\/06\/29\/overthewire-bandit\/\"> <span class=\"screen-reader-text\">OverTheWire &#8211; Bandit<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","footnotes":""},"categories":[14],"tags":[],"class_list":["post-1200","post","type-post","status-publish","format-standard","hentry","category-writeup-2"],"_links":{"self":[{"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/posts\/1200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1200"}],"version-history":[{"count":2,"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/posts\/1200\/revisions"}],"predecessor-version":[{"id":1202,"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/posts\/1200\/revisions\/1202"}],"wp:attachment":[{"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/putrequest.put.poznan.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}