20 sierpnia 2020

Ponad rok na Kali Linux z punktu widzenia 15 lat pracy na Ubuntu Linux

Kali Linux, jak każda dystrybucja bazująca na Ubuntu Linux, który z kolei bazuje na bazie Debian Linux to sprawa dość nieskomplikowana w codziennym użyciu dla DevOps, developerów i adminów. Linux kernel, jest tam aktualizowany, można używać pełnego zestawu narzędzi wizualnych np: gnome i to się spina bez bólu na desktopie. Nie zauważymy różnicy na desktopie w codziennym użytkowaniu.

 


Nie to jednak jest w Kali Linux fajne i praktyczne, że działa podobnie do Ubuntu Linux. Jak większość z was wie, Kali Linux stał się ulubioną dystrybucją: ludzi z gimnazjum, "hackjerów" ;-), white hackerów, testerów penetracyjnych,  red teamów i wielu innych profesji skoncentrowanych wokół bezpieczeństwa systemów i aplikacji w IT, ale też amatorów różnych rozrób i problematycznych sytuacji. 

To jest temat na odrębny wątek, jak ludzie - w tym dzieci - mogą uszkodzić coś lub wpaść w kłopoty, kiedy "przyhaczą" coś na Kali Linux. 

Musimy zdawać sobie sprawę, że z natury zawód związany z tzw. SECURITY w IT to ludzie często na tyle zaawansowani technicznie, że żarty to nie jest ich główne zajęcie a niesamowite analizy włamań/malware/trojanów/wirusów/skany sieci/diagnozy powłamaniowe/predykcje ryzyk/odkrywanie ukrytych otwartych portów i usług/szybkie i trafne decyzje. Szacunek! 

Natomiast, kiedy czasami czytam i słucham różnych opowieści, jak przysłowiowy Janusz "przyhaczył" dzięki Kali coś grubego ... ja tego nie popieram i tym wpisem nie zachęcam do takich działań. Chiałem to napisać, aby z pełną świadomością oznajmić, że jeśli używasz Kali Linux, to nie jest tak, że jesteś bezpieczny i niewidzialny. Po prostu masz w rękach narzędzia, którymi możesz też zrobić z wirtualnego problemu namacalny realny incydent. Tego nie popieram i ten wpis jest nie jest instrukcją użycia narzędzi a subiektywną opinią, którą przedstawiam w celach edukacyjnych. Bawicie się Kali Linux na własne ryzyko, wszelkie poniesione szkody, komplikacje, inne zdarzenia są wyłącznie Waszą odpowiedzialną decyzją. A za dzieci odpowiadają rodzice w większości cywilizowanych krajów.  

Jak pewnie większość z Was zdaje sobie sprawę, w Kali Linux mamy wielki potencjał do testów bezpieczeństwa. Tzn. są tam fantastycznie skatalogowane zestawy narzędzi do różnych typów działań w obszarze tzw. bezpieczeństwa IT. Oto lista kategorii, w których w Kali Linux możemy dotrzeć do profesjonalnych narzędzi pentesterskich tzn. otwartego oprogramowania, wolnego od licencji, dzięki któremu możemy wyszukiwać różne informacje, dane, błędy, naruszenia i wady systemów operacyjnych, protokołów oraz aplikacji.

Do czego ja używałem Kali Linux - wyłącznie do rozwiązywania na nim zadań w ramach tzw. konkursów CTF, czyli "capture the flag". Są to odbywające się weekendowo wyzwania dla zaawansowanych użytkowników komputerów, w których zagadki zaczynają się od banalnych binarnych trickach, poprzez rekonesans na gotowych wirtualnych maszynach, analizę obrazów i ukrytych w nich szyfrów, zagadnienia sieciowe, XSS, SQL Incection, wady serwerwów www, autorskie dekodowanie kart perforowanych i wiele na prawdę ambitnych zagadek  a kończą na odnajdywaniu przy pomocy dekompilacji kodu asemblera nieznanego procesora jakich instrukcji, które zawieszą kod programu :-)

