SISTEMAS & DESARROLLO
12 meneos
145 clics
Escalado de privilegios en Linux usando LD_PRELOAD

Escalado de privilegios en Linux usando LD_PRELOAD

Las librerías compartidas (shared libraries en inglés) en Linux/Unix normalmente tienen el prefijo lib y la extensión .so. Los programas `ld.so` y `ld-linux.so*` encuentran y cargan los objetos compartidos (librerías compartidas) que necesita un programa, preparan el programa para ejecutarlo y luego lo ejecutan. `LD_PRELOAD` es la variable de entorno que lista las rutas de la librerías compartidas, al igual que `/etc/ld.so.preload`. Hoy vamos a ver cómo aprovechar esta característica común para escalar privilegios.
19 meneos
239 clics
Tutorial interactivo de cómo crear un cargador de arranque en ensamblador de x86 [ENG]

Tutorial interactivo de cómo crear un cargador de arranque en ensamblador de x86 [ENG]

La programación en ensamblador puede ser intimidante para la gente que nunca lo ha investigado más allá de haberle echado un vistazo, pero tenerlo como base para comprender el funcionamiento de los ordenadores que usamos puede ser útil para saber lo que realmente se está ejecutando la CPU. Para iniciar un ordenador moderno con arquitectura x86 se necesita ir paso a paso por la historia de esta arquitectura. Y esto es hecho por el cargador de arranque en la mayoría de los casos.
14 5 1 K 50
14 5 1 K 50
16 meneos
217 clics
¿Cómo funcionan los sistemas basados en inodos?

¿Cómo funcionan los sistemas basados en inodos?

Después de ver cómo funcionan de forma genérica los sistemas FAT, saltamos a los sistemas de inodos. Estos se han usado tradicionalmente en sistemas UNIX (UFS, ext2), así que tradicionalmente ha existido una cierta rivalidad en las redes entre FAT e inodos similar a la de Windows/Linux. Lo cierto es que a nivel técnico cada uno tiene fortalezas y debilidades.
16 meneos
170 clics
Ejecutar de forma transparente binarios de cualquier arquitectura en Linux mediante QEMU y `binfmt_misc` [ENG]

Ejecutar de forma transparente binarios de cualquier arquitectura en Linux mediante QEMU y `binfmt_misc` [ENG]  

¿Qué? ¿Se puede hacer eso en Linux? Pues resulta que sí se puede. Lo primero, veamos un ejemplo en acción. En este caso se coge un binario de una Raspberry Pi, que es un binario para arquitectura ARM, y se ejecuta en una máquina x86_64 de forma transparente. Evidentemente, si esto se intenta hacer directamente no funcionará, pero basta con configurar ciertas características para que lo haga.
132 meneos
2842 clics
Envío erróneo o controvertido, por favor lee los comentarios.
¿Cómo funcionan los sistemas de archivos basados en FAT?

¿Cómo funcionan los sistemas de archivos basados en FAT?  

Voy a dedicar unas entradas en el blog a hablar del funcionamiento de los sistemas de archivos, un componente fundamental en la gran mayoría de sistemas informáticos. Voy a empezar con los basados en FAT sin centrarme en ninguno en concreto (FAT16, FAT32, exFAT,…). En esencia un sistema de archivos es un método ordenado que permite guardar datos sobre un soporte físico para luego poder acceder a ellos. Históricamente ha habido muchos enfoques a este problema: los sistemas más usados usan archivos, directorios y enlaces.
67 65 22 K 47
67 65 22 K 47
11 meneos
298 clics

D as BetterC: reescribiendo `make.c` en D [ENG]

D como un mejor C (también conocido como DasBetterC, en inglés) es una forma de actualizar proyectos existentes programados en C reprogramándolos en D de forma incremental. En este artículo se muestra paso a paso el proceso de reescribir en D un proyecto no trivial escrito en C, además de algunos de los problemas comunes que pueden surgir.
11 meneos
197 clics
Shell mediante un documento .odt malicioso (Squiblydoo)

Shell mediante un documento .odt malicioso (Squiblydoo)  

