DNS
Vamos a empezar con DNS.. DNS es algo MUY importante en el día de hoy, ya que sin las DNS no somos capaces de navegar por INternet ya que las DNS se encarga de traducir los nombres a direcciones IP y a la inversa Es decir.. Tanto en Windows como Linux podemos hacer esta práctica.. En Linux desde la shell hacemos un ping a cualquier servidor de Internet por ejemplo a google.com a ver que nos sale…
marc@pruebas:~$ ping google.com
PING google.com (74.125.45.100) 56(84) bytes of data.
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=1 ttl=128 time=189 ms
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=2 ttl=128 time=213 ms
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=3 ttl=128 time=171 ms
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=4 ttl=128 time=159 ms
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=5 ttl=128 time=171 ms
^C
— google.com ping statistics —
5 packets transmitted, 5 received, 0% packet loss, time 4017ms
rtt min/avg/max/mdev = 159.606/181.202/213.492/18.754 ms
Tal y como podemos comprobar si hacemos un ping a google.com, que es lo que pondríamos en cualquier navegador para acceder a esta página..En cambio..podríamos acceder igual poniendo la dirección IP..
Es decir si en el navegador ponemos 74.125.45.100 también llegaríamos a google
Normalmente en una casa, no tenemos servidor DNS ya que el que nos hace la traducción de nombres a IP o a la inversa es el ISP
es decir o telefónica o tele2.. I da igual que le pongamos Ip estática o dinámica.
En cambio en Empresa normalmente siempre hay un servidor que se encarga de las DNS ese servidor puede estar bajo Windows 2003 Server o con Linux utilizando Bind por ejemplo que será como lo haremos nosotros aquí con Bind
Pero primero haremos un repaso de DNS..
DNS como su nombre indica Domain Name System..Yo y mucha gente siempre que quiero hacer una buena definición me dirijo a la Wikipedia..Vamos a ver que dice la Wikipedia sobre las DNS..
El Domain Name System (DNS) es una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet.
Lo primero y muy importante es que menciona que DNS es una base de datos distribuida es decir se va actualizando y Jerarquica o sea que sigue unos niveles.
Esto lo gestiona
http://www.icann.org/tr/spanish.html
Y también habla sobre Nombres de Dominio..
Un nombre de Dominio es lo que comúnmente conocemos como .com, .es. O también según la Wikipedia..
Un dominio de Internet es un nombre base que agrupa a un conjunto de equipos o dispositivos y que permite proporcionar nombres de equipo más fácilmente recordables en lugar de una dirección IP numérica. Permiten a cualquier servicio (de red) moverse a otro lugar diferente en la topología de Internet, que tendrá una dirección IP diferente
Una página muy famosa que gestiona dominios en Internet es
http://www.nominalia.com
Una vez tenemos ya aprendido lo de los dominios vamos a ver que tipos de servidores DNS hay
Hya tres tipos de Servidores DNS
Servidor DNS Maestro:
Contiene la base de datos que relaciona los nombres con las direcciones IP.
Servidor DNS Esclavo:
Es aquel es hace un mirror (espejo) del primero.
Servidor DNS Cache:
Es aquel que va guardando en la memoria las peticiones que recibe
Entonces.. como funciona cada vez que escribimos una URL en el navegador?¿
Nos vamos a nuestro navegador, por ejemplo, a wwww.seifreed.wordpress.com
Se hace la petición a nuestro servidor DNS y le pregunta,
Sabes cual es la dirección IP de seifreed.wordpress.com?
Respuesta:
No, no se cual, pero el dominio está alojado en wordpress.com
Entonces se le pregunta:
Sabes cual e sla dirección IP de seifreed.wordpress.com?
Y el dominio, wordpress.com le responde, la dirección IP es: 59.2.233.72
También hay dos comandos bastantes útiles en linux:
El primero es nslookup, que nos permite saber que dns teneos configurado.
Veamos un ejemplo:
marc@pruebas:~$ nslookup seifreed.wordpress.com
Server: 192.168.233.2
Address: 192.168.233.2#53
Y el siguiente es DIG que nos muestra el servidor DNS que pertenece al dominio que le estamos pidiendo..
Ejemplo:
marc@pruebas:~$ dig seifreed.wordpress.com ns
; <<>> DiG 9.5.0-P2 <<>> seifreed.wordpress.com ns
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42211
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:
;seifreed.wordpress.com. IN NS;; ANSWER SECTION:
seifreed.wordpress.com. 5 IN CNAME lb.wordpress.com.;; AUTHORITY SECTION:
wordpress.com. 5 IN SOA ns1.wordpress.com. mmmmmm.gmail.com. 2005071858 14400 7200 604800 60;; Query time: 659 msec
;; SERVER: 192.168.233.2#53(192.168.233.2)
;; WHEN: Sun Jan 18 17:13:50 2009
;; MSG SIZE rcvd: 110marc@pruebas:~$
Y eso es todo por hoy, seguiremos hablando de DNS mas adelante
Usa un LIVE USB
Bueno todos conocemos el los live cd de Linux..Pues ahora lo haremos desde el USB para no ir con el cd encima todo el día.
Bien ayer hice esta práctica y cuando le daba a este enlace
Pues yo ayer no debí picar bien proque me llevo a otro sitio..pero al final hice lo que pretendía xD jajaa
Bueno empezemos..
Primero descargamos esta de la página de Pen Drive Linux
Entonces descomprimos los archivos en una carpeta..
Nos fijamos en el archivo..
xubuntu810.bat
Solo hay que hacer dos clicks decirle en que unidad esta el USB que quieres utilizar en mi caso, la I
Entonces el .bat hara un wget, que descargará la iso de Xubuntu

