Python Nivel Básico [Parte I]

Introducción
  En esta guía veremos python desde cero. Desde como descargar nuestro compilador, hasta como hacer grandes programas.
  Python es un lenguaje scripting ya que no es necesario compilarlo para verlo funcionar.
  Es un lenguaje multiplataforma, ya que no solo se usa en Windows, sino que también se puede usar en Linux, MAC, Etc.
  Una de las ventajas es que es un lenguaje muy prolijo y entendible a la hora de programar. Es un lenguaje muy fácil de aprender y de interpretar.
  Este lenguaje es muy potente, ya que se pueden compilar exploits para explotar vulnerabilidades

Programas necesarios
  Si bien se pueden usar diferentes compiladores o interpretadores, yo recomiendo por comodidad el Active Python.
Presionamos en Download Active Python

 Como se ve en la imagen, tenemos de x86 (32 bits) o x64 (64 bits) debemos descargar de a cuerdo a la PC en la que lo usaremos. Para aquellos que no sepan cual de los dos tienen. Deben ir a Panel de Control > Sistema

 
En mi caso es de 64bits
Una vez descargado e instalado, vamos a:
INICIO > EJECUTAR > COMMAND (En Windows 95,98)
INICIO > EJECUTAR > CMD  (En Windows XP)
INICIO > EN LA BARRA BUSCAR > CMD (En Windows Vista y 7)
Y dentro de la consola escribimos python


Si nos aparece eso, es porque quedo instalado correctamente.


Primeros pasos en Python
  Comenzaremos con programas básicos. Si bien habíamos dicho en la introducción, python es un lenguaje scripting ya que no es necesario compilarlo para poder ver el programa en funcionamiento.
  Dentro de la consola, pondremos 7+7

Rápidamente nos hará el cálculo.
  Python se caracteriza por ser una potente calculadora. Es por eso que ahora probaremos con algo más avanzado.
  En la consola pondremos 56+28-34*6
 Ahora también podemos trabajar con variables, asignándoles algún valor.
  Podemos probar con X=2
  Seguido a esto colocamos 120*X
 
Hasta el momento se ve muy fácil y básico, aunque también muy ya que tipear comandos desde la consola no es muy gustoso.
  Vamos a:
INICIO > Buscar > pythonwin (Windows XP)
INICIO > En la barra de búsqueda > pythonwin (Windows 7)
Tendremos un entorno grafico mucho más amigable y nos permitirá crear programas complejos con más de una línea de comandos.
Es similar a la consola que usamos anteriormente, solo que este muestra los comandos con colores para asegurarnos de que lo estamos haciendo bien y no cometemos errores.
  Si bien dije antes, se puede usar para hacer scripts más complejos. Presionamos en New y seleccionamos Python Script.
 

Ponemos algo fácil
 
  En este caso asigne mi apodo a la variable x
  Y el comando print es para que me imprima un texto en la pantalla.
  Para verlo funcionar, vamos a FILE > SAVE AS…
 Lo guardamos con extensión .py y listo!
Podemos cerrar el compilador de scripts del programa y volveremos a la pantalla principal del programa.

 Veremos un muñeco “corriendo” este botón es para correr el programa (hacerlo funcionar)
Nos aseguramos que la ruta del directorio sea la correcta y damos en OK. En caso de que no aparezca ninguna ruta, damos click en Browse… y buscamos el Script que creamos.
Una vez dado en OK, podremos visualizar el resultado de nuestro primer programa

Aclaraciones generales

  Comando PRINT, Se utiliza para mostrar un texto en pantalla. Se utiliza escribiendo el comando seguido de el texto que deseamos que muestre en comillas.
  Ejemplo: print “hola”
  En este caso mostrara hola en pantalla.
  Como vimos antes, es posible sumar, restar, multiplicar, dividir, etc… Pero no solo se hace con números sino que también con letras y palabras.
  En el ejemplo de nuestro primer programa reemplace la variable X por mi apodo.
X= “ANTRAX”
Luego, puse el comando print para que el programa me dé una especie de saludo.
Print “Hola ” + x
  Como resultado obtuve un Hola ANTRAX, ya que me sumo las dos cadenas de texto.
  Como se ve en el programa y en el ejemplo, escribí el Hola seguido de un espacio y luego cerré las comillas, esto se usa para que el programa al ejecutarlo deje un espacio en el medio.

