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 < -
</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/