Y luego automaticamente extraera los archivos necesarios y hara lo que haga falta para poder iniciar desde elUSB

Pero..esto te instalará xubuntu.. Y si queremos ubuntu..
Bueno vamos a mirar primero el .bat que es bastante sencillo
@echo off
rem ©2007-2008 by Lance http://www.pendrivelinux.com
rem 7-Zip Copyright ©1999-2007 Igor Pavlovis http://7-zip.org
rem WGET for Windows ©2008 Bart Puype http://users.ugent.be/~bpuype/wget/
cls
echo.
echo =====================================================================
echo File preparation script used to create a USB Xubuntu 8.10
echo =====================================================================
echo.
echo This batch file will extract your Xubuntu 8.10 ISO to your flashdrive
echo using 7-Zip. It will then continue to organize all files
echo preparing them for USB usage. Once this tool has finished, a user
echo should be able to boot Xubuntu 8.10 from the USB flash device.
echo.
echo.
echo Please note that this batch file and any included software is being
echo provided as is, without warranty, in hopes that it will be useful.
echo USE AT YOUR OWN RISK!!
echo.
echo.:start
echo.
echo Please type your flash drive letter (D – Z) and press Enter
set /p drive=
if ‘%drive%’ == ‘D’ goto download
if ‘%drive%’ == ‘E’ goto download
if ‘%drive%’ == ‘F’ goto download
if ‘%drive%’ == ‘G’ goto download
if ‘%drive%’ == ‘H’ goto download
if ‘%drive%’ == ‘I’ goto download
if ‘%drive%’ == ‘J’ goto download
if ‘%drive%’ == ‘K’ goto download
if ‘%drive%’ == ‘L’ goto download
if ‘%drive%’ == ‘M’ goto download
if ‘%drive%’ == ‘N’ goto download
if ‘%drive%’ == ‘O’ goto download
if ‘%drive%’ == ‘P’ goto download
if ‘%drive%’ == ‘Q’ goto download
if ‘%drive%’ == ‘R’ goto download
if ‘%drive%’ == ‘S’ goto download
if ‘%drive%’ == ‘T’ goto download
if ‘%drive%’ == ‘U’ goto download
if ‘%drive%’ == ‘V’ goto download
if ‘%drive%’ == ‘W’ goto download
if ‘%drive%’ == ‘X’ goto download
if ‘%drive%’ == ‘Y’ goto download
if ‘%drive%’ == ‘Z’ goto download
if ‘%drive%’ == ‘d’ goto download
if ‘%drive%’ == ‘e’ goto download
if ‘%drive%’ == ‘f’ goto download
if ‘%drive%’ == ‘g’ goto download
if ‘%drive%’ == ‘h’ goto download
if ‘%drive%’ == ‘i’ goto download
if ‘%drive%’ == ‘j’ goto download
if ‘%drive%’ == ‘k’ goto download
if ‘%drive%’ == ‘l’ goto download
if ‘%drive%’ == ‘m’ goto download
if ‘%drive%’ == ‘n’ goto download
if ‘%drive%’ == ‘o’ goto download
if ‘%drive%’ == ‘p’ goto download
if ‘%drive%’ == ‘q’ goto download
if ‘%drive%’ == ‘r’ goto download
if ‘%drive%’ == ‘s’ goto download
if ‘%drive%’ == ‘t’ goto download
if ‘%drive%’ == ‘u’ goto download
if ‘%drive%’ == ‘v’ goto download
if ‘%drive%’ == ‘w’ goto download
if ‘%drive%’ == ‘x’ goto download
if ‘%drive%’ == ‘y’ goto download
if ‘%drive%’ == ‘z’ goto download
cls
goto error:error
echo.
echo That drive letter was not recognized. Let’s try again…
echo.
pause
cls
goto start:download
if exist Xubuntu-8.10-desktop-i386.iso (
goto ready)
echo.
echo Now Downloading Xubuntu 8.10
echo.
wget http://mirror.anl.gov/pub/ubuntu-iso/CDs-Xubuntu/8.10/release/xubuntu-8.10-desktop-i386.iso
cls
goto ready:ready
cls
7-Zip\7z x xubuntu-8.10-desktop-i386.iso -y -x!bin -x!programs -x![BOOT] -o%drive%:
mkdir %drive%:\sysl\win32
copy sysl\win32\*.* %drive%:\sysl\win32
copy makeboot.bat %drive%:
copy text.cfg %drive%:
copy casper-rw %drive%:
%drive%:
cls
ren isolinux syslinux
ren syslinux\isolinux.cfg syslinux.cfg
copy text.cfg syslinux\text.cfg
echo Moving on to the makeboot script…
call %drive%:\makeboot.bat
El .bat es bastante sencillo no es nada del otro mundo.. Asi que una vez que lo miré me fije en la linea que me interesaba..
if exist Xubuntu-8.10-desktop-i386.iso (
goto ready)
Bien esta lina comprueba si en la carpeta raíz desde donde hemos ejecutado el .bat.
Asi que vamos a cambiar una cosa..
Yo lo que hice fue cojer una ISO del Ubuntu 8.10 que es la que quería y le cambia el nombre a Xubuntu-8.10-desktop-i386
Y una vez que ejecutamos el bat se pensará que existe y nos hará todo el proceso..Pero no instalará xubuntu si no Ubuntu.
Crackeando contraseñas de Windows con Ophcrack y Ubuntu
Si, tenía ganas de hacer una entrada como esta..Ya que es bastante útil y encima ahora es súper fácil con Ubuntu, y encima lo puedes hacer desde un LIVE CD de Ubuntu.
Bueno vamos a ello, primero instalamos ophcrack lo podemos hacer con el gestor de paquetes que trae Ubuntu de manera gráfica:

