Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ipmi — Roba IPMI dal lavoro DARPA | Kitploit
Strumenti/GitHubGitHub/zenfish/ipmi
Password CrackingRicognizioneMappatura della ReteScansione PorteAnalisi delle VulnerabilitàAudit di ConfigurazioneRaccolta InformazioniPenetration TestingSicurezza HardwareAutenticazione
GitHub
766281 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
zenfish/ipmi

ipmi

Roba IPMI dal lavoro DARPA

Vedi Repository

Ho scritto alcuni software per esplorare IPMI; ecco alcuni dei risultati. Ho pensato di fare il solito ciclo di rilevamento, acquisizione dati e audit. Ognuno di questi si è rivelato un problema piuttosto interessante di per sé, almeno per me.

BTW/FYI - Ho rilasciato un nuovo strumento per esplorare IPMI - https://github.com/zenfish/zipmi - così come una serie di ricette/immagini/etc. di Qemu per eseguire BMC come sistemi virtuali sotto Qemu su https://github.com/zenfish/zbmc.

Sito web IPMI

I documenti e le cose da http://fish2.com/ipmi

html

Cracking delle password

Ecco un piccolo programma Perl che tenta di indovinare un account su un BMC remoto, estrarne l'hash, e poi provare a craccare la sua password (hashata con HMAC). Ho scritto un piccolo articolo su questo per i curiosi. Pesantemente commentato, potrebbe essere utile.

Ottenere i cipher

La specifica IPMI dice che puoi ottenere i cipher di un sistema remoto senza alcuna autenticazione, ma non sono a conoscenza di alcuno strumento che lo faccia davvero (tutti richiedono autenticazione, anche se ovviamente potresti inserire i byte hex grezzi se volessi!) Quindi ho scritto questo piccolo programma per farlo; per lo più cerca di seguire l'output di ipmitool; nel farlo credo di aver trovato un bug in quell'utilità (nell'ultima riga a volte i sistemi emettono della spazzatura che sembra essere interpretata male), ma chi lo sa, non ho abbastanza sistemi per testarlo. Comunque... ipmi-get-ciphers.py.

Se non altro, utile per individuare sistemi Cipher0 (nota - questo indica semplicemente i cipher supportati - non significa che siano effettivamente attivi), ma ci sono cose interessanti in giro.

Ottenere i dettagli di autenticazione

Due programmi qui, uno è un semplice prober remoto in Python (sto iniziando a odiare Perl, ve lo dico io) e un secondo che usa le utilità di FreeIPMI per recuperare dati di configurazione con credenziali.

Un piccolo programma Python (oltre il 50% di commenti inline, 2.5k gzip'd) che invia un singolo pacchetto a un BMC e riflette sulla risposta. Cosa puoi fare con un solo pacchetto, uno potrebbe chiedere? 10+ diversi test di sicurezza per IPMI, tanto per cominciare. Beh, tanto per cominciare e per finire, è solo un pacchetto :) Richiede Python, un BMC e un percorso aperto verso la porta UDP 623 per funzionare. L'uso è semplicemente "ipmi-get-auth.py target".

ipmi-get-auth.py / Una descrizione molto breve

Portando questo agli estremi... beh, ecco una specie di versione mega di quanto sopra che lo fa per tutti i canali, tutti i privilegi, tutti... beh, avete capito. Per i monomaniaci (leggete i commenti o il post che ho scritto al riguardo per capire perché fa quello che fa!)

mega_chan.py / Mega mega mega ... chan chan chan...

Ottenere l'ID del dispositivo (GUID)

Ed ecco un semplice programma per inviare un pacchetto Get Device ID (vedi p250 della specifica IPMI v 2) a un sistema. Questo dovrebbe, in teoria, funzionare senza autenticazione. In una piccola indagine che ho condotto, circa il 90% dei sistemi ha risposto a questo (anche se non tutti con informazioni valide!) A volte puoi ottenere il vendor e altre informazioni, come numeri di modello e simili, ma la cosa più interessante è ottenere un ID univoco, tradizionalmente una cosa difficile da ottenere via rete.

get-ipmi-guid.py / Get Device ID

Estrarre le password da un file di password binario SuperMicro

Supermicro ha avuto alcuni problemi con la divulgazione dei file di password dai loro BMC - per esempio, vedi questo e altri articoli:

a-penetration-testers-guide-to-ipmi

Per usare questo script basta dire:

dump_SM.py password_file

Funziona per me, nessuna garanzia implicita, garantita, ecc.

Rilevamento

Beh, se puoi parlare con la porta UDP 623, è abbastanza semplice scoprire se un sistema remoto sta eseguendo IPMI. A meno che tu non sia dentro un data center, comunque, la maggior parte delle persone blocca UDP. E anche se non lo fanno... la scansione UDP è lenta quanto si possa immaginare. Quindi attualmente sto usando due metodi di base, sfruttando il venerabile Nmap e ipmiping (dagli strumenti GNU FreeIPMI.) La cosa più semplice da fare è:

  • Usare ipmiping per chiedere a un sistema remoto se parla IPMI o no. Una risposta positiva è l'indicazione più forte che un sistema parla IPMI (ma nulla è certo!) Più tecnicamente invia due chiamate Get Channel Authentication Capabilities IPMI tramite un datagramma di richiesta Get Channel Authentication Capabilities sulla porta UDP 623 (due richieste poiché usa UDP, e le connessioni non sono garantite.)
    </p> <p>
    
    Poiché Nmap è molto più efficiente nella scansione di reti su larga scala
    rispetto a ipmiping, questo metodo viene usato solo se Nmap dice che un host
    ha la porta UDP 623 aperta.
    
    </p> <p>
    
    Nel bene e nel male questa porta è spesso bloccata, quindi molte
    volte altri metodi hanno più probabilità di scoprire indirettamente se
    IPMI è in esecuzione o no.
    
  • Il secondo metodo è un po' vago, e si basa su un po' di induzione (ovvero congetture.) Nmap scansiona le porte note per essere associate a IPMI e alle aggiunte dei vendor; UDP 623 è ovvia (la porta IPMI predefinita), ma ci sono una varietà di porte (sia UDP che TCP) che da sole potrebbero non dare subito una risposta, ma prese nel loro insieme possono indicare fortemente la sua presenza. TFTP, SNMP, SSH/SMASH, VNC e molti altri sono tra queste.
    </p> <p>
    
    Le porte sono pesate in base alla loro capacità indicativa e al fatto che
    Nmap le trovi aperte, filtrate o in altri stati.
    
    </p> <p>
    
    Nmap può anche mostrare i banner dei servizi a cui si connette. Uso
    espressioni regolari per cercare i target - per esempio le stringhe
    "iLO" e "DRAC" sono buoni indicatori che un sistema potrebbe eseguire
    il servizio Integrated Lights Out di HP, o iLO.
    
    </p> <p>
    
    <strong>Nota:</strong> Attualmente NON uso il metodo del
    ping broadcast (un modo molto rapido per attraversare la sottorete in cui
    ti trovi); semplicemente non ho dati sull'efficacia
    di questo; anche se molto veloce quando funziona, non mi sembrava che
    permettesse il controllo e l'affidabilità delle scansioni arbitrarie.
    Due dei miei tre sistemi (Dell e HP) hanno risposto a un
    ping RMCP. Nessuno ha risposto a un ping broadcast di idiscover
    (ipmiutil discover.) Tutti, comunque, hanno risposto al mio
    strumento di audit Python qui sotto.
    
    </p> <p>
    
Scarica lo strumento