Buscar en el Blog

lunes, 24 de febrero de 2014

The Original Hacker Nro2


EUGENIA BAHIT

INGENIERÍA INVERS A : DESARROLLAR SOFTWARE APLICANDO LA INGENIERÍA  INVERSA: EL ARTE DE LA CIENCIA......................................3
PYTHON SCRIPTIN G : MANIPULAR ARCHIVOS DE CONFIGURACIÓN MEDIANTE  CONFIGPARSER..........8
INGENIERÍA DE SOFTWAR E : AGREGADO DE ARCHIVOS CRON Y EJECUCIÓN PERIÓDICA DE PROCESOS EN LOS PAQUETES .DEB...............................18
EUROPIO ENGINE LA B : ¿CÓMO SE HICIERON LOS ABM DE LA WEB “THE ORIGINAL HACKER LIBRARY”?...21
SEGURIDAD INFORMÁTIC A : CAPAS DE SEGURIDAD INTELIGENTES EN PHP – SANEAMIENTO DEL ARRAY SUPERGLOBAL $_POST.........................31


Descargar

The Original Hacker Nro 1

SHELL SCRIPTING:
ANÁLISIS DE ARGUMENTOS
ENVIADOS POR LÍNEA DE
COMANDOS MEDIANTE PYTHON
CON ARGPARSE

Descargar


Operadores de LINQ



Primera Edición, Mayo de 2010

Libro publicado bajo la licencia Creative Commons

DESCARGAR

Backtrack -Herramienta perfecta para Ethical Hacking

Backtrack -Herramienta perfecta para Ethical Hacking


Descargar

domingo, 23 de febrero de 2014

PENETRATION TESTING - Seguridad Informática

 

PENETRATION TESTING -  Seguridad Informática

Caleb Bucker
Pen-Tester – Ethical Hacker – Security Researcher


  ÍNDICE
  INTRODUCCIÓN
  MÉTODOS DE ANÁLISIS DE APLICACIONES WEB
  Network Mapping
  Information Gathering
  CMS Identification
  IDS/IPS Detection
  Open Source Analysis
  Web Crawlers
  Vulnerability Assessment and Exploitation
  Maintaining Access
  NETWORK MAPPING
  Nmap
  Netifera
  INFORMATION GATHERING
  TheHarvester
  Maltego
  CMS IDENTIFICATION
  BlindElephant
  CMS-Explorer
  WhatWeb
  IDS/IPS DETECTION
  Waffit
  OPEN SOURCE ANALYSIS
  GHDB (Google Hacking DataBase)
  Xssed
  WEB CRAWLERS
  WebShag
  DirBuster
  VULNERABILITY ASSESSMENT AND EXPLOITATION
  JoomScan
  SqlMap
  Fimap
  Shodan
  W3af
  Uniscan
  Nikto
  MAINTAINING ACCESS
  Weevely
  WeBaCoo
  MsfPayload
  CONCLUSIÓN




BackTrack 5 pruebas de penetración inalámbrica



BackTrack 5 pruebas de penetración inalámbrica


Capítulo 1: Preparando el entorno de laboratorio
Requisitos de hardware
Requisitos de software
Instalación de BackTrack
Parte práctica - instalación de BackTrack
Ajustes del punto de acceso
Parte práctica - configuración del punto de acceso
Ajustes de la tarjeta de red inalámbrica
Parte práctica - configuración de la tarjeta inalámbrica
Ajustes del punto de acceso
Parte práctica - configuración de su tarjeta inalámbrica
Resumen
Capítulo 2: WLAN y sus inseguridades inherentes
Revisar los frames WLAN
Parte práctica - creación de una interfaz en modo monitor
Parte práctica - sniffing de paquetes inalámbricos
Parte práctica – visualización de administración,control y frames de datos
Tiempo para la acción - sniffing de paquetes de datos de nuestra red
Parte práctica - inyección de paquetes
Nota importante sobre sniffing e inyección en WLAN
Parte práctica - experimentar con su tarjeta Alfa
Papel de los dominios de regulación inalámbricos
Parte práctica - experimentar con su tarjeta Alfa
Resumen
Capítulo 3: Evitar autenticación WLAN (bypassing WLAN)
SSID oculto
Parte práctica - descubriendo SSID oculto
Filtros MAC
Tiempo para la acción - superando filtros MAC
Autenticación abierta
Parte práctica - evitar autenticación abierta (bypassing Open Auth)
Autenticación de clave compartida
Parte práctica – evitar autenticación compartida
Resumen
Capítulo 4: Defectos en cifrado WLAN
Cifrado WLAN
Encriptación WEP
Parte práctica – cracking WEP
WPA/WPA2
Parte práctica - cracking frase de paso WPA-PSK débil
Acelerar cracking de WPA/WPA2 PSK
Parte práctica - acelerar el proceso de craqueo
Descifrar paquetes WEP y WPA
Parte práctica - descifrar paquetes WEP y WPA
Conexión a redes WEP y WPA
Parte práctica - conexión a una red WEP
Parte práctica - conexión a una red WPA
Resumen
Capítulo 5: Ataques a la infraestructura WLAN
Cuentas por defecto y credenciales del punto de acceso
Parte práctica – craqueo de cuentas por defecto en los puntos de acceso
Ataques de denegación de servicio
Parte práctica - Ataque de De-autenticación DoS
Emparejamiento malicioso y spoofing de punto de acceso MAC
Parte práctica - Emparejamiento malicioso spoofing MAC
Punto de acceso no autorizado
Parte práctica - punto de acceso no autorizado
Resumen
Capítulo 6: Atacando al cliente
Mis honeypot y ataques de des-asociación
Parte práctica - orquestar un ataque de des-asociación
Ataque Caffe Latte
Parte práctica - realización de los ataques Caffe Latte
Ataques de Des-autenticación y des-asosciación
Parte práctica - des-autenticación de los clientes
Atque Hirte
Parte práctica - cracking WEP con ataques Hirte
AP-less WPA-Personal cracking
Tiempo para la acción - AP-less WPA cracking
Resumen
Capítulo 7: Ataques avanzados WLAN
Man-in-the-middle
Parte práctica - Man-in-the-middle
Escuchas inalámbrica mediante MITM
Parte práctica - escucha inalámbrica
Secuestro de sesión inalámbrica (Hijacking)
Parte práctica - secuestro de sesión inalámbrica
Encontrar las configuraciones de seguridad en el cliente
Parte práctica - enumeración de los perfiles de seguridad inalámbrica
Resumen
Capítulo 8: Atacar WPA-Enterprise y RADIUS
La creación de freeradius-WPE
Parte práctica - creación del AP con freeradius-WPE
Atacar PEAP
Parte práctica – craquear PEAP
Atacar EAP-TTLS
Parte práctica - cracking EAP-TTLS
Las mejores prácticas de seguridad para empresas
Resumen
Capítulo 9: Metodología de pruebas de penetración inalámbrica
Pruebas de penetración inalámbrica
Planificación
Descubrimiento
Parte práctica - descubrimiento de los dispositivos inalámbricos
Ataque
Encontrar puntos de acceso no autorizados
Encontrar clientes no autorizados
Técnicas de encriptación
Comprometer clientes
Presentación de informes
Resumen
Apéndice A: Conclusiones y hoja de ruta
Terminando
Construcción de un laboratorio Wi-Fi avanzado
Mantenerse al día
Conclusión
Apéndice B: Respuestas Pop Quiz
Capítulo 1, configuración inalámbrica de laboratorio
Capítulo 2, WLAN y sus inseguridades inherentes
Capítulo 3, evitar autenticación WLAN
El capítulo 4, defectos del cifrado WLAN
Capítulo 5, ataques a la infraestructura WLAN
Capítulo 6, atacando a los clientes
Capítulo 7, Ataques avanzados WLAN
Capítulo 8, atacar WPA Enterprise y RADIUS
Capítulo 9, Metodología de pruebas de penetración inalámbrica
Índice






El Gran libro de Diseño Web



  El Gran libro de Diseño Web




