Analisis De Puertos,Identificacion de sistema,servicios del mismo...

##################
#Author: blood_rec
#Colaborators: Georgio
#blog: http://h4xxor.blogspot.com
#web: http://e-r00t.org
#contact: blood_rec @el-hacker.org
#Musica Durante: Metallica
##################
Leia mais!!!!

Importancia de El
################################
# Analisis De Puertos,Identificacion de sistema,servicios del mismo...
################################
================================
A-Introduccion:

A La hora de identificar u realizar una tarea de auditoria web en un servidor muchos cometen el error o caen en la actividad que al comenzar una tarea de auditoria siempre se van con la busqueda de las vulnerabilidades primero o a usar sus SSS (Shadow Security Scanner)...

A LA hora de identificar un sistema u realizar una auditoria podemos hacer las cosas bien a nivel de servidor/cliente,y como en el sexo debemos empezar primero poco a poco o no me van a decir que a la hora de estar con una chica llegan se lo meten y ya en tan solo 3 meses la chica lo mandara al carajo xD...

pues los sistemas son asi debemos ir poco a poco para interactuar con ellos ya que con solo identificar el sistemas scannear los puertos y servicios (Deamons) que gestiona el mismo podemos hacer cosas maravillosas sin nesesidad de utilizar otras tecnicas...

a veces se les puede tornar aburrido pero de esto se trata esto mientras mas areas vas cubriendo en el tema mucho mas acto eres para llegar a tus objetivos...solo me voy a basar en teorias y algunas practicas y pruebas que realizo en mi servidor local,donde poseo algunas aplicaciones vulnerables y no vulnerables pero podemos vulnerarlas atacando sus servicios u cosas xD...

El servidor en el cual esta todo instalado es un servidor Ubuntu 8.10 Kernel Generico Apache/2.2.9 Suhosin-Patch Server con algunas aplicaciones como joomla,smf,wordpress y otro scripts programados. el servidor obviamente esta en mi red local., la maquina auditora esta con Slackware Kernel 2.6.21.5 (Una Laptop) y a la que la e convertido en una suite de pentesting...xD

B-Comienzo:

Bueno comenzaremos con Nmap O Zenmap cualquiera de los 2.ya que los comandos son practicamente lo mismo pero nos orientaremos a la primera ya que usaremos la consola en lo personal lo prefiero ya que es un poco mas rapido y de verdad que no me gusta la GUI de la misma xD para los gusto los colores y para el culo los mojones....xD pero pueden usar la que gusten...

Nmap es un scanner de puertos y servicios hasta con el mismo puedes identificar sistemas operativos de manera remota una herrmienta imprecindible para cualquier auditor,experto en seguridad,Administrador De Red,Sistema,Servidor,Lammer,Hacker,noob,geek,hasta el user normal pero es imprecindible si a estas alturas no sabes lo que es te ivito que busques en internet u entre a la pagina del autor.:

http://www.insecure.org/nmap

Sigamos Para comenzar con un scanneo Basico veremos La manera de comenzar son comandos muy faciles de aprender de memoria pero empezemos poco a poco

Voy a Probar scaneando el servidor con las reglas del firewall excluyendo a la maquina auditora a ver que sucede?:

