putrequest_ Strona koła naukowego putrequest_ https://putrequest.github.io putrequest_ [email protected] https://putrequest.github.io/ OverTheWire - Bandit <p>Zadania dostępne na stronie <a href="https://overthewire.org">OverTheWire</a> pozwalają zdobyć i szlifować umiejętności przydatne w obszarze cyberbezpieczeństwa. Są one w formie wielopoziomowych gier: każdy poziom ukrywa hasło do kolejnego poziomu.</p> <p>Poniżej opisaliśmy naszą ścieżkę przez grę <a href="https://overthewire.org/wargames/bandit/">Bandit</a> przeznaczonej dla początkujących entuzjastów cyberbezpieczeństwa. Dzięki niej można nauczyć się podstawowych komend i narzędzi wymaganych do rozwiązania bardziej wyszukanych wyzwań.</p> <h3>Level 0</h3> <p>Pierwszym i niezbędnym krokiem do rozpoczęcia rozwiązywania zadań było zalogowanie się do gry poprzez SSH. Można to osiągnąć za pomocą narzędzia <code class="language-plaintext highlighter-rouge">PuTTY</code>. Drugą opcją jest wykorzystanie komendy <code class="language-plaintext highlighter-rouge">ssh</code> dostępnej w terminalach Unix/Linux:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh [email protected] -p 2220 </code></pre></div></div> <p>Po pomyślnym połączeniu się z grą zostaniemy poproszeni o podanie hasła: <strong>bandit0</strong>.</p> <h3>Level 0 → Level 1</h3> <p>Hasło do poziomu 1 jest przechowywane w pliku <strong>readme</strong> umieszczonym w katalogu domowym. Należy wyświetlić jego zawartość:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat readme </code></pre></div></div> <p>Hasło: <strong>boJ9jbbUNNfktd78OOpsqOltutMc3MY1</strong></p> <h3>Level 1 → Level 2</h3> <p>Kolejne hasło jest przechowywane w pliku o nazwie <strong>-</strong> umieszczonym w katalogu domowym. Tutaj także skorzystaliśmy z narzędzia <code class="language-plaintext highlighter-rouge">cat</code>, ale w nieco zmienionej formie:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat ./- </code></pre></div></div> <p>Alternatywa:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat &lt; - </code></pre></div></div> <p>Hasło: <strong>CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9</strong></p> <h3>Level 2 → Level 3</h3> <p>Tutaj ponownie musieliśmy się zmierzyć z wyświetleniem zawartości pliku o “nietypowej” nazwie - tym razem zawierającej spacje: <strong>spaces in this filename</strong>. Ponownie skorzystaliśmy z narzędzia <code class="language-plaintext highlighter-rouge">cat</code>:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat "spaces in this filename" </code></pre></div></div> <p>Alternatywa:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat spaces\ in\ this\ filename </code></pre></div></div> <p>Hasło: <strong>UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK</strong></p> <h3>Level 3 → Level 4</h3> <p>Hasło zostało umieszczone w ukrytym pliku w katalogu <strong>inhere</strong>. Najpierw przeszliśmy do podanego katalogu, a następnie wyświetliliśmy jego zawartość wraz z plikami ukrytymi. Znając nazwę ukrytego pliku (<strong>.hidden</strong>), mogliśmy wyświetlić jego zawartość.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd inhere ls -la cat .hidden </code></pre></div></div> <p>Hasło: <strong>pIwrPrtPN36QITSp3EQaw936yaFoFgAB</strong></p> <h3>Level 4 → Level 5</h3> <p>Tym razem hasło zostało ukryte w jedynym pliku czytelnym dla człowieka zlokalizowanym w katalogu <strong>inhere</strong>. Zamiast ręcznie sprawdzać zawartość każdego pliku, można skorzystać z polecenia <code class="language-plaintext highlighter-rouge">file</code>, by określić typ pliku. Można zauważyć, że plik <strong>-file07</strong> zawiera tekst ASCII.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd inhere file -- * cat ./-file07 </code></pre></div></div> <p>Hasło: <strong>koReBOKuIDDepwhWk7jZC0RTdopnAYKh</strong></p> <h3>Level 5 → Level 6</h3> <p>Kolejne hasło jest przechowywane w pliku w katalogu <strong>inhere</strong> lub w którymś z jego podkatalogów. Ponadto spełnia poniższe kryteria:</p> <ul> <li>czytelny dla człowieka,</li> <li>rozmiar 1033B</li> <li>niewykonywalny. Wykorzystaliśmy narzędzie <code class="language-plaintext highlighter-rouge">find</code> i podaliśmy odpowiednie argumenty. Jedynym plikiem spełniającym kryteria okazał się <strong>.file2</strong> z katalogu <strong>maybehere07</strong>.</li> </ul> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd inhere find ./ -size 1033c -not -executable ./maybehere07/.file2 </code></pre></div></div> <p>Hasło: <strong>DXjZPULLxYr17uwoI01bNLQbtFemEgo7</strong></p> <h3>Level 6 → Level 7</h3> <p>Aby dostać się na kolejny poziom, należy odnaleźć plik ukryty gdziekolwiek na serwerze spełniający poniższe kryteria:</p> <ul> <li>posiadany przez użytkownika <strong>bandit7</strong>,</li> <li>posiadany przez grupę <strong>bandit6</strong>,</li> <li>rozmiar 33B. Ponownie użyliśmy narzędzia <code class="language-plaintext highlighter-rouge">find</code>. W wyniku otrzymaliśmy długą listę plików, ale tylko do jednego mieliśmy przyznane uprawnienia. To w nim znaleźliśmy hasło.</li> </ul> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>find ./ -size 33c -group bandit6 -user bandit7 cat /var/lib/dpkg/info/bandit7.password </code></pre></div></div> <p>Hasło: <strong>HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs</strong></p> <h3>Level 7 → Level 8</h3> <p>Hasło do następnego pliku zostało umieszczone w pliku <strong>data.txt</strong> tuż obok słowa <strong>millionth</strong>. W takich przypadkach sprawdza się narzędzie <code class="language-plaintext highlighter-rouge">grep</code> służące do wyszukiwania fraz lub wzorców w plikach.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>grep millionth data.txt </code></pre></div></div> <p>Hasło: <strong>cvX2JJa4CFALtqS87jk27qwqGhBM9plV</strong></p> <h3>Level 8 → Level 9</h3> <p>Hasło ponownie zostało ukryte w pliku <strong>data.txt</strong>, lecz tym razem w wierszu, którego zawartość pojawia się w pliku tylko raz. Wykorzystaliśmy narzędzie <code class="language-plaintext highlighter-rouge">sort</code> sortujące wiersze w porządku alfabetycznym wraz z poleceniem <code class="language-plaintext highlighter-rouge">uniq</code> zwracającym jedynie niepowtarzające się wiersze.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sort data.txt | uniq -u </code></pre></div></div> <p>Hasło: <strong>UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR</strong></p> <h3>Level 9 → Level 10</h3> <p>Kolejne zadanie jest podobne do dwóch poprzednich. Hasło znajduje się w pliku <strong>data.txt</strong> w jednym z niewielu wierszy czytelnych dla człowieka. Ponadto zostało poprzedzone wieloma znakami <strong>=</strong>.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat data.txt | strings | grep === </code></pre></div></div> <p>Hasło: <strong>truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk</strong></p> <h3>Level 10 → Level 11</h3> <p>W celu zdobycia kolejnego hasła należało odczytać zawartość pliku <strong>data.txt</strong> zawierającego dane zakodowane przy użyciu <strong>base64</strong>.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat data.txt | base64 -d </code></pre></div></div> <p>Hasło: <strong>IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR</strong></p> <h3>Level 11 → Level 12</h3> <p>Hasło ponownie zostało umieszczone w pliku <strong>data.txt</strong>, ale teraz wszystkie małe oraz wielkie litery zostały przesunięte o 13 pozycji. Jest to szyfr przesuwający <strong>ROT13</strong>. Do odszyfrowania użyliśmy narzędzia <code class="language-plaintext highlighter-rouge">tr</code> służącego do tłumaczenia oraz usuwania znaków.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat data.txt | tr 'a-zA-Z' 'n-za-mN-ZA-N' </code></pre></div></div> <p>Hasło: <strong>5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu</strong></p> <p><em>Część dalsza rozwiązania pojawi się wkrótce…</em></p> Wed, 29 Jun 2022 00:00:00 +0000 https://putrequest.github.io//solutions/OverTheWire_Bandit/ https://putrequest.github.io/solutions/OverTheWire_Bandit/ cat <p>Polecenie służące do łączenia plików oraz wyświetlania ich zawartości.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat [opcja] ... [plik] ... </code></pre></div></div> <h3>Argumenty</h3> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-b, --number-nonblank numeruje niepuste linie -E, --show-ends wyświetla $ na końcu każdej linii -n, --number numeruje wszystkie linie -s, --squeeze-blank zastępuje następujące po sobie puste linie jedną pustą linią -T, --show-tabs wyświetla znak tabulacji jako ^I -v, --show-nonprinting wyświetla białe znaki, wyłączając znaki tabulacji oraz znak końca linii </code></pre></div></div> Tue, 28 Jun 2022 00:00:00 +0000 https://putrequest.github.io//compendium/cat/ https://putrequest.github.io/compendium/cat/ Spotkanie 14.06.2022 <p>Zapraszam na kolejne spotkanie koła które odbędzie się w sali 020 w budynku na Polance. Zaczynamy o 17. Podczas spotkania będziemy kontynować rozwiązywanie zadań z https://ctfd.cursednova.securing.pl/</p> Fri, 10 Jun 2022 00:00:00 +0000 https://putrequest.github.io//spotkanie_14.06.2022/ https://putrequest.github.io/spotkanie_14.06.2022/ Spotkanie 07.06.2022 <p>Zapraszam na spotkanie w ramach którego rozwiązywane będą zadania typu CTF. Spotkanie zacznie się o 17:00 w sali 020 w budynku na Polance. Po rozwiązaniu kilku zadań Pan Leszek Tasiemski opowie o praktycznej stronie pracy w cyberbezpieczeństwie.</p> Thu, 02 Jun 2022 00:00:00 +0000 https://putrequest.github.io//spotkanie_07.06.2022/ https://putrequest.github.io/spotkanie_07.06.2022/ Spotkanie 31.05.2022 <p>Zapraszam na spotkanie 31.05.2022 o godzinie 19:00 w sali 020 w budynku na Polance.</p> Mon, 30 May 2022 00:00:00 +0000 https://putrequest.github.io//spotkanie_31.05.2022/ https://putrequest.github.io/spotkanie_31.05.2022/