This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Fraile

Pages: [1]
1
Hacking / Re: Artículo Teclado Diabolico.
« on: January 09, 2022, 01:29:02 pm »
Muchismas gracias.

2
Hacking / Re: Artículo Teclado Diabolico.
« on: January 08, 2022, 02:08:25 pm »
Hola AXCESS,

Me alegra que este artículo te haya podido interesar. Respecto a tus preguntas, puede que el chip si tenga similitudes, pero con sinceridad, tendria que investigar un poco más. Así que voy a investigar un poco y te contesto.

Muchas gracias por tus comentarios, de verdad, un cordial saludo.


3
Hacking / Artículo Teclado Diabolico.
« on: January 04, 2022, 02:58:43 pm »
You are not allowed to view links. Register or Login

Hace unos años, que aparecieron en el mercado, pequeñas placas programables. Estas placas, se programan con Arduino. Arduino nace más o menos en el año 2005, para cubrir la necesidad de formación con bajo coste para alumnos de electrónica.

En este artículo, me gustaría hablaros de una de esas placas, la placa con chip “Atmega32U4”.



Esta placa, aparte de servir para diversos tipos de proyectos, tiene un comportamiento, bastante interesante, se comporta como un teclado, si como un teclado de ordenador!!!. Quiere decir que cuando la pinchamos en un puerto USB de un ordenador, el ordenador la reconoce como teclado.

¿Y cómo mando las pulsaciones de las teclas?, pues es realmente sencillo, esta placa lleva una pequeña “eprom” por decirlo de alguna forma, que nos permite escribir en ella las pulsaciones de teclado que deseamos enviar al ordenador, una vez pinchada en un puerto USB.

Ummmmmmm!!!, interesante verdad???. Ahora es el momento de coger alguna prenda de ropa que lleve capucha y ponerte esa capucha…… Siiiiiiii!!!, vamos a pensar como un ciberdelincuente (por favor, no me mal interpretéis, no todos los que llevamos prendas de ropa con capucha somos ciberdelincuentes, pido disculpas si he podido ofender a alguien).

El caso es, ¿como puedo pasar esta placa al lado oscuro?….. Pues ya sabiendo que se comporta como un teclado cuando la pincho en un puerto USB, puedo programarla para que haga cosas como:

·        Abrir una consola y copiar algunos ficheros.

·        Abrir una consola y borrar…..

·        Intentar meter un malware.

·        ……..

Bueno hacer uso de vuestra imaginación……. En el momento que le damos un “mal uso” a esta placa, puede denominarse que es un Bad USB o Rubber Ducky…….

Yo, os voy a explicar cómo usarla, para abrir una puerta trasera, o Shell inversa…… Siempre claro está desde el punto de vista de la ciberseguridad, sobre todo para que si nos encontramos un USB en la calle o cerca de nuestra oficina… no lo pinchemos alegremente, esperando encontrar “algo”, que nos haga pasar un "ratico" divertido o por pura curiosidad y el ser humano es curioso por naturaleza…..

El proyecto conlleva lo siguiente:

·        Un pequeño programa en ensamblador, que será la Shell.

·        Un servidor (en internet….) donde alojare el programa creado en el punto anterior.

·        Un ordenador, que estará a la escucha, en esta POC, usare Metasploit, con el exploit Multi/Handler.

Evidentemente necesitaremos nuestra placa USB con el chip “Atmega32U4” y unas cuantas líneas de Arduino, para que una vez pinchada, copie la Shell realizada en ensamblador en el ordenador de la víctima y la ejecuté.

Bien pues empecemos con el programa en ensamblador, que será nuestra puerta trasera o Shell que se ejecutara en la victima y nos dará acceso a su disco duro.




Este programa, básicamente lo que hace es abrir un socket por el puerto 4444, apuntando a la IP de nuestra maquina que está escuchando “192.168.2.128”. Y creando una “CMD” en la victima enlazada con dicho socket.

Este programa una vez compilado pesa unos 6k mas o menos. ¿Por qué lo has realizado en ensamblador?. Muy buena pregunta!!!, pues por varios motivos, no es un lenguaje interpretado, trabaja directamente con las API’s de Windows, será un programa muy rápido de ejecutar, pesa muy poco……… Y porque me encanta el ensamblador. Aprovecho para animaros a que realicéis mi curso, que lo podéis encontrar en The Security Sentinel.

Bien el siguiente punto, será dejar el programa en un servidor en internet, que tenga abierto el puerto 445 SMB, con una carpeta en modo lectura (muy importante esto, si no tenéis claro como levantar un servidor SMB con las medidas necesarias para no ser hackeado, mejor no lo hagáis).

