# iOS

## Sobre iOS

Algunos puntos importantes cuando conectas tu dispositivo al PC:

* Al conectarlo, en el dispositivo te aparecerá un mensaje para confiar en el PC que has conectado, debes seleccionar "Confiar".
* Para instalar aplicaciones que no están en la Apple Store debes aceptar ese "perfil de confianza".&#x20;

  Para ello debes ir a Ajustes > General > VPN y gestión de dispositivos
* El AppID de una aplicación se puede obtener a través de:

\- Objection, con el comando:

```
com.appName on (iPhone) [usb] # env
```

\- SSH. Cuando has accedido y estás en la ruta /var/mobile/Containers/Data/Application/

```
ls -l | grep -i "AppName"
```

* Las aplicaciones se guardan en la ruta:

```
/var/mobile/Containers/Data/Application/AppID/
```

* La base de datos de las aplicaciones se guardan en la ruta:

```
/var/mobile/Containers/Data/Application/AppID/Documents/database.sqlite

```

## Extraer ipa del dispositivo

Acceder a través de SSH al dispositivos

```bash
ssh root@192.168.X.X
  password: alpine
```

Listar las aplicaciones instaladas:

```bash
iphone~root# ipainstaller -l
```

Hacer backup de la aplicación

```bash
iphone~root# ipainstaller -b *com.appName*
```

* El fichero .ipa se guarda en la ruta /private/var/mobile/Documents/com.appName.ipa

Enviar el fichero .ipa a nuestro equipo

```bash
root@kali# scp root@192.168.X.X:/private/var/mobile/Documents/com.appName.ipa
  password: alpine
```

## Instalar ipa en el dispositivo

1. Accedemos vía SSH al dispositivo jailbreakeado (a través de la IP y puerto 22), con credenciales root:alpine
2. Cambiamos la ruta destino a /private/var/mobile/Documents/
3. Copiamos el fichero .ipa a la ruta destino
4. Abrimos una consola con ssh root\@IP, y escribimos

```jsx
shh root@192.168.x.x 
*password alpine*

ipainstaller -F app.ipa
```

## Bypass SSLPinning

* Deshabilitar en una app con [Objection](/securiters-wiki/_tools/apps-moviles/objection.md)

```bash
com.appName on (iPhone) [usb] # ios sslpinning disable
```

* Deshabilitar en una app con [FRIDA](/securiters-wiki/_tools/analisisdinamicoios.md)

```bash
frida -U -f com.appName -l ssl.js --no-pause 
```

U --> Para usar un dispositivo conectado via USB como target

F --> Para indicar el nombre del paquete

L --> Para cargar el script ssl.js => (Descargar el script de codeshare según la versión de iOS)

\--no-pause --> Para forzar que Frida no pare la ejecución de la aplicación tras inyectar el script

{% hint style="info" %}
Recurso: <https://www.appknox.com/blog/bypass-ssl-pinning-in-ios-app>
{% endhint %}

## Configurar Burp Suite en el dispositivo

Conectar el dispositivo a la misma red que el pc:

* Opcion alternativa con dispositivo físico: Activar la "zona con cobertura" (mobile hotspot) en el pc.
* Con el movil jailbrokenWifi > redConectada > configurar proxy > manual > IP del pc + puerto de burp (8082)

1. Abrir el navegador del movil y escribir <http://burp> > instalar Certificado
2. Ajustes > General > Informacion > Ajustes de certificado de confianza > confiar en certificados raiz > activar portSwigger \[Settings > General > About > Certificate Trust Settings.]

## Recursos y enlaces de referencia de iOS

* [iOS Hacking iOS - A Beginner's Guide to Hacking iOS Apps](https://martabyte.github.io/ios/hacking/2022/03/13/ios-hacking-en.html)
* [Extracting the IPA File and Local Data Storage of an iOS Application](https://medium.com/@lucideus/extracting-the-ipa-file-and-local-data-storage-of-an-ios-application-be637745624d)
* [Analyzing the IPA file of an iOS based application](https://medium.com/cybersecurityservices/analyzing-the-ipa-file-of-an-ios-based-application-9c0a1749fe69)
* [iOS Pentesting](https://hacklejandria.com/ios-pentesting-analisis-estatico/)
* Herramientas para SSL Pinning
  * [Kill switch2](https://github.com/nabla-c0d3/ssl-kill-switch2)
  * [Threat crowd](https://www.threatcrowd.org/)
  * [Rrbtex](https://www.robtex.com/)
  * [Threat miner](https://www.threatminer.org/)

## Para practicar hacking en iOS

* [OWASP UnCrackable Mobile Apps](https://github.com/OWASP/owasp-mstg/tree/master/Crackmes#ios)
* [Myriam](https://github.com/GeoSn0w/Myriam)
* [iGoat](https://github.com/owasp/igoat)
* [DamnVulnerableIosApp](https://damnvulnerableiosapp.com/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/movil/ios.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