viernes, 21 de febrero de 2014

Compiladores Principios Tecnicas y Herramientas - Pearson.Educacion - Dragon Book


Los principios y tecnicas de escritura de compiladores son tan amplios como las ideas encontradas en este libro se usaran muchas veces en la carrera de un cientifico de la computacion. La escritura de compiladores comprende los lenguajes de programacion, la arquitectura de computadores, la teoria de lenguajes, los algoritmos y la ingenieria de softwareñ. Por fortuna, con algunas tecnicas basicas de escritura de compiladores, se pueden construir traductores para una gran variedad de lenguajes y maquinas.







¿Que es un bitcoin?

¿Que es un bitcoin?

Bitcoin es una moneda, como el euro o el dólar estadounidense, que sirve para intercambiar bienes y servicios. Sin embargo, a diferencia de otras monedas, Bitcoin es una divisa electrónica que presenta novedosas características y destaca por su eficiencia, seguridad y facilidad de intercambio.






Balances - cadena de bloques

La cadena de bloques o "block chain" es una contabilidad pública compartida en la que se basa toda la red Bitcoin. Todas las transacciones confirmadas se incluyen en la cadena de bloques. De esta manera los monederos Bitcoin pueden calcular su saldo gastable y las nuevas transacciones pueden ser verificadas, asegurando que el cobro se esta haciendo al que realiza el pago. La integridad y el orden cronológico de la cadena de bloques se hacen cumplir con criptografía.
Transacciones - llaves privadas

Una transacción es una transferencia de valores entre monederos Bitcoin que será incluida en la cadena de bloques. Los monederos Bitcoin disponen de un fragmento secreto llamado clave privada, utilizada para firmar las operaciones, proporcionando una prueba matemática de que la transacción está hecha por el propietario del monedero. La firma también evita que la transacción no sea alterada por alguien una vez ésta ha sido emitida. Todas las transacciones son difundidas entre los usuarios y por lo general empiezan a ser confirmadas por la red en los 10 minutos siguientes a través de un proceso llamado minería.

Procesamiento - minería

La minería es un sistema de consenso distribuido que se utiliza para confirmar las transacciones pendientes a ser incluidas en la cadena de bloques. Hace cumplir un orden cronológico en la cadena de bloques, protege la neutralidad de la red y permite un acuerde entre todos los equipos sobre el estado del sistema. Para confirmar las transacciones, deberán ser empacadas ​​en un bloque que se ajuste a estrictas normas de cifrado y que será verificado por la red. Estas normas impiden que cualquier bloque anterior se modifique, ya que hacerlo invalidaría todos los bloques siguientes. La minería también crea el equivalente a una lotería competitiva que impide que cualquier persona pueda fácilmente añadir nuevos bloques consecutivamente en la cadena de bloques. De esta manera, ninguna persona puede controlar lo que está incluido en la cadena de bloques o reemplazar partes de la cadena de bloques para revertir sus propios gastos.









jueves, 20 de febrero de 2014

ANÁLISIS DE TRÁFICO CON WIRESHARK

 

 

ANÁLISIS DE TRÁFICO

Seguramente todo administrador de redes ha tenido que enfrentarse alguna vez a una pérdida del rendimiento de la red que gestiona. En ese caso sabrá que no siempre es sencillo, por falta de tiempo y recursos o por desconocimiento de las herramientas apropiadas, tener claros los motivos por los que esto ha sucedido. En ocasiones, incluso se ha podido llegar a perder la conectividad o bien ciertos equipos han podido desconectarse sin motivo aparente.

En la mayoría de ocasiones, las causas de estos problemas tienen un origen no premeditado y se deben a una mala configuración de la red como puede ser tormentas broadcast, spanning-tree mal configurado, enlaces redundantes, etc. Pero, en otras ocasiones, puede tratarse de ataques inducidos por terceros que pretenden dejar fuera de servicio un servidor web mediante un ataque DoS, husmear tráfico mediante un envenenamiento ARP o simplemente infectar los equipos con código malicioso para que formen parte de una red zombi o botnet.

En cualquier caso, conocer el origen del incidente es el primer paso para poder tomar las contramedidas necesarias y conseguir una correcta protección. En este punto, los analizadores de tráfico pueden resultar de gran utilidad para detectar, analizar y correlacionar tráfico identificando las amenazas de red para, posteriormente, limitar su impacto. Con tal propósito, existen en el mercado dispositivos avanzados como el appliance MARS (Monitoring, Analysis and Response System) de Cisco o IDS/IPS basados en hardware de diversos fabricantes. Pero estas soluciones no siempre están al alcance de todas las empresas ya que su coste puede que no cumpla un principio básico de proporcionalidad (el gasto es superior al beneficio obtenido) y, por lo tanto, no se justifique su adquisición.

Por ello, y para cubrir las necesidades de entidades con infraestructuras tecnológicas más modestas, INTECO-CERT presenta esta «Guía de análisis de tráfico con Wireshark». Tiene por objeto sensibilizar a administradores y técnicos de las ventajas de auditar la red con un analizador de tráfico, principalmente utilizando la herramienta libre Wireshark. Además, ofrece ejemplos prácticos de ataques en redes de área local bastante conocidos y que actualmente siguen siendo uno de los mayores enemigos en los entornos corporativos.

El presente documento está dividido en una serie de apartados que tratan diversos ataques reales llevados a cabo en redes de área local, como son ARP Spoof, DHCP Flooding, DNS Spoof, DDoS Attacks, VLAN Hopping, etc. En ellos se emplea Wireshark como herramienta principal de apoyo para ayudar a detectar, o al menos acotar en gran medida, los problemas generados por dichos ataques. Asimismo, se proponen diversas acciones de mitigación para cada uno de los casos expuestos.


Fundamentos de jQuery

Fundamentos de jQuery

Textos originales:
Rebecca Murphey
Traducción y adaptación a español:
Leandro D’Onofrio
Correcciones:
Gustavo Raúl Aragón, Pablo Maronna, Denis Ciccale y otras personas
Con contribuciones de James Padolsey, Paul Irish y otros.
Bajo licencia Creative Commons




miércoles, 19 de febrero de 2014

Un poco de humor - Ojala fuera verdad :D


Configuracion de Qt Creator para Android

Configuracion de Qt Creator para Android
Primero debemos descargar lo necesario
SDK  







Nota: Deben elegir segun la version de su SO(32 o 64 bits)

Una vez descargado todos estos archivos, procedemos a instalar el JDK, luego  Qt y finalmente descomprimimos los archivos SDK, NDK y Apache Ant en un mismo directorio.


 Luego tenemos que registrar las variables de entorno.



Agremos la variable JAVA_HOME y le colocamos la ruta en donde se encuentra instalado el JDK, en mi caso es el siguiente C:\Archivos de programa\Java\jdk1.7.0_51

En el caso del NDK es opcional (solo si le sale el error que debe definir la variable de entornor del NDK)

Siguiente paso es agregar en la variable path lo siguiente.



Al final del punto y como agregamos los siguiente:
"En mi caso"

C:\Archivos de programa\Java\jdk1.7.0_51\bin;
C:\Android\sdk\tools;
C:\Android\sdk\platform-tools;
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin;


Ustedes deben reemplazar esas rutas por las de su Pc.

 Finalmente guardamos los cambios de las variables de entorno y nos vamos a Qt Creator.
Nos dirigimos a Tools->options




Dentro de Options nos vamos a la pestaña Androidy ahi configuramos la ruta del SDK, NDK, Apache Ant y el JDK.

Nota: Deben cambiarlo segun la ruta en donde esta instalado en su PC.


 Lo ultimo que nos faltaria es agregar un dispositivo virtual, para eso hacemos clic en Start Android AVD Manager
 Seleccionamos la pestaña Device Definitions


Seleccionamos en este caso el primero para poder realizar las pruebas

click en create AVD

En esta ventana dejamos todo como esta , a excepcion de size, ahi le asignamos un valor de cuanto de espacio queremos en el SD Card, yo le pondre 200 mb y luego click en ok.


