Accedi per seguire   
Seguaci 0
drake88

[vb] Chiusura Programmi

13 messaggi in questa discussione

salve a tutti

avrei bisogno di una mano, in visual basic 6 x chiudere un processo attivo, si puo usare il tskill, xrò alcuni programmi come firewall nn si chiudono. ossia vedono la richiesta di chiusura e la bloccano, questo xche nn si hanno maggiori privilegi.

avevo gia letto una discussione di questo tipo in un altra sezione, mi sembra...

volevo sapere come fare ad ottenere maggiori privilegi con il tskill

oppure come aveva detto ceccus si poteva utilizzare il "terminate process" xrò il codice nn lo capito sinceramente :P e poi nn sapevo quale API utilizzare :)

ciao ciao :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ecco un esempio semplice semplice :)

Dim Processo As Variant

Function TerminaProcesso(NomeProcesso As String)
   For Each Processo In GetObject("winmgmts:").InstancesOf("win32_process")
       If Processo.Name = NomeProcesso Then Processo.Terminate
   Next
End Function

La funzione TerminaProcesso può essere chiamata ed esempio in questo modo:

TerminaProcesso "notepad.exe"

Se ci sono problemi chiedi pure :up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

grazie Bug! di funzionare funziona, xrò ce sempre lo stesso problema, il firewall t dice il messaggio "questa applicazione sta cercando di chiudere questo processo, acconsenti?"

e io e proprio questo che voglio eliminare, il fatto e che con quella procedura nn si hanno i piu alti livelli di privilegio. quindi t chiedi il permesso. come faccio ad avere il massimo livello?

grazie tanto della disponibilità :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il problema è dato dal firewall, in ogni caso, vedendo la richiesta di terminare il processo, ti darebbe quel messaggio.

I possibili rimedi possono essere:

  • (il più drastico) Togliere il firewall
  • Se possibile far vedere il programma come "affidabile" tra i trust

:up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

oppure si potrebbe provare col processo dell'injection, ne ho sentito parlare, in pratica invia a un altra applicazione il codice del programma che hai avviato, una sorta di masceramento!

ma nn ho la piu pallida idea da dove iniziare, sembra incasinato come discorso!

tu lo sai fare?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non ho capito cosa intendi :P

Se riesci a spiegarmi il funzionamento più dettagliatamente possiamo provare :up1:

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

eh cerco di spiegarti quello che so, e che ho sentito... allora in pratica tu crei un programma che quando lo avvii si collega a un determinato posto(internet) ora, il firewall t avvert che quel programma sta cercando di accedere a internet o a collegarsi a qualcuno, ecco con l'injection, appena avvii il programma lui manda il codice, esempio: winsock1.connect bla bla bla a un altro programma attivo, esempio internet explorer. cosi il firewall t dice che e internet explorer che sta cercando di accedere a internet (ma col codice che gli ha iniettato il tuo programma) cosi in sostanza mascheri il tuo programma... ora nn so se si puo iniettare direttamente cosice VB oppure solo codice di una DLL esistente...

piu o meno e cosi la situazione... se magari usi msn ci possiamo sentire cosi t spiego meglio...

ciau :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
eh cerco di spiegarti quello che so, e che ho sentito... allora in pratica tu crei un programma che quando lo avvii si collega a un determinato posto(internet) ora, il firewall t avvert che quel programma sta cercando di accedere a internet o a collegarsi a qualcuno, ecco con l'injection, appena avvii il programma lui manda il codice, esempio: winsock1.connect bla bla bla a un altro programma attivo, esempio internet explorer. cosi il firewall t dice che e internet explorer che sta cercando di accedere a internet (ma col codice che gli ha iniettato il tuo programma) cosi in sostanza mascheri il tuo programma... ora nn so se si puo iniettare direttamente cosice VB oppure solo codice di una DLL esistente...

piu o meno e cosi la situazione... se magari usi msn ci possiamo sentire cosi t spiego meglio...

ciau :)

127637[/snapback]

Prima di lasciare la palla a bug, toglimi una curiosità, cosa vorresti realizzare? :P :P :wub:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

umh, no il programma lo gia realizzato, ma appunto voglio levare sto problema..

un semplice programma client-server basato sul winsock... il client invia un comando il server lo esegue...

:):P:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
umh, no il programma lo gia realizzato, ma appunto voglio levare sto problema..

un semplice programma client-server basato sul winsock... il client invia un comando il server lo esegue...

:P  :P  :wub:

127770[/snapback]

Il client invia il comando, il server termina il processo? :):P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

no il server esegue il comando :P

se poi il comando e di terminare il processo, si allora si :P:wub::P:)

hai capito la cosa dell'injection bug?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
no il server esegue il comando :P

se poi il comando e di terminare il processo, si allora si :wub:  :P  ;)  :)

hai capito la cosa dell'injection bug?

128000[/snapback]

Ciao Drake,

Penso tu stia parlando del code injection.

Esistono diverse tecniche per realizzare questo tipo di hack. Io non sono un programmatore Visual Basic, quindi non entrerò nei dettagli implementativi per questo linguaggio. A dire il vero non entrerò nel dettaglio implementativo di nessun linguaggio, visto che questa tecnica può essere utilizzata per creare del codice nocivo, vorrei evitare di realizzare un mini-manuale per il piccolo lamer (o cracker in erba).

Due tecniche che permettono di mascherarsi prendono il nome, rispettivamente, di:

- DLL Injection

- Shatter Attack

Introduzione

Per mettere in pratica le tecniche seguenti si dovrebbe avere una buona dimestichezza con le API di Windows e con il funzionamento di un S.O. come Windows NT (XP utilizza tecnologia NT).

Tutti i programmi che vengono eseguiti in Windows (XP) sono, in realtà, dei processi. Ad ogni processo il S.O. assegna uno spazio ben preciso (che permette di evitare il crash del sistema al crash di un singolo processo, e che rende i sistemi NT molto più stabili dei precedenti windows). In pratica viene riservata una specifica zona di memoria per ogni processo in esecuzione. All'interno di questa zona di memoria sono presenti sia il codice del programma che i dati veri e propri. Questa zona di memoria è chiusa. Nel senso che ogni processo vive all'interno della propria zona e nessun altro processo vi può accedere (a parte casi particolari :dia: ). Visto che ogni processo, in Windows NT, viene tracciato e contrasegnato, per nascondere il nostro programma dobbiamo far credere al S.O. che ad eseguire quelle istruzioni in realtà è un altro processo... Ma come?

Il trucco sta nel nascondere le nostre istruzioni nella memoria di un altro processo e poi eseguirle, rendendoci così invisibili agli occhi di un utente, in quanto nessuno si aspetta che all'interno del processo di Internet Explorer o di Windows Media Player vengano eseguite operazioni malevole (ma tu non vuoi compiere azioni malevole, vero drake? n.d.r). A questo punto ci vengono in aiuto quei casi particolari accennati in precedenza. In particolar modo, ci viene in aiuto il S.O. stesso. Esistono infatti, tra le API di windows, alcune funzioni di debugging, utilizzate per testare il funzionamento di un programma, che permettono di accedere alla memoria di un processo ed eseguire delle istruzioni.

queste funzioni hanno una particolarità: eseguono le loro operazioni su di un processo diverso da quello che le ha chiamate. E' possibile utilizzarle, quindi, per inserire le nostre istruzioni e i nostri dati in un altro processo.

Invece di rendere invisibile il processo che deve svolgere determinate istruzioni, le istruzioni verranno eseguite da qualche altro processo. In questo modo è possibile

utilizzare Internet Explorer per eludere le regole di un firewall (anche se è possibile fare mooooooooolto altro :dia: ).

DLL Injection

Adesso che conosciamo la teoria generale, vediamo nel dettaglio come funziona uno dei metodi più conosciuto di code injection.

Questo tipo di injection esegue quattro passi fondamentali:

1. Aprire il processo remoto.

2. Allocare uno spazio di memoria

3. Scrivere sullo spazio allocato le nostre istruzioni o i nostri dati

4. Avviare un thread sul processo remoto

Il metodo più diretto è quello di iniettare le istruzioni direttamente nel processo vittima ed eseguirle, però per fare ciò si dovrebbero scrivere le istruzioni direttamente in codice macchina (codice esadecimale). Sarebbe quindi utile una buona conoscenza del linguaggio assembly e degli shellcode (tecnica che sfrutta bug di programma per deviare il flusso del codice)

La tecnica Dll Injection permette di raggiungere lo stesso scopo in maniera più semplice. Verrà creata una dll. Questo permetterà di:

eseguire istruzioni appena la dll viene caricata in memoria; accedere a qualsiasi indirizzo di memoria del processo bersaglio.

Questo tipo di dll è molto semplice e del tutto simile ad un eseguibile.

(non si creerà nessuna funzione da esportare). Sapendo infatti che quando una dll viene caricata in memoria con la funzione LoadLibrary(), vengono eseguite delle istruzioni per inizializzare correttamente la dll, si sfrutta questo momento per far eseguire al processo vittima del codice.

Ultimamente la tecnica Dll Injection è molto utilizzata da virus, spyware, e sono state trovate diverse contromisure. Infatti provando questa tecnica su computer protetti da alcuni firewall questo attacco può essere fermato. Ciò è possibile creando degli hook nelle funzioni di debugging, ovvero esse vengono modificate aggiungendo delle chiamate ad altre funzioni contollate dal firewall, che chiedono all'utente se permettere l'operazione (facendo scoprire una qualche azione non autorizzata), oppure possono bloccare un determinato programma che cerca di accedere a queste funzioni (ma visto che tu non vuoi creare qualcosa di nocivo, non dovresti preoccuparti di tutto questo, vero? :dia: ).

Shatter Attack

Lo Shatter Attack è una tecnica non molto conosciuta e anche difficile da attuare, ma è uno strumento potente ed interessante. Esso è nato come un tipo di attacco ai sistemi Windows, che permetteva ad un utente locale di scalare i privilegi (diventando amministratore della macchina). Ultimamente non è più molto utilizzata per questo scopo, ma ha trovato una nuova applicazione nel nascondere ed eseguire del codice nel contesto di un altro processo.

Questa tecnica si basa su una importante utilità dei sistemi a finestre come quello di Windows: la possibilità di scambiarsi i messaggi tra le vare finestre, i bottoni, i menu e tutte le componenti di un programma.

Quando un programma viene caricato, ad ogni elemento presente in una finestra viene assegnato un numero di identificazione, ed è possibile inviare dei messaggi (utili per la gestione di questi elementi) in qualsiasi momento.

Il problema però è che questi messaggi possono provenire da qualsiasi fonte e non sono in alcun modo identificabili, infatti qualsiasi programma potrebbe inviare dei messaggi alle componenti di un altro, aspettando che vengano processati. Ed è proprio questo difetto di costruzione di Windows che viene utilizzato.

Ciao ciao :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

si esatto il DLL injection :wub:

quello che hai scritto gia lo sapevo, mi manca solo la pratica direi ;)

cmq hai ragione nn e il caso di scrivere codice visto che potrebbe essere usato da lamer x altri scopi. poi il codice io gia ce lo, ma nn lo capisco :)

cmq grazie x la spiegazione (la seconda nn la conoscevo^^)

P.S. nn sono ne un lamer ne un cracker in erba :P

:P:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0