Si os fijáis en la imágen ha de estar marcado que te muestre TODAS las aplicaciones disponibles. Después en el cuadro de texto escribimos Ophcrack:

La marcamos, y le damos a aplicar cambios si nos dijera algo le damos aautorizar el software privativo y que estamos de acuerdo en que no es una aplicacion mantenida por Cannonical.
Instalamos la aplicacion y entonces ya podemos ejecutarla la apliación se encuentra en Aplicaciones Herramientas de Sistema y ahí se encuentra Ophcrack y si no está ahí s encuentra en Aplicaciones y accesorios..
Una vez hemos encendido la aplicacion le damos a load y entonces a From Encrypted SAM, y buscamos la SAM encriptada de Windows..
Que normalmente se encuentra en:
C.\Windows\System32\config entonces nos mostrará los usuarios que hay en el sistema..

Lo veis no? Te muestra los usuarios del sistema..Entonces..yo tuve que ingresar a esta página:
http://ophcrack.sourceforge.net/tables.php
Y bajarme la tabla de XP small free..son las tablas que nos ayudarán a descifrar los hashes que saque ophcrack..
Administrador:500:d5ddfcbacf7807a218fcd526fb48a829:1e713aff5c78779b072e12ca316d4e53:::
Invitado:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
super:1003:bda93700ad105b8917306d272a9441bb:a8a79d2cd1cfb37813760b7b2b4fc923:::
Asistente de ayuda:1009:083079741bd79203c1748de9f8fdff3f:adbe70cbb813fcfddc63a1b86d0739c9:::
ASPNET:1010:8cad3cc9f2f06f65c18ff2b8852a8d11:4f6d7e7bd7becdebf43280b4f7758a2b:::
alumne:1012:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Aqui nos muetsra los hashes..las passwords de Windows encriptadas.. Entonces cargamos las tablas que nos hemos bajado previamente las descomprimos en cualquier sitio y le damos a Tables y en el directorio elejimos la carpeta que hemos escojido

Aquí cargamos las tabla de XP Free…small que nos hemos descargado antes.
Y entonces le damos a LAUNCH!
Y entonces pasará algo como esto xD

