LINUX

CONCEPTOS BÁSICOS DE LINUX

Los conceptos fundamentales que se utilizan en el sistema operativo LINUX son los siguientes:

PROCESO

Es un algoritmo interpretado o compilado que está ejecutándose en un sistema y se encuentra residente en la memoria RAM. También es la representación de cualquier programa en ejecución el cual puede ser auditado, analizado, terminado, etc.

SERVICIO

Es un tipo de proceso que está a la escucha, es decir, no está haciendo nada a no ser que sea requerido, en cuyo caso atiende convenientemente la petición. Un servicio suele cargarse de forma permanente en memoria hasta que sea terminado o el Sistema Operativo lo cierre.

DEMONIO

Es un tipo especial de servicio que escucha a otros servicios o procesos. El demonio es un “programa que escucha a otro programa”. Un ejemplo claro de esto sería XINETD (extended Internet daemon) en sistemas Unix, que se encarga de escuchar a los procesos o servicios que soliciten conexión de red, y atiende esas peticiones.

SHELL O INTERFAZ DE USUARIO

Es un programa encargado de comunicar el entorno de aplicaciones con el kernel o núcleo del sistema. Un shell puede ser tanto una interfaz gráfica como intérprete de comandos.

Un shell interpreta y ejecuta instrucciones que le hemos proporcionado por medio de una línea de comandos (prompt). Es decir, el intérprete de comandos recibe lo que se escribe en la terminal (sinónimo de shell o interfaz) y lo convierte en instrucciones para el sistema operativo.

El prompt es una indicación que muestra el intérprete para anunciar que espera una orden del usuario. Cuando el usuario escribe una orden, el intérprete la ejecuta. En dicha orden, puede haber programas internos o externos: Los programas internos son aquellos que vienen incorporados en el propio intérprete, mientras que los externos son programas separados.

INODO

Se puede definir como un descriptor de una entrada de un sistema de archivos o archivos. Todo archivo tiene asociado un único inodo. Un inodo también puede ser definido como una clave numérica para el acceso al sistema plano de archivos, donde cada punto es capaz de recibir o entregar información.

FILESYSTEM (SISTEMA DE ARCHIVOS)

Una colección de todos los archivos y directorios de un sistema organizados en una jerarquía en forma de árbol.

SISTEMA DE DIRECTORIOS

Los sistemas de archivos UNIX se caracterizan generalmente por tener una estructura jerárquica, dar tratamiento consistente a la información de los archivos y a la protección de ellos.

El sistema de LINUX sigue básicamente el mismo de UNIX. Pero se puede encontrar una nueva división del sistema de directorios respecto de los archivos que lo componen como es: Compartible y No Compartible dependiendo si a la información de un host local pueden o no acceder otros hosts, además Estática y No Estática cuando la información puede ser o no alterada por el usuario.

El primer sistema de directorios que se aplicó a LINUX en su momento cumplió con las necesidades básicas, pero se volvió restrictivo, ya que, en los archivos, el nombre no podía superar los 14 caracteres y los 64 MB de espacio. Para resolver este problema surgió el primer sistema de archivos especialmente diseñado para LINUX, el ext2 (extended filesystem). En el desarrollo del sistema extendido (ext2) surgió un importante cambio en lo que respecta a sistemas de archivos, el sistema virtual de archivos (VFS, virtual filesystem) que existe entre el sistema real de archivos y el sistema operativo y sus servicios.

El logro del sistema virtual de archivos (VFS), es que a LINUX le permite montar una serie de sistemas de archivos diferentes y variados; es decir, todos los detalles de los sistemas de archivos son tratados por programas de modo que parezcan lo mismo tanto para el kernel como para las demás aplicaciones que se ejecutan en el sistema, en términos prácticos, es un modo de unificar los sistemas de archivos para poder ser manipulados por LINUX de un modo uniforme.

El sistema virtual de archivos ha sido implementado de tal forma que sea rápido y eficiente. Otra de sus funciones es analizar y verificar que la información sea almacenada adecuadamente. Una característica particular del sistema virtual de archivos es que guarda cierta información (caché) en la medida que monta y utiliza los sistemas de archivos, de tal forma de acelerar el procesamiento de la información.

El sistema de archivos real de LINUX, el ext2, funciona a través de bloques de información que va siendo almacenada en el disco duro, pero sin fragmentar la información. En muchos sentidos el sistema de almacenaje por bloques de información es, muchas veces, poco óptimo perdiéndose mucho espacio por la asignación de éstos, pero a pesar de todo esto, es el mejor método hasta el momento.

Cada archivo en el sistema ext2 posee un inodo único y cada inodo posee un único número identificador. Los directorios tan solo son archivos especiales que contienen punteros a los inodos de sus archivos miembros.

Anuncios
LINUX

CARACTERÍSTICAS DE LINUX