Tak, około roku zabawy na takich konkursach potrafi wzmocnić umiejętności rozwiązywania "różnych" incydentów w IT. Spokojnie polecam dołączenie do zespołu lub indywidualne startowanie w konkursach CTF - co ciekawe, odkrywając flagę za każdym razem uczymy się czegoś nowego o IT. Tak, to zajęcie uczy tzw. szacunku do problemów zawodowych oraz postrzegania tego, co jest na prawdę ważne, wnikliwości i tego jak szybko jesteśmy w stanie nauczyć się np: nowego języka programowania w kilka godzin, aby móc zdebugować w nim quasi-program. 

Kali Linux to nie tyle system operacyjny do CTFów, ale przede wszystkich zwykły Linuxowy OS do codziennego użytku dla ludzi z branży IT. Chciałem w dalszej części skoncentrować się na jednym ciekawym przypadku, który rozgrzebałem technicznie i stał się na tyle podejrzany dla mnie w dystrybucji Kali Linux w odniesieniu do Ubuntu Linux, że zechciałem o nim wspomnieć.

Jakiś czas temu zrobiłem ciekawy switch i mając Ubuntu 20.04 LTS wykonałem niniejsze polecenia, które zamieniły mojego Ubuntu w Kali - to bardzo fajne tricki możliwe w Linuxowym świecie :-) 



Tak na marginesie: jak wiemy Windows zamieni się niebawem w Lindowsa i możliwe, że też jednym pstryczkiem, ale za tym stoi wielka maszyneria biznesowa, aby nie utrzymywać swojego dość wadliwego jądra. Tak mam na myśli M$, który porzuciłem ~20 lat temu w domu i pracy, co bardzo otworzyło mi oczy i nie to była dość trafiona decyzja. Tak, wiem Azure to już w większości Linux od wielu lat i M$ też wie jak kompilować jądro i dopisują swoje rzeczy do kernela ... ale ta firma nie robi nic bezinteresownie, bo każda firma z założenia zarabia. Nawet wtedy, kiedy musi porzucić swój plan budowy jądra systemu operacyjnego a bierze Linux Kernel z Open Source, pisząc wszem i wobec, że "my też to stworzyliśmy". I mają prawo tak rzec, bo commitują swoje zmiany do kernela LInuxa, ale jak wiemy, w tych czasach marketing może robić z takimi działaniami cuda.

Powracając do myśli przewodniej, jestem zadowolony z Kali Linux jako desktopowego Linuxa i polubiłem ten zestaw narzędzi do CTFów, którego używam czasami do rozwiązywania problem, które zdarzają się przy produkcji oprogramowania. Jedna sprawa mnie zmartwiła w wersji Kali 2020.3:

$ lsb_release -a

No LSB modules are available.

Distributor ID: Kali

Description: Kali GNU/Linux Rolling

Release: 2020.3

Codename: kali-rolling


Otóż po jakimś czasie - odtwarzalne na trzech różnych maszynach - pojawiły się nierozwiązywalne metodą "--fix-*" z apt-get konflikty, przy poleceniu standardowym aktualizacji paczek systemowych:

sudo apt-get upgrade

Wygląda to mniej więcej tak:

$ sudo apt-get upgrade 

Czytanie list pakietów... Gotowe

Budowanie drzewa zależności       

Odczyt informacji o stanie... Gotowe

Należy uruchomić "apt --fix-broken install", aby je naprawić.

Następujące pakiety mają niespełnione zależności:

 gnome-control-center : Wymaga: gnome-control-center-data (>= 1:3.36.4-1) ale 1:3.36.4-0ubuntu1 jest zainstalowany

 gnustep-base-runtime : Wymaga: libobjc4 (>= 4.2.1) ale nie jest zainstalowany

 libgnustep-base1.27 : Wymaga: libobjc4 (>= 4.6) ale nie jest zainstalowany

