🛡️
Hacking para Juniors - [CPPJ]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacker
    • ADVERTENCIA
    • Aprende GRATIS con El Curso De Junior a Senior en Hacking
    • Conoce tu Academia
    • Aprende con nuestro curso
    • Conoce a tu instructor
  • Fundamentos de la ciberseguridad ofensiva
    • ¿Que es el Ethical Hacking?
      • Tipos de Hackers
        • APTs (Advanced Persistent Threats)
    • ¿Que es el pentesting?
      • Tipos de Caja en Pentesting
      • Tipos de tecnologia
      • Etapas de un pentest
        • Escalacion de privilegios
    • ¿Qué es un CVE?
    • ¿Que es un escaneo de vulnerabilidades?
    • ¿Que es un Red Team?
      • Command and Control
    • ¿Que es la ingenieria social?
      • Kevin Mitnick
      • Libros Recomendados
    • El papel de los Juniors y la IA
  • OSINT for Juniors
    • Open-source intelligence (OSINT)
    • Tipos de fuentes OSINT
    • Herramientas para OSINT
    • Dorks de Google
  • OS for Juniors
    • Introduccion a Sistemas Operativos
    • Archivo y extensiones
    • Windows
      • Estructura del SO
        • Kernel De Windows
        • Servicios Importantes
        • Procesos en Windows
        • Registros en Windows
        • Gestion de archivos en Windows
      • Versiones relevantes
      • La importancia de identificar la version de windows durante una auditoria
      • Tips
    • Linux
      • Tips
    • Android
      • Versiones relevantes
      • Tips
    • IOS
      • Versiones Relevantes
      • Tips
    • macOS
      • Versiones Relevantes
      • Tips
    • Sistemas operativos para Hackers
    • Instalacion de Kali Linux
  • Networking for Juniors
    • ¿Que es el Networking?
    • Fundamentos de Redes
    • Estructura de Redes
    • Topologías de Red
    • Modelo OSI (Open Systems Interconnection)
    • Modelo TCP/IP
    • IP (Internet Protocol)
    • TCP (Transmission Control Protocol)
    • UDP (User Datagram Protocol)
    • Protocolos de red
      • Protocolos de la capa de acceso al medio
      • Protocolos de la capa de red
      • Protocolos de la capa de transporte
      • Protocolos de la capa de aplicación
      • Protocolos de aplicación en correo electrónico
    • Puertos y servicios
      • Puerto 21: FTP
      • Puerto 22: SSH
      • Puerto 23: Telnet
      • Puerto 25: - SMTP
      • Puerto 53: DNS
      • Puerto 80: HTTP
      • Puerto 443: HTTPS
      • Puerto 139 y 445: SMB - CIFS
      • Puerto 3389: RDP
      • Puerto 389: LDAP
      • Puerto 5000: Docker
      • Puerto 5900: VNC
  • Nmap for Juniors
    • ¿Que es Nmap?
    • Tu Primer Nmap
    • Parametros de Nmap
    • Comandos utiles
    • Scripts de Nmap
  • Wi-Fi y Radiofrecuencias
    • Fundamentos de Wireless
    • Fundamentos del Hacking de Wi-Fi
    • Fundamentos en Radiofrecuencias
    • RFID (Radio Frequency Identification)
    • Infrarrojo (IR)
    • Bluetooth
    • NFC (Near Field Communication)
    • Herramientas de un hacker
    • Fundamentos en Hardware Hacking
  • AppWeb For Juniors
    • ¿Porque deberia aprender hacking web?
    • Fundamentos de Aplicaciones Web
      • Códigos de estado HTTP
    • Fundamentos de APIs
      • Métodos HTTP
      • Practica Gratis
    • Cabeceras de seguridad
    • Analisis de certificados SSL
    • Mecanismos de autenticacion y autorizacion en AppWeb
    • Atacando CMS
    • La Seguridad en el Desarrollo de Aplicativos: Frameworks vs. Desarrollo Manual
    • OWASP Top Ten
  • Databases for Juniors
    • ¿Base de Datos?
      • SQL
      • NoSQL
    • Puerto 6379: Redis
    • Puerto 27017: MongoDB
    • Puerto 5432: PostgreSQL
    • Puerto 3306: MySQL
    • Puerto 1433: Microsoft SQL Server
    • Puerto 1521: - Oracle Database
  • Transferencia de Archivos
    • Introduccion a la Transferencia de archivos
    • Descargando desde Windows
      • Utilizando LOLBAS
    • Descargando desde Linux
    • Despliegue de servicio HTTP
    • Despliegue de servicio SMB
    • Despligue de servicio FTP
    • Utilizando Base64
  • Fundamentos en Vulnerabilidades
    • ¿Qué es una Vulnerabilidad?
    • ¿Qué es un 0day?
    • Common Vulnerabilities and Exposures - [CVE]
    • RCE (Remote Code Execution)
    • Buffer Overflow
  • Malware For Junior
    • ¿Que es Malware?
    • ¿Que es un AntiVirus?
      • Microsoft Defender
    • ¿Que es un EDR?
      • Mejores EDRs actuales
    • Desarrollo de Malware
    • Malware for Windows
      • Golang
      • Nim
      • C#
    • Ofuscacion de Malware
  • Shell
    • ¿Shell?
      • CMD (Command Prompt) en Windows
      • PowerShell en Windows
      • Bash en Unix/Linux
    • ¿Reverse Shell?
    • ¿Web Shell?
    • ¿Bind Shell?
    • Enumeracion de Windows
    • Enumeracion de Linux
  • Privilege Escalation for Juniors
    • ¿Que es la escalacion de privilegios?
    • PrivEsc For Windows
      • WinPEAS
    • PrivEsc For Linux
      • LinPEAS
    • PrivEsc For Active Directory
    • PrivEsc For Cloud Computing
  • Tecnicas de persistencia
    • Fundamentos de Persistencia
    • Persistencia en Windows
    • Persistencia en Linux
    • Persistencia Avanzada
  • Pivoting for Juniors
    • ¿Que es pivoting?
    • ¿Que es Socks?
    • Doble Pivoting y Triple Pivoting
    • RPivot y Chisel
  • Active Directory For Juniors
    • Fundamentos de Active Directory
    • Utilizando ADPeas para el reconocimiento
  • Cloud Computing For Juniors
    • Fundamentos de cloud computing
    • Amazon Web Services
    • Microsoft Azure
    • Google Cloud Platform
  • Introduccion a Blue Team
    • ¿Blue Team?
    • ¿SOC?
    • ¿Threat Hunting?
    • SIEM (Security Information and Event Management)
    • La fatiga del SOC
    • ¿SOAR?
  • Defensas y herramientas de seguridad perimetral
    • Soluciones de Seguridad Perimetral Esenciales
    • Firewall
    • IDS (Intrusion Detection System)
    • IPS (Intrusion Prevention System)
    • WAF (Web Application Firewall)
    • Firewalls de Próxima Generación (NGFW)
    • Gateways de Seguridad Web (SWG)
    • Gateways de Seguridad de Correo Electrónico (SEG)
    • Sistemas de Prevención de Fugas de Datos (DLP)
    • Network Access Control (NAC)
  • Muchas gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página
  • Estructura y Características de Android
  • Estructura
  • Características Principales
  • Importancia de Uso en el Mercado
  • Archivos y Rutas Importantes
  • Funcionamiento de los Permisos
  • Solicitud y Gestión de Permisos
  • Importancia en el Pentesting
  • Conclusión

¿Te fue útil?

  1. OS for Juniors

Android

Android es uno de los sistemas operativos más utilizados en el mundo, diseñado principalmente para dispositivos móviles como smartphones y tablets. Desarrollado por Google, Android es un sistema operativo basado en el kernel de Linux, que ofrece una plataforma abierta para el desarrollo y la distribución de aplicaciones.

adb shell getprop ro.build.version.release

Estructura y Características de Android

Estructura

La arquitectura de Android se compone de varias capas, cada una con funciones específicas:

  1. Kernel de Linux: La base del sistema operativo Android es el kernel de Linux, que gestiona los recursos del hardware, incluyendo la memoria, los procesos y la red. Este kernel se ha modificado para satisfacer las necesidades de Android.

  2. Bibliotecas Nativas: Encima del kernel de Linux, Android utiliza un conjunto de bibliotecas nativas escritas en C/C++. Estas bibliotecas proporcionan muchas de las características básicas de Android, como gráficos 2D y 3D, base de datos SQLite y el motor de navegador WebKit.

  3. Android Runtime (ART): ART es el entorno de ejecución de aplicaciones en Android. Todas las aplicaciones Android se ejecutan dentro de su propia instancia de ART, que traduce el bytecode de las aplicaciones a instrucciones del sistema operativo.

  4. Framework de Aplicaciones: Esta capa ofrece muchas clases y servicios que los desarrolladores pueden utilizar para crear aplicaciones Android. Incluye administradores de actividades, notificaciones, recursos, y contenido, así como servicios de mensajería.

  5. Aplicaciones del Sistema: En la parte superior de la arquitectura se encuentran las aplicaciones preinstaladas, como el navegador, el teléfono, los contactos y la cámara. Estas aplicaciones proporcionan funcionalidades básicas a los usuarios y sirven como ejemplos de buenas prácticas de desarrollo.

Características Principales

  • Interfaz de Usuario Personalizable: Android permite a los fabricantes de dispositivos y a los usuarios personalizar la apariencia del sistema operativo.

  • Multitarea: Los usuarios pueden ejecutar múltiples aplicaciones al mismo tiempo.

  • Notificaciones: Sistema avanzado de notificaciones que permite a las aplicaciones informar a los usuarios de eventos importantes.

  • Soporte para múltiples pantallas y resoluciones: Android es compatible con una amplia variedad de dispositivos y tamaños de pantalla.

  • Seguridad: Incluye varias capas de seguridad para proteger los datos del usuario y la integridad del sistema.

Importancia de Uso en el Mercado

Android domina una gran parte del mercado global de smartphones. Algunas razones de su popularidad incluyen:

  • Código Abierto: Android es un sistema operativo de código abierto, lo que permite a los fabricantes de dispositivos adaptarlo a sus necesidades específicas.

  • Variedad de Dispositivos: Existen dispositivos Android en todos los rangos de precio, desde modelos económicos hasta teléfonos de alta gama.

  • Ecosistema de Aplicaciones: Google Play Store ofrece millones de aplicaciones, lo que proporciona una amplia gama de opciones a los usuarios.

  • Actualizaciones Frecuentes: Google lanza actualizaciones periódicas que mejoran la seguridad y agregan nuevas características.

Archivos y Rutas Importantes

En el contexto de Android, hay varios archivos y rutas que son cruciales tanto para el funcionamiento del sistema como para el desarrollo y la seguridad de aplicaciones:

  • /system: Contiene el sistema operativo Android y es de solo lectura. Incluye el kernel, bibliotecas, y las aplicaciones de sistema.

  • /data: Aquí se almacenan las aplicaciones instaladas por el usuario y sus datos. Cada aplicación tiene su propio directorio, accesible solo por esa aplicación.

  • /cache: Utilizado para almacenar datos temporales y caché del sistema y de las aplicaciones.

  • /sdcard: En dispositivos con almacenamiento externo, este directorio se utiliza para almacenar datos del usuario, como fotos, música y documentos.

  • AndroidManifest.xml: Este archivo en cada aplicación define componentes esenciales, permisos requeridos, y otras configuraciones importantes.

  • build.prop: Archivo de configuración del sistema que define propiedades del sistema, como la versión de Android y el modelo del dispositivo.

Funcionamiento de los Permisos

Los permisos en Android son una parte fundamental de la seguridad del sistema operativo. Permiten a las aplicaciones acceder a recursos y datos protegidos, y están diseñados para proteger la privacidad y la seguridad del usuario.

Tipos de Permisos

  1. Permisos Normales: Permiten el acceso a datos y recursos de bajo riesgo, como el acceso a internet. Estos permisos se otorgan automáticamente sin necesidad de la aprobación del usuario.

  2. Permisos de Firma: Permiten el acceso a recursos compartidos entre aplicaciones firmadas con la misma clave de desarrollador.

  3. Permisos de Tiempo de Ejecución (Runtime Permissions): Introducidos en Android 6.0 (Marshmallow), requieren la aprobación del usuario en tiempo de ejecución para acceder a recursos sensibles, como la ubicación, la cámara y los contactos.

Solicitud y Gestión de Permisos

  • AndroidManifest.xml: Los permisos que una aplicación necesita deben declararse en este archivo. Por ejemplo, <uses-permission android:name="android.permission.CAMERA" />.

  • Solicitud en Tiempo de Ejecución: Para permisos de tiempo de ejecución, la aplicación debe solicitar el permiso en tiempo de ejecución utilizando requestPermissions(). El sistema mostrará un cuadro de diálogo al usuario para aprobar o denegar el permiso.

  • Revisión de Permisos: Los usuarios pueden revisar y gestionar los permisos otorgados a cada aplicación desde la configuración del dispositivo.

Importancia en el Pentesting

En el pentesting, entender cómo funcionan los permisos es crucial para evaluar la seguridad de las aplicaciones. Los pentesters deben verificar:

  • Declaraciones de Permisos: Asegurarse de que las aplicaciones solo soliciten los permisos necesarios.

  • Uso de Permisos: Verificar cómo las aplicaciones utilizan los permisos y si manejan correctamente la solicitud y revocación de los mismos.

  • Exposición de Datos: Evaluar si las aplicaciones exponen datos sensibles a través de permisos mal gestionados.

Conclusión

Android es un sistema operativo complejo y robusto que se utiliza en una amplia gama de dispositivos móviles. Su arquitectura modular, junto con su enfoque en la seguridad y personalización, lo ha convertido en la opción preferida para millones de usuarios y desarrolladores en todo el mundo. Para los pentesters, comprender en profundidad su estructura, características y manejo de permisos es esencial para realizar evaluaciones de seguridad efectivas y asegurar que las aplicaciones sean seguras y protegidas contra amenazas potenciales.

AnteriorTipsSiguienteVersiones relevantes

Última actualización hace 12 meses

¿Te fue útil?

Page cover image