GNU/Linux >> Znalost Linux >  >> Linux

Linux sysadmins:Pochopte sílu ncat, abyste se vyhnuli náhodným bezpečnostním rizikům

ncat command je součástí sady nmap a byl napsán speciálně pro ni. Je pravda, že ncat má tolik použití jako slavný švýcarský armádní nůž, ale může být stejně nebezpečný při nesprávném použití nebo při použití zlomyslnými herci. Jednou z jeho silných stránek je ncat může být klient i server. Tento článek se zaměřuje na jeden aspekt tohoto vztahu. Ukážu vám, jak otevřít naslouchací bash shell pomocí ncat ke kterému má kdokoli přístup pomocí ncat jako klient. V mém článku Odstraňování problémů s Linuxem:Nastavení TCP listeneru s ncat popisuji, jak nastavit ncat jako posluchač nebo server, který naslouchá na konkrétním portu. Tento příklad je podobný, ale myslím, že na vás udělá dojem naprostá síla, kterou ncat dává ti. Také by vás to mělo vyděsit – hodně.

Nainstalovat ncat

Zkontrolujte svůj systém pod /usr/bin nejprve se podívejte, zda potřebujete nainstalovat ncat . Obvykle je součástí jakékoli distribuce založené na Linuxu Red Hat Enterprise. Pokud zjistíte, že jej potřebujete nainstalovat, název balíčku je nmap-ncat . Buď můžete nainstalovat ncat nebo si nainstalujte nmap a nmap-ncat balíček se nainstaluje jako závislost.

Použijte ncat

Nezadávejte ncat příkazy jako root, zejména pro příklady v tomto článku. Pokud tak učiníte, umožníte komukoli mít přístup root k vašemu systému bez ověřování. Každý uživatel může vydat ncat příkazy, což je jedna z jeho vlastností i jedno z jeho nebezpečí. Navrhuji, abyste si vytvořili servisní účet a pracovali s ncat pomocí toho účtu. Věřte mi, slyšel jsem každý argument pro a proti servisním účtům, ale jakmile uvidíte ncat v akci budete chtít používat servisní účet pro interakce s ním.

Doručit bash shell

Toto je ta zábavná (a nebezpečná) část používání ncat . Přepněte uživatele na svůj nový servisní účet. Své jsem pojmenoval stydlivý .

[ken@server1 ~] $ su - bashful
Password: 
[bashful@server1 ~] $

Nyní, když jste přepnuli uživatelské účty, je čas otevřít tento shell. Poskytuje neověřený přístup k vašemu systému přes většinou interaktivní shell. Jakmile se připojíte, uvidíte, co myslím pod pojmem „převážně“ interaktivní. Tento další příkaz používá ncat spustit bash shell, který naslouchá na TCP portu. V tomto příkladu používám port 9922 na server1 (192.168.1.50). -l možnost nastaví naslouchací port. -k volba je příznak keepalive, který udržuje soket. Pokud nevydáte -k možnost, pak zásuvka po odpojení relace zanikne a nelze k ní vytvořit žádná další připojení.

[bashful@server1 ~] $ ncat -e "/bin/bash" -l 9922 -k &

-e volba provede příkaz v uvozovkách, což je v našem případě bash shell (/bin/bash ). Používám ampersand (& ) za příkazem k uvolnění mého promptu a vložte ncat posluchač do režimu na pozadí. Pokud nepoužijete & , pak se váš terminál „zasekne“ a nedovolí vám s ním komunikovat. Pokud to pro vás není problém, nechte to tak, jak je.

Vydání netstat příkaz ukazuje, že posluchač je na svém místě.

[bashful@server1 ~]$ netstat -an |grep 9922
tcp        0      0 0.0.0.0:9922            0.0.0.0:*               LISTEN     
tcp6       0      0 :::9922                 :::*                    LISTEN     
[bashful@server1 ~]$

Chcete-li se připojit k naslouchajícímu portu ze vzdáleného systému, musíte také otevřít výjimku v hostitelském firewallu pro port 9922.

[ken@server1 ~]$ sudo firewall-cmd --add-port=9922/tcp
success

