Forensic Methodology Report
Forensic Methodology Report
SHARE
Introduction
NSO Group claims that its Pegasus spyware is only used to “investigate terrorism and crime” and “leaves
no traces whatsoever”. This Forensic Methodology Report shows that neither of these statements are true.
This report accompanies the release of the Pegasus Project, a collaborative investigation that involves more
than 80 journalists from 17 media organizations in 10 countries coordinated by Forbidden Stories with
technical support of Amnesty International’s Security Lab.[1]
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 1 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Amnesty International’s Security Lab has performed in-depth forensic analysis of numerous mobile devices
from human rights defenders (HRDs) and journalists around the world. This research has uncovered
widespread, persistent and ongoing unlawful surveillance and human rights abuses perpetrated using NSO
Group’s Pegasus spyware.
As laid out in the UN Guiding Principles on Business and Human Rights, NSO Group should urgently take
pro-active steps to ensure that it does not cause or contribute to human rights abuses within its global
operations, and to respond to any human rights abuses when they do occur. In order to meet that
responsibility, NSO Group must carry out adequate human rights due diligence and take steps to ensure that
HRDs and journalists do not continue to become targets of unlawful surveillance.
In this Forensic Methodology Report, Amnesty International is sharing its methodology and publishing an
open-source mobile forensics tool and detailed technical indicators, in order to assist information security
researchers and civil society with detecting and responding to these serious threats.
This report documents the forensic traces left on iOS and Android devices following targeting with the
Pegasus spyware. This includes forensic records linking recent Pegasus infections back to the 2016
Pegasus payload used to target the HRD Ahmed Mansoor.
The Pegasus attacks detailed in this report and accompanying appendices are from 2014 up to as recently
as July 2021. These also include so-called “zero-click” attacks which do not require any interaction from the
target. Zero-click attacks have been observed since May 2018 and continue until now. Most recently, a
successful “zero-click” attack has been observed exploiting multiple zero-days to attack a fully patched
iPhone 12 running iOS 14.6 in July 2021.
Sections 1 to 8 of this report outline the forensic traces left on mobile devices following a Pegasus infection.
This evidence has been collected from the phones of HRDs and journalists in multiple countries.
Finally, in section 9 the report documents the evolution of the Pegasus network infrastructure since 2016.
NSO Group has redesigned their attack infrastructure by employing multiple layers of domains and servers.
Repeated operational security mistakes have allowed the Amnesty International Security Lab to maintain
continued visibility into this infrastructure. We are publishing a set of 700 Pegasus-related domains.
Names of several of the civil society targets in the report have been anonymized for safety and security
reasons. Individuals who have been anonymized have been assigned an alphanumeric code name in this
report.
Amnesty International’s technical investigation into NSO Group’s Pegasus intensified following our discovery
of the targeting of an Amnesty International staffer and a Saudi activist, Yahya Assiri, in 2018. Amnesty
International’s Security Lab began refining its forensics methodology through the discovery of attacks
against HRDs in Morocco in 2019, which were further corroborated by attacks we discovered against a
Moroccan journalist in 2020. In this first section we detail the process which led to the discovery of these
compromises.
Numerous public reports had identified NSO Group’s customers using SMS messages with Pegasus exploit
domains over the years. As a result, similar messages emerged from our analysis of the phone of Moroccan
activist Maati Monjib, who was one of the activists targeted as documented in Amnesty International’s 2019
report.
However, on further analysis we also noticed suspicious redirects recorded in Safari’s browsing history. For
example, in one case we noticed a redirect to an odd-looking URL after Maati Monjib attempted to visit
Yahoo:
(Please note: throughout this document we escaped malicious domains with the marking [.] to prevent
accidental clicks and visits.)
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 3 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
In our October 2019 report, we detail how we determined these redirections to be the result of network
injection attacks performed either through tactical devices, such as rogue cell towers, or through dedicated
equipment placed at the mobile operator. When months later we analysed the iPhone of Moroccan
independent journalist Omar Radi, who as documented in our 2020 report was targeted, we found similar
records involving the free247downloads[.]com domain as well.
In November 2019, after Amnesty International’s initial report, a new domain urlpush[.]net was registered.
We found it subsequently involved in similar redirects to the URL
https://gnyjv1xltx.info8fvhgl3.urlpush[.]net:30875/zrnv5revj.
Although Safari history records are typically short lived and are lost after a few months (as well as potentially
intentionally purged by malware), we have been able to nevertheless find NSO Group’s infection domains in
other databases of Omar Radi’s phone that did not appear in Safari’s History. For example, we could identify
visits through Safari’s Favicon.db database, which was left intact by Pegasus:
Date URL
(UTC)
2019- https://d9z3sz93x5ueidq3.get1tn0w.free247downloads[.]com:30897/rdEN5YP
02-11
14:45:53
2019- https://2far1v4lv8.get1tn0w.free247downloads[.]com:31052/meunsnyse#01135657025711729683484
09-13
17:01:38
2019- https://2far1v4lv8.get1tn0w.free247downloads[.]com:31052/meunsnyse#06809956161462627851992
09-13
17:01:56
2020- https://gnyjv1xltx.info8fvhgl3.urlpush[.]net:30875/zrnv5revj#0741964198279879192740015486227389
01-17
11:06:32
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 4 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
2020- https://gnyjv1xltx.info8fvhgl3.urlpush[.]net:30875/zrnv5revj#0741964198279879192740015486227389
01-27
11:06:24
As explained in the Technical Appendix of our 2020 report on Pegasus attacks in Morocco, these redirects
do not only happen when the target is navigating the Internet with the browser app, but also when using
other apps. For example, in one case Amnesty International identified a network injection while Omar Radi
was using the Twitter app. When previewing a link shared in his timeline, the service
com.apple.SafariViewService was invoked to load a Safari WebView, and a redirect occurred.
Because of this, we can find additional records involving the domains free247downloads[.]com and
urlpush[.]net in app-specific WebKit local storage, IndexedDB folders, and more. In multiple cases
IndexedDB files were created by Safari shortly after the network injection redirect to the Pegasus Installation
Server.
In addition, Safari’s Session Resource logs provide additional traces that do not consistently appear in
Safari’s browsing history. It appears Safari does not record full redirect chains, and might only keep history
records showing the final page that was loaded. Session Resource logs recovered from the analysed
phones demonstrate that additional staging domains are used as trampolines eventually leading to the
infection servers. In fact, these logs reveal that the very first network injection against Maati Monjib we
describe at the beginning of this post also involved the domain documentpro[.]org:
Maati Monjib visited http://yahoo.fr, and a network injection forcefully redirected the browser to
documentpro[.]org before further redirecting to free247downloads[.]com and proceed with the exploitation.
Similarly, on a different occasion Omar Radi visited the website of French newspaper Le Parisien, and a
network injection redirected him through the staging domain tahmilmilafate[.]com and then eventually to
free247downloads[.]com as well. We also saw tahmilmilafate[.]info used in the same way:
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 5 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
In the most recent attempts Amnesty International observed against Omar Radi in January 2020, his phone
was redirected to an exploitation page at gnyjv1xltx.info8fvhgl3.urlpush[.]net passing through the domain
baramije[.]net. The domain baramije[.]net was registered one day before urlpush[.]net, and a decoy
website was set up using the open source Textpattern CMS.
Traces of network activity were not the only available indicators of compromise, and further inspection of the
iPhones revealed executed processes which eventually led to the establishment of a consistent pattern
unique to all subsequent iPhones that Amnesty International analysed and found to be infected.
iOS maintains records of process executions and their respective network usage in two SQLite database
files called “DataUsage.sqlite” and “netusage.sqlite” which are stored on the device. It is worth noting that
while the former is available in iTunes backup, the latter is not. Additionally, it should be noted that only
processes that performed network activity will appear in these databases.
Both Maati Monjib’s and Omar Radi’s network usage databases contained records of a suspicious process
called “bh”. This “bh” process was observed on multiple occasions immediately following visits to Pegasus
Installation domains.
Maati Monjib’s phone has records of execution of “bh” from April 2018 until March 2019:
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 6 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Amnesty International found similar records on Omar Radi’s phone between February and September 2019:
The last recorded execution of “bh” occurred a few seconds after a successful network injection (as seen in
the favicon records listed earlier at 2019-09-13 17:01:56).
Crucially, we find references to “bh” in the Pegasus iOS sample recovered from the 2016 attacks against
UAE human rights defender Ahmed Mansoor, discovered by Citizen Lab and analysed in depth by
cybersecurity firm Lookout.
As described in Lookout’s analysis, in 2016 NSO Group leveraged a vulnerability in the iOS JavaScriptCore
Binary (jsc) to achieve code execution on the device. This same vulnerability was also used to maintain
persistence on the device after reboot. We find references to “bh” throughout the exploit code:
storeU32Array(shellcode32, shellcode_addr);
storeU32Array(bundle.bhCompressed32, compressed_bh_addr);
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 7 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
“bh.c - Loads API functions that relate to the decompression of next stage payloads and their proper
placement on the victim’s iPhone by using functions such as BZ2_bzDecompress, chmod, and malloc”
Lookout further explains that a configuration file located at /var/tmp/jb_cfg is dropped alongside the binary.
Interestingly, we find the path to this file exported as _kBridgeHeadConfigurationFilePath in the
libaudio.dylib file part of the Pegasus bundle:
Therefore, we suspect that “bh” might stand for “BridgeHead”, which is likely the internal name assigned
by NSO Group to this component of their toolkit.
The appearance of the “bh” process right after the successful network injection of Omar Radi’s phone is
consistent with the evident purpose of the BridgeHead module. It completes the browser exploitation, roots
the device and prepares for its infection with the full Pegasus suite.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 8 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
14:45:45 https_d9z3sz93x5ueidq3.get1tn0w.free247downloads.com_30897/
2019-02-11 Process: bh
14:45:56
Omar Radi’s device was exploited again on the 13 September 2019. Again a “bh” process started shortly
afterwards. Around this time the com.apple.softwareupdateservicesd.plist file was modified. A “msgacntd”
process was also launched.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 9 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Based on the timing and context of exploitation, Amnesty International believes the roleaboutd and
msgacntd processes are a later stage of the Pegasus spyware which was loaded after a successful
exploitation and privilege escalation with the BridgeHead payload.
Similarly, the forensic analysis of Maati Monjib’s phone revealed the execution of more suspicious processes
in addition to bh. A process named pcsd and one named fmld appeared in 2018:
Amnesty International verified that no legitimate binaries of the same names were distributed in
recent versions of iOS.
The discovery of these processes on Omar Radi’s and Maati Monjib’s phones later became instrumental for
Amnesty International’s continued investigations, as we found processes with the same names on devices
of targeted individuals from around the world.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 10 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
In one instance, the phone of a French human rights lawyer (CODE: FRHRL1) was compromised and the
“bh” process was executed seconds after network traffic for the iOS Photos app
(com.apple.mobileslideshow) was recorded for the first time. Again, after a successful exploitation, crash
reporting was disabled by writing a com.apple.CrashReporter.plist file to the device.
The next and last time network activity for the iOS Photos app was recorded was on 18 December 2019,
again preceding the execution of malicious processes on the device.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 11 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
In a separate case, we identified a similar pattern with the “mobileslideshow” and “bh” processes on the
iPhone of a French journalist (CODE: FRJRN1) in May 2020:
...
Amnesty International was not able to capture payloads related this exploitation but suspects that the iOS
Photos app or the Photostream service were used as part of an exploit chain to deploy Pegasus. The apps
themselves may have been exploited or their functionality misused to deliver a more traditional JavaScript or
browser exploit to the device.
As you can see from the tables above, additional process names such as mptbd, ckeblld, fservernetd, and
ckkeyrollfd appear right after bh. As with fmld and pcsd, Amnesty International believes these to be
additional payloads downloaded and executed after a successful compromise. As our investigations
progressed, we identified dozens of malicious process names involved in Pegasus infections.
Additionally, Amnesty International found the same iCloud account bogaardlisa803[@]gmail.com recorded
as linked to the “com.apple.private.alloy.photostream” service on both devices. Purposefully created iCloud
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 12 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
accounts seem to be central to the delivery of multiple “zero-click” attack vectors in many recent cases of
compromised devices analysed by Amnesty International.
From 2019 an increasing amount of vulnerabilities in iOS, especially iMessage and FaceTime, started
getting patched thanks to their discoveries by vulnerability researchers, or to cybersecurity vendors reporting
exploits discovered in-the-wild.
In response, Amnesty International extended its forensic methodology to collect any relevant traces by
iMessage and FaceTime. iOS keeps a record of Apple IDs seen by each installed application in a plist file
located at /private/var/mobile/Library/Preferences/com.apple.identityservices.idstatuscache.plist. This file is
also typically available in a regular iTunes backup, so it can be easily extracted without the need of a
jailbreak.
These records played critical role in later investigations. In many cases we discovered suspected Pegasus
processes executed on devices immediately following suspicious iMessage account lookups. For example,
the following records were extracted from the phone of a French journalist (CODE FRJRN2):
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 13 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Amnesty International’s forensic analysis of multiple devices found similar records. In many cases the same
iMessage account reoccurs across multiple targeted devices, potentially indicating that those devices have
been targeted by the same operator. Additionally, the processes roleaccountd and stagingd occur
consistently, along with others.
For example, the iPhone of a Hungarian journalist (CODE HUJRN1) instead showed the following records:
In this case, the first suspicious processes performing some network activity were recorded 5 minutes after
the first lookup. The com.apple.CrashReporter.plist file was already present on this device after a previous
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 14 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
The iPhone of yet another Hungarian journalist (CODE HUJRN2) show lookups for the same iMessage
accounts along with numerous other processes along with roleaccountd and stagingd:
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 15 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
It is interesting to note that in the traces Amnesty International recovered from 2019, the iMessage lookups
that immediately preceded the execution of suspicious processes often contained two-bytes 0x00 padding in
the email address recorded by the ID Status Cache file.
Yet again, we found a similar pattern of forensic traces on the device following the first recorded successful
exploitation:
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 16 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Interestingly we found signs of a new iOS infection technique being used to compromise this device. A
successful infection occurred on 10th July 2020:
Shortly before Pegasus was launched on the device, we saw network traffic recorded for the Apple Music
service. These HTTP requests were recovered from a network cache file located at
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 17 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
/private/var/mobile/Containers/Data/Application/D6A69566-55F7-4757-96DE-
EBA612685272/Library/Caches/com.apple.Music/Cache.db which we retrieved by jailbreaking the device.
Amnesty International cannot determine from forensics if Apple Music was itself exploited to deliver the initial
infection or if instead, the app was abused as part of a sandbox escape and privilege escalation chain.
Recent research has shown that built-in apps such as the iTunes Store app can be abused to run a browser
exploit while escaping the restrictive Safari application sandbox.
Most importantly however, the HTTP request performed by the Apple Music app points to the domain
opposedarrangement[.]net, which we had previously identified as belonging to NSO Group’s Pegasus
network infrastructure. This domain matched a distinctive fingerprint we devised while conducting Internet-
wide scans following our discovery of the network injection attacks in Morocco (see section 9).
In addition, these URLs show peculiar characteristics typical of other URLs we found involved in Pegasus
attacks through the years, as explained in the next section.
On the iPhone of a French human rights lawyer (CODE FRHRL2), we observed a lookup of a suspicious
iMessage account unknown to the victim, followed by an HTTP request performed by the
com.apple.coretelephony process. This is a component of iOS involved in all telephony-related tasks and
likely among those exploited in this attack. We found traces of this HTTP request in a cache file stored on
disk at /private/var/wireless/Library/Caches/com.apple.coretelephony/Cache.db containing metadata on the
request and the response. The phone sent information on the device including the model 9,1 (iPhone 7) and
iOS build number 18C66 (version 14.3) to a service fronted by Amazon CloudFront, suggesting NSO Group
has switched to using AWS services in recent months. At the time of this attack, the newer iOS version 14.4
had only been released for a couple of weeks.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 18 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
The Cache.db file for com.apple.coretelephony contains details about the HTTP response which appeared
to have been a download of ~250kb of binary data. Indeed, we found the downloaded binary in the
fsCachedData sub-folder, but it was unfortunately encrypted. Amnesty International believes this to be the
payload launched as gatekeeperd.
Amnesty International subsequently analysed the iPhone of a journalist (CODE MOJRN1), which contained
very similar records. This device was exploited repeatedly on numerous times between February and April
2021 and across iOS releases. The most recent attempt showed the following indicators of compromise:
Date Event
(UTC)
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 19 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
10:36:00 https://d38j2563clgblt.cloudfront[.]net/dMx1hpK//stadium/megalodon?
m=iPhone8,1&v=18D52&u=[REDACTED]
As is evident, the same iMessage account observed in the previous separate case was involved in this
exploitation and compromise months later. The same CloudFront website was contacted by
com.apple.coretelephony and the additional processes executed, downloaded and launched additional
malicious components.
The initial check-in indicates the compromised iPhone 6s was running iOS 14.4 (build number 18D52) at the
time of the attack. Although versions 14.4.1 and 14.4.2 were already available then, they only addressed
vulnerabilities in WebKit, so it is safe to assume the vulnerability leveraged in these iMessage attacks was
exploited as a 0-day.
It is worth noting that among the many other malicious process names observed executed on this phone we
see msgacntd, which we also found running on Omar Radi’s phone in 2019, as documented earlier.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 20 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
In addition, it should be noted that the URLs we have observed used in attacks throughout the last three
years show a consistent set of patterns. This supports Amnesty International’s analysis that all three URLs
are in fact components of Pegasus customer attack infrastructure. The Apple Music attack from 2020 shows
the same 4th level domain structure and non-standard high port number as the 2019 network injection
attack. Both the free247downloads[.]com and opposedarrangements[.]net domains matched our Pegasus
V4 domain fingerprint.
Additionally, the Apple Music attack URL and the 2021 Megaladon attack URLs share a distinctive pattern.
Both URL paths start with a random identifier tied to the attack attempt followed by the word "stadium".
Attack URL
Network https://2far1v4lv8.get1tn0w.free247downloads[.]com:31052/meunsnyse
injection
(2019)
Apple https://4n3d9ca2st.php78mp9v.opposedarrangement[.]net:37891/w58Xp5Z/stadium/pop2.html?
Music key=501_4&n=7
attack
(2020)
iMessage https://d38j2563clgblt.cloudfront[.]net/dMx1hpK//stadium/wizard/ttjuk
zero-click
(2021)
Amnesty International reported this information to Amazon, who informed us they “acted quickly to shut
down the implicated infrastructure and accounts”.[2]
The iPhone 11 of a French human rights activist (CODE FRHRD1) also showed an iMessage look-up for the
account linakeller2203[@]gmail.com on June 11th 2021 and malicious processes afterwards. The phone
was running iOS 14.4.2 and was upgraded to 14.6 the following day.
Most recently, Amnesty International has observed evidence of compromise of the iPhone XR of an Indian
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 21 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
journalist (CODE INJRN1) running iOS 14.6 (latest available at the time of writing) as recently as 16th June
2021. Lastly, Amnesty International has confirmed an active infection of the iPhone X of an activist (CODE
RWHRD1) on June 24th 2021, also running iOS 14.6. While we have not been able to extract records from
Cache.db databases due to the inability to jailbreak these two devices, additional diagnostic data extracted
from these iPhones show numerous iMessage push notifications immediately preceding the execution of
Pegasus processes.
The device of a Rwandan activist (CODE RWHRD1) shows evidence of multiple successful zero-click
infections in May and June 2021. We can see one example of this on 17 May 2021. An unfamiliar iMessage
account is recorded and in the following minutes at least 20 iMessage attachment chunks are created on
disk.
... ...
Amnesty International found no evidence that the 17 May attack was successful. Later attacks on the 18
June and 23 June were successful and led to Pegasus payloads being deployed on the device.
Initially, many iMessage (com.apple.madrid) push notifications were received, and attachment chunks were
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 22 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
written to disk. The following table show a sample of the 48 attachment files found on the filesystem.
... ...
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 23 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
A process crash occurred at 20:48:56 which resulted in the ReportCrash process starting followed by
restarts of multiple processes related to iMessage processing:
A second set of crashes and restarts happened five minutes later. The ReportCrash process was started
along with processes related to parsing of iMessage content and iMessage custom avatars.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 24 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Shortly afterwards at 20:54 the exploitation succeeded, and we observe that a network request was made
by the com.apple.coretelephony process causing the Cache.db file to be modified. This matches the
behaviour Amnesty International hasseen in the other Pegasus zero-click attacks in 2021.
Date Event
(UTC)
2021-06-23 File:
20:54:35 /private/var/wireless/Library/Caches/com.apple.coretelephony/fsCachedData/3C73213F-
73E5-4429-AAD9-0D7AD9AE83D1
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 25 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Lastly, the analysis of a fully patched iPhone 12 running iOS 14.6 of an Indian journalist (CODE INJRN2)
also revealed signs of successful compromise. These most recent discoveries indicate NSO Group’s
customers are currently able to remotely compromise all recent iPhone models and versions of iOS.
We have reported this information to Apple, who informed us they are investigating the matter.[3]
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 26 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Several iPhones Amnesty International has inspected indicate that Pegasus has recently started to
manipulate system databases and records on infected devices to hide its traces and and impede the
research efforts of Amnesty International and other investigators.
Interestingly, this manipulation becomes evident when verifying the consistency of leftover records in the
DataUsage.sqlite and netusage.sqlite SQLite databases. Pegasus has deleted the names of malicious
processes from the ZPROCESS table in DataUsage database but not the corresponding entries from the
ZLIVEUSAGE table. The ZPROCESS table stores rows containing a process ID and the process name. The
ZLIVEUSAGE table contains a row for each running process including data transfer volume and the process
ID corresponding to the ZPROCESS entry. These inconsistencies can be useful in identifying times when
infections may have occurred. Additional Pegasus indicators of compromise were observed on all devices
where this anomaly was observed. No similar inconsistencies were found on any clean iPhones analysed
by Amnesty International.
Although most recent records are now being deleted from these databases, traces of recent process
executions can also be recovered also from additional diagnostic logs from the
system.
For example, the following records were recovered from the phone of an HRD (CODE RWHRD1):
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 27 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 28 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
System log files also reveal the location of Pegasus binaries on disk. These file names match those we have
consistently observed in the process execution logs presented earlier. The binaries are located inside the
folder /private/var/db/com.apple.xpc.roleaccountd.staging/ which is consistent with the findings by
Citizen Lab in a December 2020 report.
/private/var/db/com.apple.xpc.roleaccountd.staging/launchrexd/EACA3532-7D15-32EE-A88A-
96989F9F558A
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 29 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
ABSCarryLog ASPCarryLog
aggregatenotd aggregated
ckkeyrollfd ckkeyrolld
com.apple.Mappit.SnapshotService com.apple.MapKit.SnapshotService
com.apple.rapports.events com.apple.rapport.events
CommsCenterRootHelper CommCenterRootHelper
Diagnostic-2543 Diagnostic-2532
eventsfssd fseventsd
fmld fmfd
JarvisPluginMgr JarvisPlugin
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 30 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
launchafd launchd
MobileSMSd MobileSMS
nehelprd nehelper
pcsd com.apple.pcs
PDPDialogs PPPDialogs
ReminderIntentsUIExtension RemindersIntentsUIExtension
rlaccountd xpcroleaccountd
roleaccountd xpcroleaccountd
The list of process names we associate with Pegasus infections is available among all other indicators of
compromise on our GitHub page.
In August 2018, Amnesty International published a report “Amnesty International Among Targets of NSO-
powered Campaign“ which described the targeting of an Amnesty International staff member and a Saudi
human rights defender. In this report, Amnesty International presented an excerpt of more than 600 domain
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 31 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
names tied to NSO Group’s attack infrastructure. Amnesty International published the full list of domains in
October 2018. In this report, we refer to these domains as Pegasus network Version 3 (V3).
The Version 3 infrastructure used a network of VPS’s and dedicated servers. Each Pegasus Installation
server or Command-and-Control (C&C) server hosted a web server on port 443 with a unique domain and
TLS certificate. These edge servers would then proxy connections through a chain of servers, referred to by
NSO Group as the “Pegasus Anonymizing Transmission Network” (PATN).
It was possible to create a pair of fingerprints for the distinctive set of TLS cipher suites supported by these
servers. The fingerprint technique is conceptually similar to the JA3S fingerprint technique published by
Salesforce in 2019. With that fingerprint, Amnesty International’s Security Lab performed Internet-wide
scans to identify Pegasus Installation/infection and C&C servers active in the summer of 2018.
NSO Group made critical operational security mistakes when setting up their Version 3 infrastructure. Two
domains of the previous Version 2 network were reused in their Version 3 network. These two Version 2
domains, pine-sales[.]com and ecommerce-ads[.]org had previously been identified by Citizen Lab.
These mistakes allowed Amnesty International to link the attempted attack on our colleague to NSO Group’s
Pegasus product. These links were independently confirmed by Citizen Lab in a 2018 report.
NSO Group rapidly shutdown many of their Version 3 servers shortly after the Amnesty International and
Citizen Lab’s publications on 1 August 2018.
Amnesty performed a forensic analysis of his iPhone as described previously. This forensic analysis showed
redirects to a new domain name free247downloads.com. These links looked suspiciously similar to
infection links previously used by NSO.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 32 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Amnesty International confirmed this domain was tied to NSO Group by observing distinctive Pegasus
artefacts created on the device shortly after the infection URL was opened. With this new domain in hand,
we were able to begin mapping the Pegasus Version 4 (V4) infrastructure.
NSO Group re-factored their infrastructure to introduce additional layers, which complicated discovery.
Nevertheless, we could now observe at least 4 servers used in each infection chain.
1. A validation server: The first step was a website which we have seen hosted on shared hosting
providers. Frequently this website was running a random and sometimes obscure PHP application or
CMS. Amnesty International believes this was an effort to make the domains look less distinguishable.
The validation server would check the incoming request. If a request had a valid and still active URL
the validation server would redirect the victim to the newly generated exploit server domain. If the
URL or device was not valid it would redirect to a legitimate decoy website. Any passer-by or Internet
crawler would only see the decoy PHP CMS.
2. Infection DNS server: NSO now appears to be using a unique subdomain for every exploit attempt.
Each subdomain was generated and only active for a short period of time. This prevented researchers
from finding the location of the exploit server based on historic device logs.
To dynamically resolve these subdomains NSO Group ran a custom DNS server under a subdomain
for every infection domain. It also obtained a wildcard TLS certificate which would be valid for each
generated subdomain such as *.info8fvhgl3.urlpush[.]net or *.get1tn0w.free247downloads[.]com.
3. Pegasus Installation Server: To serve the actual infection payload NSO Group needs to run a web
server somewhere on the Internet. Again, NSO Group took steps to avoid internet scanning by
running the web server on a random high port number.
We assume that each infection webserver is part of the new generation “Pegasus Anonymizing
Transmission Network”. Connections to the infection server are likely proxied back to the
customer’s Pegasus infrastructure.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 33 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
4. Command and Control server: In previous generations of the PATN, NSO Group used separate
domains for the initial infection and later communication with the spyware. The iPwn report from
Citizen Lab provided evidence that Pegasus is again using separate domains for command and
control. To avoid network-based discovery, the Pegasus spyware made direct connections the
Pegasus C&C servers without first performing a DNS lookup or sending the domain name in the TLS
SNI field.
Based on our knowledge of the domains used in Morocco we developed a fingerprint which identified 201
Pegasus Installation domains which had infrastructure active at the time of the initial scan. This set of 201
domains included both urlpush[.]net and free247downloads[.]com.
Amnesty International identified an additional 500 domains with subsequent network scanning and by
clustering patterns of domain registration, TLS certificate issuance and domain composition which matched
the initial set of 201 domains.
Amnesty International believes that this represents a significant portion of the Version 4 NSO Group attack
infrastructure. We are publishing these 700 domains today. We recommend the civil society and media
organisations check their network telemetry and/or DNS logs for traces of these indicators of compromise.
A significant number of new domains were registered in November 2019 shortly after WhatsApp notified
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 34 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
their users about alleged targeting with Pegasus. This may reflect NSO rotating domains due to perceived
risk of discovery, or because of disruption to their existing hosting infrastructure.
The V4 DNS server infrastructure began going offline in early 2021 following the Citizen Lab iPwn report
which disclosed multiple Pegasus V4 domains.
Amnesty International suspects the shutting down of the V4 infrastructure coincided with NSO Group’s shift
to using cloud services such as Amazon CloudFront to deliver the earlier stages of their attacks. The use of
cloud services protects NSO Group from some Internet scanning techniques.
Germany 212
United Kingdom 79
Switzerland 36
France 35
United States 28
Finland 9
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 35 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Netherlands 5
Canada 4
Ukraine 4
Singapore 3
India 3
Austria 3
Japan 1
Bulgaria 1
Lithuania 1
Bahrain 1
The following table shows the number of DNS servers hosted with each hosting provider. Most identified
servers are assigned to the US-owned hosting companies Digital Ocean, Linode and Amazon Web Services
(AWS).
Many hosting providers offer server hosting in multiple physical locations. Based on these two tables it
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 36 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
appears that NSO Group is primarily using the European datacentres run by American hosting companies to
run much of the attack infrastructure for its customers.
DIGITALOCEAN-ASN 142
AMAZON-02 73
Akenes SA 60
UpCloud Ltd 9
Choopa 7
OVH SAS 6
ASN-QUADRANET-GLOBAL 1
combahton GmbH 1
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 37 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
UAB Rakrejus 1
HZ Hosting Ltd 1
PE Brezhnev Daniil 1
Neterra Ltd. 1
Amnesty International’s research identified 28 DNS servers linked to the infection infrastructure which were
hosted in the US.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 38 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 39 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 40 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
using a unique and randomly generated subdomain for each attempt to deliver the Pegasus spyware.
Amnesty International searched passive DNS datasets for each of the Pegasus Version 4 domains we have
identified. Passive DNS databases record historic DNS resolution for a domain and often included
subdomains and the corresponding historic IP address.
A subdomain will only be recorded in passive DNS records if the subdomain was successfully resolved and
the resolution transited a network which was running a passive DNS probe.
This probe data is collected based on agreements between network operators and passive DNS data
providers. Many networks will not be covered by such data collection agreements. For example, no passive
DNS resolutions were recorded for either Pegasus infection domains used in Morocco.
As such, these resolutions represent only a small subset of overall NSO Group Pegasus activity.
mongo77usr.urlredirect.net 417
str1089.mailappzone.com 410
apiweb248.theappanalytics.com 391
dist564.htmlstats.net 245
css235gr.apigraphs.net 147
nodesj44s.unusualneighbor.com 38
jsonapi2.linksnew.info 30
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 41 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
img9fo658tlsuh.securisurf.com 19
pc25f01dw.loading-url.net 12
dbm4kl5d3faqlk6.healthyguess.com 8
img359axw1z.reload-url.net 5
css2307.cssgraphics.net 5
info2638dg43.newip-info.com 3
img87xp8m.catbrushcable.com 2
img108jkn42.av-scanner.com 2
mongom5sxk8fr6.extractsight.com 2
img776cg3.webprotector.co 1
tv54d2ml1.topadblocker.net 1
drp2j4sdi.safecrusade.com 1
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 42 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
api1r3f4.redirectweburl.com 1
pc41g20bm.redirectconnection.net 1
jsj8sd9nf.randomlane.net 1
php78mp9v.opposedarrangement.net 1
The domain urlredirect.net had the highest number of observed unique subdomains. In total 417
resolutions were recorded between 4 October 2018, and 17 September 2019. The second highest was
mailappzone.com which has 410 resolutions in a 3-month period between 23 July 2020, and 15 October
2020.
Amnesty International believes that each of these subdomain resolutions, 1748 in total, represent an attempt
to compromise a device with Pegasus. These 23 domains represent less than 7% of the 379 Pegasus
Installation Server domains we have identified. Based on this small subset, Pegasus may have been used in
thousands of attacks over the past three years.
In Amnesty International’s experience there are significantly more forensic traces accessible to investigators
on Apple iOS devices than on stock Android devices, therefore our methodology is focused on the former.
As a result, most recent cases of confirmed Pegasus infections have involved iPhones.
This and all previous investigations demonstrate how attacks against mobile devices are a significant threat
to civil society globally. The difficulty to not only prevent, but posthumously detect attacks is the result of an
unsustainable asymmetry between the capabilities readily available to attackers and the inadequate
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 43 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
While iOS devices provide at least some useful diagnostics, historical records are scarce and easily
tampered with. Other devices provide little to no help conducting consensual forensics analysis. Although
much can be done to improve the security posture of mobile devices and mitigate the risks of attacks such
as those documented in this report, even more could be achieved by improving the ability for device owners
and technical experts to perform regular checks of the system’s integrity.
Therefore, Amnesty International strongly encourages device vendors to explore options to make their
devices more auditable, without of course sacrificing any security and privacy protections already in place.
Platform developers and phone manufacturers should regularly engage in conversations with civil society to
better understand the challenges faced by HRDs, who are often under-represented in cybersecurity
debates.
Therefore, through this report, we are not only sharing the methodology we have built over years of
research but also the tools we created to facilitate this work, as well as the Pegasus indicators of
compromise we have collected.
All indicators of compromise are available on our GitHub , including domain names of Pegasus
infrastructure, email addresses recovered from iMessage account lookups involved in the attacks, and all
process names Amnesty International has identified as associated with Pegasus.
Amnesty International is also releasing a tool we have created, called Mobile Verification Toolkit (MVT). MVT
is a modular tool that simplifies the process of acquiring and analysing data from Android devices, and the
analysis of records from iOS backups and filesystem dumps, specifically to identify potential traces of
compromise.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 44 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
MVT can be provided with indicators of compromise in STIX2 format and will identify any matching
indicators found on the device. In conjunction with Pegasus indicators, MVT can help identify if an iPhone
have been compromised.
Acknowledgements
The Amnesty International Security Lab wishes to acknowledge all those who have supported this research.
Tools released by the iOS security research community including libimobiledevice and checkra1n were used
extensively as part of this research. We would also like to thank Censys and RiskIQ for providing access to
their internet scan and passive DNS data.
Amnesty International wishes to acknowledge Citizen Lab for its important and extensive research on NSO
Group and other actors contributing to the unlawful surveillance of civil society. Amnesty International thanks
Citizen Lab for its peer-review of this research report.
Finally Amnesty International wishes to thank the numerous journalists and human rights defenders who
bravely collaborated to make this research possible.
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 45 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
• FRHRL2
• FRJRN2
• FRPOI1
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 46 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
• FRPOI1
• FRJRN2
• FRPOI4
k.williams.enny74[@]gmail.com • HUPOI1
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 47 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
• HUPOI3
• INPOI2
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 48 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Date Event
(UTC)
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 49 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 50 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
2018- Process: bh
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 51 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
04-28
22:25:12
2018- Process: bh
05-22
17:36:51
2019- Process: bh
03-27
21:45:10
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 52 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
Date Event
(UTC)
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 53 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
2019- Process: bh
02-11
13:45:56
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 54 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
09-13 hxxps://2far1v4lv8.get1tn0w.free247downloads[.]com:31052/meunsnyse#068099561614626278519
15:01:56
2019- Process: bh
09-13
15:02:11
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 55 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
[1] The technical evidence provided in the report includes the forensic research carried out as part of the
Pegasus Project as well as additional Amnesty International Security Lab research carried out since the
establishment of the Security Lab in 2018.
Further reading
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 56 de 57
Forensic Methodology Report: How to catch NSO Group’s Pegasus | Amnesty International 10-09-21 15:12
New investigation shows global human rights harm of NSO Group’s spyware
Moroccan Journalist Targeted With Network Injection Attacks Using NSO Group’s Tools
Topics
https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/ Página 57 de 57