En este punto, os podéis estar preguntado, ¿y por que no levanto un servidor FTP y lo bajo desde ahí?. Por la pruebas que yo he podido realizar, os diré que lo intente, pero cuando pinchas la placa USB, donde está programado en Arduino los comandos que quieres que se ejecuten, bien a través de la consola “CMD” o bien desde ejecutar, el sistema operativo, en mi caso un Windows 10 profesional, con la UAC activa y Microsoft Windows Defender levantado, te piden elevación de privilegios y no te va a dejar bajarlo por FTP. Pero si lo haces por medio de recursos compartidos SMB, vamos \\ip\recurso\shell.exe, no te va a pedir esa elevación de privilegios y lo va a copiar al ordenador de la victima sin ningún tipo de problema.

Bueno, ahora toca la parte de poner un ordenador a la escucha. En mi caso, levante un Parrot, y con MetaSploit, use el exploit Multi/Handler.



Fíjese, que aquí solo hay que configurar la IP, que será la misma que se puso en nuestro programa en ensamblador.

Así que una vez que pinchemos nuestra placa “Teclado Diabólico” al puerto USB de la víctima, este ejecutara el código en Arduino para que baje el programa en ensamblador y lo ejecute, conectando directamente con nuestra maquina que está a la escucha.

Bien, pues veamos ahora el código en Arduino, que vamos a guardar en la placa con chip “Atmega32U4”.



Este código se divide en dos, el primer bloque le envía pulsaciones al teclado para que abra el panel de ejecutar de Windows y escribe en él un copy, para traernos la Shell hacia nuestro objetivo y guardar el ejecutable en la carpeta %temp%



El segundo bloque de código, es para ejecutar el ejecutable, la Shell.



Una vez ejecutado salta el ordenador que está a la escucha y ya tengo el control del ordenador objetivo.



Mucho cuidado con los USB, podrían ser “Teclados Diabólicos”.

Disculpar que no haya entrado en explicar todo el código, pero no era mi intención extenderme tanto, de todos modos si estáis interesados en estos temas, me podéis escribir a [email protected]

Comentaros también, que el Windows Defender, me lo detecto al segundo intento. Tuve que reiniciar la máquina para que volviera a funcionar, así que entiendo que el exe, realizado en ensamblador se tendría que camuflar, pero eso ya es otra historia……

Espero que este artículo os haya sido de interés, desearos un feliz año nuevo.

Nos vemos el proximo año!!!!.

Enlace: You are not allowed to view links. Register or Login



4
Ingeniería Inversa / Código Interpretado bajo Windows.
« on: November 23, 2021, 06:21:08 am »
No todos los lenguajes de programación, una vez compilados, el binario o “EXE”, se traducen directamente a “código maquina”, si no que su programa o binario “EXE”, depende de un “interprete” incorporado que pasa su “EXE” a código maquina.

Para los profesionales que se dedican a la ingeniería inversa, esto puede suponer tener  que aprender a trabajar con diferentes herramientas, depuradores o desensambladores.

Me gustaría hablar en este artículo de Microsoft Visual Studio, esta gran plataforma de programación, en la cual se puede programar en diferentes lenguajes como C#, Visual Basic, C++… realmente una vez compilados sus proyectos o soluciones, se traducen a un código intermedio.

Microsoft Intermediate Languaje.

O como realmente se le conoce “MSIL”.

Lenguaje Intermedio de Microsoft. Código «semi ejecutable» preparado para ser lanzado posteriormente en cualquier tipo de máquina.

Cuando se compila el código escrito, el compilador lo traduce a un código intermedio denominado MSIL o simplemente IL, correspondiente a un lenguaje independiente de la unidad central de proceso (UCP).

Este código intermedio es pasado a la CPU, por el CLR “Common Languaje Runtime”, en tiempo de ejecución.


Estos tipos de binarios, le van a costar un poco mas de analizar, o tendrá que usar algunas herramientas que están en el mercado que le facilitaran mucho el trabajo. Yo le voy a realizar una introducción de cómo analizarlos con OllyDBG, pero no entrare en muchos matices pues no es la finalidad de este artículo.

Para seguir este artículo por favor solicíteme la POC “BinarioIntermedioVB.exe”. Lo abrimos con OllyDBG.

Lo primero que va hacer es ejecutar el programa para ver que hace. Verá que el programa es muy simple, solo pide un texto y una validación con el botón “Clave”, si el texto que mete es “Cayetano”, saldrá un msgbox mostrando “Ok”.

Como le he comentado un poco más arriba este tipo de binarios, lleva lo que se denomina un código intermedio, vamos el “EXE”, no lleva un código nativo puro, lleva en este caso el código MSIL de Microsoft. En el mercado tiene aplicaciones como Net Reflector, que le permitirán interpretar el código MSIL.

Bien pues vamos a ejecutar el binario abierto anteriormente “BinarioIntermedioVB”, y Ejecútelo con “F9”. Lo primero que quiero que observe, es el mapa de memoria una vez ejecutado el binario:


Fíjese que debería de ver en la parte de arribar el nombre de su binario con sus cabeceras y secciones:


Y un poco más abajo vera DLL que usara su binario como:


Solo al ver “CLR”, ya sabe que este binario es de código intermedio, que pertenece a Microsoft.

Le explico primero que es lo que se va a encontrar en su primer bloque “BinarioIntermedioVb.exe”, vera que tiene su cabecera como cualquier otro binario, sus secciones, .text, .data…… Bien, entre en la sección de .text. Directamente se le abrirá el “Dump” y estará viendo el ya mencionado código intermedio “MSIL”, conforme usted vaya ejecutando el programa, Windows le ira pasando este código intermedio MSIL, al CLR y el CLR a su vez lo pasara a “CLRJIT”. Este último será el encargado de convertir el código intermedio en código nativo y pasárselo a la CPU.

Como se puede imaginar depurar este tipo de binarios puede ser un poco más complejo.

Si va bajando por el “Dump”, viendo el código “MSIL”, la inmensa mayoría del código, son configuraciones del formulario, colores, etiquetas, propiedades…….. Si se fija con atención verá algo como esto:


Bien, pues esto es, en perfecto código “MSIL” básicamente el núcleo de su pequeño programa. En definitiva está cogiendo el contenido de la caja de texto, y lo está comparando con una variable global, que esta inicializada a “Cayetano”, si en la caja de texto también pone “Cayetano. Lo comparara y si las dos cadenas son iguales mostrara “OK”.

Mi objetivo ahora mismo es enseñarle a tratar este código una vez que el “CLRJIT”, lo tiene pasado a nativo, para que antes de ser procesado lo podamos interceptar y hacer cosas con él.

Como le he comentado al principio esta aplicación es muy sencilla:

Verá que el programa es muy simple, solo pide un texto y una validación con el botón “Clave”, si el texto que mete es “Cayetano”, saldrá un msgbox mostrando “Ok”.

Pues bien, quiero que teclee en la caja de texto “Cayetano”, y seguidamente le dé al botón “Clave”, vera que le aparece una ventana de “MessageBox”, que le dice “ok”. Seguidamente pause la ejecución de OllyDBG con,   


tiene que hacerlo muy, muy rápido. Y seguidamente pulse


Si todo ha ido bien, tiene que estar viendo una pantalla como esta:


Desde esta pantalla podemos ver todo lo que está en la pila, y la funciones o API, que se están ejecutando en el momento de pausar la aplicación.

Usted se va a fijar en:


Como se estará figurando ese “MessageBoxW”, le va a llevar a las tripas del entramado de este binario….. Si da dos clic rápidos sobre él, “user32.MessageBoxW”, Debería estar viendo esta pantalla.


Esta es la api, de la librería USER32.dll , “MessageBoxw”, va a poner un punto de ruptura justo en el RETN 10, de esta forma podremos volver una vez pulsado el botón de aceptar del “OK”, al procedimiento que llamo a esta API o función.

Una vez puesto el punto de ruptura, le volvemos a dar al botón de nuestra aplicación “Clave”. Debería haber saltado a su punto de interrupción, ahora va a pulsar la tecla F8.


Fíjese que la línea que debería de ejecutar ahora el OllyDBG, en caso de volver a pulsar la tecla F8, seria:


Con lo cual quiere decir que la línea superior a esta, fue la que llamo a la API, “MessageBox”.


Bien Mire ahora a su sección de registros y observe lo siguiente:


Aparece el titulo del la ventana y el contenido “ok”. Bien, pues va a buscar el “ok”, en la memoria para que OllyDBG, se lo pueda mostrar en el “Dump”.


De un clic sobre el registro EDI, y seguidamente botón derecho del ratón, y de clic sobre “Follow in Dump”. Ahora fíjese en la sección del “Dump”.


Debería de estar viendo el “o k”, baje un poco el desplazamiento del “Dump”, debería de estar viendo ahora:


Ve ¿“Cayetano”?, bueno pues ahí va a poner un punto de ruptura de tipo memoria, quedaría de la siguiente forma:


Subraye en el “Dump” , la palabra “Cayetano” y de clic al botón derecho del ratón, se posiciona sobre BreakPoint, y da clic sobre Memory.


Pulse sobre ella, el botón de “OK”.

Ahora en el Dump, debería de estar viendo en color rojo marcado los bytes de “Cayetano”.


Pulse “F9”, posiblemente si hay algún punto de ruptura mas, tendrá que volver a pulsar “F9”, el caso es que una vez que tenga de nuevo la aplicación en memoria y pulse el botón “Claves”, OllyDBG”, le abra llevado casi al núcleo que vio anteriormente en MSIL, pero ya en código nativo.

Le propongo un reto, ¿sería capaza de terminar este ejercicio?, el reto seria una vez localizado el núcleo del proceso en nativo con OllyDBG, cambiar el código, para que independientemente de lo que ponga en la clave salga el mensaje de “OK”.

Puede solicitarme el “exe” en el email: [email protected] Envié la solución mediante capturas de pantalla y gane un 25% de descuento sobre nuestro curso de reversing o lenguaje ensamblador, donde aprenderá esto y mucho mas. Para este reto necesita el OllyDBG v 2.01.

Independientemente del reto, si tiene cualquier consulta, puede ponerse en contacto con nosotros en el email mencionado en el párrafo anterior.

No deje de ver You are not allowed to view links. Register or Login

Le quiero dedicar este artículo a mi amigo y compañero de retos en “Atenea”, Raúl Rivero, con el que he aprendido muchísimo.

Espero que le haya gustado o parecido por lo menos interesante este artículo.



Un cordial saludo,

Cayetano De Juan



5
Hacking / Re: Artículo Buffer Overflow bajo Windows.
« on: November 20, 2021, 06:11:57 pm »
Muchas gracias, intentare aportar más temas sobre este tipo, el proximo artículo, sera sobre lenguejes interpretados.

6
Hacking / Artículo Buffer Overflow bajo Windows.
« on: November 20, 2021, 07:12:28 am »
Con este artículo me gustaría explicar en qué consiste la técnica de Buffer Overflow o Stack Overflow.

"Esta técnica, aprovecha un fallo por parte de un programador, al no tener controlado el límite de caracteres que puede introducir un usuario en un campo".
Esta definición corta y sencilla, es realmente compleja de detectar y al mismo tiempo apasionante. Ahí afuera hay toda una industria dedicada a buscar este tipo de vulnerabilidad.
Es una disciplina que lleva su tiempo, en investigación y en conocimientos de lenguajes de programación como C o Ensamblador e Ingeniería Inversa (Reversing).
Para explicar su funcionamiento en este artículo, he confeccionado una pequeña prueba de concepto (POC), realizada en su totalidad con lenguaje Ensamblador, bajo Windows 10.
Para entender esta técnica es necesario comprender como se almacena la información que introducimos en un programa, por ejemplo imagine que está introduciendo datos en una pantalla de una aplicación.



Estos datos, una vez que le damos al botón “Guardar”, el programa los recoge y los almacena en una variable. Una variable seria una porción de la memoria de su ordenador, donde estará la información introducida, por ejemplo “Cayetano”.



Cada porción de memoria que se reserva para almacenar sus datos, está definida con un tamaño específico. Por ejemplo, el “NIF”, podría estar definido con un tamaño de 10 caracteres, el “Nombre” con un tamaño de 25 caracteres y el “Primer Apellido” con un tamaño de 35 Caracteres.”

En el siguiente dibujo vera los datos introducidos dentro de su memoria.



Ahora suponga que el programador que ha diseñado el programa, previamente a reservado en memoria bloques de 10, 25 y 35 caracteres, una vez que recibe la información introducida en el formulario, no controla la longitud de los caracteres introducidos por el usuario, ¿Qué pasaría con los bloques de memoria que están ya definidos?.

Suponga que el usuario en el campo “NIF”, en vez de introducir siete “XXXXXXX”,  introduce dieciséis “XXXXXXXXXXXXXXXX”. !!Mmmmmm, veamos que pasa.



Pues que se desbordaría el bloque de memoria definido para “NIF” y metería el resto de caracteres en el siguiente bloque de memoria que estaba definido para el “Nombre”.

Bien, pues si ha entendido todo esto, ya sabe lo que es un Buffer Overflow!!.

¿Y realmente hay gente que pierde su tiempo en buscar estos pequeños fallos que ha cometido un programador por no revisar que coincida la longitud de los datos introducidos por un usuario con la longitud reservada en memoria para los mismo?, ¿Qué beneficio puede obtener de esta vulnerabilidad?.