Vidíte zde failsafe? Je to výjimka brány firewall, kterou jsem musel vytvořit pomocí svého účtu a sudo . Pokud máte spuštěný hostitelský firewall nebo IPTables (a měli byste je mít), pak tato služba nebude fungovat, dokud tento port nepovolíte, což znamená, že žádný běžný uživatel nemůže tuto službu zprovoznit bez administrativního přístupu. Jinak by uživatelé vzdělaní v ncat otevírali porty všude a přiváděli vás k šílenství. Nemluvě o bezpečnostních problémech, které byste měli. Odbočuji.

Přístup k shellu ze vzdáleného systému

Nyní můžete přistupovat k bash shellu ze vzdáleného systému na portu 9922.

[ken@server2 ~]$ ncat 192.168.1.50 9922

Ze serveru2 , zadejte ncat příkaz s cílovou IP adresou server1 a naslouchací port 9922. Jakmile se připojíte, nic se nestane, nebo tomu alespoň můžete věřit, protože se zdá, že se terminál nějak zasekává. Ale to, co se ve skutečnosti děje, je, že komunikujete s nezpracovaným socketem, a proto neuvidíte výzvu. Dokažte to vydáním who příkaz.

[ken@server2 ~]$ ncat 192.168.1.50 9922
who
ken    pts/0        2020-08-26 13:39 (server2)

Můžete vydat jakýkoli příkaz, který si přejete, aby se uživatel stydlil má přístup k. Pokud zadáte příkaz, který vyžaduje přístup root, pravděpodobně neuvidíte odpověď. Zdá se, že terminál zůstane v „zavěšeném“ stavu. Vaše odpověď se skutečně objeví na terminálu server1 . Pokud například zadáte následující příkaz:

firewall-cmd --list-all

Na server2 nevidíte nic obrazovka 's. Na server1 's se objeví následující:

[bashful@server1 ~]$ Authorization failed.
    Make sure polkit agent is running or run the application as superuser.

Chcete-li se odpojit od serveru2 's tajný shell, stiskněte Ctrl+C kombinaci a vrátí se místní výzva.

V práci to nezkoušejte

Jen tak pro zábavu, nebo pokud mi nevěříte, zabijte aktuální ncat proces pomocí vašeho servisního účtu nebo jako root. Poté znovu zadejte stejný příkaz jako uživatel root, abyste provedli bash shell jako root. Znovu se připojte ze vzdáleného systému a znovu zadejte příkaz brány firewall. Tentokrát uvidíte výsledky. Jako uživatel root můžete zadat jakýkoli příkaz, což je důvod, proč nikdy nechcete nastavit tento typ služby jako uživatel root.

A nyní vidíte skutečné nebezpečí používání ncat jako kořen. Zlomyslní aktéři nastaví takový shell na tajném portu, který projde skenováním portu, a budou mít úplný root přístup bez ověření.

Sbalit

Velmi užitečný a potenciálně velmi nebezpečný ncat velení je váš nejlepší přítel a váš nejhorší nepřítel. Jako každý jiný nástroj v kůlně nemá žádný jiný záměr, než jaký mu dáte. Měli byste si prostudovat ncat příkaz, jeho použití a omezení ve vašem prostředí. Nezapomeňte zabít všechny ncat proces, který nechcete nepřetržitě spouštět, jakmile s ním skončíte, a odstraňte výjimku brány firewall, která umožňuje jeho přístup. Také si pamatujte, že s velkou mocí přichází schopnost opravdu věci podělat.

[ Chcete si vyzkoušet své schopnosti správce systému? Proveďte hodnocení dovedností ještě dnes. ]


Linux
  1. Nastavení přesměrování portů v Linuxu pomocí ncat

  2. Příkaz Ncat Linux

  3. Zkontrolujte použití portu v Linuxu

  1. Jak změnit port SSH v Linuxu

  2. Linux sysadmins:Pochopte sílu ncat, abyste se vyhnuli náhodným bezpečnostním rizikům

  3. Linux USB:zapínání a vypínání napájení?

  1. 13 kurzů zabezpečení Linuxu

  2. Linux – rozumíte přihlašování v Linuxu?

  3. Linux – sériový port Raspberrypi?