Cerramos la ventana Anterior y luego click en ok en la ventana Options para guardar los cambios de las rutas.

Ahora  a crear un proyecto y probarlo.



 Nota: Es recomendable ejecutar primero el emulador y luego ejecutar el proyecto, eso es para windows, en el caso de Linux no me presento ningun incoveniente.







 

lunes, 17 de febrero de 2014

El paradigma de la Programación Orientada a Objetos en PHP y el patrón de arquitectura de Software MVC








Eugenia Bahit
http://eugeniabahit.blogspot.com




Objetivo del libro
El objetivo de este libro, es dar una introducción general a conceptos básicos de la programación como lo son, el paradigma de la programación orientada a objetos y el patrón arquitectónico MVC (modelo, vista, controlador), a la vez de intentar introducir estos conceptos, en la programación específica del lenguaje PHP.

Requisitos previos
Para poder entender este libro, los requisitos previos que debe tener el lector, no son muchos. Recomiendo que se tengan conocimientos básicos del lenguaje PHP así como la facilidad para entender código HTML básico (se utilizará HTML Transitional 4.0 en algunos ejemplos, evitando el uso de XHTML, a fin de que programadores sin experiencia en el diseño y maquetado de sitios Web, puedan comprender más fácilmente los ejemplos utilizados).

¿A quiénes está dirigido este libro?
Este libro está dirigido principalmente, a programadores PHP que quieran salir de la programación estructurada para insertarse en la programación orientada a objetos y, a programadores de otros lenguajes que quieran comenzar a insertarse en la POO en PHP y que cuenten con mínimos conocimientos de este lenguaje.



Php Orientado a Objetos - Php 5




Php Orientado a Objetos - Php 5




Programacion Orientada a Objetos - Luis Joyanes

Programacion Orientada a Objetos - Luis Joyanes


Como programar en C/C++ H. M. Deitel


Como programar en C/C++ H. M. Deitel


Programacion C++ - Relaci on de Ejercicios y Soluciones II




Tema 1: Almacenamiento en Memoria Secundaria. Ficheros 2
Tema 2: Tipos Abstractos de Datos 15
Tema 2.1: Programacion Modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Tema 2.2: Tipos Abstractos de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Tema 2.3: Tipos Abstractos de Datos Gen ericos . . . . . . . . . . . . . . . . . . . . . . . . 49
Tema 3: Gesti on de Memoria Din amica 74
Tema 3.1: Listas Enlazadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Tema 3.2: Abstracci on en la Gesti on de Memoria Din amica . . . . . . . . . . . . . . . . . 93
Tema 3.3: Genericidad en la Gesti on de Memoria Din amica . . . . . . . . . . . . . . . . . 136
Tema 4: Colecciones 147
Pr acticas de Laboratorio 162
Pr actica 1: Almacenamiento Persistente de Datos . . . . . . . . . . . . . . . . . . . . . . . 162
Pr actica 2: Tipos Abstractos de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Pr actica 3: Tipos Abstractos de Datos Gen ericos . . . . . . . . . . . . . . . . . . . . . . . 181
Pr actica 4: Gesti on de Memoria Din amica . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Pr actica 5: Abstracci on en la Gesti on de Memoria Din amica . . . . . . . . . . . . . . . . . 200
Pr actica 6: Biblioteca Est andar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Problemas de Examen 214
Examen 1: Gesti on de Agencia de Viajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Examen 2: Juego de Ajedrez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Examen 3: Gesti on de Hotel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231





Escribir un programa con la opci on de encriptar y de desencriptar un chero de texto, dependiendo de la
extensi on del chero de entrada. La encriptaci on (codi caci on) consiste en que dado un chero de texto
de entrada (extensi on txt) genere otro chero de salida encriptado (extensi on cod). Esta codi caci on
consiste reemplazar cada letra por la tercera siguiente de forma circular (ej. a!d, b!e, , w!z, x!a,
y!b, z!c). La opci on de desencriptado consiste en leer un chero codi cado (extensi on cod) y recuperar
la informaci on original en un chero de texto (extensi on txt).


