Quali strumenti esistono per decifrare, disabilitare e annullare gli effetti di un binario Linux malevolo? [chiuso]

0

Sono un Penetration Tester di rete e sto cercando di imparare come crackare i binari. Come esercizio, ho passato due giorni a cercare di decifrare un binario Linux che si supponeva fosse progettato per essere rotto. Cercare sul web e provare quello che so su Linux è stato finora infruttuoso. Sono stato in grado di trovare la parola "PAsswOrd" usando le "stringhe" dell'utilità Linux. Quando lo invio, le uscite binarie "devi provare di più". Eseguendo l'eseguibile produce "Non sono di tua proprietà".

Mi rendo conto che ho bisogno di sapere quali strumenti esistono al di là delle semplici utility Linux per svelare l'eseguibile. Non sto chiedendo alcuna parte della soluzione o un insieme di istruzioni. Sarebbe utile solo una sorta di punto di partenza, dal momento che non vedo alcuna domanda SO o formazione online che fornisca questo.

    
posta user7451333 21.02.2017 - 14:32
fonte

1 risposta

0

Quello che stai facendo è chiamato reverse engineering un eseguibile. Non è insolito per una persona che sta codificando con difficoltà una password nel codice sorgente (una strategia di sicurezza orribile) per fare un tentativo amatoriale di impedire che appaia nei dati statici intatti. Tuttavia, la password PAssw0rd potrebbe non essere affatto correlata a quella attuale. Le varie risposte del programma sono ovviamente intenzionali, quindi PAssw0rd potrebbe essere un'aringa deliberata.

Diversi strumenti sono comuni negli sforzi di reverse engineering.

  1. Il comando "file" che prende il percorso del file come primo parametro in modo da poter determinare (nella maggior parte dei casi) quale tipo di eseguibile si ha.
  2. Disassemblatori che mostrano ESATTAMENTE ciò che fa l'eseguibile ma è difficile da leggere per quelli che non scrivono codice assembly su quella specifica architettura o hanno esperienza con il disassemblaggio.
  3. I decompilatori come Boomerang, Hex-rays e Snowman possono fornire una maggiore leggibilità, ma non ripristinano i nomi delle variabili effettive o la sintassi del programma originale e non sono affidabili al 100%, specialmente nei casi in cui gli ingegneri che hanno creato il eseguibile testato con questi pacchetti e cercato di offuscare ulteriormente la sicurezza.
  4. Diagrammi o tabelle di flusso dei dati. Non conosco nessuno strumento gratuito per farlo automaticamente, ma uno script Python o Bash sopra l'analizzatore di testo dell'output dell'assembly (che può essere scritto in sed o Perl) può essere utile.
  5. Matita e carta, che ci crediate o no, per annotare i flussi e le idee

Un approccio comune consiste nel cercare due elementi nel codice decompilato o disassemblato.

  1. Funzioni crittografiche, come un algoritmo di hash o di cifratura
  2. L'utente richiede la password e la successiva lettura del file voce utente

Questi sono i due endpoint nel flusso di dati. Dovrai eseguire il back-trace dal punto in cui la password immette gli algoritmi di crittografia e inoltrare la voce utente della password, sperando di trovare dove si incontrano i due estremi.

Una volta tracciato il percorso tra la voce utente e i componenti di autenticazione, sarai in grado di vedere il meccanismo in mezzo. Se la sicurezza è stata eseguita correttamente, sarà un valore hash correttamente creato e il tuo tentativo terminerà male, ma ho il sospetto che, essendo un esercizio, i risultati favorevoli saranno possibili.

    
risposta data 21.02.2017 - 19:44
fonte

Leggi altre domande sui tag