Una persona mal intencionada, un ciberdelincuente, puede usar esto para inyectar un código malicioso en la memoria de su programa.

Veamos esto con un pequeño programa realizado en Ensamblador.



Este sería el código de un programa simulado (DLL), este programa es vulnerable a la técnica de Buffer Overflow. Tendría una función llamada “Cadena”, esta función recibe dos argumentos, el primero, es un puntero hacia una cadena de texto, el segundo recibe la longitud de la cadena de texto pasada en el primer argumento.

Fíjese que la primera línea de este procedimiento, es una definición de variable, local, de 20 Bytes, para almacenar el valor pasado al primer argumento de la función “Cadena”.



El resto del código, lo que hace es mover todos los bytes del argumento hacia la variable local definida “Locbuffer”.

Bien, vea ahora un programa que una vez detectado que el programa anterior es vulnerable a la técnica de Buffer Overflow, va a explotar esta vulnerabilidad, enviando más bytes de los que la variable “Locbuffer” puede soportar y desbordando de esta forma la pila del programa, una vez desbordada obligara al programa vulnerable a llamar a un procedimiento de código “malicioso”.



En el segmento de datos, defino una “variable”, que contiene el código que va a desbordar la pila del programa vulnerable.



Si se fija en los últimos 4 bytes, están todos a “00H”, en esos cuatro últimos bytes, guardare la dirección donde estará el código malicioso que sustituiré por la dirección de regreso que tiene asignada la pila.

En la parte del segmento de  código, llamo al procedimiento del programa que va a explotar la vulnerabilidad.



Ahora le muestro el procedimiento “Exploit” que es donde está el código que explotara la vulnerabilidad.



Por último está el procedimiento donde estará el código “malicioso” a ejecutar, en este POC, ese código es un simple pitido, pero esto se podría cambiar por una Shell, o cualquier otro código…… Pero ese tipo de código sobrepasa la pretensiones de este artículo.



Hasta ahora tenemos un programa simulado, que es vulnerable a esta técnica y un programa que va a desbordar el buffer de pila del programa vulnerable. Pero para ver esto bien, se tiene que ver con un desensamblador o depurador. Voy a usar el OllyDBG para que vea como se procesa todo esto en memoria.



Si pongo un punto de ruptura en la llamada al programa vulnerable, podemos ver como la pila se desborda y cambia la dirección de retorno por la dirección nueva que apunta a nuestro procedimiento “malicioso”.



Vea que pasa cuando nuestro programa pasa el control al programa vulnerable y le pasa 28 Bytes cuando el programa vulnerable solo puede admitir en su variable local 20 bytes.

El código que le muestro ahora, seria la función “Cadena” de nuestro programa vulnerable.



En las primeras líneas básicamente lo que hace el ordenador es reservar espacio en la pila para la variable local “Locbuffer”.



Las siguientes líneas del programa vulnerable, se encargan de mover a “Locbuffer”, los bytes enviados.



Si ejecuto podemos ver paso a paso que pasa cuando se empiezan a copiar los datos enviados al buffer “Locbuffer”.

He puesto un punto de ruptura en esta línea del código, que es la que se encarga de ir moviendo los bytes enviado hacia nuestro buffer local “Locbuffer”.



Si se fija en el comportamiento de la pila.



Voy a ir ejecutando el código paso a paso y pondré las fotos de cómo se va cambiando la pila.

Primeros 4 bytes cambiados en la pila, hasta ahora el buffer “Locbuffer”, se está cargando de forma correcta.



Siguientes 4 bytes introducidos en el buffer “Locbuffer”.



Siguientes 4 bytes introducidos en el buffer “Locbuffer”.



Y así, hasta que llegamos a los 20 bytes.



Hasta aquí, perfecto, el buffer “Locbuffer”, que estaba definido con 20 bytes, esta relleno. El problema es que yo he enviado 28 bytes, así que la función “Cadena” de nuestro programa vulnerable, seguirá introduciendo bytes en el buffer “Locbuffer”, al no haber reservado más espacio para este buffer, pisara los valores de la pila que estén a continuación del mismo.



¿Y que se encuentra justo debajo del buffer “Locbuffer”?, pues entre otras cosas la dirección de retorno a nuestro programa de explotación que llamo al programa vulnerable función “Cadena”.



Esta dirección le recuerdo que apuntaría a la siguiente línea del código del programa de explotación.



Que pasa, pues que, como le he pasado más bytes de los que soporta el buffer de la función “Cadena”, y dentro de esos bytes pasados, le recuerdo que puse la nueva dirección donde quiero que la pila devuelva el control, que seria sobre nuestro código “malicioso”.