E: Niespełnione zależności. Proszę spróbować wykonać "apt --fix-broken install" bez pakietów (lub podać rozwiązanie).

i co najgorsze zachowuje się bardzo słabo w naprawie i skutki są dość słabe. Po kolei:

- wykonanie w/w apt'a z zalecanym "--fix-broken" powoduje, że nie może wykonać się do końca poprawnie, brakuje mu obrazka

$ sudo apt --fix-broken install

Czytanie list pakietów... Gotowe

Budowanie drzewa zależności       

Odczyt informacji o stanie... Gotowe

Naprawianie zależności... Gotowe

Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej wymagane:

  cryptsetup-nuke-password efibootmgr finalrd fonts-wine gnome-control-center-faces gparted-common

  grub-efi-amd64-bin humanity-icon-theme kpeople-vcard libboost-filesystem1.67.0 libboost-system1.67.0

  libboost-thread1.67.0 libcapi20-3 libdb5.3:i386 libebml4v5 libfaudio0 libfprint-2-tod1

  libgsoap-2.8.91 libgtkmm-2.4-1v5 libgtkspell0 libhogweed5 libigdgmm11 libkaccounts1

  libkf5contacts-data libkf5contacts5 libkyotocabinet16v5 liblz1 libmatroska6v5 libmng2 libnettle7

  libnfsidmap2 libnumbertext-1.0-0 libnumbertext-data libopenshot-audio6 libopenshot16 libopenvdb7.0

  libpcre2-8-0:i386 libplacebo7 libpoppler82 libprotobuf-lite22 libprotobuf22 libqrcodegencpp1

  libqxp-0.0-0 libsrt1 libstaroffice-0.0-0 libstb0 libtokyocabinet9 libtsk13 libvkd3d1 libvolume-key1

  libwagon-http-shaded-java libwhisker2-perl libwine libzmf-0.0-0 node-normalize.css

  python-backports.functools-lru-cache python-bs4 python-html5lib python-lxml python-numpy

  python-soupsieve python-webencodings python3-ecdsa python3-entrypoints python3-pycryptodome rpcbind

  shim ssh-import-id ubuntu-mono wine64

Aby je usunąć należy użyć "sudo apt autoremove".

The following additional packages will be installed:

  gnome-control-center-data guile-2.2-libs inkscape libgc1 libgdl-3-5 libgdl-3-common libgsl25

  libgslcblas0 libgtkspell3-3-0 libmailutils7 libmariadb3 libobjc4 mailutils mailutils-common

  mariadb-common

Sugerowane pakiety:

  inkscape-tutorials libsvg-perl libxml-xql-perl pstoedit python3-uniconvertor gsl-ref-psdoc

  | gsl-doc-pdf | gsl-doc-info | gsl-ref-html mailutils-mh mailutils-doc

Polecane pakiety:

  python3-scour

Następujące pakiety zostaną USUNIĘTE:

  libgc1c2 libgsl23 libmailutils6

Zostaną zainstalowane następujące NOWE pakiety:

  libgc1 libgdl-3-5 libgdl-3-common libgsl25 libgtkspell3-3-0 libmailutils7 libmariadb3 libobjc4

  mariadb-common

Następujące pakiety zostaną zaktualizowane:

  gnome-control-center-data guile-2.2-libs inkscape libgslcblas0 mailutils mailutils-common

6 aktualizowanych, 9 nowo instalowanych, 3 usuwanych i 763 nieaktualizowanych.

841 nie w pełni zainstalowanych lub usuniętych.

Konieczne pobranie 0 B/28,4 MB archiwów.

Po tej operacji zostanie dodatkowo użyte 25,4 MB miejsca na dysku.

Kontynuować? [T/n] T

Konfigurowanie pakietu libgcc-s1:amd64 (10.2.0-9) ...

Konfigurowanie pakietu libseccomp2:amd64 (2.4.4-1) ...

(Odczytywanie bazy danych ... 647544 pliki i katalogi obecnie zainstalowane.)

Przygotowywanie do rozpakowania pakietu .../gnome-control-center-data_1%3a3.36.4-1_all.deb ...

Rozpakowywanie pakietu gnome-control-center-data (1:3.36.4-1) nad (1:3.36.4-0ubuntu1) ...

dpkg: błąd przetwarzania archiwum /var/cache/apt/archives/gnome-control-center-data_1%3a3.36.4-1_all.deb 

(--unpack):

 próba nadpisania "/usr/share/pixmaps/faces/bicycle.jpg", który istnieje także w pakiecie gnome-control-center-data

enter-faces 1:3.36.4-0ubuntu1

dpkg-deb: błąd: podproces wklej został zabity sygnałem (Przerwany potok)

- uruchamia się w nieskończoność appport raportujący te błędy, przez co syslog osiąga GB wielkości i zapycha dysk, dalej jest już wiadomo bardzo trudno pracować na systemie z 0 miejsca na partycji systemowej !

- problem jest słabo opisany w sieci i jedyny motyw na odzyskanie miejsca na dysku to usunięcie z /var/crash/ plików !!!


$ ll /var/crash/gnome-control-center-data.0.crash 

-rw------- 1 root whoopsie 386566 paź  9 17:42 /var/crash/gnome-control-center-data.0.crash

$ sudo rm /var/crash/gnome-control-center-data.0.crash 


Uważam, że to jest dość ważny aspekt, aby takie narzędzie jak apt działało poprawnie i tutaj w Kali Linux spotkałem się z mega blokadą, nie pomaga dist-upgrade, nie pomaga szukanie dziury w całym przy pomocy strace, kończy się tym, co kojarzę z RedHat sprzed 20 lat, tzn. chcesz mieć spełnione zależności, to sobie je spełnij sam :-) Rozumiem, że osoba która jest wydawca pakietu mogłaby mnie wspomóc w temacie, o ile to problem z pakietem - nie wydaje mi się, bo próbowałem też dpkg i efekt jest identyczny.

Inny drobny brak w distro Kali Linux - tak mogę to określić - to niedziałająca domyślna obsługa filesystemów takich jak vboxfs (chciałbym sobie na vagrancie i virtualbox zrobić testy), czy LUKS (chciałbym odczytywać szyfrowane wolumeny). Rozumiem, że to sobie mogę doinstalować, ale niespodzianką było dla mnie włożenie pendrive z zaszyfrowanymi danymi przy pomocy LUKS w Kali Linux nie skutkuje automontowaniem i pytaniem o hasło. W Ubuntu Linux takie rozwiązania działają z paczki. Tak, wiem Kali Linux nie do tego celu był stworzony i nie chcę się o to spierać :-) Nadmieniam tylko, że nie zawsze potrzebujemy specjalnej dystrybucji, która rozwiązuje nasze potrzeby. Twierdzę, że czysta (z linii LTS) wersja Ubuntu jest na tyle wytestowana przez userów i naprawiana na bieżąco przez devów, że o wiele prościej rozwiązuje się takie codzienne zagadki jak te z aptem opisane powyżej w Kali Linux.

Reasumując - polecam pomimo opisanych incydentów Kali Linux zaawansowanym użytkownikom i profesjonalistom, zniechęcam amatorów i noobów :-)

Ubuntu Linux po kilkunastu latach trenowania/testowania/używania/pracy/zabawy/odkrywania przedstawił mi się w wersji 20.04 LTS jako system dość dobrze ustabilizowany w codziennym użytkowaniu do pracy i w zastosowaniach  domowych. Polecam Ubuntu Linux, bo jeśli z Windows znane są Wam nadmiarowe programy ochronne, które musicie tam posiadać, bo trojan i wirus czeka, aby się zemścić - to w Ubuntu Linux firewalle, snorty, auditlogi są dość uproszczone i nie wyżerają 30% CPUs a pozwalają na bezpieczną pracę i zabawę również na desktopie.

Brak komentarzy: