Instalacion y Configuracion de VirtualBox

Introduccion:
  Hola a todos! Soy ANTRAX. En este tutorial les mostrare como instalar y configurar una maquina virtual para que puedan hacer mods o testeos de malwares.
  En este caso les enseñare como hacerlo con la Virtualbox.
La Virtualbox la pueden descargar de su web oficial:

Instalacion:
  Una vez descargado, lo ejecutamos

Damos en Next

Aceptamos y damos en Next

Damos en Next

Aca nos dice que se crearan los iconos del programa. Damos a Next.

Aca dice que se desconectara la red mientras se instala la maquina virtual. Damos en Yes

Damos en Install, y se comenzara a instalar.
Una vez finalizado, lo ejecutamos.

Configuracion de la Maquina Virtual
Yo utilizare un Windows XP SP3
Iniciamos la VirtualBox

Damos en Nueva.

Damos en Siguiente.

Le asignamos un nombre a la maquina virtual, y seleccionamos el sistema operativo que instalaremos.

 
Aca le asignamos la memoria RAM que deseamos que tenga. (esto varía dependiendo de la memoria RAM que tengamos en nuestra PC)

Una vez que ya le dimos la memoria RAM que utilizara, pasaremos a darle un espacio en el Disco Duro.
Como bien muestra la imagen, vamos a seleccionar Usar un disco duro existente y damos click en el icono del fichero.

Al no tener uno creado, haremos uno nuevo.
Damos click en Nuevo.

Seleccionamos la opción de Almacenamiento de tamaño fijo.

Seleccionamos la opción de Almacenamiento de tamaño fijo.


Damos en el fichero para seleccionar en donde queremos que se guarde.
En mi caso cree una partición solo para la maquina virtual. Que es el Disco local G.
Como ven en la imagen, esta vacio ya que solo usare esta partición que tiene un tamaño de 29GB para usarlo con la maquina virtual

Le damos el tamaño que deseamos, en mi caso le di casi los 29GB

Por ultimo damos en terminar.

Instalación del SO:
  Pasaremos a instalar el sistema operativo.

Una vez que ya creamos el perfil, damos en Iniciar.
Insertamos el CD de Windows.

Colocamos para que bootee desde el CD que hemos puesto y reiniciamos

Una vez reiniciada, nos dara las opciones para que instalemos el sistema operativo.

Aquí solo debemos esperar a que reconozca todo lo que tenemos instalado.

Presionamos ENTER para instalar
Damos un pequeño formato rápido en NTFS y esperamos a que se instale...

Solo nos queda esperar un momento a que se formatee, e instale los nuevos archivos.
Una vez finalizado. Tendremos nuestro Sistema operativo instalado
Conexión a internet:

Por suerte en VirtualBox esto es automatico. Solo debemos ir a:
Dispositivos > Instalar <<Guest Additions>>...

Y listo! Tendremos internet en la virtual.

Pasar Archivos de PC a virtual y viceversa:

Lo que hago yo es muy sencillo. Utilizo un Pendrive.
Enchufamos el Pendrive en la PC.

 

Introducimos el Archivo que deseamos pasar
 

 Ahora vamos a la VirtualBox.  
 

Luego vamos a Mi PC y veremos el Pendrive conectado
Eso es todo. Esper que les haya gustado! 

Automatizacion Selenium IDE + Python

 Introducción
Selenium IDE es un complemento de Firefox utilizado para automatizar y hacer pruebas sobre aplicaciones web.
Para ello, realiza una grabación de determinadas acciones que luego las convierte en un script editable. Lo más cómodo, es que luego este script se puede ejecutar tantas veces como se quiera.
La función principal de este plugin es poder hacer testing funcional de las aplicaciones. Permite rellenar formularios, navegar por webs, etc.
Esta herramienta permite ahorrar mucho tiempo y esfuerzo. Para ello permite automatizar pruebas que puede ser una prueba en particular o conjunto de pruebas.

Instalación
Solo basta con ir a http://seleniumhq.org/download/ y descargar Selenium IDE.

Nos aparecerá el cartel para instalar el complemento y solo damos en permitir

Y comenzara a descargarlo…

Una vez descargado, lo instalamos

Una vez instalado, nos pedirá que reiniciemos el browser

 
Y con esto ya quedara instalado. Podremos encontrar Selenium en el menú de Herramientas del navegador

  
A demás de esto, necesitaremos instalar python y la librería de selenium para python (en mi caso)
Librería de Selenium: http://pypi.python.org/pypi/selenium
Una vez instalado python, copiamos las librerías de Selenium dentro de la carpeta de las librerías (C:\Python27\Lib).

 
Primeros pasos con Selenium

Abrimos el navegador, yo usare firefox. Iniciamos Selenium IDE

Apenas lo abrimos, comenzamos a navegar normalmente y Selenium grabara todos los pasos que hagamos.
Mis pasos son los siguientes:
[+] Google
[+] ANTRAX-LABS
[+] Boton Buscar
[+] Click en el link de mi blog

Como se puede ver, Ya estoy en mi blog y Selenium grabo todos mis pasos

Ahora lo que hare, sera comprobar un enlace de mi blog, para ello, con el botón secundario del mouse, dare click en un enlace de mi blog y seleccionare “verifyElementPresent…”

Como se puede ver en la imagen, han quedado grabados todos los pasos que hice.

Ahora se puede exportar el script de automatización a cualquiera de los lenguajes que se ven en la imagen. Yo trabajare con Python.

Guardamos el script con su extensión correspondiente

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class TestAntraxLabs(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.google.com.ar/"
        self.verificationErrors = []
    
    def test_antrax_labs(self):
        driver = self.driver
        driver.get("/")
        driver.find_element_by_id("lst-ib").click()
        driver.find_element_by_id("lst-ib").clear()
        driver.find_element_by_id("lst-ib").send_keys("antrax-labs")
        driver.find_element_by_name("btnG").click()
        driver.find_element_by_link_text("[A]NTRAX [L]ABS").click()
        try: self.assertTrue(self.is_element_present(By.LINK_TEXT, "Seguridad Wireless"))
        except AssertionError as e: self.verificationErrors.append(str(e))
    
    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True
    
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
Y como resultado tendremos el script, que puede ser editable para añadir o modificar funciones

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class TestAntraxLabs(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.google.com.ar/"
        self.verificationErrors = []
    
    def test_antrax_labs(self):
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_id("lst-ib").click()
        driver.find_element_by_id("lst-ib").clear()
        driver.find_element_by_id("lst-ib").send_keys("antrax-labs")
        driver.find_element_by_name("btnG").click()
        driver.find_element_by_link_text("[A]NTRAX [L]ABS").click()
        try: self.assertTrue(self.is_element_present(By.LINK_TEXT, "Seguridad Wireless"))
        except AssertionError as e: self.verificationErrors.append(str(e))
    
    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True
    
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
Lo que hice acá, fue un ligero cambio. Reemplace la barra por la variable que contiene la url inicial, en mi caso la de google.

Si corremos el Script, se nos abrirá el navegador y automáticamente comenzara a navegar y a seguir los pasos que dejamos grabados.

Al finalizar, lanza un mensaje diciendo si paso o no la prueba. En mi caso busco y abrió mi blog correctamente y pudo verificar el enlace, en por eso que me dio el OK.
En caso de no pasar, tirara un mensaje de error.
Lo bueno de Selenium es que se puede trabajar en varios lenguajes y que sus scripts exportados son editables.

Taller de Malwares #2 [Troyanos]

 
NO-IP

Lo primero que haremos, será crearnos una DNS en NO-IP. No se si recordaran que en la entrega anterior cuando hablamos de autoinfección colocamos 127.0.0.1… en este caso lo que haremos será reemplazar esa IP, por una NO-IP.

Primero explicare un poco lo que hace y que es lo que es la NO-IP…
Vamos a empezar desde el principio para que todos tengan en claro y que no hayan dudas.
IP Local: 127.0.0.1 (Es la IP que tiene la PC como local).
IP Privada: Es la IP que se le asigna a la PC dentro de una RED LOCAL o RED LAN.
IP Publica: Es la IP que se le asigna a una PC cada vez que entra a Internet.
NO-IP: Es una suplantación a la IP Publica.

¿Por que usamos NO-IP?

Bueno, es una pregunta muy sencilla de responder. Como bien dijimos antes, la IP Publica es una IP que se le da a una PC cada vez que entra a internet. Lo malo de esto, es que cada vez que entramos a internet tenemos una distinta. Entonces si configuramos nuestro server con la IP Publica que tenemos, a la próxima vez que entremos a internet, nuestra IP cambiara y perderemos a todos nuestros remotos infectados.

Con la NO-IP, tendremos algo fijo y no perderemos los remotos.
Para entenderlo mejor, lo pondremos en práctica.
Comenzaremos creando una NO-IP. Entramos a www.no-ip.com y nos registramos.

Llenamos todos los campos y nos registramos.
Luego nos llegara un mail para verificar la cuenta, la activamos y entramos con nuestra cuenta. Una vez que estemos dentro de nuestro panel damos en Add a Host

Ahora colocamos un nombre en Hostname, el resto lo dejamos igual. Pueden cambiarle el complemento al dominio, en mi caso puse no-ip.org, pero hay muchos más.

 Presionamos el botón Create Host que está debajo del cuadro y listo!


Como pueden ver ya tengo mi NO-IP. Y esta es la que usare a la hora de configurar mi troyano.
Ahora debemos descargar un programa llamado DUC. Es el que actualizara nuestra NO-IP con la IP Publica que tengamos.
Lo podemos descargar desde la misma página del no-ip.

 Seleccionamos nuestro sistema operativo y descargamos. Seguido a esto lo instalamos y nos logueamos.

 Seleccionamos nuestra NO-IP

 
Y deberíamos tener algo como en la imagen. (Los tres tildes en verde)
Si han llegado hasta acá, y tienen los tres tildes en verde, es porque han hecho todo a la perfección, de lo contrario, deben haber hecho algún paso mal.
Para verificar si funciona correctamente, le pedimos a algún amigo que le haga ping a nuestra NO-IP y ver si responde tirando nuestra IP.
Recuerden que el amigo, debe estar fuera de nuestra red.
Debe entrar a la consola y teclear: “ping underc0de.no-ip.org” (Recuerden pasarle su NO-IP, este es un ejemplo de cómo sería con la mía)

PUERTOS

Lo otro que nos queda para que nuestro troyano conecte de forma remota, es abrir un puerto en nuestro router (si es que tenemos router) para lo que tienen modem, no hace falta que hagan este paso.
Voy a explicar porque motivo debe abrirse un puerto.
La mayoría de nosotros tenemos algo como la siguiente imagen:

 
De la línea telefónica o desde el modem, va al router, el cual se encarga de distribuirlo a la PC, ya sea por Wireless o cableado.
El router bloquea varios puertos, y es por eso que necesitan ser abiertos para poder salir a internet.
Lo que haremos será entrar a la configuración del router y abrir el puerto.
Para saber la IP del router, debemos ir a INICIO > EJECUTAR > CMD
Se nos abrirá la consola de comandos y escribimos: ipconfig

Bueno, acá debemos tener en cuenta dos cosas importantes, La Dirección IP y la Puerta de enlace predeterminada.
La Dirección IP es nuestra IP Privada que como vimos más arriba, es la IP que tenemos en la RED LAN.
Y la puerta de enlace predeterminada es la IP del Router. Teniendo estos datos, ya podemos seguir abriendo los puertos.
Abrimos el navegador de internet y escribimos la IP del router.

Una vez dentro, lo más probable es que nos pida user y pass…


Todos los routers tienen distintos datos. Pero los default son:
admin – admin
admin – 1234
1234 – 1234
1234 – admin
Cuando ingresemos los datos, podremos entrar al panel de configuración del router.
Recuerden una cosa…
TODOS LOS ROUTERS SON DISTINTOS
Por lo tanto no piensen que será igual que el mío.
En mi caso debo ir a Basic > NAT > Virtual Server




Una vez dentro de Virtual Server, llenamos los campos con nuestra IP Privada y el puerto que deseamos abrir:


Damos en Submit y el puerto se agregara a la lista

 
INFECCION REMOTA

Bueno, aquí solo aplicaremos un pequeño cambio en la configuración de nuestro troyano.

 
A diferencia de la entrega anterior, lo único que modifique fue la DNS en este caso la NO-IP en lugar de la IP Local.

El resto de la configuración, pueden guiarse por la primer entrega porque no cambia en nada.
Una vez creado el server, ya podremos infectar de forma remota a alguna persona.
Recuerden que para que sea más creíble, el server debe ir indetectado para que no lo detecten los antivirus y camuflajeado. Pero eso lo veremos más adelante. De todas formas en el foro encontraran material sobre el tema.
Acá les muestro una captura de cómo se irá viendo nuestro troyano a medida de que infectemos.

Barcode en Visual Basic

Creamos un proyecto nuevo en VB, y solo necesitaremos 3 controles y un modulo.

Controles: 
* Textbox (txtID)
* Picturebox (Picture1)
* CommandButton (cmdPrint)

Codigo del Modulo:
Sub DrawBarcode(ByVal bc_string As String, obj As Control)
    
    Dim xpos!, Y1!, Y2!, dw%, th!, tw, new_string$
    
    'define barcode patterns
    Dim bc(90) As String
    bc(1) = "1 1221"            'pre-amble
    bc(2) = "1 1221"            'post-amble
    bc(48) = "11 221"           'digits
    bc(49) = "21 112"
    bc(50) = "12 112"
    bc(51) = "22 111"
    bc(52) = "11 212"
    bc(53) = "21 211"
    bc(54) = "12 211"
    bc(55) = "11 122"
    bc(56) = "21 121"
    bc(57) = "12 121"
                                'capital letters
    bc(65) = "211 12"           'A
    bc(66) = "121 12"           'B
    bc(67) = "221 11"           'C
    bc(68) = "112 12"           'D
    bc(69) = "212 11"           'E
    bc(70) = "122 11"           'F
    bc(71) = "111 22"           'G
    bc(72) = "211 21"           'H
    bc(73) = "121 21"           'I
    bc(74) = "112 21"           'J
    bc(75) = "2111 2"           'K
    bc(76) = "1211 2"           'L
    bc(77) = "2211 1"           'M
    bc(78) = "1121 2"           'N
    bc(79) = "2121 1"           'O
    bc(80) = "1221 1"           'P
    bc(81) = "1112 2"           'Q
    bc(82) = "2112 1"           'R
    bc(83) = "1212 1"           'S
    bc(84) = "1122 1"           'T
    bc(85) = "2 1112"           'U
    bc(86) = "1 2112"           'V
    bc(87) = "2 2111"           'W
    bc(88) = "1 1212"           'X
    bc(89) = "2 1211"           'Y
    bc(90) = "1 2211"           'Z
                                'Misc
    bc(32) = "1 2121"           'space
    bc(35) = ""                 '# cannot do!
    bc(36) = "1 1 1 11"         '$
    bc(37) = "11 1 1 1"         '%
    bc(43) = "1 11 1 1"         '+
    bc(45) = "1 1122"           '-
    bc(47) = "1 1 11 1"         '/
    bc(46) = "2 1121"           '.
    bc(64) = ""                 '@ cannot do!
    bc(65) = "1 1221"           '*
    
    
    
    bc_string = UCase(bc_string)
    
    
    'dimensions
    obj.ScaleMode = 3                               'pixels
    obj.Cls
    obj.Picture = Nothing
    dw = CInt(obj.ScaleHeight / 40)                 'space between bars
    If dw < 1 Then dw = 1
    'Debug.Print dw
    th = obj.TextHeight(bc_string)                  'text height
    tw = obj.TextWidth(bc_string)                   'text width
    new_string = Chr$(1) & bc_string & Chr$(2)      'add pre-amble, post-amble
    
    Y1 = obj.ScaleTop
    Y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * th
    obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth
    
    
    'draw each character in barcode string
    xpos = obj.ScaleLeft
    For n = 1 To Len(new_string)
        c = Asc(Mid$(new_string, n, 1))
        If c > 90 Then c = 0
        bc_pattern$ = bc(c)
        
        'draw each bar
        For i = 1 To Len(bc_pattern$)
            Select Case Mid$(bc_pattern$, i, 1)
                Case " "
                    'space
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    
                Case "1"
                    'space
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    'line
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &H0&, BF
                    xpos = xpos + dw
                
                Case "2"
                    'space
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    'wide line
                    obj.Line (xpos, Y1)-(xpos + 2 * dw, Y2), &H0&, BF
                    xpos = xpos + 2 * dw
            End Select
        Next
    Next
    
    '1 more space
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
    xpos = xpos + dw
    
    'final size and text
    obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
    obj.CurrentX = (obj.ScaleWidth - tw) / 2
    obj.CurrentY = Y2 + 0.25 * th
    obj.Print bc_string
    
    'copy to clipboard
    obj.Picture = obj.Image
    Clipboard.Clear
    Clipboard.SetData obj.Image, 2

End Sub

Codigo Fuente del CommandButton:
'Impresion del Barcode
Private Sub cmdPrint_Click()

    Printer.PaintPicture Picture1, 100, 100
    Printer.EndDoc
End Sub

Codigo Fuente del TextBox:
'Escritura del barcode
Private Sub txtID_Change()

    Picture1.Height = Picture1.Height * (1.4 * 40 / Picture1.ScaleHeight)
    Picture1.FontSize = 8
    Call DrawBarcode(txtID, Picture1)
    Dim minwidth, pw, fw As Integer
    minwidth = 2 * txtID.Left + txtID.Width
    pw = 2 * Picture1.Left + Picture1.Width
    fw = minwidth
    If pw > fw Then fw = pw
    frmAgregarProd.Width = fw
    
End Sub