El sistema operativo LINUX fue desarrollado buscando la portabilidad de las fuentes: casi todo el software gratuito desarrollado para UNIX se compila en LINUX sin problemas. Y todo lo que se hace para LINUX (código del núcleo, controladores, librerías y programas de usuario) es de libre distribución.

En LINUX también se implementa el control de trabajos POSIX (que se usa en los shells csh y bash) y las pseudoterminales (dispositivos pty). Además, soporta consolas virtuales, lo que permite tener más de una sesión abierta en la consola de texto y conmutar entre ellas fácilmente.

LINUX soporta diversos sistemas de archivos para guardar los datos. Algunos de ellos, como el ext2fs, han sido desarrollados específicamente para LINUX.

LINUX implementa todo lo necesario para trabajar en red con TCP/IP. Desde controladores para las tarjetas de red más populares hasta SLIP/PPP, que permiten acceder a una red TCP/IP por puerto serial. También se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a archivos). Y también soporta los clientes de TCP/IP, como FTP, Telnet, y SMTP.

Con el fin de incrementar la memoria RAM disponible, LINUX implementa la paginación con el disco duro, es decir, puede tener varios megabytes de espacio de intercambio o “swap” con el disco duro. Cuando el sistema necesita más memoria, expulsará páginas inactivas al disco, permitiendo la ejecución de programas más grandes o aumentando el número de usuarios que puede atender a la vez. Sin embargo, el espacio de intercambio no puede suplir totalmente a la memoria RAM, ya que el primero es mucho más lento que ésta.

MULTITAREA

La palabra multitarea describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecución de cada aplicación.

Se le denomina multitarea prioritaria o preventiva ya que posibilita la ejecución simultánea de varios programas, siempre que las características del host lo permitan, es decir, cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para su ejecución. Así, los programas se ejecutan hasta que permiten voluntariamente que otros programas también lo hagan.

El microprocesador sólo es capaz de hacer una tarea a la vez, pero las realiza en tiempos tan cortos que se escapan a nuestra comprensión, es por eso que en los momentos que no este trabajando para determinada tarea, se dedica a ejecutar otras que se le hayan pedido.

Es fácil ver las ventajas de disponer de multitarea prioritaria. Además de reducir el tiempo muerto (tiempo en el que no puede seguir trabajando en una aplicación

porque un proceso aún no ha finalizado), da la flexibilidad de no tener que cerrar las ventanas de las aplicaciones antes de abrir y trabajar con otras.

LINUX y otros sistemas operativos multitarea prioritaria consiguen el proceso de prioridad supervisando los procesos que esperan para ejecutarse, así como los que se están ejecutando. El sistema programa cada proceso para que dispongan de las mismas oportunidades de acceso al microprocesador. El resultado es que las aplicaciones abiertas parecen estar ejecutándose al mismo tiempo, pero en realidad, hay una demora de billonésimas de segundo entre el momento en que el procesador ejecuta una serie de instrucciones de una aplicación y el momento programado por LINUX para volver a dedicar tiempo a dicho proceso.

MULTIUSUARIO

La idea de que varios usuarios pudieran acceder a las aplicaciones o la capacidad de proceso de un único host era una utopía hace relativamente pocos años.

La capacidad de LINUX para asignar el tiempo de microprocesador simultáneamente a varias aplicaciones ha derivado en la posibilidad de ofrecer servicio a diversos usuarios a la vez, ejecutando cada uno de ellos una o más aplicaciones. La característica que más resalta de LINUX es que un grupo de personas puede trabajar con la misma aplicación al mismo tiempo, desde el mismo terminal o desde terminales distintos.

MULTIPLATAFORMA

Las plataformas de hardware en las que en un principio se puede utilizar LINUX son 386-, 486, Pentium Pro, Pentium II/III/IV. También existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

CONVIVENCIA CON OTROS SISTEMAS OPERATIVOS

Pueden estar juntos pero no funcionar al mismo tiempo. Cada vez que arrancamos un host, podemos elegir cual de ellos se debe cargar, y a partir de este momento sólo podremos utilizar aplicaciones destinadas al Sistema Operativo que estamos ejecutando.

LINUX

KERNEL O NÚCLEO DE GNU/LINUX

El kernel del sistema GNU/LINUX (al que habitualmente se le denomina LINUX) es el corazón del sistema: se encarga de arrancar el sistema, para que sea utilizable por las aplicaciones y los usuarios. Gestiona los recursos del host para la gestión de la memoria, sistema de archivos, entrada/salida, procesos e intercomunicación de procesos.

El núcleo o kernel es la parte básica de cualquier sistema operativo, y en él descansa el código de los servicios fundamentales para controlar el sistema entero. Básicamente, su estructura se puede separar en:

  • Gestión de procesos: qué tareas se van a ejecutar y en qué orden y prioridad. Un aspecto importante es la planificación de CPU(Unidad Central de Procesamiento), cómo se optimiza el tiempo de la CPU para ejecutar las tareas con el mayor rendimiento o interactividad posible con los usuarios.
  • Intercomunicación de procesos y sincronización: cómo se comunican tareas entre sí, con qué diferentes mecanismos y cómo pueden sincronizarse grupos de tareas.
  • Gestión entrada/salida (E/S): control de periféricos y gestión de recursos asociados.
  • Gestión de memoria: optimización del uso de la memoria, sistema de paginación y memoria virtual.
  • Gestión de archivos: cómo el sistema controla y organiza los archivos presentes en el sistema y el acceso a los mismos.
DERECHO INFORMÁTICO, LINUX

SOFTWARE LIBRE Y OPEN SOURCE

Desde su origen LINUX se desarrolló bajo licencia pública GNU, lo que implica que se distribuye de manera gratuita y junto al código fuente de las aplicaciones incluidas, se puede copiar y distribuir libremente, o modificar el código fuente para mejorarlo o adaptarlo a nuestras necesidades, pero sin dejar de mencionar el autor original y de mantenerlo bajo la misma licencia.

Por otra parte, la Fundación de Software Libre FSF (Free Software Foundation), mediante su proyecto GNU, produce software (desde 1984) que puede ser utilizado libremente. En este modelo, el negocio no está en la ocultación del código, sino en el software complementario añadido, en la adecuación del software a los clientes y en los servicios agregados, como el mantenimiento y la formación de usuarios.

Frente a un código de tipo propietario, en el cual un fabricante (empresa de software) encierra su código, ocultándolo y restringiéndose los derechos a sí misma, sin dar posibilidad de realizar ninguna adaptación ni cambios que no haya realizado previamente la empresa fabricante.

Los programas con código abierto ofrecen las siguientes consideraciones:

  • Acceso al código fuente, ya sea para estudiarlo o modificarlo, para corregir errores, adaptarlo o añadir más prestaciones.
  • Gratuidad: normalmente, el software, ya sea en forma binaria o en la forma de código fuente, puede obtenerse libremente o por una módica cantidad en concepto de gastos de empaquetamiento, distribución y valores añadidos.
  • Evitar monopolios de software propietario: no depender de una única opción o único fabricante del software. Esto es más importante cuando se trata de una gran organización, ya sea una empresa o estado, los cuales no pueden (o no deberían) ponerse en manos de una determinada única solución y pasar a depender exclusivamente de ella.
  • Un modelo de avance, no basado en la ocultación de información, sino en la compartición del conocimiento, para lograr progresos de forma más rápida, con mejor calidad, ya que las elecciones tomadas están basadas en el consenso de la comunidad.
LINUX

GNU/LINUX

GNU/LINUX se ha desarrollado según las normas POSIX (Portable Operating System Interface) y en base al sistema UNIX; es capaz de ejecutar aplicaciones en modo gráfico, aplicaciones TCP/IP, edición de texto, transferencia de archivos entre sistemas Unix, software de correo, etc.

Cabe mencionar que el sistema gráfico de GNU/LINUX no es tan potente como el de texto pero puede ofrecer un ambiente más simple y cómodo para el usuario.

GNU/LINUX es un sistema operativo compatible UNIX. Se caracteriza porque es libre lo que implica que no hay que pagar ningún tipo de licencia para su uso, y por ser un sistema abierto, lo que significa que su código es público. El sistema está conformado por el núcleo o kernel y una serie de programas y bibliotecas que hacen posible su utilización. GNU/LINUX y gran parte de sus aplicaciones, bibliotecas y programas son distribuidos bajo la licencia GPL(Licencia Pública GNU).

LINUX, REDES, SEGURIDAD

SPOOFING – DNS SPOOFING – ROBO DE CREDENCIALES

¿Qué es Metasploit?

Metasploit es una herramienta que permite ejecutar y desarrollar exploits contra sistemas objetivos. Se encuentra integrado con Kali Linux y es ampliamente utilizado para realizar pruebas de penetración. El framework incluye una serie de módulos. Cada módulo implementa un ataque específico. Puede ser ejecutado desde consola, desde interfaz web, o por medio de programas como Auxiliary, Exploit, o Payload.

¿Qué es Exploit?

Un exploit es el medio por el cual un atacante, toma ventaja de una falla en un sistema, una aplicación o un servicio. Un atacante utiliza un exploit para atacar a un sistema de una manera que da lugar a un resultado particular deseado que el desarrollador nunca pretendió. Se pueden distinguir dos tipos: los conocidos (son aquellos de los que se tiene constancia y se puede tomar medidas para evitar ver los sistemas afectados) o desconocidos (Estos se utilizan sobre vulnerabilidades que aún no han sido reportadas al público general y, por tanto, suponen una grave amenaza, especialmente si se utilizan en ataques dirigidos a empresas o gobiernos).