El correo corporativo sigue siendo un vector de entrada interesante para realizar una intrusión. Con el paso de los años se ha ido mejorado la seguridad de las pasarelas de mensajería y de los endpoints, pero hoy en día siguen surgiendo nuevas técnicas capaces de evadir muchas de estas protecciones. En esta entrada vamos a ver un par de claros ejemplos que os harán pensar en la (todavía) peligrosidad de abrir un fichero adjunto, sobretodo si se trata de un remitente desconocido.
173 meneos
4775 clics

Hay razones reales para reemplazar las herramientas de Linux ‘ifconfig’, ‘netstat’ y compañía [ENG]

Una de las controversias de administración de sistemas actual en Linux es que hay un esfuerzo continuo por reemplazar los comandos de administración y diagnóstico de red estándar de Unix, ifconfig, netstat y similares, con nuevos elementos específicos como ss e ip. Aunque a los administradores de sistemas con experiencia generalmente no les gusta esta idea, existen dos razones principales para realizar este cambio, una ostensible y otra sutil.
87 86 5 K 40
87 86 5 K 40
124 meneos
2636 clics
Técnicas para escapar de shells restringidas (restricted shells bypassing)

Técnicas para escapar de shells restringidas (restricted shells bypassing)

Recientemente, @n4ckhcker y @h4d3sw0rmen publicaron en exploit-db un breve pero útil paper para escapar de shells restringidas como rbash, rksh y rsh, ya sabéis, aquellas que bloquean algunos de comandos como cd, ls, echo, etc., restringen variables de entorno como SHELL, PATH, USER y a veces incluso comandos con / o las salidas de redireccionamiento como >, >>; todo ello para añadir una capa extra de seguridad para protegerse contra posibles atacantes, comandos peligrosos o simplemente como una prueba en un CTF. A continuación se listan la mayoría de las técnicas para bypassear estas shells restringidas.
63 61 0 K 60
63 61 0 K 60
15 meneos
206 clics
La métrica de utilización de la CPU está mal [ENG]

La métrica de utilización de la CPU está mal [ENG]  

La utilización de la CPU es la medida que todos utilizan para medir el rendimiento de un procesador. Pero el porcentaje de CPU es una medida engañosa de cuán ocupado está realmente su procesador, dice Brendan Gregg, arquitecto de alto rendimiento de Netflix, en lo que él llama un “anuncio de servicio público de cinco minutos” en la 16ª edición de la Exposición de Linux del Sur de California (SCALE). [Vía: opensource.com: CPU utilization is wrong ].
14 meneos
203 clics
Soporte de librerías OpenGL en BASH [ENG]

Soporte de librerías OpenGL en BASH [ENG]

Un proyecto que comenzó como una broma puede ser útil para las personas que desean aprender los conceptos básicos de OpenGL. Este proyecto es un simple ejecutable que lee comandos de OpenGL de la entrada estándar para luego dibujar la salida en una ventana de X11. Cualquier entrada de usuario en esa ventana de X11 será enviada a la salida estándar. Todo esto permite que con cualquier aplicación que sea capaz de leer y escribir texto se puedan crear aplicaciones gráficas interactivas.
39 meneos
639 clics
Cómo funciona la virtualización, parte 1: introducción a la virtualización [ENG]

Cómo funciona la virtualización, parte 1: introducción a la virtualización [ENG]

El propósito de esta serie de artículos es explicar cómo funciona la virtualización en la arquitectura x86 internamente, ya que mucha de la información que se muestra en trabajos académicos es bastante difícil de entender para principiantes, así que estos artículos empezarán desde cero e irán mostrando los conceptos y el conocimiento según sea necesario. Esta serie incluye, entre otras cosas: introducción a la virtualización; VMWare y virtualización completa; Xen y paravirtualización; KVM y Qemu; y virtualización con Intel VT-x.
24 15 0 K 40
24 15 0 K 40
29 meneos
533 clics
GRV, herramienta para ver repositorios de Git desde el terminal de Linux [ENG]

GRV, herramienta para ver repositorios de Git desde el terminal de Linux [ENG]  

