Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ish — Shell de Linux para iOS | Kitploit
Herramientas/GitHubGitHub/ish-app/ish
Utilidades de Propósito GeneralSeguridad iOS
GitHubish-app/ish

ish

Shell de Linux para iOS

Ver RepositorioSitio web
20.2k1.4k1hace 24 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

iSH

Build Status goto counter fuck counter shit counter

Un proyecto para ejecutar un shell de Linux en iOS, utilizando emulación x86 en modo usuario y traducción de llamadas al sistema.

Para el estado actual del proyecto, consulta la pestaña de issues y los registros de commits.

  • Página de App Store
  • Beta de TestFlight
  • Servidor de Discord
  • Wiki con ayuda y tutoriales
  • README中文 (如若未能保持最新,请提交PR以更新)

Hacking

Este proyecto tiene un submódulo de git, asegúrate de clonar con --recurse-submodules o ejecuta git submodule update --init después de clonar.

Necesitarás lo siguiente para construir el proyecto:

  • Python 3
    • Meson (pip3 install meson)
  • Ninja
  • Clang y LLD (en mac, brew install llvm, en linux, sudo apt install clang lld o sudo pacman -S clang lld o lo que sea)
  • sqlite3 (es tan común que puede que ya esté instalado en linux y definitivamente ya está instalado en mac. si no, haz algo como sudo apt install libsqlite3-dev)
  • libarchive (brew install libarchive, sudo port install libarchive, sudo apt install libarchive-dev) TODO: incluir esta dependencia

Compilar para iOS

Abre el proyecto en Xcode, abre iSH.xcconfig y cambia ROOT_BUNDLE_IDENTIFIER por algo único. También necesitarás actualizar el ID del equipo de desarrollo en la configuración de compilación del proyecto (¡no del target!). Luego haz clic en Run. Hay scripts que deberían hacer todo lo demás automáticamente. Si encuentras algún problema, abre un issue e intentaré ayudarte.

Compilar herramienta de línea de comandos para pruebas

Para configurar tu entorno, haz cd al proyecto y ejecuta meson build para crear un directorio de compilación en build. Luego haz cd al directorio de compilación y ejecuta ninja.

Para configurar un sistema de archivos Alpine Linux autónomo, descarga el tarball minirootfs de Alpine para i386 desde el sitio web de Alpine y ejecuta ./tools/fakefsify, con el tarball minirootfs como primer argumento y el nombre del directorio de salida como segundo argumento. Luego puedes ejecutar cosas dentro del sistema de archivos Alpine con ./ish -f alpine /bin/sh, asumiendo que el directorio de salida se llama alpine. Si tools/fakefsify no existe en tu directorio de compilación, puede que sea porque no pudo encontrar libarchive en tu sistema (consulta arriba las formas de instalarlo).

Puedes reemplazar ish con tools/ptraceomatic para ejecutar el programa en un proceso real y ejecutar paso a paso y comparar los registros en cada paso. Lo uso para depuración. Requiere Linux de 64 bits 4.11 o posterior.

Registro de eventos (Logging)

iSH tiene varios canales de registro que se pueden habilitar en tiempo de compilación. Por defecto, todos están deshabilitados. Para habilitarlos:

  • En Xcode: Establece la configuración ISH_LOG en iSH.xcconfig a una lista separada por espacios de canales de registro.
  • Con Meson (herramienta de línea de comandos para pruebas): Ejecuta meson configure -Dlog="<lista separada por espacios de canales de registro>".

Canales disponibles:

  • strace: El canal más útil, registra los parámetros y el valor de retorno de casi todas las llamadas al sistema.
  • instr: Registra cada instrucción ejecutada por el emulador. Esto ralentiza mucho las cosas.
  • verbose: Registros de depuración que no encajan en otra categoría.
  • Busca con grep DEFAULT_CHANNEL para ver si se han añadido más canales de registro desde que se actualizó esta lista.

Una nota sobre el intérprete

Posiblemente lo más interesante que escribí como parte de iSH es el intérprete. No es exactamente un JIT porque no genera código máquina. En su lugar, genera un array de punteros a funciones llamadas gadgets, y cada gadget termina con una tailcall a la siguiente función; como la técnica de código enhebrado utilizada por algunos intérpretes Forth. El resultado es una aceleración de aproximadamente 3-5x en comparación con la emulación utilizando un dispatch por switch más simple.

Desafortunadamente, tomé la decisión de escribir casi todos los gadgets en lenguaje ensamblador. Probablemente fue una buena decisión en cuanto a rendimiento (aunque nunca lo sabré con certeza), pero una decisión horrible en cuanto a legibilidad, mantenibilidad y mi cordura. La cantidad de tonterías con las que he tenido que lidiar del compilador/ensamblador/enlazador es increíble. Es como si hubiera un demonio allí que se asegura de que mi código esté suficientemente deformado, y si no, inventa razones estúpidas por las que no debería compilar. Para mantener la cordura mientras escribía este código, he tenido que ignorar las mejores prácticas en estructura y nomenclatura. Encontrarás macros y variables con nombres tan descriptivos como ss y s y a. Macros de ensamblador anidadas hasta el infinito. Y para rematar, casi no hay comentarios.

Así que una advertencia: La exposición prolongada a este código puede causar pérdida de cordura, pesadillas sobre macros de GAS y errores del enlazador, o cualquier otro número de efectos secundarios debilitantes. Este código es conocido por el Estado de California por causar cáncer, defectos de nacimiento y daño reproductivo.

Descargar herramienta