# OSX/Keydnap spreads via signed Transmission application
**[welivesecurity.com/2016/08/30/osxkeydnap-spreads-via-signed-transmission-application/](https://www.welivesecurity.com/2016/08/30/osxkeydnap-spreads-via-signed-transmission-application/)**
August 30, 2016
During the last hours, OSX/Keydnap was distributed on a trusted website, which turned out to be “something
else”. It spread via a recompiled version of the otherwise legitimate open source BitTorrent client application
Transmission and distributed on their official website.
[ESET Research](https://www.welivesecurity.com/author/esetresearch/)
30 Aug 2016 - 02:28PM
During the last hours, OSX/Keydnap was distributed on a trusted website, which turned out to be “something
else”. It spread via a recompiled version of the otherwise legitimate open source BitTorrent client application
Transmission and distributed on their official website.
[Last month ESET researchers wrote an article about a new OS X malware called OSX/Keydnap, built to steal](https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/)
the content of OS X’s keychain and maintain a permanent backdoor. At that time of the analysis, it was
unclear how victims were exposed to OSX/Keydnap. To quote the original article: “It could be through
attachments in spam messages, downloads from untrusted websites or something else.”
-----
During the last hours, OSX/Keydnap was distributed on a trusted website, which turned out to be something
else”. It spread via a recompiled version of the otherwise legitimate open source BitTorrent client application
Transmission and distributed on their official website.
## Instant response from the Transmission team
Literally minutes after being notified by ESET, the Transmission team removed the malicious file from their
web server and launched an investigation to identify how this happened. At the time of writing, it was
impossible to tell exactly when the malicious file was made available for download. According to the
signature, the application bundle was signed on August 28th, 2016, but it seems to have been distributed only
the next day. Thus, we advise anyone who downloaded Transmission v2.92 between August 28th and August
29th, 2016, inclusively, to verify if their system is compromised by testing the presence of any of the following
file or directory:
/Applications/Transmission.app/Contents/Resources/License.rtf
/Volumes/Transmission/Transmission.app/Contents/Resources/License.rtf
$HOME/Library/Application Support/com.apple.iCloud.sync.daemon/icloudsyncd
$HOME/Library/Application Support/com.apple.iCloud.sync.daemon/process.id
$HOME/Library/LaunchAgents/com.apple.iCloud.sync.daemon.plist
/Library/Application Support/com.apple.iCloud.sync.daemon/
$HOME/Library/LaunchAgents/com.geticloud.icloud.photo.plist
If any of them exists, it means the malicious Transmission application was executed and that Keydnap is most
likely running. Also note that the malicious disk image was named Transmission2.92.dmg while the legitimate
one is Transmission-2.92.dmg (notice the hyphen).
## Similarity with KeRanger
If this modus operandi sounds familiar, you are totally correct. In March 2016, Palo Alto Networks published a
[blog post warning about the first OS X ransomware observed. In fact, Keydnap used the same technique to](http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-ransomware-keranger-infected-transmission-bittorrent-client-installer/)
spread itself.
In both cases, a malicious block of code is added to the main function of the Transmission application. The
code responsible for dropping and running the malicious payload is astonishingly the same.
-----
Transmission’s main function dropping OSX/KeRanger
Transmission’s main function dropping OSX/Keydnap
Just like in the KeRanger case, a legitimate code signing key was used to sign the malicious Transmission
application bundle. It’s different from the legitimate Transmission certificate, but is still signed by Apple and
bypasses Gatekeeper protection.
-----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Malicious Transmission.app
$ codesign -dvvv /Volumes/Transmission/Transmission.app
Executable=/Volumes/Transmission/Transmission.app/Contents/MacOS/Transmission
Identifier=org.m0k.transmission
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=6304 flags=0x0(none) hashes=308+3 location=embedded
Hash type=sha1 size=20
CandidateCDHash sha1=37ffe70260919ee70e9f2a601d5ad00e2dd5a011
Hash choices=sha1
CDHash=37ffe70260919ee70e9f2a601d5ad00e2dd5a011
Signature size=4255
Authority=Developer ID Application: Shaderkin Igor (836QJ8VMCQ)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Aug 28, 2016, 12:09:55 PM
Info.plist entries=38
TeamIdentifier=836QJ8VMCQ
Sealed Resources version=2 rules=12 files=331
Internal requirements count=1 size=212
-----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Clean Transmission.app
$ codesign -dvvv
/Volumes/Transmission/Transmission.app
Executable=/Volumes/Transmission/Transmission.app/Contents/MacOS/Transmission
Identifier=org.m0k.transmission
Format=app bundle with Mach-O
thin (x86_64)
CodeDirectory v=20200 size=6304
flags=0x0(none) hashes=308+3 location=embedded
Hash type=sha1 size=20
CandidateCDHash
sha1=a68d09161742573b09a17b8aef05f918a1cebcac
Hash choices=sha1
CDHash=a68d09161742573b09a17b8aef05f918a1cebcac
Signature size=8561
Authority=Developer ID
Application: Digital Ignition LLC
Authority=Developer ID
Certification Authority
Authority=Apple Root CA
Timestamp=Mar 6, 2016, 3:01:41
PM
Info.plist entries=38
TeamIdentifier=
5DPYRBHEAR
Sealed Resources version=2
rules=12 files=328
Internal requirements count=1
size=180
ESET has notified Apple about compromised code signing key.
Beside the distribution method, Keydnap and KeRanger features some similarity in its code such as the C&C
URL resource path and parameter.
KeRanger: /osx/ping?user_id=%s&uuid=%s&model=%s
Keydnap: /api/osx?bot_id=%s&action=ping&data=%s (parameters as POST data, encrypted with RC4)
## Keydnap now at version 1.5
-----
While reporting to the C&C server, Keydnap included an internal version. The one we observed in the new
binary is 1.5.
[It is still packed with the modified UPX described in our first article about Keydnap. The patch we published](https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/)
on Github to unpack the executable file still works with the new variant.
A significant change in the new version is the presence of a standalone Tor client. This enables Keydnap to
reach its onion-routed C&C server without the need of a Tor2Web relay such as onion.to.
Inside Keydnap, curl is set to use the local Tor client as a proxy
There is only one additional command compared to the previous version we analyzed. This new command,
with id 10, allows the C&C server to be set to a different URL and saves it on the disk.
The RC4 key used to encrypt HTTP POST data and decrypt the response changed to “u-4&LpZ!6Kgu^=$a“.
The hardcoded C&C URL is now hxxp://t4f2cocitdpqa7tv.onion/api/osx
## How to remove OSX/Keydnap
To remove Keydnap v1.5, start by quitting Transmission. Then, in Activity Monitor, kill processes with any of
the following names:
– icloudproc
– License.rtf
– icloudsyncd
– /usr/libexec/icloudsyncd -launchd netlogon.bundle
Remove the following files and directories:
-----
/Library/Application Support/com.apple.iCloud.sync.daemon/
– /Library/LaunchAgents/com.apple.iCloud.sync.daemon.plist
– /Users/$USER/Library/Application Support/com.apple.iCloud.sync.daemon/
– /Users/$USER/Library/Application Support/com.geticloud/
– /Users/$USER/Library/LaunchAgents/com.apple.iCloud.sync.daemon.plist
– /Users/$USER/Library/LaunchAgents/com.geticloud.icloud.photo.plist
Remove Transmission from your system and redownload it from a trusted source. The Transmission website
and binaries are now hosted on Github. You can verify the hash and the signature of the legitimate binary
package with:
– “shasum -a 256” and compare with the one on the site and
– “codesign -dvvv” and verify if is signed by “Digital Ignition LLC” with team identifier 5DPYRBHEAR.
## IOCs
**Transmission bundle**
**SHA-1** **Filename** **ESET Detection name**
1ce125d76f77485636ecea330acb038701ccc4ce Transmission2.92.dmg OSX/Keydnap.A
**OSX/Keydnap dropper**
**SHA-1** **Filename** **ESET Detection name**
e0ef6a5216748737f5a3c8d08bbdf204d039559e Transmission OSX/TrojanDropper.Agent.A
**OSX/Keydnap backdoor**
**SHA-1** **ESET**
**Detection**
**name**
**C&C** **Version**
8ca03122ee73d3e522221832872b9ed0c9869ac4 OSX/Keydnap.A hxxp://t4f2cocitdpqa7tv.onion 1.5
30 Aug 2016 - 02:28PM
### Sign up to receive an email update whenever a new article is published in our Ukraine Crisis – Digital Security Resource Center
Newsletter
Discussion
-----