Antena casera Para modem 3G Parte II

Bueno, no me sentia comodo con la antena que hice antes, asique me largue a mas.

Este metodo es un 101%efectivo. ya que el cable de la antena no se movera.

Para esto necesitaremos:

- Cable bien finito
- Soldador
- Estaño

-----------------------------------------------------

1) Abrimos el modem cuidadosamente:



Quitamos los 3 tornillos de la parte de arriba para que solo nos quede la placa de abajo que es la que posee el conector de la antena.

2) Lo que hice aca, fue doblar la ficha hacia arriba y soldarle un pequeño cablecito en el conductor de el medio.
Una vez soldado, aislamos con un poquitito de cinta aislante.


3) Cerramos otra vez el modem



4) Enchufamos la antena al cablecito nuevo

Y ya no tendremos problemas de que se mueva el cable, o que se toquen entre ellos.

Antena casera para Modem 3G (Claro, Personal, Movistar, Etc)

Bueno, vi que los modems de 3G tienen un pequeño conector hembra para poder colocar la antena. La cosa es que en donde yo vivo no tengo buena señal, y queria comprar una antena. lo malo de esto es que cuesta 75 dolares...

Empece a buscar en google, y vi que alguien pudo hacer una antena casera. Cuando la vi por imagenes, se me vinieron ideas de como mejorarla y como optimizar el rendimiento.

Aca empiezo:

Materiales:

- 2 Sujeta papeles metalicos
- Un poco de cable
- Una antena cualquiera ( de radio, tv, parabolica o lo que sea)
- Un poco de aluminio (opcional)
- Un modem de 3G (claro, personal, movistar, etc)
- Pinza, corta cable, y cinta aislante


1) Bueno, en esta imagen podemos visualizar el conector hembra, que es la entrada de la antena:


2) Agarramos los dos sujeta papeles, y los abrimos.


A estos los usaremos para hacer contacto en el conector hembra del modem.

3) Conectamos ambos alambritos en el conector hembra:


Como se puede ver, he introducido un alambre por el centro del agujero, y el otro esta tocando la chapita dorada del costado.

IMPORTANTE! LOS ALAMBRES NO DEBEN TOCARSE!

4) Conectamos el cable a los alambritos


5) Por ultimo conectamos los cables a la antena que tengamos. En este caso le adicione un poco de aluminio para que tenga mayor recepcion.



Y aunque no crean, tengo señal 3G!!

aca les dejo una escala de velocidades:


Y aca les dejo la velocidad que tengo actualmente:


Como ven en la escala, de velocidades, la HSDPA y es la que tengo en este momento.

Sin esta antena, tenia EDEGE.

La diferencia esta en el color de las luces del modem.

Verde: GSM, GPRS, EDEGE (Las mas bajas) 2G
Celeste o Azul: WCDMA, HSDPA (Las mas altas) 3G

Taller de Malwares #1 [Troyanos]


Un poco de historia
  La palabra troyano, viene de la historia del caballo de Troya…
  Para los que no conozcan, el caballo de Troya era un enorme caballo de madera que fue construido por los griegos según cuenta la odisea de Homero. El caballo era un obsequio para los troyanos con los cuales estaban en guerra. Era un regalo de rendición.
  Lo que los troyanos no sabían era que caballo tenía en su interior soldados griegos. Una vez que el caballo estuvo dentro de Troya, los soldados salieron y atacaron la ciudad. Así fue como lograron penetrar las enormes murallas troyanas y ganaron la guerra.
  En el mundo informática, los troyanos cumplen una función muy similar. Nos permiten acceder a otros ordenadores sin levantar muchas sospechas.

Evolución de los troyanos

  Antiguamente los troyanos eran de conexión directa, esto quiere decir que nosotros debíamos conectarnos con nuestro remoto. A continuación les mostrare un ejemplo con un troyano llamado Theef
Como pueden ver en la imagen, tuve que colocar la ip y puerto de conexión del remoto. En este caso es 127.0.0.1 ya que lo estoy testeando en mi PC como local.
  Lo malo que tenían estos troyanos es que solo se podía conectar de a un remoto por vez y también debíamos saber su IP…
  Por suerte en la actualidad hay troyanos de conexión inversa en donde podemos tener más de una conexión al mismo tiempo y no necesitamos saber su IP para conectarnos.
  A continuación les mostrare una captura de un troyano muy conocido llamado Bifrost.
