Process Agent MultiThreaded
Un agente in VB (multithread/multiuser) per il controllo remoto dei processi
Vi propongo un programma un po' articolato che consente il controllo dei processi di un computer remoto da parte di più utenti. Il programma è comunque di tipo didattico, ovvero deve essere migliorato e completato ma sono sicuro che vi interesserà in quanto fornirò questa prima versione in versione sorgente (completamente aperto) e commentato (quanto più possibile).
Il programma si rivolge a tutti ma se non riuscite ad afferrare tutto subito non vi preoccupate dato che bisogna avere ben presenti concetti (di programmazione di rete e di gestione del sistema) che qualcuno potrebbe attualmente ignorare. Sono comunque disponibile - limitatamente al tempo disponibile - a dare chiarimenti su richiesta.
Il codice è scritto in VB.NET (la versione originaria è in C# e, usa l'inglese) per facilitare la comprensione a chi ha confidenza solamente con questo linguaggio. Il tipo di progetto è un "Servizio NT" (NT Service, per meglio capire di cosa si parla, leggere questa introduzione
Il nome
Il nome del servizio è "ProcAgentMT" (Process Agent MultiThreaded).
Cosa fa
L'eseguibile viene installato nel computer in cui gira come "servizio" e si pone in attesa di richieste di comunicazioni in rete su una particolare porta, come farebbe un server (nota bene: l'installazione avviene a cura dell'amministratore, in maniera del tutto "trasparente" e "consapevole"; sia chiaro che non risponderò a nessuna richiesta di supporto per la realizzazione di malware tramite questo progetto).
Essendo un servizio, viene sempre eseguito in background, 24 ore su 24, anche se non viene effettuato alcun login sul computer (è adatto ad essere installato ed eseguito in server che non sono gestiti).
Una volta contattato sulla porta corretta, genera un thread per il nuovo utente e dialoga con questo consentendogli di eseguire particolari comandi da remoto che permettono una parziale gestione dei processi del server.
E' possibile gestire una semplice password per l'autenticazione al servizio, attualmente solo a livello di sistema e non di utente (è una possibile evoluzione del programma); la password è in chiaro come tutta la comunicazione (anche questa è una possibilità di miglioramento in versioni successive). Il servizio gestisce connessioni multiple da diversi client e da diversi utenti.
Come è realizzato
Il servizio è scritto in VB.NET e sfrutta il Framework 4.0 (viene utilizzato Visual Studio 2010). La creazione tramite versione Express non è direttamente possibile (vedere google per aggirare il problema) ma - come detto - fornirò il progetto completo di sorgente in modo che possiate utilizzarlo direttamente.
Come si usa
Una volta avviato, il servizio può essere contattato da n utenti sia con un programma client appositamente scritto (di cui non presento nessun esempio) o, più semplicemente tramite il comando TELNET (come mostrato negli esempi seguenti).
Attenzione ! Il servizio opera con le credenziali del sistema operativo e quindi espone il sistema stesso a possibili intrusioni remote che possono comprometterlo. Operate sempre su sistemi di test, poco importanti o non collegati ad Internet e, soprattutto, limitatamente al periodo di test. Quando non utilizzato, vi consiglio di arrestare il servizio.
La versione presentata
E' la 1.0 (ovviamente) e dispone delle funzionalità di base. Tanto si può migliorare (e vi darò alcune idee) ma ci vuole un po' di tempo e - magari - collaborazione. E' fornita sia in formato sorgente, sia in binario (gli eseguibili da installare).
Lo schema funzionale è il
Il progetto completo, in formato sorgente, potete scaricarlo in un file .zip da
La spiegazione completa del progetto e del suo codice, potete scaricarla in formato Word, da
Sono un bel po' di pagine ... buona lettura (a chi avrà la pazienza di leggerlo).
Ovviamente, accetto suggerimenti ... @System32 @Garu
Un agente in VB (multithread/multiuser) per il controllo remoto dei processi
Vi propongo un programma un po' articolato che consente il controllo dei processi di un computer remoto da parte di più utenti. Il programma è comunque di tipo didattico, ovvero deve essere migliorato e completato ma sono sicuro che vi interesserà in quanto fornirò questa prima versione in versione sorgente (completamente aperto) e commentato (quanto più possibile).
Il programma si rivolge a tutti ma se non riuscite ad afferrare tutto subito non vi preoccupate dato che bisogna avere ben presenti concetti (di programmazione di rete e di gestione del sistema) che qualcuno potrebbe attualmente ignorare. Sono comunque disponibile - limitatamente al tempo disponibile - a dare chiarimenti su richiesta.
Il codice è scritto in VB.NET (la versione originaria è in C# e, usa l'inglese) per facilitare la comprensione a chi ha confidenza solamente con questo linguaggio. Il tipo di progetto è un "Servizio NT" (NT Service, per meglio capire di cosa si parla, leggere questa introduzione
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
). Da questo momento mi riferirò all'applicazione chiamandolo anche "servizio".Il nome
Il nome del servizio è "ProcAgentMT" (Process Agent MultiThreaded).
Cosa fa
L'eseguibile viene installato nel computer in cui gira come "servizio" e si pone in attesa di richieste di comunicazioni in rete su una particolare porta, come farebbe un server (nota bene: l'installazione avviene a cura dell'amministratore, in maniera del tutto "trasparente" e "consapevole"; sia chiaro che non risponderò a nessuna richiesta di supporto per la realizzazione di malware tramite questo progetto).
Essendo un servizio, viene sempre eseguito in background, 24 ore su 24, anche se non viene effettuato alcun login sul computer (è adatto ad essere installato ed eseguito in server che non sono gestiti).
Una volta contattato sulla porta corretta, genera un thread per il nuovo utente e dialoga con questo consentendogli di eseguire particolari comandi da remoto che permettono una parziale gestione dei processi del server.
E' possibile gestire una semplice password per l'autenticazione al servizio, attualmente solo a livello di sistema e non di utente (è una possibile evoluzione del programma); la password è in chiaro come tutta la comunicazione (anche questa è una possibilità di miglioramento in versioni successive). Il servizio gestisce connessioni multiple da diversi client e da diversi utenti.
Come è realizzato
Il servizio è scritto in VB.NET e sfrutta il Framework 4.0 (viene utilizzato Visual Studio 2010). La creazione tramite versione Express non è direttamente possibile (vedere google per aggirare il problema) ma - come detto - fornirò il progetto completo di sorgente in modo che possiate utilizzarlo direttamente.
Come si usa
Una volta avviato, il servizio può essere contattato da n utenti sia con un programma client appositamente scritto (di cui non presento nessun esempio) o, più semplicemente tramite il comando TELNET (come mostrato negli esempi seguenti).
Attenzione ! Il servizio opera con le credenziali del sistema operativo e quindi espone il sistema stesso a possibili intrusioni remote che possono comprometterlo. Operate sempre su sistemi di test, poco importanti o non collegati ad Internet e, soprattutto, limitatamente al periodo di test. Quando non utilizzato, vi consiglio di arrestare il servizio.
La versione presentata
E' la 1.0 (ovviamente) e dispone delle funzionalità di base. Tanto si può migliorare (e vi darò alcune idee) ma ci vuole un po' di tempo e - magari - collaborazione. E' fornita sia in formato sorgente, sia in binario (gli eseguibili da installare).
Lo schema funzionale è il
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
Il progetto completo, in formato sorgente, potete scaricarlo in un file .zip da
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
La spiegazione completa del progetto e del suo codice, potete scaricarla in formato Word, da
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
.Sono un bel po' di pagine ... buona lettura (a chi avrà la pazienza di leggerlo).
Ovviamente, accetto suggerimenti ... @System32 @Garu