Es decir, nos mostrará las contraseñas..puede tardar unos 10 minutos tened paciencia!
Y hasta aqui el crackeo recovery de las contraseñas de windows.
Javascript I
Vamos a empezar con tutoriales de Javascript..
Primero vamos a saber que es, y que hace este lenguage..
Según la Wikipedia..
JavaScript es un lenguaje de programación interpretado, es decir, que no requiere compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java y el lenguaje C.
Al igual que Java, JavaScript es un lenguaje orientado a objetos propiamente dicho, ya que dispone de Herencia, si bien esta se realiza siguiendo el paradigma de programación basada en prototipos, ya que las nuevas clases se generan clonando las clases base (prototipos) y extendiendo su funcionalidad.
Empezemos está el típico ejemplo de Javascript que SIEMPRE se hace, mostraremos en una ventana un Hola Mundo
<html> <head> </head> <body> <script language="javascript"> document.write('Hola Mundo'); </script> </body> </html>
Una variable es un depósito donde hay un valor. Consta de un nombre y pertenece a un tipo (númerico, cadena de caracteres, etc.).
Tipos de variable:
Una variable puede almacenar:
Valores Enteros (100, 260, etc.)
Valores Reales (1.24, 2.90, 5.00, etc.)
Cadenas de caracteres (“Juan”, “Compras”, “Listado”, etc.)
Valores lógicos (true,false)
Existen otros tipos de variables que veremos más adelante.
Las variables son nombres que ponemos a los lugares donde almacenamos la información. En JavaScript, deben comenzar por una letra o un subrayado (_), pudiendo haber además dígitos entre los demás caracteres. Una variable no puede tener el mismo nombre de una palabra clave del lenguaje.
Una variable se define anteponiéndole la palabra clave var:
var dia;
se pueden declarar varias variables en una misma línea:
var dia, mes, anio;
a una variable se la puede definir e inmediatamente inicializarla con un valor:
var edad=20;
o en su defecto en dos pasos:
var edad;
edad=20;
Elección del nombre de una variable:
Debemos elegir nombres de variables representativos. En el ejemplo anterior los nombres dia, mes, anio son lo suficientemente claros para darnos una idea acabada sobre su contenido, una mala elección de nombres hubiera sido llamarlas a,b y c. Podemos darle otros buenos nombres. Otros no son tan representativos, por ejemplo d, m, a. Posiblemente cuando estemos resolviendo un problema dicho nombre nos recuerde que almacenamos el dia, pero pasado un tiempo lo olvidaríamos.
Impresión de variables en una página HTML.
Para mostrar el contenido de una variable en una página utilizamos el objeto document y llamamos a la función write.
En el siguiente ejemplo definimos una serie de variables y las mostramos en la página:
<html>
<head>
</head>
<body>
<script language="JavaScript">
var nombre='Juan';
var edad=10;
var altura=1.92;
var casado=false;
document.write(nombre);
document.write('<br>');
document.write(edad);
document.write('<br>');
document.write(altura);
document.write('<br>');
document.write(casado);
</script>
</body>
</html>
Cuando imprimimos una variable, no la debemos disponer entre simples comillas (en caso de hacer esto, aparecerá el nombre de la variable y no su contenido)
Los valores de las variables que almacenan nombres (es decir, son cadenas de caracteres) deben ir encerradas entre comillas simples. Los valores de las variables enteras (en este ejemplo la variable edad) y reales no deben ir encerradas entre comillas. Cada instrucción finaliza con un punto y coma.
Las variables de tipo boolean pueden almacenar solo dos valores: true o false.
El resultado al visualizar la página debe ser 4 líneas similares a éstas:
Juan
10
1.92
false
Es decir que se muestran los contenidos de las 4 variables. Una variable es de un tipo determinado cuando le asignamos un valor:
var edad=10; Es de tipo entera ya que le asignamos un valor entero. var nombre='juan'; Es de tipo cadena. Para mostrar el contenido de una variable en una página debemos utilizar la función 'write' que pertenece al objeto document. Recordemos que el lenguaje JavaScript es sensible a mayúsculas y minúsculas y no será lo mismo si tipeamos: Document.Write(nombre); Esto porque no existe el objeto 'Document' sino el objeto 'document' (con d minúscula), lo mismo no existe la función 'Write' sino 'write', este es un error muy común cuando comenzamos a programar en JavaScript Ejemplo: Confeccionar una programa en JavaScript que defina e inicialice una variable real donde almacenar el sueldo de un operario y otra de tipo cadena de caracteres donde almacenaremos el nombre. Imprimir cada variable en una línea distinta en pantalla.
<html>
<head>
</head>
<body>
<script language="JavaScript">
var nombre="Juan";
var edad=10;
var altura=1.92;
var casado=false;
document.write(nombre);
document.write('<br>');
document.write(edad);
document.write('<br>');
document.write(altura);
document.write('<br>');
document.write(casado);
</script>
</body>
</html>
Hasta aquí la clase de Javascript de hoy