none
xp_cmdshell, sql server 2005 express RRS feed

  • Domanda

  • Salve,

    mi sono dati i diritti di esecuzione, sulle superfici di attacco, per xp_cmdshell.

    Provando con dei semplici comandi built-in del dos funziona perfettamente.

    Poi ho provato ad eseguire un mio programma, in Delphi, che invia sendmessages a windows tramite le api di quest'ultimo.

    Però eseguito sotto xp_cmdshell non funziona mentre se lo lancio al di fuori di sql funziona perfettamente (ovviamente ho scritto anche un server che riceve i messaggi).

    Ho quindi provato a configurare anche il proxy

    EXEC sp_xp_cmdshell_proxy_account 'dominio\n.utente','password'
    
    
    GO
    
    EXECUTE AS LOGIN = 'dominio\n.utente' ;
    GO
    xp_cmdshell 'D:\Delphi\prova_invio_click_messaggi\send_message_console.exe' ;
    REVERT ; 
    

    ma senza successo. All'interno del codice send_message_console.exe faccio creare un file che viene creato sotto C:\windows\system32 (come mai?) mentre il sendmessages non arriva alla mia parte server.

    Cosa posso ancora provare?

    Grazie


    • Modificato ugaciaka venerdì 25 novembre 2011 10:29
    venerdì 25 novembre 2011 08:01

Risposte

  • Un buon controtest sarebbe evitare di usare la cartella system32 che tipicamente è blindata.. :)

    Se hai la possibilità, ricompila il tuo eseguibile usando un'altra cartella come appoggio per i tuoi sendmessage!

    Come controtest, fai lanciare da xp_cmdshell il comando "ipconfig >> c:\windows\system32\file.txt" e vedi se funziona.. se non và, c'è qualcosa di sbagliato nell'utente che lo esegue, probabilmente l'impersonificazione non è riuscita per qualche motivo.

    giovedì 6 dicembre 2012 09:26