GRV es una herramienta de código abierto para mostrar repositorios de Git desde el terminal de Linux. Esta herramienta provee información para ver referencias, ramas y diferencias en solapas separadas. Tanto el comportamiento como el estilo puede ser personalizado a través de configuración. Además, las referencias y los commits pueden ser buscadas a través de su lenguaje de consulta.
21 8 0 K 39
21 8 0 K 39
145 meneos
2392 clics
Tutorial de introducción a Godot 3.0. Juego de Snake en C#

Tutorial de introducción a Godot 3.0. Juego de Snake en C#  

Llegó el día. Godot 3.0 salió a la luz. Se trata de una versión con muchas mejoras respecto a Godot 2.x. Godot es un motor de videojuegos software libre compatible con la mayoría de sistemas operativos (y consolas a través de una compañía privada). Aprovechando la ocasión voy a explicar cómo hacer un juego simple usando C# y el motor 2D de Godot. Este tutorial sirve para familiarizarse con el motor.
72 73 4 K 37
72 73 4 K 37
10 meneos
383 clics
Cómo recibir una alerta en Telegram cada vez que se conecte un dispositivo USB a nuestro equipo (USB Canary)

Cómo recibir una alerta en Telegram cada vez que se conecte un dispositivo USB a nuestro equipo (USB Canary)

En un grupo acostumbrado a la seguridad ofensiva ya casi da igual que olvides bloquear el ordenador. Cualquier ausencia, incluso breve, que permita el acceso físico puede suponer una oportunidad para alguien conecte un Rubber Ducky o cualquier otro dispositivo: troyanizar el equipo, cambiar la password, modificar tu muro de Facebook… Para evitar ésto, y en un tono más serio protegerte contra atacantes que no sean de tu propio equipo, lo más lógico será controlar el acceso a todos los puertos de tu ordenador que permitan conectar periféricos.
191 meneos
3805 clics
Detección de micrófonos ocultos con Salamandra

Detección de micrófonos ocultos con Salamandra  

Una las charlas de la Chaos Communication Congress, que tuvo lugar recientemente en Leipzig (34C3), fue la presentación de Veronica Valeros y Sebastián García: Spy vs. Spy: A modern study of microphone bugs operation and detection. Inspirados en el activista chino Ai Weiwei, que descubrió micrófonos ocultos en su casa tras regresar de un viaje de más de dos meses por Alemania y el Reino Unido, enfocaron su investigación principalmente en dispositivos transmisores de radio FM y crearon una herramienta llamada Salamandra para su detección.
83 108 1 K 47
83 108 1 K 47
15 meneos
319 clics
Xerox Alto zero-day: rompiendo la protección por contraseña de un sistema de 45 años [ENG]

Xerox Alto zero-day: rompiendo la protección por contraseña de un sistema de 45 años [ENG]

Hemos estado archivando un montón de viejos paquetes de discos de Xerox Alto de la década de 1970. Algunos de ellos resultaron estar protegidos por contraseña, así que como necesitaba encontrar la forma de saltar esta protección, desarrollé una forma de desactivarla, además de un programa para encontrar la contraseña casi al instante. A este ataque lo hemos llamado XeroDay, según una sugerencia de un comentarista de Reddit.
16 meneos
407 clics
Vue.JS 2.0, un gran alternativa a AngularJS

Vue.JS 2.0, un gran alternativa a AngularJS

En esta entrada vamos a ver Vue.JS, un framework de JavaScript potente y ligero diseñado para construir interfaces web, especialmente en aplicaciones SPA (Single Page App). Vue.JS destaca por su velocidad, sencillez y ligereza. De hecho, es tan ligero que resulta adecuado incluso para dispositivos IoT como el ESP8266 y el ESP32. ¿Cuál es el interés en Vue.JS? ¿Por qué es interesante frente a otras opciones como Angular, React o Knockout? ¿Qué tiene Vue.JS que le hace tan especial? Lo respondemos a continuación.
289 meneos
9217 clics

De como escribir código imposible de mantener. [EN]