Como pueden ver en la imagen, aparece una especie de grilla, en donde se irán listando los remotos cada vez que uno entre a internet y se conecte a nuestro troyano.

  A diferencia del anterior, no tuvimos que poner ip del remoto ni nada de eso, ya que automáticamente al ser de conexión inversa, el remoto conecta a nosotros.

  Otro de los avances son las opciones que tienen cada uno. Cuando hablamos de opciones, hacemos referencia a lo que podemos hacer con los troyanos. Antiguamente se usaban para abrir y cerrar la puerta del CD-ROM, apagar la pantalla y otras tareas no muy útiles. En la actualidad los troyanos realizan varias funciones, como por ejemplo capturar teclas pulsadas, permiten manipularle el teclado y el mouse a nuestro remoto, nos muestran passwords almacenadas en el ordenador, traen opciones de rootkit integradas ya que podemos ocultar el proceso u ocultarlo en otro, cambia la fecha de creación para no levantar sospechas, etc. También podemos manipular sus ficheros, eliminar, modificar, crear… entre otras opciones que iremos viendo a lo largo de estas entregas.


Partes de un troyano

  Un troyano consta de dos partes fundamentales. Un cliente y un servidor.

  Cliente, es aquel que usaremos nosotros para conectarnos con nuestro remoto

  Servidor, es el que debemos enviar para infectar a nuestro remoto.

  A continuación les mostrare como se ve cada uno.
  En este caso es el Bifrost versión 1.2d, el cliente de este troyano edita al servidor que viene afuera.

  Existen troyanos que son server builder, esto quiere decir que el stub del servidor está adentro del cliente. Como por ejemplo el troyano Spy-Net.
  Como vemos en la imagen, solo está el cliente, ya que el mismo cliente se encarga de configurar y crear el servidor. En otras palabras podemos decir que el servidor está adentro del cliente.

  Muy rara vez, algunos troyanos suelen venir con un Edit Server que es el que edita los datos de conexión del servidor.


Troyanos públicos y privados

  Podemos clasificar los troyanos en dos grandes grupos, en los cuales tenemos los públicos y los privados.

  Cuando decimos troyanos públicos, hacemos referencia a troyanos liberados por los programadores, para que cualquier usuario pueda tener acceso a él y lo pueda utilizar libremente.

  Los troyanos privados son troyanos que están en venta y deberá pagarse una suma de dinero al programador para poder tener acceso a él. Estos troyanos suelen venir con algún tipo de protección como por ejemplo Hardware ID, acceso con usuario y contraseña entre otro tipo de protecciones para que no puedan ser liberados. También suelen tener opciones adicionales hechas a medida. A demás de esto suelen ser indetectables y vienen con garantía.

  A la larga siempre hay alguien que libera los troyanos privados, esto suele ocurrir por que sale una nueva versión y el programador decide liberarlo y vender la nueva versión o también puede ser que algún usuario disconforme con el programador decide crackearlo y liberarlo para que todos tengan acceso a él.


Formas de infección

  Existen muchas formas de infecciones que a lo largo de estas entregas iremos desarrollando con mayor claridad. Por ahora solo las nombraremos y detallaremos brevemente.

  Infección por P2P: Se les dice P2P a los programas que utilizamos para descargar música, videos, programas, etc. Como lo son el Ares, Emule, Lime Wire, entre otros. La infección por P2P consiste en colocar un servidor de un troyano en la carpeta compartida para que otras personas lo descarguen y se infecten.

  Infección por URL: Consiste en subir un server a un host, y por medio de un script hacer que se ejecute solo en el ordenador remoto cuando se visite ese link.

  Infección por MSN: La infección por MSN o también conocida como propagación por MSN, consiste en una infección en cadena, ya que se infecta a un contacto, este infecta a los suyos, a su vez esos a los suyos formando una cadena de infección.

  Infección por IRC: La infección por IRC suele ser igual a la de MSN ya que infecta a la gente de diferentes canales.

  Infección a través de Exploit: Esta otra infección aprovecha fallas de los navegadores para infectar, es algo similar a la infección por URL.

  Infección por Cadenas de Mail: son los que suelen venir adjuntos junto con cadenas que recibimos por mail.

  Infección por Warez: Esto suele verse en foros en donde usuarios postean programas, y estos suelen venir unidos con algún troyano.

