> For the complete documentation index, see [llms.txt](https://vida03.gitbook.io/redteam/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vida03.gitbook.io/redteam/mobile/ios-pentest/setup-lab.md).

# Setup Lab

## Apresentação

No link abaixo você irá baixar o nosso lab, a extensão .qcow2 é uma extensão para arquivos que podem ser emulados pelo qemu, então podemos instalar no UTM.

> User: securestore
>
> Pass: securestore
>
> <https://drive.google.com/file/d/1RD_WDmY8qWNJCoGIhJCNEgkl6bwzLxNU/view?usp=sharing>

> A imagem original está em .ova, porém utilizando o **qemu-img** podemos converter a imagem para .qcow2 para emular no UTM.

Irei mostrar o processo de conversão de **.ova** -> **.qcow2**&#x20;

## Baixando dependências&#x20;

```html
brew install qemu # instalar o qemu
mkdir setup && mv iOS_lab.ova setup/ # mover o arquivo .lab para a pasta setup
cd setup/
tar -xvf iOS_lab.ova # descompactar o .ova para converter o arquivo .vmdk
qemu-img convert -O qcow2 iOS_Udemy-disk001.vmdk iOS_Udemy.qcow2 # conversão
```

<figure><img src="/files/X91p0Li6neTZSauz3F8w" alt=""><figcaption><p>Imagem 1.0</p></figcaption></figure>

## Setup do lab no UTM

{% embed url="<https://youtu.be/g60Xr9dL3pc>" %}

## Aplicativos vulneravéis

Agora vamos instalar os aplicativos, vou usar como exemplo o "SecureStorev1.ipa"

> <https://drive.google.com/drive/folders/1sUkM7mE30T6PY0yN8rYLC3JCzdaWgV2W?usp=sharing>

> Para pegar a sua assinatura entra no XCode e faça login com sua conta apple

<figure><img src="/files/zR5clgTOGa05hjfj3j7f" alt=""><figcaption><p>Imagem 1.1</p></figcaption></figure>

```
# Instalando objection
pip3 install objection

# Instale o applesign
brew install node
npm install -g applesign

# Pegue a sua assinatura
applesign -L
* Resultado se parece com:
XXXX3EC5EC23EF26B5535343777BE8D55D3XXXXX Apple Development: email@gmail.com (XXXX685VRN)
-------------> Esse código é sua assinatura

# Instalar insert_dylib
git clone https://github.com/Tyilo/insert_dylib
cd insert_dylib
xcodebuild
cp build/Release/insert_dylib /usr/local/bin/insert_dylib

# Fazendo o patch do .ipa pra conseguirmos comunicar com o objection
objection patchipa --source SecureStorev1.ipa --codesign-signature YOUR_SIGN

# Descompacte o arquivo gerado para ser usado depois pelo ios-deploy
unzip SecureStorev1-frida-codesigned.ipa
cd Payload/

# Deploy do aplicativo no seu celular (garanta que o celular esteja plugado)
# Confira na imagem 1.2
ios-deploy -b SecureStorev1.app -W --debug

# Após isso o seu celular irá abrir o aplicativo
# Vamos rodar ele usando o objection
# Confira na imagem 1.3
objection explore
```

{% hint style="info" %}
Atenção: ao rodar o aplicativo usando o ios-deploy pela primeira vez ele irá dar error, pois precisamos verificar ele. Para isso siga o passo a passo abaixo:

Ajustes -> Geral -> Gestão de VPN e Dispositivo -> APP DO DESENVOLVEDOR -> Verificar App

Após isso rode o ios-deploy novamente
{% endhint %}

<figure><img src="/files/73sfxSPYyIc27VuvrgDz" alt=""><figcaption><p>Imagem 1.2</p></figcaption></figure>

<figure><img src="/files/Us7TtT3AsAytUictaL88" alt=""><figcaption><p>Imagem 1.3</p></figcaption></figure>

## Setup do servidor

Agora vamos para a parte de configuração do servidor. Esse aplicativo se comunica com aquela máquina virtual que instalamos.

Vamos configurar a reda em nossa máquina virtual.

<figure><img src="/files/UUCVkwokQztKa3qtghIv" alt=""><figcaption><p>Imagem 1.4</p></figcaption></figure>

Vamos entender o porquê dessas configurações, colocamos modo Bridge para a VM ter a sua própria interface de rede, precismos disso para os outros dispositivos (como por exemplo nosso celular) de nossa rede conseguir "enxergar" a VM.

Nesse caso a Interface já está correta para mim, se a sua interface de rede interna for outra mude para ela.

```
# No lugar de enp0s1 coloque a interface que aparecer no comando ip addr
sudo nano /etc/network/interfaces

# Acrescente no final do arquivo
auto enp0s1
iface enp0s1 inet dhcp

# Execute para configurar a interface corretamente
sudo ifup enp0s1
```

Pronto, agora só digitarmos **ifconfig** e colocar no aplicativo (aperte na engrenagem) o IP da máquina virtual, para confirmar se está tudo funcionando basta clicar em **"ABOUT US"** caso retorne essa mensagem o ambiente foi configurado com sucesso!

<figure><img src="/files/Me0Fth1C9qgEhxivRSzg" alt=""><figcaption><p>Imagem 1.5</p></figcaption></figure>

## Considerações

Se nosso device tivesse JailBreak os passos seriam semelhantes a esse:

* Assinar o aplicativo
* Instalar o aplicativo com o XCode
* Baixar Cydia e SSH
* Configurar apenas o servidor

O processo de patch do aplicativo serve para nós conseguirmos interagir com ele usando o objection, se o nosso device possuísse JailBreak bastava a gente se conecetar nele via SSH.