¿Qué es Payload?

Un Payload, es un programa que acompaña a un exploit para realizar funciones específicas una vez el sistema objetivo es comprometido, la elección de un buen payload es una decisión muy importante a la hora de aprovechar y mantener el nivel de acceso obtenido en un sistema. En muchos sistemas existen firewalls, Antivirus y sistemas de detección de intrusos que pueden dificultar la actividad de algunos payloads, por este motivo se suelen utilizar encoders para intentar evadir cualquier AV o Firewall.

¿Qué es DNS cache poisoning (DNS Poisoning)?

Es un ataque creado de manera maliciosa que provee datos de un Servidor DNS que no se origina de fuentes autoritativas DNS. Esto puede pasar debido a diseño inapropiado de software, falta de configuración de nombres de servidores y escenarios maliciosamente diseñados que explotan la arquitectura tradicionalmente abierta de un sistema DNS. Una vez que un servidor DNS ha recibido aquellos datos no autentificados y los almacena temporalmente para futuros incrementos de desempeño, es considerado envenenado, extendiendo el efecto de la situación a los clientes del servidor.

¿Qué es el ataque MitM (Man In the Middle Attack)?

Un ataque MitM es un ataque en el que el atacante puede leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que ninguna de ellas conozca que la comunicación entre ellos ha sido violada.

¿Qué es SET (Social Engineering Toolkit)?

Social Engineering Toolkit es una suite dedicada a la ingeniería social integrada en Backtrack, especialmente diseñada para realizar ataques en procesos de auditorías en seguridad, que permite automatizar tareas que van desde el de envío de SMS falsos con números de teléfonos adulterados, hasta clonar páginas web y poner en marcha un servidor para hacer phishing en cuestión de segundos. SET integra muchas de las funciones de Metasploit, por lo tanto para usar SET se debe tener Metasploit.

¿Qué es Credential Harvester Attack Method?

Este tipo de ataque permite a un atacante clonar un sitio que tenga algún tipo de formulario de autenticación posteriormente cuando una víctima ingresa en dicho sitio e ingresa sus credenciales de acceso, SET recolecta toda esta información y posteriormente envía al usuario al sitio original, finalmente cuando el atacante desea finalizar la ejecución del ataque, obtiene un informe con la información.

¿Qué es Ettercapp y cuáles son sus funciones?

Ettercap es un sniffer que permite capturar el tráfico que circula por una LAN, ya sea en un ambiente switcheado o conmutado. Las principales funciones son:

  • Inyección de caracteres en una conexión establecida emulando comandos o respuestas mientras la conexión está activa.
  • Puede interceptar users y passwords incluso en conexiones “seguras” con SSH.
  • Intercepta conexiones mediante http SSL (supuestamente seguras) incluso si se establecen a través de un proxy.
  • Intercepta tráfico remoto mediante un túnel GRE

 

LINUX

INSTALACIÓN DE UBUNTU 16.04.01 EN VIRTUALBOX (MÁQUINA VIRTUAL)

En la página oficial del proyecto Ubuntu se selecciona la imagen adecuada para para el PC o máquina virtual (para este caso seleccionó una para 64 bits).

El link es http://releases.ubuntu.com/16.04.1/

1.PNG

Una vez se termina la descarga, se ejecuta VirtualBox, allí se da clic en ‘Nueva’:

2

Ahora se debe asignar un nombre a la máquina virtual, si el nombre es conocido por VirtualBox, las opciones Tipo y Versión  se llenan automáticamente, si no pasa, se selecciona el tipo de SO y la versión de este:

3

Ahora se asigna un tamaño de memoria, el total de memoria que se podría asignar (4096 MB) corresponde a la memoria RAM del PC anfitrión, de modo que asignarle demasiada a la maquina virtual puede afectar el rendimiento del primer equipo:

4

A continuación se asignan las propiedades del Disco Duro, en este caso se asignará tamaño dinámicamente:

Una vez creada la maquina virtual, se da doble clic sobre esta para encenderla:

 

 

 

9.PNG

VirtualBox solicitará la ubicación de la imagen para instalar Ubuntu, allí se selecciona la ubicación del CD o ruta donde se encuentre la ISO que se descargó:

Al dar clic en ‘iniciar’ comienza la instalación del SO, en las siguientes pantallas se selecciona el idioma, el tipo de instalación, si se va a particionar el Disco Duro, la zona horaria, el idioma del teclado y las credenciales del usuario :

 

 

 

 

 

 

 

 

 

Posterior a eso, se va mostrando el progreso de la instalación:

Una vez terminada la instalación, se requiere reiniciar la maquina virtual:

21

Al terminar el reinicio, se podrá acceder al escritorio: