We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Hacking ético con herramientas Python

00:00

Formal Metadata

Title
Hacking ético con herramientas Python
Title of Series
Part Number
116
Number of Parts
169
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Jose Manuel Ortega - Hacking ético con herramientas Python El objetivo de la charla sería mostrar las herramientas que disponemos dentro de la propia API de Python y librerías de terceros para desarrollar nuestras propias herramientas que permitan realizar pruebas de seguridad y de pentesting de las aplicaciones. ----- Python se ha convertido en el lenguaje más usado para desarrollar herramientas dentro del ámbito de la seguridad. Muchas de las herramientas que podemos encontrar hoy en día como escáner de puertos, análisis de vulnerabilidades, ataques por fuerza bruta y hacking de passwords, se han escrito en este lenguaje ,además de ofrecer un ecosistema de herramientas para realizar pruebas de seguridad y de pentesting de aplicaciones. Entre los puntos a tratar podríamos destacar: - **Introducir Python como lenguaje de desarrollo de herramientas de seguridad** - **Introducir librerías para obtener información de nuestro objetivo como Shodan,pygeocoder,pygeoip** - **Análisis y extracción de metadatos en Python en imágenes y documentos** - **Análisis de puertos con herramientas como python-nmap**
11
52
79
Modul <Datentyp>Mathematical analysisInformation securityMultiplicationComputing platformInterior (topology)PrototypeMereologyWeb applicationFocus (optics)InjektivitätSocial engineering (security)InformationType theoryLaptopVulnerability (computing)Point (geometry)BitSpacetimeHacker (term)Module (mathematics)Goodness of fitWeb 2.0Software testingInformation securityMetadataSocket-SchnittstelleInternetworkingFormal languageServer (computing)Lecture/Conference
Open setConvex hullOnline helpLemma (mathematics)Normed vector spaceSoftware developerModule (mathematics)Server (computing)InformationComputer animation
WebsiteUniform resource locatorSocket-SchnittstellePort scannerConvex hullStreaming mediaModule (mathematics)Vulnerability (computing)AuthorizationDomain nameInformationServer (computing)Web 2.0Open setTelecommunication
outputSocket-SchnittstellePort scannerNetwork socketLetterpress printingTime domainPoint cloudError messageEmailString (computer science)Library (computing)Server (computing)Domain nameServer (computing)Computer programmingRevision controlFunctional (mathematics)Module (mathematics)ResultantLine (geometry)Operator (mathematics)Domain nameLecture/ConferenceComputer animation
Parameter (computer programming)Message passingTime domainServer (computing)Moment of inertiaInclusion mapProgrammable read-only memoryMultitier architectureHost Identity ProtocolExecution unitServer (computing)InformationWeb 2.0Software testingLibrary (computing)Module (mathematics)Revision controlLevel (video gaming)ResultantSource code
EmailString (computer science)CodeDependent and independent variablesLetterpress printingEmailServer (computing)CodeDependent and independent variablesInformationLecture/ConferenceSource code
EmailProxy serverType theoryEmailCharacteristic polynomialProxy serverAddress spaceLecture/ConferenceComputer animation
Dependent and independent variablesString (computer science)AuthenticationUniform resource locatorLink (knot theory)Letterpress printingEvent horizonAuthenticationServer (computing)Web crawlerElement (mathematics)Series (mathematics)Web pageLink (knot theory)Dependent and independent variablesLibrary (computing)Computer animationLecture/Conference
Computer-generated imageryException handlingDependent and independent variablesLink (knot theory)Error messageLetterpress printingBuildingRevision controlMedical imagingInformationExpressionCASE <Informatik>Series (mathematics)Probability density functionComputer animationLecture/Conference
BuildingRevision controlSystem callRule of inferenceProgramming paradigmSoftware frameworkLibrary (computing)InformationSeries (mathematics)Software developerLecture/Conference
CAN busBuildingSign (mathematics)Software developerDigital filterInformationWeb 2.0ResultantSource codeInternetworkingServer (computing)Lecture/ConferenceProgram flowchart
Software developerHill differential equationLetterpress printingSelf-organizationPhysical systemLine (geometry)Execution unitCurvatureModule (mathematics)InformationKey (cryptography)
InformationService (economics)Web 2.0CASE <Informatik>Server (computing)Revision controlComputer animation
Installation artComputer fileMathematical analysisInformationInformationWebsiteModule (mathematics)MetadataProbability density functionWeb 2.0Software frameworkLine (geometry)Server (computing)Source codeLecture/ConferenceComputer animation
Mathematical analysisComputer-generated imageryTorusInformationModule (mathematics)Medical imagingShift operatorLecture/ConferenceSource code
Port scannerHacker (term)Virtual machineOperator (mathematics)Lecture/Conference
Asynchronous Transfer ModeModule (mathematics)Asynchronous Transfer ModeNumberComputer animation
Exception handlingPort scannerError messageInformationElectronic mailing listOperating systemWindowComputer animationSource code
Electronic mailing listFunctional (mathematics)Series (mathematics)Vulnerability (computing)Asynchronous Transfer ModeParameter (computer programming)AdditionScripting languageType theoryPort scannerRoutingService (economics)Lecture/ConferenceComputer animation
InformationScripting languageVulnerability (computing)Vector potentialForcing (mathematics)Service (economics)Scripting languageNumberProcess (computing)Vulnerability (computing)InformationSeries (mathematics)Computer animation
Scripting languageParameter (computer programming)Scripting languageCASE <Informatik>Forcing (mathematics)Process (computing)Computer animation
Exploit (computer security)File Transfer ProtocolLoginException handlingHost Identity ProtocolWeb 2.0Installation artFile Transfer ProtocolUniform resource locatorProcess (computing)Forcing (mathematics)LoginComputer fileLibrary (computing)Module (mathematics)PasswordSeries (mathematics)Lecture/Conference
LoginTime domainNewton's law of universal gravitationDomain nameService (economics)Module (mathematics)Server (computing)Series (mathematics)Uniform resource locatorAddress spaceLecture/Conference
Vulnerability (computing)Software bugServer (computing)1 (number)Uniform resource locatorModule (mathematics)LoginSoftware testingInformationInformation securitySource code
Vulnerability (computing)Vulnerability (computing)Server (computing)ConsistencySocket-SchnittstelleCASE <Informatik>Software bugComputer wormInformation securityLecture/ConferenceComputer animation
Vulnerability (computing)CASE <Informatik>Software bugInformationWebsiteSource codeComputer animation
Vulnerability (computing)Service (economics)PasswordExploit (computer security)FreewareAsynchronous Transfer ModeMathematical analysisVulnerability (computing)Module (mathematics)InformationVideo game consoleWeb applicationInformation securityServer (computing)CASE <Informatik>Instance (computer science)Lecture/ConferenceComputer animation
Computer programVulnerability (computing)Exception handlingVulnerability (computing)InformationServer (computing)Module (mathematics)Lecture/ConferenceComputer animation
Menu (computing)Maxima and minimaFingerprintPoint cloudDrum memoryModule (mathematics)Demo (music)Series (mathematics)Vulnerability (computing)Virtual machineOpen setSource codeComputer animation
Computer configurationBit
Content (media)AirfoilServer (computing)Service (economics)Computer configurationCASE <Informatik>Open setVirtual machineSeries (mathematics)Computer animation
WebsiteServer (computing)Connected spaceSource code
Level (video gaming)InformationService (economics)Server (computing)Vulnerability (computing)Virtual machineComputer animationSource codeJSON
Normed vector spaceExploit (computer security)Service (economics)Group actionService (economics)Vulnerability (computing)Exploit (computer security)Computer animationSource code
Compilation albumWechselseitige InformationProbability density functionPoint cloudNormed vector spaceEquals signWordAsynchronous Transfer ModeSound effectConvex hullSoftware testingHacker (term)Web pageSeries (mathematics)Library (computing)Forcing (mathematics)Scripting languageSoftware testingSource codeComputer animation
InformationControl flowInheritance (object-oriented programming)Search engine (computing)Lecture/Conference
Buenos días, perdona el retraso, pero bueno, el portátil este hoy no quedó de arrancar. Mi charla va un poco, herramientas que podemos encontrar dentro del ecosistema de Python para testear la seguridad de las aplicaciones, de los servidores, obtener información de los servidores, etc. La parte más enfocada al Hacking, al Hacking ético.
La presentación la colgaré en mi espacio Speaker Day. Estos son un poco los puntos que voy a tratar, voy a hacer una pequeña introducción a las herramientas de pentestion en Python comentando algunos de los módulos principales que podemos encontrar como el módulo Sockets, el módulo Request, Beautiful Sub o el módulo de Shodan para obtener
información de servidores, información pública que está expuesta en internet. Luego pasaría un poco a comentar la extracción de metadatas, de imágenes, documentos, etc. Y por último, aspectos un poco más avanzados como hacer un escáner de puertos,
chequear las vulnerabilidades de un servidor y luego mostraré una herramienta que he hecho a prueba de concepto donde se integra todos estos módulos para que veáis cómo sería. Bueno, básicamente las herramientas hoy en día en Pentesting, bueno, Python es un
tipo de herramienta que tiene como ventajas que es muy fácil hacer pruebas rápidas de concepto. Entonces, esto junto con la documentación que hay mucho por internet, de todas las librerías, de todas las herramientas que hay, nos permite hacer de forma rápida,
hacer una prueba de concepto, una herramienta rápida que nos permita comprobar la seguridad de un servidor, los puertos que tiene abierto, la seguridad de una aplicación web, etc. Hoy en día, no de las herramientas principales que podemos encontrar dentro del único sistema
Python, que están hechas con Python, podemos encontrar, por ejemplo, SQL Map, que permite detectar vulnerabilidades del tipo SQL Injection en aplicaciones web, no solo detecta vulnerabilidades, sino también explotar la vulnerabilidad. Y otras herramientas que también están hechas
con Python es el Social Engineering Toolkit, que permite realizar ataques de ingeniería social. Una de las herramientas que tenemos actualmente que está en desarrollo es Sparta. Sparta está hecha en Python y es una herramienta que te permite realizar ataques por fuerza bruta,
ver los puertos que tiene abierto, etc. Entonces, esta herramienta, veremos que uno de los principales módulos con las cuales está hecha esta herramienta es el módulo de Python en Amazon, que luego lo veremos. Otra de las herramientas que también nos permite obtener información de servidores es de Hubster. Nos permite obtener información
pública, que es pública, en los servidores. Entonces, para ello utiliza buscadores, utiliza buscadores de Google, de Bing y demás. Y también podemos extraer información del dominio, obtener correos electrónicos, urls, dominios, servidores que están bajo
esa url. Otra de esas herramientas también muy conocidas es el W3AF, que es una herramienta que te permite también hacer autorías web, también detectando vulnerabilidades
de todos los tipos, de secuinjection, cross-escripting, etc. Para empezar, comentar el módulo de shockers. Una de las primeras pruebas de concepto que se nos podría ocurrir es detectar los puertos que tienen abierto el servidor. Para ello, la forma
sencilla es utilizar el módulo de shockers. Entonces, abriendo un socket con el servidor, podríamos ver si un determinado puerto está abierto o no. Una vez que sabemos si un puerto está abierto o no, ahí ya podremos hacer más cosas sobre ese puerto.
Esto sería un programa donde con 15 líneas se podría hacer un escáner de puertos sencillo, donde básicamente preguntaremos al usuario la IP, el puerto a partir del cual empieza
a escanear, el puerto de inicio y el puerto de fin y nos daría como resultado los puertos y si está abierto, si está cerrado o si está filtrado para ese IP. El módulo de shockers también ofrece la posibilidad de resolver la resolución inversa. A partir de la IP,
obtener el nombre de dominio y a partir del nombre de dominio obtener la IP. A partir de las funciones gethost by address y gethost by name. Otra de las características que también podemos obtener con el módulo de shockers es obtener el banner de servidor.
Podemos obtener, por ejemplo, el sistema operativo, la versión del servidor que está corriendo en esa máquina, etcétera. Con un programa muy sencillo, un banner server, al cual le pasaríamos por parámetro el target, la IP, el del servidor y el puerto sobre el
cual queremos obtener la información del servidor. De forma muy sencilla podríamos obtener, en este caso, que el servidor es un NGIS, está corriendo en el puerto total. Otro de los módulos que tenemos dentro de Python es el módulo Request. Monorequest
es un módulo que surgió a raíz de las librerías url2 y url3 para mejorar, para que fuera más sencillo hacer peticiones a una página web o a un servidor o a una
web de código. A nivel de testing es mucho mejor, mucho más rápida con respecto a las versiones de url3. Con Request, básicamente, podemos obtener las cabeceras, tanto de la
petición como la respuesta, accediendo a la respuesta de la petición y dentro del response.headers, ahí tendríamos las cabeceras, tanto de la petición como la respuesta.
En este ejemplo vemos como obtenemos un status code de 200, que es un OK, diciendo que el servidor ha respondido bien y podríamos obtener información de las cabeceras, por ejemplo, que el servidor está en ejecución, si está enviando cookies
por debajo, si está tanto en la petición como en la respuesta, el tipo de conexión, etcétera. El content, etcétera. Todo esto lo proporciona a las cabeceras de la petición. La otra característica interesante de Request es que nos podemos conectar a un url a través de un proxy. Esta característica también la posibilitaba url3, pero en este
caso en Request se ha simplificado bastante, ya que pasando simplemente un diccionario, un proxy dig, donde indicamos la dirección HTTP del proxy, podríamos usarlo de una forma
más sencilla. También posibilita temas de autenticación, si tenemos un servidor que es que esté basado en autenticación o autenticación de yes o con out,
copas664, también podríamos, de una forma sencilla, autenticarnos. Beautiful Sub es una de las riberías principales que disponemos en Python para todo el tema de parsear la respuesta de una página y nos da una serie de funcionalidades,
una serie de métodos para acceder a los distintos elementos de la página. En este caso, en este ejemplo vemos cómo, de una forma muy sencilla, podemos recuperar todos los links a partir de una url. Con el método final y pasándolo como parámetro,
la etiqueta de un enlace, podemos obtener todos los enlaces de una página. Beautiful Sub se puede utilizar también para crear spiders o crawlers que vayan navegando por las distintas páginas a partir de un dominio y vayan extrayendo la información
sobre links, información que esté en la web, información pública. Otra cosa que podemos hacer es extraer, con esta funcionalidad podemos extraer imágenes y documentos. En este caso Beautiful Sub podemos utilizar una serie de parses predefinidos,
como lxml y html. En este caso estamos utilizando el html y mediante expresiones xpath, es decir, expresiones del tipo barra barra img barra arroba src a acceder a los
distintos imágenes del documento. En este caso estamos extrayendo información de las imágenes, información de las imágenes que estén en esa url y documentos pdf con expresiones xpath. Otra de las librerías que disponemos también a raíz de que también
se puede utilizar para recuperar información, extraer información de forma automática, crear nuestros spiders o nuestros crawlers, Scrappy. Es un framework bastante potente
ya que se puede hacer un montón de cosas. Básicamente permite crear nuestros propios spiders a partir de una serie de reglas que nosotros predefinamos y con esas reglas lo que hace el Scrappy es extraer la información que nosotros le digamos. Por debajo esta
herramienta utiliza Twisted como librería para ejecutar llamas asíncronas y usa por ejemplo el paradigma de desarrollo dirigido por eventos, para realizar llamas asíncronas y demás. Bueno, si queréis más información sobre web scrapping de algunas charlas,
Scrapping the web y Python tools for web scrapping que las tenemos disponibles en el speaker. Una de las principales fuentes de información que disponemos en internet es para todo el tema de hacking ético se usa mucho para tener información pública que está expuesta
en servidores. Básicamente, Siodan lo que nos permite, bueno, Siodan tiene aparte de la web, si te registras como desarrollador, como developer, tienes a la hora de hacer las búsquedas, si te registras tienes la posibilidad de que te devuelvan más resultados, ya que
si haces una búsqueda sin registrarlo, los resultados están más limitados. Bueno, tiene una API para developer y bueno, es bastante sencilla de instalar y de usar.
Básicamente lo que necesitamos es una API key y nada, importamos el módulo Siodan y con esa API key ya estaríamos en disposición de obtener la información de un determinado host, de un determinado dominio o podemos incluso obtener la información, los banners, de la misma forma
que hemos visto antes con el módulo de soques para obtener la información del banner o del servidor, pues Siodan también nos permite obtener el banner del servidor, los puertos que tiene abiertos, etcétera. Este sería un ejemplo con Siodan donde vemos información
pública, en este caso es la web del EuroPython, donde vemos información sobre el host, los puertos que tiene abiertos, el 22, 25 y 80 y luego para cada servicio nos da información sobre la versión de ese servidor que está corriendo, etcétera. Esta información con
Siodan sería tan fácil como invocar al método que hemos visto antes de host, donde nos da toda la información sobre el host y básicamente lo que nos devuelve ese método es un diccionario,
no es clave valor, no es directo, sino que es un poco más complejo ya que es un diccionario hay algunas posiciones, que es un vector, entonces tienes que ir jugando con vector
diccionario para acceder a toda la información que vemos. Otro de los módulos que disponemos en Python es buildwith, es un módulo muy sencillo ya que básicamente lo que nos da es información sobre los frameworks que está utilizando por ejemplo un sitio web, simplemente
tiene un método que es parse, que le pasamos el sitio web y nos devuelve la información de qué framework está usando, si está utilizando por ejemplo un jQuery y el servidor web que está utilizando por debajo. En cuanto a la metadata, básicamente disponemos
dentro de Python el ppdf2 que es el módulo que nos permite extraer metadatos con 10 líneas podemos obtener toda la información que tenga los metadatos o al final si es información que va adjunta al documento, que en principio parece que no está,
pero luego si descubrimos un poco vemos como es que hay cosas, nos da información de la misma forma podemos proceder para imágenes mediante otro módulo que es el módulo pil
y con el sub módulo es shift tags a algunas imágenes, cuando hacemos una imagen por ejemplo siempre se suele almacenar información por ejemplo información relativa a cuando se hizo información de gps incluso se puede guardar con qué se hizo la imagen etcétera.
Otro de los módulos que disponemos es el de pgeoip que nos permite a partir de una dirección ip obtener información de geolocalización básicamente, país, latitud, longitud etcétera.
Una de las herramientas principales que se usan dentro del mundo de hacking ético es el port de scan, es muy conocido por el nmap, es multiplataforma,
se puede instalar en cualquier sistema operativo y nada es muy potente ya que te permite de un vistazo muy rápido es los puertos abiertos o cerrados o filtrados que tiene una determinada máquina. Uno de los módulos principales que podemos usar en python es python nmap,
básicamente este módulo dispone a grandes modos de dos modos, por un lado tenemos el modo síncrono donde tú lanzas el escáner y va uno a uno, para hacer el scan le pasas la ip y el número de puertos y el modo síncrono va uno a uno,
comprobando si el puerto está abierto, cerrado o filtrado. Y luego tiene otro modo que es el modo, esto sería un ejemplo donde vemos cómo se haría un scan de modo síncrono,
básicamente tiene un método que se llama port de scaner, donde ahí inicializamos ese escáner y luego con el método scan le pasamos el host y la lista de puertos y automáticamente por debajo
lanzaría el comando nmap del sistema operativo, ya sea windows o más o menos. Este sería un ejemplo donde le pasamos el target y luego una lista de puertos y lo que hace lo que vemos es lanzar el comando por debajo lanza nmap con una serie de parámetros que tiene predefinidos en el puerto 21,
22, 23, 24, 25, 80 y en la ip tal y nos dice si está abierto o cerrado. Y el otro modo es el modo síncrono donde de este modo nos podemos aprovechar para ir ejecutando
un escaneo en cada puerto uno a uno pero sin tener que esperar a que finalice uno para empezar el otro. De esta forma podemos proceder para cuando queramos hacer un escaneo asíncrono.
Básicamente lo que tiene es un parámetro de callback donde definimos una función, con esta función lo que haríamos es que cuando se escanee en un puerto determinado, cuando termine el escaneo que salte a esta función, en esa función podríamos hacer un tratamiento adicional,
por ejemplo si queremos comprobar una vulnerabilidad en ese puerto lanzando un script de nmap como ahora veremos. Esto sería un ejemplo también de modo asíncrono donde vemos cómo lanzamos un escaneo en el puerto 21
y donde aparte de decir si está abierto o cerrado también tendremos la posibilidad de lanzar los scripts de nmap que vienen instalados cuando instalas nmap, viene una serie de scripts para detectar vulnerabilidades en ese puerto.
Hay scripts para cualquier tipo de servicio que se puede imaginar, FTP, HTTP, base gator, SQL, lo que queráis.
En Unis por ejemplo, en la ruta Ousyshear nmap scripts estarían estos scripts, donde vemos como hay una cantidad bastante importante de scripts. Básicamente lo que permiten estos scripts es encontrar vulnerabilidades en un determinado puerto,
por ejemplo si el puerto de MySQL está abierto aprovecharíamos para lanzar un script, por ejemplo si en MySQL hay una serie de scripts para obtener información sobre el servicio,
también dispone de scripts para ejecutar un proceso de fuerza bruta para obtener el número de usuarios, y podemos detectar vulnerabilidades en cualquier servicio abierto. Este sería un ejemplo donde con MySQL comprobando el puerto 3.306 podríamos ir comprobando,
lanzando los scripts, hay un MySQL audit, MySQL brute, que ejecuta un proceso para obtener los usuarios mediante fuerza bruta,
hay otro script que te da las bases de datos en el caso de que se pueda acceder, hay muchos scripts que te permiten hacer estas cosas.
Con respecto a Soda, también te permite comprobar si un FTP soporta un anonymous login, es decir un login que no requiere usuario contraseña, de forma muy sencilla con la librería FTPlib podríamos comprobar si un determinado servidor FTP
soporta la autenticación anónima o no. En cuanto al v6-fuzzer, esto básicamente permite a partir de una URL y una serie de ficheros
que contiene una serie de URLs internas que podríamos testear sobre un servicio,
básicamente lo que nos permite, dentro de Python tenemos el p-width-boot, donde vemos que este módulo nos permite, a partir de un proceso de fuerza bruta basado en direcciones URL,
nos descubriría que direcciones están disponibles en un determinado servidor. Este módulo, el p-width-boot, nos proporciona una serie de submódulos para probar
descubrimiento de servicios que estén en un determinado dominio, podemos probar si un determinado dominio es vulnerable a un login que esté descubierto
de forma que sea vulnerable en ese sentido. Por ejemplo, este módulo nos permite obtener las URLs que son predecibles dentro de un dominio,
tal de las típicas como admin, index, login, logon, que a simple vista no las ves porque no es público, no es información que se pueda ver a simple vista,
pero luego si vas probando las distintas URLs vas viendo que en este servidor vemos que hay un index.php y se puede hacer un login.
De una forma más rápida, más automatizada, podemos testear si hay URLs predecibles, que a simple vista no se ven pero sí que están ahí. Otra de las cosas que podemos hacer es testear la seguridad de los servidores,
por ejemplo, si un servidor tiene un módulo OpenSSL que es vulnerable al Heartbleed, el Heartbleed es un bug que se intentó hacer en 2014 para que es una vulnerabilidad en el módulo de OpenSSL
para que te permita conectarte, descubrir o tener certificados del servidor, etc.
De una forma sencilla, en Compacto podríamos enviar o testear la seguridad de un servidor desde este punto de vista, deteniendo si tiene una vulnerabilidad a este bug. Básicamente lo que hay que hacer es enviar una petición, enviar un paquete especial,
en este caso estoy utilizando el módulo Sockets mediante el método senc, enviamos este paquete especial, esto es como si fuera el payload, cuando se quiere testear la seguridad de un servidor o explotar una vulnerabilidad,
lo que se hace es enviar un payload en la jerga dentro de la seguridad, en este caso se está enviando un payload específico para este bug, entonces si recibimos una respuesta que esté en consonancia con ese IP y Load, significa que el servidor es vulnerable.
En este caso vemos como la respuesta, o tenemos ahí un montón de información y vemos como en este IP,
hay un sitio donde podemos ver si una determinada IP es vulnerable a este bug, entonces nada, no hay información si es vulnerable o no.
¿Argumentas más avanzadas que podemos usar también para que se podamos integrar desde Python? Bueno, muchas, Metasploit como herramienta principal para explotar vulnerabilidades, NextPause, Nexus o OpenBus que son herramientas que te permiten realizar análisis de vulnerabilidades,
análisis de vulnerabilidades en servicios, en bases de datos, etc. Y W3AF que es la herramienta que he comentado antes, esta también se puede integrar desde Python con un modo específico.
En el caso de Metasploit hay un modo que se llama Python MSFRPC, básicamente con Metasploit lo que hacemos es levantar una instancia de Metasploit,
es la que se llama la consola de Metasploit y una vez levantada la consola, ahí ya podríamos jugar enviando información al servidor. Metasploit dispone de una cantidad bastante grande de múdulos de explotación,
de payloads, múdulos auxiliares, etc. que vienen muy bien para testear la seguridad de los servidores, de las aplicaciones web. Otra herramienta también interesante es NextPause,
NextPause es una herramienta desarrollada por Rapid7 para escanearla y descubrir vulnerabilidades también en servicios, servidores, etc. Y permite el acceso de forma programática desde Python,
tanto mediante HTTPS, HTTPS, etc. Y una forma de obtener la información de este módulo es mediante V2FullSub, ya que la información cuando nos conectamos a un servidor de NextPause, la información nos la devuelve en formato LXML.
De una forma muy sencilla podríamos acceder a las vulnerabilidades registradas en el servidor al que nos conectamos.
Por último comentar una herramienta PentiumTool que es una herramienta donde integrado todos estos múdulos que he comentado, están integrados en esta herramienta, la herramienta está disponible en Github, en mi Github personal,
vamos a ver una pequeña demo, bueno, básicamente aquí tengo una máquina virtual donde tengo una serie de, bueno esto es una máquina virtual que está disponible en internet que se llama MetaExportable Linux,
que tiene ya una serie de puertos abiertos, una serie de servicios vulnerables, MSQL, FTP, SH, etc.
Vale, voy a lanzar sobre el puerto 21,
en el target de 122.168.56.101 que es la IP de la máquina esta habitual, sobre el puerto 21, entonces bueno, la primera opción que podemos hacer es un escalón de puertos sobre el puerto 21, check-in por 21 y nos tendría que decir que efectivamente está abierto ese puerto.
Estaba un poquillo porque por debajo, bueno esto ejecuta NMAB por debajo y bueno hasta que no se ejecuta por debajo,
no sé por qué no está funcionando, voy a probar con un dominio, no sé por qué no está funcionando,
bueno esto es el servidor que he comentado, el NextPause,
donde básicamente lo que hace esto es escanear, tú le pasas un IP o un dominio, una URL, y lo que te hace es escanear ese sitio detentando vulnerabilidades, en este caso es escaneado la máquina virtual esta Ubuntu que tiene una serie de servicios abiertos y demás,
que se llama MetaExplotable y una de las opciones que tiene la herramienta, la opción 15 en exacto, es la conexión con un servidor NextPause,
básicamente lo que tenemos que hacerle es pasarle, bueno el IP es local, el puerto, donde está escuchando el servidor y luego el usuario que es el cual te lo veas, te está devolviendo la información, primero te devuelve el site que ha sido analizado,
no te muestra el IP pero bueno, el IP la podemos ver dentro de aquí, 122.108.516.1 que son Ubuntu Linux y aquí vemos cómo nos está sacando todas las vulnerabilidades que tiene esta máquina,
esto básicamente lo que hace es leer un XML que está devolviendo un servidor, y mediante VToolsBoolSub está accediendo a toda la información sobre que está devolviendo un servidor,
bueno esta máquina tiene un montón de vulnerabilidades, en cada servicio tiene vulnerabilidades a nivel de PHP, servidor de PHP, todas las vulnerabilidades que os podáis imaginar la tiene esta máquina,
aquí salen todas las vulnerabilidades que tiene, los exploits para cada vulnerabilidad, los servicios que tiene abierto, puerto 21, FTB por ejemplo, las vulnerabilidades detectadas,
y luego aquí vemos cómo van a salir las vulnerabilidades, bueno si queréis darle un vistazo, está en Github, a veces cuando se me ocurre alguna funcionalidad por la añado,
si queréis echarle un vistazo pues está disponible libremente, bueno en el Github también tengo una serie de scripts individuales para probar una determinada funcionalidad,
por ejemplo un scar de puertos o comprar un socket o comprobar un proceso de fuerza bruta o en el FTP, en Github también hay una serie de scripts para si queréis probar de forma individual alguna funcionalidad,
y por último referencias y librerías, la documentación oficial y luego la página de PythonSecurity.org, donde están todas las librerías que he comentado y muchas más están en esa página, y por último referencias y libros que son las más importantes,
Black Hat Python, Python Pentesters, Grey Hat Python y Python Pentesters, que es el único libro en español que he encontrado que trata estos temas, publicado por la editorial 0xwork que es una editorial de las más importantes,
que tiene muchas publicaciones a nivel de seguridad, etc. Y ya está, thank you. Gracias José Manuel, vamos nueve minutos retrasados, pero si alguien quisiera hacer una pregunta,
si nos alcanza pues nos... Hola, gracias, una cosa, Shodan? Shodan? Sí, súper japonés, entiendo que es un buscador que no te dice nada que no sea información pública ya, solamente que la tiene indexada. Exacto, la tiene indexada en sus servidores, es información pública que está indexada.
Y por eso todo lo que hacen es perfectamente legal, porque hay información pública. Perfecto, muchas gracias, si no hay más preguntas que disfruten el exposure de pausa.

Recommendations

Thumbnail
Thumbnail
Thumbnail
  Series of 16 media
Thumbnail
Thumbnail
Thumbnail
  Series of 34 media
Thumbnail
Thumbnail
Thumbnail
  Series of 16 media
Thumbnail
Thumbnail
Thumbnail
  Series of 335 media
Thumbnail
Thumbnail
Thumbnail
  Series of 122 media
Thumbnail
Thumbnail
Thumbnail
  Series of 85 media
Thumbnail
Thumbnail
Thumbnail
  Series of 322 media
Thumbnail
Thumbnail
Thumbnail
  Series of 93 media