Infección por Autorun: Cada vez que conectamos o insertamos un medio extraíble, ya sea USB, CD-ROM, Etc. Sale una reproducción automática, esta reproducción automática es debido a un Autorun que ejecuta un programa y muestra un icono, lo que se hace es editar ese Autorun para que cuando se conecte un medio extraíble se ejecute automáticamente el server.

  Probablemente todos los que usan MSN, mas de una vez habrán visto algún contacto que envía “fotos” o direcciones web un poco inusuales… siempre que encontremos esto, es porque estamos frente a una propagación por MSN.

  También es probable que hayamos entrado a una web y el antivirus nos haya dado una alerta, en este caso es porque estamos frente a una infección por URL… Y así encontraremos miles de ejemplos de formas de infección.


Camuflaje

  En la actualidad la mayoría de los troyanos traen opciones para ocultar los servidores en ordenadores remotos.

  Tenemos por ejemplo los rootkits que suelen venir con el troyano, cuya función es ocultar el servidor en algún proceso, o hacer este proceso invisible para que nuestro remoto se dé cuenta. También tenemos la opción muy usada de cambiar el icono y reemplazarlo por alguno de una imagen, programa, documento, etc. con el fin de que nuestro objetivo piense que es un archivo inofensivo. Otros también suelen unirlo con algún joiner entonces al abrir una imagen, archivo, documento o con lo que haya sido unido, este ejecute a su vez el servidor que viene adentro.

  Cuando hablábamos de métodos de infección, es obvio que en todos los casos el servidor va con un camuflaje, ya que de lo contrario nadie lo abriría.


Indetectabilidad

  A lo largo de estas entregas, iré mostrando distintos métodos de Indetectabilidad. Por ahora solo lo veremos muy por encima para que vean de qué se trata.

  Seguramente pensaran, “Yo tengo antivirus, y no me voy a infectar…” Los que dicen o piensan eso, es porque seguramente no han leído nada al respecto.

  A lo largo de estas revistas iremos viendo distintas formas de pasar las protecciones y a su vez iremos analizando de qué formas podemos protegernos para evitar que nos infecten a nosotros.

  Por ahora lo que nos interesa sabes son las formas de Indetectabilidad que existen.

  Como dijimos en la primera entrega, el Stub es el corazón de nuestro ejecutable. Es el que contiene toda la información que necesitamos que posea nuestro servidor, para que conecte con nosotros.

  En todos los métodos de Indetectabilidad, se aplican a ese Stub…

  No nombrare todos los métodos, pero si los más importantes:

Por Código Fuente: Consiste en editar el código fuente de algún malware para dejarlo indetectable

Edición Hexadecimal: Se edita el Stub modificando offsets detectados por los antivirus para que estos lo dejen de detectar.

Utilizando un Crypter: Al pasarle un crypter al servidor, este encripta la información del Stub del servidor y lo deja indetectable siempre y cuando el crypter sea FUD.

Ediciones de saltos: Usualmente se utiliza un debugger como por ejemplo el Olly, editando saltos, PUSH, etc.

  Existen otros, pero no quiero complicarlos tanto con esto, es por eso que pararemos aquí, y más adelante iremos desarrollando y explicando con tranquilidad los métodos que hay.


¿Cómo selecciono un Troyano?

  La mejor forma de seleccionar un troyano, es sabiendo que es lo que se desea hacer, ya que hay troyanos simples, y otros más completos que esta sobre entendido que contienen más opciones, pero tienen la desventajas de no ser muy estables.

  Para saber si los troyanos son estables o no, es necesario saber en qué lenguaje fue programado.

  Como ya sabrán los lenguajes más potentes son los de más bajo nivel (Binario, ASM), luego siguen los de medio nivel (C/C++), y finalmente los de alto nivel que son el resto (VB, Java, Delphi que son los más usados, entre otros).

  Les enseñare rápidamente como identificar en que lenguaje están programados los troyanos.

  Con un editor hexadecimal, abrimos el ejecutable y buscamos alguna línea del código que nos diga algo referido al lenguaje con el cual fue programado.


  Por ejemplo el Spy-Net
Delphi


Otro ejemplo con el IndSocket RAT

Visual Basic

  De esta manera podremos ir viendo con que lenguaje fue hecho y que estabilidad posee.

  Estabilidad quiere decir que la conexión no se caiga, o sea que no se nos desconecte cuando la PC remota se reinicie, que no se bloquee el proceso, etc.

  Los troyanos más estables son el Bifrost y Poison Ivy, ya que sus servidores están hechos en ASM, pero ya no son muy usados, ya que no son compatibles al 100% con Windows Vista, Seven y ocho. En cambio el Spy-Net que está hecho en Delphi si lo es.

  Sigamos con más características…

  Necesitamos saber qué Sistema Operativo es el que tiene nuestro objetivo.

  En caso de que sea Windows XP, se puede usar el Bifrost, o Poison Ivy que son los más estables. Pero en caso de que sea Windows 7 o Vista, deberemos optar por otro que si sea compatible como lo es el Spy-Net, IndSocket RAT, SS-RAT, Entre otros que a demás tienen muchas más opciones que no trae ni el Bifrost y Poison Ivy, pero con menos estabilidad.

  También podemos elegir el Troyano dependiendo de lo que queramos hacer, y dependiendo de las opciones que traiga.

  Más adelante iremos analizando cada troyano (los más usados) con las opciones que trae cada uno con sus ventajas y desventajas.


EOF Data

  Troyanos como el Bifrost, Turkojan, Biohazard, entre otros poseen algo llamado EOF Data (End Of File Data).

  Para saber que es, lo mostrare en una imagen:

  Como podemos ver, es el final del código mostrado con un editor hexadecimal, y claramente podemos ver la NO-IP w300.no-ip.org que es a la DNS que conecta este servidor.

  Quiere decir que en el final del código posee información de la conexión.

  A la hora de utilizar este tipo de troyanos deberemos usar Crypters con soporte EOF para dejarlos indetectables. Esto se debe a que el crypter copia esa información del final, y la vuelve a dejar igual en el servidor final de forma intacta y sin romperlo para que vuelva a conectar.


¿Cómo configuro un troyano?

Una vez que tengamos seleccionado el troyano, lo que sigue es configurarlo para poder infectar a alguien.

En esta primera parte solamente nos basaremos en la autoinfección, mas adelante iremos viendo como indetectar nuestros servers, como ocultarlos y demás…

Usare el troyano Spy-Net 2.6 para esta entrega.

Una vez descargado, lo ejecutamos y veremos el siguiente cartel:
Le damos a Yes si queremos que muestre información de nuestro equipo, sino en NO.
 
Demos click en START. Seguido a esto, pasaremos el troyano en español.
Una vez en español, pasaremos a configurar el cliente

En mi caso dejare los 3 que vienen por defecto, aunque solamente utilizare uno solo que será el 81.

También colocaremos una Contraseña de conexión.

Damos en Guardar y el cliente quedara finalizado.

Ahora pasaremos al Server.
Vamos a Archivo, Nuevo

 
Damos en el botón NUEVO y colocamos un usuario. Este usuario será el que contendrá nuestra configuración.

Como esta vez solo veremos lo que es la autoinfección, dejaremos la IP local que es 127.0.0.1

En identificación ira el nombre para diferenciar al remoto de los demás infectados.

Y la contraseña será la misma que pusimos cuando configuramos el cliente.

Vamos a la siguiente pestaña (Instalación)

Bajo mi punto de vista, es la parte más importante…

Aquí configuraremos la ubicación en donde se instalara el server en el ordenador remoto.

Seleccionamos un directorio de instalación, yo coloque el de Windows ya que dudo de que algún usuario revise ese lugar.

Luego en la parte de arranque, será la parte del registro en la cual estará nuestro server. Esto es para que el troyano inicie junto con el sistema operativo.

Coloque SoundRealtek para confundirlo con el sonido.

Luego colocamos un nombre al directorio y uno al fichero, recuerden siempre ser lo menos obvio posibles. De esto depende gran parte del camuflaje.

Modificamos el mutex, y colocamos persistencia en el server.

Nos aseguramos de que este activado el Keylogger. Si desean pueden hacer que envíe los logs por FTP.

Como punto final, creamos el server. Revisen las opciones marcadas, cada uno las coloca a gusto.

Guardamos la configuración nuestra

Y finalmente ejecutaremos el server para ver si conecta
Si damos click secundario al remoto, podremos ver las opciones disponibles