# 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.


---

# 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://vida03.gitbook.io/redteam/mobile/ios-pentest/setup-lab.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.