Soluci on
#include <iostream>
#include <fstream>
using namespace std;
const unsigned DESPL = 3;
enum Operacion {
CIFRAR, DESCIFRAR, ERROR
};
// cifrado rotacional (DESPL) de letra
char cifrar(char c)
{
if (c >= 'a' && c <= 'z') {
c = char(c + DESPL);
if (c > 'z') {
c = char('a' + c - 'z' - 1);
}
} else if (c >= 'A' && c <= 'Z') {
c = char(c + DESPL);
if (c > 'Z') {
c = char('A' + c - 'Z' - 1);
}
}
return c;
}
// descifrado rotacional (DESPL) de letra
char descifrar(char c)
{
if (c >= 'a' && c <= 'z') {
c = char(c - DESPL);
if (c < 'a') {
c = char('z' + c - 'a' + 1);
}
} else if (c >= 'A' && c <= 'Z') {
c = char(c - DESPL);
if (c < 'A') {
c = char('Z' + c - 'A' + 1);
}
}
return c;
}
// transforma una letra segun el codigo de operacion
char transformar(char c, Operacion op)
{
char res;
if (op == CIFRAR) {

res = cifrar(c);
} else {
res = descifrar(c);
}
return res;
}
// trasnforma el fichero de entrada y lo escribe en el fichero de salida
void transformar_fichero(const string& entrada, const string& salida,
Operacion op, bool& ok)
{
ifstream f_ent;
f_ent.open(entrada.c_str());
if (f_ent.fail()) {
ok = false;
} else {
ofstream f_sal;
f_sal.open(salida.c_str());
if (f_sal.fail()) {
ok = false;
} else {
char ch;
f_ent.get(ch);
while (! f_ent.fail() && ! f_sal.fail()) {
f_sal.put(transformar(ch, op));
f_ent.get(ch);
}
ok = (f_ent.eof() && ! f_sal.fail());
f_sal.close();
}
f_ent.close();
}
}
// busca un caracter e una cadena
unsigned buscar(const string& nombre, char c)
{
unsigned i = 0;
while ((i < nombre.size())&&(c != nombre[i])) {
++i;
}
return i;
}
// devuelve la extension del nombre de fichero
string extension(const string& nombre)
{
string res = "";
unsigned i = buscar(nombre, '.');
if (i < nombre.size()) {
res = nombre.substr(i+1, nombre.size()-(i+1));
}
return res;
}
// calcula la operacion a realizar a partir de las extensiones de los
// ficheros de entrada y salida
Operacion codigo_op(const string& entrada, const string& salida)
{
Operacion res;
if ((extension(entrada)=="txt")&&(extension(salida)=="cod")) {
res = CIFRAR;
} else if ((extension(entrada)=="cod")&&(extension(salida)=="txt")) {
res = DESCIFRAR;
} else {
res = ERROR;
}
return res;
}
int main()
{
bool ok;
cout << "Introduzca el nombre del fichero de entrada: ";

string nombre_ent;
cin >> nombre_ent;
cout << "Introduzca el nombre del fichero de salida: ";
string nombre_sal;
cin >> nombre_sal;
Operacion op = codigo_op(nombre_ent, nombre_sal);
if (op != ERROR) {
transformar_fichero(nombre_ent, nombre_sal, op, ok);
if (ok) {
cout << "Procesamiento correcto" << endl;
} else {
cout << "Error al procesar el fichero" << endl;
}
} else {
cout << "Error: extensiones erroneas" << endl;
}
}





domingo, 16 de febrero de 2014

Scrum para Programadores

Introducción a la gestión de proyectos de desarrollo de Software
¿Qué es el Desarrollo Ágil?
Así como existen métodos de gestión de proyectos tradicionales, como el propuesto por el Project Management Institute1 más conocido como PMI® podemos encontrarnos con una rama diferente en la gestión de proyectos, conocida como Agile. El desarrollo ágil de software, no es más que una metodología de gestión de proyectos adaptativa, que permite llevar a cabo, proyectos de desarrollo de software, adaptándote a los cambios y evolucionando en forma conjunta con el software.