Gaining remote code execution using a tainted SQLite database

Experts demonstrated that SQLite database can be abused by threat actors as an attack vector to execute malicious code in other apps.

Experts at CheckPoint discovered that SQLite database can be abused by threat actors as an attack vector to execute malicious code in other apps, including Apple’s .

The experts presented the attack technique at the DEF CON security conference in Las Vegas.

“We discovered that simply querying a malicious SQLite database – can lead to Remote Code Execution. We used undocumented SQLite3 behavior and memory corruption vulnerabilities to take advantage of the assumption that querying a database is safe.” explained Omer Gull, security researcher at CheckPoint. “We created a rogue SQLite database that exploits the software used to open it.”

The study conducted by the researchers demonstrated how to exploit memory corruption issues in SQLite just using the SQL language. The experts devised techniques of Query Hijacking and Query Oriented Programming to trigger the above issues in the SQLite engine. Gull showed the audience a couple of real-world scenarios; in a first one, he hacked the C2 server of a password stealer, while in a second scenario he showed how to achieve iOS persistency with higher privileges.

The attack technique leverage vulnerabilities in the process implemented by third-party apps to read data from SQLite databases. The experts were able to store malicious code in the SQLite database used by third-party applications, then once the applications accessed to the database, the malicious code it contained will be executed.

The expert presented at Defcon how to use SQLite database to get a malware to be executed when the iMessage access it.

An attacker could replace or edit the “AddressBook.sqlitedb” file injecting a malware inside an iPhone’s address book, then when iMessage will query this SQLite file, it will trigger the execution of the malicious code, and will allow the malware to gain persistence on the device.

The researcher explained that Apple doesn’t sign SQLite data files, making it possible to easily replace the file and allowing attackers to gain persistence on both iPhones and macOS devices.

“Furthermore, the contacts db is actually shared among many processes. Contacts, Facetime, Springboard, WhatsApp, Telegram and XPCProxy are just some of the processes querying it. Some of these processes are more privileged than others.” reads the analysis published by CheckPoint. “Once we proved that we can execute code in the context of the querying process, this technique also allows us to expand and elevate our privileges.”

Experts reported their finding to Apple, the issues were assigned the following CVEs:

  • CVE-2019-8600
  • CVE-2019-8598
  • CVE-2019-8602
  • CVE-2019-8577

Apple addressed them in May, with the release of macOS Mojave 10.14.5, iOS 12.3, tvOS 12.3, and watchOS 5.2.1.

Experts also investigated how to hack into a C2 server used to control an info stealer specifically designed to steal SQLite user data.

The attack leverages the fact that most of C&C servers are in PHP and the malware uses to parse the SQLite files to extract the user’s browser data and display them in the console of the C2.

Gull explained that it is possible to execute code on the malware’s C&C servers and take over them with the technique they have devised.

“Given the fact that SQLite is practically built-in to every major OS, desktop or mobile, the landscape and opportunities are endless. Furthermore, many of the primitives presented here are not exclusive to SQLite and can be ported to other SQL engines. Welcome to the brave new world of using the familiar Structured Query Language for exploitation primitives. ” concluded Gull.

“Given the fact that SQLite is practically built-in to almost any platform, we think that we’ve barely scratched the tip of the iceberg when it comes to its exploitation potential. We hope that the security community will take this innovative research and the tools released and push it even further. A couple of options we think might be interesting to pursue are “

Apps that rely on SQLite include the likes of Skype, any web browser, any Android device, any iTunes instance, Dropbox sync clients, car multimedia systems, television sets and set-top cable boxes, and a bunch of other apps.

The post Gaining remote code execution using a tainted SQLite database appeared first on Security Affairs.