Si termino de ejecutar el programa, vera que la dirección de retorno original cambia por la pasada por nuestro programa de explotación.



¿Y donde esta apuntado esta dirección de retorno?, pues a nuestro código “malicioso”.



Aclaraciones del Artículo.

En ningún momento pretendo con este artículo mostrar información no relevante que pueda ser usada de forma indebida, esto es una POC, muy básica.

Estudiando esta técnica, podrá enviar directamente sobre la pila un payload, totalmente autónomo y ejecutarlo. Hay muchas técnicas de explotación de Buffer Overflow, que podrá ver en internet, con este artículo quería mostrar algo diferente, sin entrar en muchos tecnicismos.

Para poder entender realmente esta técnica tiene que saber cómo funcionan los registros del procesador, pila, segmentos…. Desde The Security Sentinel, le recomendamos nuestro curso de Ensamblador y nuestro curso de Ingeniería Inversa (Reversing).

Quiero dedicar este artículo a mi amigo y compañero David Gaona, incansable en su afán de formarse y aprender, para estar siempre al día en esta disciplina tan compleja como es la ciberseguridad.

Espero que este artículo haya sido de su interés.

Un cordial saludo,

Fuente del Artículo: You are not allowed to view links. Register or Login






7
Hacking / Re: Articulo de Hacking, que bonito es compartir, SMB
« on: November 07, 2021, 07:01:48 am »
Hola, te agradezco tu correccion. Lo voy hacer como dices. Muchas gracias, un cordial saludo.

8
Hacking / Articulo de Hacking, que bonito es compartir, SMB
« on: November 06, 2021, 08:58:46 pm »
Ciertamente, compartir en nuestra vida cotidiana es un ejercicio muy bonito y noble, poder ayudar a personas que tienen necesidad es una gran satisfacción personal.

Pero realmente este artículo, va de “compartir” recursos de nuestros ordenadores.

En 1985 más o menos, IBM saca un protocolo “PC Netword Program 1.0”  que podía hacer entre otras cosas lo siguiente:

-         Abrir y cerrar archivos.

-         Compartir Directorios.

-         Leer y Escribir

Este protocolo es el pionero de lo que tenía que llegar, que sería el protocolo SMB (Server Message Block). Es un protocolo abierto que ocupa las capas de presentación y aplicación del modelo OSI y que permite compartir recursos entre diferentes ordenadores de una red, como Archivos, Impresoras, Puertos E/S…

Sobre este mismo tema, podéis encontrar en internet millones de artículos, yo quisiera con el mío, hablaros del peligro REAL, que hoy sigue operativo, del mal uso o configuración por parte de los administradores de sistema del uso de este protocolo, tan fundamental para nuestras redes de ordenadores.

A día de hoy, 06 de Noviembre 2021, con un ordenador personal, con sistema operativo Windows  y conexión a internet y con un poco de curiosidad, podemos ver ordenadores y recursos de otras personas.

Si, has leído bien, de otras personas, ¿Cómo es esto posible?, pues como he comentado anteriormente, por dos motivos básicos, Internet o Red De Redes y una mala configuración por parte de alguien que expone su ordenador y los recursos del mismo. 

En este artículo no voy a entrar en detalles o definiciones de lo que es Internet, solo deciros que al ser una RED, estamos todos conectados con todos. Bien, pues con simples comandos del sistema operativo Windows, podemos ver ordenadores de otras personas y en ciertos casos sus recursos compartidos.

Ya sobre el año 1995 mas o menos, recuerdo quedar con mis amigos (recuerdos para Terri) para probar esta técnica que me gustaría presentaros, que tiempos aquellos, donde de cada 10 traceos de IP al azar, salían unas 3 IP o más, de ordenadores que tenían sus recursos compartidos.

Para esta técnica, solo se necesitaban dos comandos propios del sistema Windows como he comentado, los comandos son:

-         Nbtstat

-         Net

El primer comando, nos permite buscar el nombre de un ordenador por su IP. Así que sabiendo esto, uno se podía pasar la tarde entera buscando ordenadores en casa, como IP base se podía usar la IP propia y solo ir cambiando los grupos de la misma que correspondan. También por aquellos entonces, podía usar programas de Chat, como IRC, que en aquel momento, te daba la IP de la persona con la que hablabas…….

Bien, pues esto ha día de hoy sigue funcionando igual, quizás salen menos ordenadores y recursos, pero doy fe de que sigue siendo posible.

Para usar esta técnica, sobre todo con Windows 10, tendréis que “tocar” un poco la configuración del mismo, pero no voy a entrar en cómo hacer esto. Si por un casual tenéis en casa un Windows 7 o Windows 8 (con este último, realmente también se tendría que ajustar un poco), sí que podréis seguir la prueba de concepto que os dejo en este articulo, de todos modos podéis probarlo indiferentemente del sistema operativo Windows que tengáis ahora.

Voy abrir una venta de consola o Shell, desde mi sistema operativo Windows, en modo administrador si es posible.


Y a continuación voy a buscar IP que puedan ser susceptibles al puerto 445, que es el puerto por el que se mueve el protocolo SMB.


Fijaros, al poner el comando nbtstat –a <IP>, obtengo información de un ordenador que está en internet, está claro, que no lo conozco de nada. Y me da cierta información del mismo.


Si os fijáis, el nombre del ordenador es “SERVER1” y a su derecha tiene unos números <00>, <03>, <20>.

<00> nos indicaría el nombre del ordenador.

<03> indica, servicio de mensajería.

<20> indica, servicio de servidor activo.

<01> Antiguamente aparecía el nombre del Usuario que ha iniciado sesión, esto por seguridad se ha quitado.

El <20>, en la mayoría de los casos, nos da indicios de que el ordenador puede tener recursos compartidos.

Bien una vez que tenemos una IP, que parece que puede tener recursos compartidos, vamos a usar el otro comando para verlos.


Pues efectivamente, tenemos un recurso de disco compartido que se llama “Facturas”.

Un poco más arriba también me está diciendo que el sistema operativo de este ordenador es un Linux (Ubuntu).

Ahora vamos a probar a mirar dentro del recurso compartido “Facturas”, siempre con comandos de la consola de Windows.


No tenemos acceso, tendríamos que identificarnos con un usuario y contraseña. ¿Y qué podemos hacer ahora?, pues se podría, intentar sacar el nombre del usuario, con la finalidad de luego intentar un ataque de fuerza bruta sobre el recurso compartido “Facturas”.

Vamos a dejar la consola de Windows, y con el explorador, vamos a poner en su barra de direcciones la IP, de la siguiente forma \\xxx.xxx.xxx.xxx.


Nos aparece de nuevo el recurso!!!, y en entorno Windows!!!. Recordar que estamos en la RED De REDES y todos estamos conectados con todos.

Vamos a dar un solo clic, sobre el nombre del recurso y seguidamente botón derecho del ratón, vamos a seleccionar propiedades. Puede que la respuesta por parte de Windows tarde, pero al final saldrá la pantalla de propiedades, nos vamos a situar en la pestaña de seguridad.


Vamos a dar clic sobre “Opciones Avanzadas”.


Ahora clic sobre “Cambiar”.


Damos clic sobre “Opciones Avanzadas”.


Si buscamos en el resultado obtenido, nos encontraremos con los usuarios que tienen derecho de acceso sobre este recurso.

Bueno el resto, lo dejo a vuestra imaginación……..

Con esta prueba de concepto, quiero hacer reflexionar a las empresas sobre todo, de la importancia de tener un buen servicio por parte de empresas de administración de sistemas, muchas veces solicitamos cosas que pueden perjudicar a nuestros servidores o equipos, por ejemplo, “me gustaría poder conectar desde casa, con mi carpeta compartida de facturas”, la empresa de sistemas (no generalizo), no se complica mucho la vida, y abre el puerto 445 y lo redirecciona hacia el servidor, dejando expuesto los recursos del mismo……

Nuestra labor en The Security Sentinel, es auditar entre otras muchas cosas, malas configuraciones de este tipo y proponer protocolos de acceso a recursos, tanto a nivel interno como externo, por medio de VPN, fijando que usuarios deben acceder a que carpetas y con qué derechos, creando claves robustas, en definitiva aplicando protocolos de seguridad que permita tener la plena confianza de que nuestros datos son vistos y usados por las personas adecuadas. 

Moraleja:

Si alguien desde su casa puede ver recursos de una red, por medio de internet, que no se podrá ver desde la red interna de esa empresa.

Hacer auditorias de seguridad, es algo que debería de realizarse como mínimo una vez al año. Donde profesionales, asesoren a la empresa de cómo utilizar sus recursos y que protocolos seguir a la hora de crear nuevos, con objeto de no tener fuga de información, ni por parte de empleados descontentos ni por parte de “alguien” que sentado cómodamente en su casa pueda intentar acceder a los mismos.

Un cordial saludo a todos.

Cayetano De Juan.

Fuente: You are not allowed to view links. Register or Login

MOD: Publicar un enlace sin contenido, sin explicaciones, y sin contexto, cuenta como SPAM.

9
Hacking / Articulo de Hacking. Impresoras la llave de acceso a un recurso.
« on: November 05, 2021, 05:02:15 pm »
Impresora Sharp, como hacerse con usuario y clave de un recurso de red.

You are not allowed to view links. Register or Login

Saludos.

10
Dudas y pedidos generales / Re: Reto Atenea, BatFlag
« on: March 09, 2021, 08:17:18 pm »
Scarface, muchas gracias por tus consejos, reto conseguido. Voy a por el siguiente.

Saludos a todos.

11
Dudas y pedidos generales / Re: Reto Atenea, BatFlag
« on: March 07, 2021, 12:20:39 pm »
Muchísimas gracias, de verdad. Voy a por el!!!!

12
Dudas y pedidos generales / Re: Reto Atenea, BatFlag
« on: March 05, 2021, 02:52:09 pm »
Buenas a todos, buffffff, bueno aquí sigo..... Siguiendo la recomendación de Scarfce90, no daré nombre para no fastidiar el reto. Pero expongo un resumen por donde creo que van los tiros, por favor, si alguien me valida que es una de estas tres cosas, le quedaría muy agradecido.

1. Falsificación/reutilización de cookie.
2. Escanear y escanear la pagina hasta dar con algún fichero o directorio del que se pueda sacar algo......
3. Hay una "carpeta", no digo nombre para no fastidiar el reto (jejeje, menuda pista acabo de dejar), bueno el caso es que la "carpeta", cuando intentas entrar te da acceso denegado, error 401, lo normal es que una carpeta cuando requiere autenticación, el mismo navegador solicite nombre de usuario y contraseña, en este caso no lo hace. Así que intente reproducir el comportamiento y logre hacerlo por medio de reglas en el servidor IIS.

Aquí dejo lo que yo pienso que puede ser, si alguien que lo haya terminado, como Scarface90, me orienta un poco, lo agradecería mucho.

Un cordial saludo.

13
Dudas y pedidos generales / Re: Reto Atenea, BatFlag
« on: March 03, 2021, 09:14:21 am »
Ante todo muchísimas gracias por tu ayuda, de verdad.  A lo de editar y dejar lo mínimo en el post, te refieres a lo que he escrito por aquí?, que deje por ejemplo solo mi ultimo comentario?.

14
Dudas y pedidos generales / Re: Instalar virus desde USB
« on: March 03, 2021, 09:05:29 am »
Hola, no me hagas mucho caso, pero, hace ya un tiempo que windows quito la posibilidad de que los dispositivos USB se auto-ejecuten, se quito por seguridad.  Para que un usb al ser pinchado por el usuario este tenga que elegir lo que quiere ejecutar. Yo te recomendaría que buscara información sobre los Bad-USB, esto son pastillas, iguales que los penDrives, pero no se comportan como tal, los puedes programar con Arduino, y una vez que los pinchas en un puerto usb, se comportan como un teclado, quiere decir que pueden enviar pulsaciones de teclas a tu sistema, de esta forma puedes abrir ventanas de ms-dos, entrar copiar contenido..... lo que se te ocurra.

Espero haberte ayudado, saludos.

15
Dudas y pedidos generales / Reto Atenea, BatFlag
« on: February 24, 2021, 02:02:04 pm »
Alguien que se haya enfrentado a este reto y que me pueda orientar un poco. Comento un poco lo que he probado.
En principio descarto por completo sobre todo por la filosofía de la pagina a que sea mediante un exploit.

Según el reto te tienes que poder entrar en el portal 45.32.169.98:7374.


He probado mil cosas mas, pero creo que estas serian las mas importante.....

Solo me gustaría saber, si alguien lo ha resuelto, si alguna de las técnicas que menciono es correcta, para seguir por ese camino.

Muchas gracias, saludos.



16
Dudas y pedidos generales / Re:reto atenea "solo empleados"
« on: February 14, 2021, 05:20:58 pm »
You are not allowed to view links. Register or Login
Hola, me podriais indicar alguna pista de como completar el reto? gracias de antemano

Sigue el consejo de Mike-Bio Y Kon2webos...

17
Dudas y pedidos generales / Re:reto atenea "solo empleados"
« on: February 14, 2021, 05:10:32 pm »
Lo acabo de sacar!!!!!!

18
Dudas y pedidos generales / Re:reto atenea "solo empleados"
« on: February 14, 2021, 07:35:25 am »
Hola, yo también estoy con este reto, y me esta minando la salud. Creo que la forma correcta es con wget, según el aporte de KondosWebos. Pero algo no hago bien...... :'( Os agradecería yo también alguna pistilla.

Pages: [1]