En el interés de crear oportunidades de trabajo en el campo de la programación en Java, describo algunos consejos de como escribir código tan difícil de mantener, que las personas que vengan después de ti tardarán años en hacer los cambios más simples. Además, si sigues estás reglas religiosamente, te aseguraras tu empleo de por vida, ya que no habrá persona viva salvo tú que pueda mantenerlo. De nuevo, si sigues estás reglas demasiado religiosamente, ni tu serás capaz de mantenerlo.
129 160 0 K 43
129 160 0 K 43
28 meneos
711 clics
Shell inversa con Powershell mediante una imagen PNG

Shell inversa con Powershell mediante una imagen PNG  

Imagina que cualquier imagen que visualizas en una web a parte de ser una simple imagen es también la “herramienta” que utiliza un atacante para ejecutar una shell inversa desde tu ordenador. Aparentemente esa imagen es un simple fichero PNG, pero entre sus píxeles se encuentra embebido un script en Powershell con un payload de Meterpreter. La herramienta que posibilita hacerlo fácilmente es Invoke-PSImage de Barrett Adams, que inserta los bytes del script en los píxeles de una imagen PNG y además genera un “oneliner” para ejecutarlo desde […].
19 9 0 K 42
19 9 0 K 42
13 meneos
1090 clics
Comparando el rendimiento de C, C++ y D con un proyecto real [ENG]

Comparando el rendimiento de C, C++ y D con un proyecto real [ENG]

Hace tiempo escribí una entrada donde comparaba el rendimiento de C y C++ en un proyecto real. Hoy he migrado ese proyecto a D y he hecho los mismos tests. Estos son los resultados.
46 meneos
1185 clics
Catorce de los proyectos de código abierto más activos en GitHub

Catorce de los proyectos de código abierto más activos en GitHub  

En GitHub hay miles, incluso decenas de miles de proyectos de software open source (y otras muchas cosas, que abogados, periodistas o escritores están apuntándose cada vez más al versionado). Tantos que uno puede no saber por donde empezar. Una manera muy interesante es el propio ranking de tendencias de GitHub, una especie de Los 40 Principales del software libre, ideal para encontrar proyectos en los que colaborar, forkearlos o simplemente inspirarse. Estos son actualmente los más calientes a fecha de noviembre de 2017.
35 11 1 K 49
35 11 1 K 49
202 meneos
961 clics
Diciendo adiós a Firebug [ENG]

Diciendo adiós a Firebug [ENG]

Firebug fue la más famosa y potente herramienta de desarrollo web durante su vida, unos 12 años. Firebug tuvo un fenomenal éxito entre los desarrolladores web de todo el mundo, ya que fue la primera herramienta que permitía inspeccionar, editar y depurar código (tanto Javascript como CSS y HTML) directamente en Firefox. Por eso es triste decir que con la versión 57 de Firefox (Quantum) Firebug alcanza el final de su vida útil. Las buenas noticias son que la mayoría de esas características están ya en las herramientas de desarrollo de Firefox.
113 89 1 K 27
113 89 1 K 27
301 meneos
5693 clics
Cómo desactivar Intel Management Engine (IME) [ENG]

Cómo desactivar Intel Management Engine (IME) [ENG]

Intel Management Engine (IME) es un coprocesador integrado en todos los procesadores de Intel fabricados después de 2006. Este coprocesador tiene acceso completo a la red y a la memoria y ejecuta código cerrado y propietario independientemente de la BIOS, el procesador principal y el sistema operativo, un hecho que es un riesgo de seguridad inaceptable. En esta guía se detalla cómo desactivar IME usando varias herramientas que operan en el firmware del PC almacenado en el chip de la BIOS.
140 161 0 K 45
140 161 0 K 45
12 meneos
320 clics
Código seguro en D [ENG]

Código seguro en D [ENG]

He visto a buenos programadores en C++ cambiarse a Java o C#. La pregunta es: ¿por qué lo abandonan una vez que tienen un amplio conocimiento del mismo? La respuesta universal es “productividad”. ¿Qué impide a C++ lograr productividad? La horrible sintaxis y la seguridad son dos de los mayores impedimentos. Aunque también tiene cosas buenas, como su gran rendimiento. Entonces, ¿existe algún lenguaje que sea sencillo, seguro y potente a la vez? Te voy a contar un secreto: ese lenguaje existe y es D.
« anterior123459

menéame