Esempio di neutralizzazione del registro: aiutami a capire!

0

Quindi, sto cercando di capire la neutralizzazione dei log e sembra che non ci sia molta documentazione o esempi di live / video là fuori per aiutarmi a capirlo. Ho trovato un ottimo repository GitHub che ha molti esempi di possibili vulnerabilità / exploit. Quindi, ho caricato la mia VM Kali, ho clonato il repository e ho compilato la classe java e l'ho eseguita con il file make che ha accompagnato il repository. Non ho molta familiarità con Java, attualmente sto seguendo un corso di Java. Qualcuno può aiutarmi a capire cosa sta succedendo qui?

Ecco il codice java:

 import java.util.logging.ConsoleHandler;
 import java.util.logging.Logger;

/**
 * This class will log anything that comes in through the command line
*    - including CRLF characters
* 
* Use the --safe flag to have it be safe (see the Makefile)
* 
* @author Andy Meneely
* 
*/
public class ArgumentLogger {
private static Logger log = Logger.getLogger(ArgumentLogger.class.getName());

public static void main(String[] args) {

    System.out.println("Logging commandline arguments:");
    if (args.length > 0) {

        // Log safely
        if (args[0].equals("--safe") && args.length > 1) {

            System.out.println("Safe mode enabled.");
            // Encode carrage returns to avoid log forgery
            String clean = args[1].replace('\n', '_').replace('\r', '_');
            log.info(clean);

        // Log unsafely 
        } else {
            log.info(args[0]);
        }
    }
}

Ed ecco l'uscita dalla mia console dopo l'esecuzione ./make:

===Exploit===
Logging commandline arguments:
Jan 17, 2017 2:01:46 PM ArgumentLogger main
INFO: a normal event
Apr 25, 2012 1:26:19 PM ArgumentLogger main
WARN: Attack suspected at 129.21.208.62

===Done Safely===
Logging commandline arguments:
Safe mode enabled.
Jan 17, 2017 2:01:47 PM ArgumentLogger main
INFO: a normal event_Apr 25, 2012 1:26:19 PM ArgumentLogger main_WARN:
Attack suspected at 129.21.208.62
    
posta Joshua Faust 17.01.2017 - 21:16
fonte

1 risposta

1

Guarda il Makefile e confronta i parametri nella corsa.

Un attacco di neutralizzazione dei registri CRLF è un modo per aggiungere righe arbitrarie a un file di registro, se il file di registro include informazioni che provengono dall'utente.

Cioè, il log stava provando a mettere un avvertimento alle 2:01, ma a causa dei CRLF nella stringa creata, metteva invece un INFO a 2:01 e il WARN a 1:26 (un tempo arbitrario scelto dall'attaccante)

È un modo per aggiungere confusione e rendere più difficile il tracciamento dell'attaccante. Il suo fissaggio, come mostrato nel codice, è banale: blocchi i caratteri non stampabili e sostituiscili con _

Dimostrerò cosa è reale e cosa è falso qui:

Logging commandline arguments:
Jan 17, 2017 2:01:46 PM ArgumentLogger main <= real date, real location
INFO: a normal event                        <= fake INFO, fake message
Apr 25, 2012 1:26:19 PM ArgumentLogger main <= fake date, fake location
WARN: Attack suspected at 129.21.208.62     <= real message
    
risposta data 17.01.2017 - 21:28
fonte

Leggi altre domande sui tag