[ go0ns @squad # nmap 192.168.56.1

Starting Nmap 4.60 ( http://nmap.org ) at 2009-06-26 23:29 GMT
All 1715 scanned ports on 192.168.56.1 are filtered
MAC Address: 00:76:62:6E:65:74 (Unknown)

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

Acabamos de ver que el firewall de esa manera nos bloqueo todos los pedidos dejandonos muchos logs en el servidor auditado:

[ Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:636 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Ldaps
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:1723 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Tacacs
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:113 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Auth
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:23 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Telnet
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:53 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:DNS
Time:Jul 26 17:41:42 Direction: Unknown In:wlan0 Out: Port:80 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:HTTP
Time:Jul 26 17:41:42 Direction: Unknown In:wlan0 Out: Port:80 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Klogin ]

UFF jajaja solo son algunos de los que puede dejar ok agregamos una regla que es lo que un servidor normal pues deberia tener ya que debe dejar la entrada de las ip's pero no en todos los caso ya que las reglas aplican a algunos puertos pero excluyen a muchos pero aprenderemos como sacar el mejor provecho posible... Ahora Vamos Y Realizamos:

[ go0ns @squad # nmap 192.168.56.1

Starting Nmap 4.60 ( http://nmap.org ) at 2009-06-26 23:28 GMT
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
110/tcp open pop3
1241/tcp open nessus
2500/tcp open rtsserv
MAC Address:Unknown)

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

Ya tenemos identificado al menos lo inicial y miremos que tenemos como pudieron ver fue un scan bien basico solo los puertos /tcp como la mayoria de los scanners en la jungla esto scans son bien agresivos y siempre son agarrados por el firewall como vimos en el primer caso terminando por banear nuestra ip si el administrador tiene buenas reglas n el firewall:
#####################
#Puerto | Servicio #
#####################
#25/tcp | smpt #
#80/tcp | http #
#110/tcp | pop3 #
#1241/tcp| nessus #
#2500/tcp| rtsserv #
#####################

Bueno analizemos tenemos 5 puertos identificados de primera instancia que se gestionan bajo el protocolo /tcp si no teneis conocimiento sobre que es el protcolo /tcp u los otros protocolos similares /udp y cosas pues no continues leyendo e instruyete desde 0 mijo...

en fin con el scaneo sencillo identificamos solo esos puertos como pudieron apreciar que el log del scan nos indica tambien que se encontraron Not shown: 1710 closed ports que estan entiendase o cerrados o filtrados Huh entonces preguntaran de como es posible si es una herramienta de scaneo de puertos y servicios pero de esto se trata de poder hacer las identificaciones especificas..

ahora queremos saber que sistema operativo tiene siempre como root asumiendo que estais en linux (igual puede hacerlo desde el otro sistema operativo) xD ok, pues realizamos

[ go0ns @squad # nmap -O 192.168.56.1

Starting Nmap 4.60 ( http://nmap.org ) at 2009-06-26 23:32 GMT
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
110/tcp open pop3
1241/tcp open nessus
2500/tcp open rtsserv
MAC Address: (Unknown)
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=4.60%D=6/26%OT=25%CT=1%CU=33422%PV=Y%DS=1%G=Y%M=007662%TM=4A455AA
OS:F%P=i686-pc-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CC%TI=Z%II=I%TS=U)SEQ(SP=CD%GC
OS:D=1%ISR=CD%TI=Z%II=I%TS=U)OPS(O1=M5B4%O2=M5B4%O3=M5B4%O4=M5B4%O5=M5B4%O6
OS:=M5B4)WIN(W1=16D0%W2=16D0%W3=16D0%W4=16D0%W5=16D0%W6=16D0)ECN(R=Y%DF=Y%T
OS:=40%W=16D0%O=M5B4%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)
OS:T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%
OS:S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(
OS:R=N)U1(R=Y%DF=N%T=40%TOS=C0%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUL
OS:=G%RUD=G)IE(R=Y%DFI=N%T=40%TOSI=S%CD=S%SI=S%DLI=S)


Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.029 seconds
]

Bueno pudieron apreciar que nmap reacciono casi de la misma manera que con el 2do intento con un scaneo de puertos sencillo en los protocolos /tcp pero en este caso usamos el argumento -O para scanear el posible sistema operativo, como funciona? nmap envia cadenas especializadas a dos puertos especificos uno cerrado y uno abierto, estolo hace con el proposito de que cada sistema operativo reacciona de manera diferente a estas peticiones y como pudieron ver el scanner tubo problemas descubriendo el server que como mencione antes era ubuntu 8.10 pero igual vean los primeros resultados que se acercan a lo que queremos:

[ OS:F%P=i686-pc-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CC%TI=Z%II=I%TS=U)SEQ(SP=CD%GC ]

Los comandos basicos de nmap los pueden ir encontrando poco a poco que tal si cambiamos un poco los comandos para que vallan haciendose una idea y familiarizandose con dicho programa y la manera que tenemos como siempre de llagar a nuestro objetivo en este caso usaremos un scaneo intensivo pero rapido que se supone que nos arroje los resultados mas imprecindibles..

[go0ns @squad # nmap -T Aggressive -A -v 192.168.56.1

Starting Nmap 4.60 ( http://nmap.org ) at 2009-06-27 01:43 GMT
Initiating ARP Ping Scan at 01:43
Scanning 192.168.56.1 [1 port]
Completed ARP Ping Scan at 01:43, 0.02s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:43
Completed Parallel DNS resolution of 1 host. at 01:43, 13.00s elapsed
Initiating SYN Stealth Scan at 01:43
Scanning 192.168.56.1 [1715 ports]
Discovered open port 25/tcp on 192.168.56.1
Discovered open port 80/tcp on 192.168.56.1
Discovered open port 110/tcp on 192.168.56.1
Discovered open port 2500/tcp on 192.168.56.1
Discovered open port 1241/tcp on 192.168.56.1
Completed SYN Stealth Scan at 01:43, 0.55s elapsed (1715 total ports)
Initiating Service scan at 01:43
Scanning 5 services on 192.168.56.1
Completed Service scan at 01:43, 11.47s elapsed (5 services on 1 host)
Initiating OS detection (try #1) against 192.168.56.1
SCRIPT ENGINE: Initiating script scanning.
Initiating SCRIPT ENGINE at 01:43
Completed SCRIPT ENGINE at 01:43, 5.05s elapsed
Host 192.168.56.1 appears to be up ... good.
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT STATE SERVICE VERSION
25/tcp open smtp Postfix smtpd
|_ SMTP: HELP with errors or timeout. Enable --script-trace to see what is happening.
80/tcp open http Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch)
|_ HTML title: Index of /
110/tcp open pop3 hotwayd pop3d 0.8.4
1241/tcp open ssl/unknown
2500/tcp open smtp-proxy hotsmtpd based on hotwayd 0.8.4
MAC Address: (Unknown)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.13 - 2.6.23
Uptime: 0.089 days (since Fri Jun 26 23:35:55 2009)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=201 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: Host: go0ns.s3rver

Read data files from: /usr/local/share/nmap
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 33.036 seconds
Raw packets sent: 1735 (77.100KB) | Rcvd: 1731 (80.266KB) ]

Uff que lectura mas larga pero vamos a ver que datos contiene que nos pueden ayudar y ya se habran dado de cuenta de la gran diferencia con los resultados y el cambio de Parametros.

Veamos primero el scan y estas opciones para ver lo que relativamente es importante antes de probar este de ahora tratamos de identificar el sistema operativo lo que realizo fue adivinar el sistema operativo pero esta vez logramos de dar con el mismo mas especificamente y dar con los servicios que gestiona el mismo como los deamons miremos:

[ PORT STATE SERVICE VERSION
25/tcp open smtp Postfix smtpd
|_ SMTP: HELP with errors or timeout. Enable --script-trace to see what is happening.
80/tcp open http Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch)
|_ HTML title: Index of /
110/tcp open pop3 hotwayd pop3d 0.8.4
1241/tcp open ssl/unknown
2500/tcp open smtp-proxy hotsmtpd based on hotwayd 0.8.4 ]

Como podemos ver identifica nuevamente los puertos ya mencionados asi como los servicios y la version y magicamente identifica el sistema operativo que gestiona el server :

[ Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch ]

Sonrisa y la otra parte relativamente importante es que identifica la version de los servicios aunque esto no es tan fundamental por que puede que sea un falso asi como uno correcto pero aqui es que llega la intuicion del auditor de usar la logica ya que puedes ir teoricamente buscando cual es la version real de dicho servicio con la identificacion del sistema operativo.

y que resume esto? que podemos darnos con el escenario que la aplicacion web no es vulnerable pero si los servicios o deamons del mismo y podemos vulnerarla por ahi xD ELEMENTAL NO?

por eso es que es bien importante los scaneos de identificacion por que de muchas maneras puedes encontrar las vulnerabilidades si no lo son a nivel web son a nivel server pero siempre encontraras algo.Sigamos

[ OS details: Linux 2.6.13 - 2.6.23 ]

Nos indica mas o menos el kernel que corre bajo el sistema operativo pero no siempre se da este caso del mismo las mayoria de las veces lo atina..

otra de las herramientas que podemos encontrar por la jungla de la web es xprobe2 para la identificacion de sistemas operativos veamos:

[ go0ns.squad # xprobe2 -v 192.168.56.1

* Primary guess:
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.22" (Guess probability: 100%)
* Other guesses:
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.23" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.21" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.20" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.19" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.24" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.25" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.26" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.27" (Guess probability: 100%)
* Host 192.168.56.1 Running OS: "Linux Kernel 2.4.28" (Guess probability: 100%)
* Cleaning up scan engine
* Modules deinitialized
* Execution completed ]


casi igual como nmap lo unico que este tiene tareas mas especificas en la identificacion de sistemas operativos y nos arroja el mismo resultado que muchas veces pued confundir pero a medida que vallan perfeccionando las tecnicas dan con los mismos.

Otra herramienta que nos puede ayudar en la identificacion de sistemas y objetivos de la informacion del mismo es Maltego que se puede descargar desde Paterva.com con la que pueden sacar emails,directorios,archivos,dominios,sub dominios y otras cosas del servidor identificado.

entonces que es lo que quiero adentrar y detallar mas aqui solo queria explicarles que para identificar vulnerabilidades en un servidor no tienes primero que comenzar por la aplicacion web nesesariamente con tan solo con la identificacion misma del sistema puedes abrir muchas posibilidades a descubrir muchas mas cosas que solo las vulnerabilidades que tiene la web o el servidor...

si ya saben que pueden encontrar una aplicacion web en un servidor que no sea vulnerable que buscas por lados y no encuentras nadas pero se te olvido buscar los servicios que tiene el server pero cuando scaneas encuentras que tiene varios deamons que son vulnerables como el mencionado arriba que gestiona el correo postfix donde corre el servicio smpt y supongamos que ese servicio contiene un deamon que sea vulnerable a un buffer overflow o (desbordamiento) como quieran decirle entonces BINGO !!! haz encontrado algo al menos en mi servidor local solo hay muy ocos servicios gestionandose.

pero siempre alla fuera en la jungla encontrarn muchicimo mas como servicios de mysql,mssql,u otras cosas interesantes..

entonces siempre recuerden que la identificacion de sistemas es lo primero que debemos hacer a la hora de buscar vulnerabilidades en una web por que puedes llegar a encontrar puertas abiertas sin tener que registrar la aplicacion web y no te imaginas las posibilidades que hay dentro del mismo..

si si te preguntas SE PUEDE USAR NMAP PARA BUSCAR VULNERABILIDADES? no y si por que no te identificara las vulnes de primera instancia pero realiza algunas cadenas de reglas como metodos de scan que te audarian a identificar servicios sin actualizacion vulnerables a algunos ataques..

espero que esta breve explicacion sobre la importancia de la identificacion y puertos de un sistema les haya gustado ya Breve Pasamos al proximo Paper y Aqui les dejo una listita de algunas herramientas que te ayudarian en este renglon:
nmap
Zenmap
Amap
Maltego
httprint
unicornscan
xprobe

son herramientas con usos similares pero les pueden acomodar tareas especificas para sacarle provecho...

Greetz: JosS,alevsk,ANTRAX,h4n0wars,e-r00t.org,security-shell members,Darvein,y mis hijos por crecer tan rapido carajo xD..



###########
#blood_rec#
###########

para leer el papel mas completo:
Link
Link

0 comentários: