- Forget Dyson: Roborock's wet-dry vacuum left my floors spotless (and it's $180 for Black Friday)
- How Trump’s appointment of Brendan Carr as FCC chairman will affect enterprises
- I tested the cheapest Surface Pro 11 model: 3 main takeaways as a Windows expert
- El Capitan bumps Frontier to claim world’s fastest supercomputer title
- From cloud spend to cloud value: The power of Cloud Unit Economics
Inside TeamTNT’s Impressive Arsenal
Authored By: Tara Gould
Key Findings
Anomali Threat Research has discovered an open server to a directory listing that we attribute with high confidence to the German-speaking threat group, TeamTNT.
The server contains source code, scripts, binaries, and cryptominers targeting Cloud environments.
Other server contents include Amazon Web Services (AWS) Credentials stolen from TeamTNT stealers are also hosted on the server.
This inside view of TeamTNT infrastructure and tools in use can help security operations teams to improve detection capabilities for related attacks, whether coming directly from TeamTNT or other cybercrime groups leveraging their tools.
Overview
Anomali Threat Research has identified a TeamTNT server open to directory listing. The server was used to serve scripts and binaries that TeamTNT use in their attacks, and also for the IRC communications for their bot. The directory appears to have been in use since at least August 2021 and was in use as of October 5, 2021. The contents of the directory contain metadata, scripts, source code, and stolen credentials.
TeamTNT is a German-speaking, cryptojacking threat group that targets cloud environments. The group typically uses cryptojacking malware and have been active since at least April 2020.[1] TeamTNT activity throughout 2021 has targeted AWS, Docker, GCP, Linux, Kubernetes, and Windows, which corresponds to usual TeamTNT activity.[2]
Technical Analysis
Scripts (/cmd/)
Figure 1 – Overview of /cmd/
Contained on the server are approximately 50 scripts, most of which are already documented, located in the /cmd/ directory. The objective of the scripts vary and include the following:
- AWS Credential Stealer
- Diamorphine Rootkit
- IP Scanners
- Mountsploit
- Scripts to set up utils
- Scripts to setup miners
- Scripts to remove previous miners
Figure 2 – Snippet of AWS Credential Stealer Script
Some notable scripts, for example, is the script that steals AWS EC2 credentials, shown above in Figure 2. The AWS access key, secret key, and token are piped into a text file that is uploaded to the Command and Control (C2) server.
Figure 3 – Chimaera_Kubernetes_root_PayLoad_2.sh
Another interesting script is shown in Figure 3 above, which checks the architecture of the system, and retrieves the XMRig miner version for that architecture from another open TeamTNT server, 85.214.149[.]236.
Binaries (/bin/)
Figure 4 – Overview of /bin
Within the /bin/ folder, shown in Figure 4 above, there is a collection of malicious binaries and utilities that TeamTNT use in their operations.
Among the files are well-known samples that are attributed to TeamTNT, including the Tsunami backdoor and a XMRig cryptominer. Some of the tools have the source code located on the server, such as TeamTNT Bot. The folder /a.t.b contains the source code for the TeamTNT bot, shown in Figures 5 and 6 below. In addition, the same binaries have been found on a TeamTNT Docker, noted in Appendix A.
Figure 5 – Screenshot of TeamTNTbot.c
Figure 6 – Bot Commands
Lasty, the /bin/ folder also contains utilities including masscan, ngrok, peirates, pnscan, wget, zgrab. These utilities will be used to aid in carrying out the malicious activity.
Metadata (/in/)
The folder /in/, shown below in Figure 7, contains interesting data which includes two subfolders, AWS/ and results/. Inside of this folder appears to contain lists of S3 buckets and stolen AWS credentials shown in Figure 8 and Figure 9 below, coming from the scripts mentioned above. A file named “ngrok.authkeys.txt”, shown in Figure 10 below, displays an error of a failure to bind to a TLS tunnel with an account name. Although it is unclear if these are stolen credentials, TeamTNT have previously been reported to scan targets to steal ngrok credentials.[3] Two text files, docker_ips.txt and weave_uniq.txt, contain lists of IPs, with the Docker file totaling 13,282 IP addresses. Another file “HoneyPots.txt” contains data referring to 484 Docker containers.
Figure 7 – Directory of /in/
Figure 8 – AWS Stolen Credentials
Figure 9 – Example of Stolen Credentials File
Figure 10 – ngrok.authkeys.txt
Conclusion
TeamTNT is a highly-active group that continues to evolve and target cloud infrastructure. The discovery of their infrastructure gives insight into their toolsets. It is unknown at this time whether TeamTNT have purposefully left this server open to directory listing, and why. However this is not the first time TeamTNT server has been open, as reported by Unit42 in June 2021.[4] Furthermore, the group appears unbothered with having their toolset publicized, and will engage with security researchers on Twitter, even giving recommendations of how the tools should be utilized.[5]
Endnotes
[1] “Tracking The Activities of TeamTNT,” Trend Micro, accessed October 5, 2021, published July 20, 2021, https://documents.trendmicro.com/assets/white_papers/wp-tracking-the-activities-of-teamTNT.pdf.
[2] “TeamTNT With New Campaign Aka “Chimaera”,” accessed October 5, 2021, published September 8, 2021, https://cybersecurity.att.com/blogs/labs-research/teamtnt-with-new-campaign-aka-chimaera.
[3] ”TeamTNT Actively Enumerating Cloud Environments to Infiltrate Organizations,” Palo Alto, accessed October 6, 2021, published June 4, 2021, https://unit42.paloaltonetworks.com/teamtnt-operations-cloud-environments/.
[4] Ibid.
[5] “HildeGard@TeamTNT,” Twitter, accessed October 6, 2021, published September 9, 2021, https://twitter.com/HildeTNT/status/1436026656695672839.
[6] “Malicious Docker Images Still Used For Malicious Purposes,” CounterCraft, accessed October 5, 2021, published September 29, 2021, https://www.countercraftsec.com/blog/post/using-malicious-docker-images-more-teamtnt-docker-abuse/.
IOCs
Hashes
91917fec033047a97a64be297454e6d7 | ./init/r.sh |
644749dda45caedda59f32f7991f0ffd | ./cmd/grab/aws2.sh |
7756f215ec37b1f545d1d8648a6d78d0 | ./cmd/grab/aws-cloud.sh |
273ef84fbe3d495bff371e64cbf74b36 | ./cmd/grab/aws.sh |
b20ab8eb3c3db7d20cecf44024762bd2 | ./cmd/Setup.User.curl.sh |
1f6353c16d11e0e841129d55dfd9ac74 | ./cmd/Setup_WeaveScope.sh |
fb3346a3cb6add01efade50b53dd211f | ./cmd/Setup_RainBow_Miner.sh |
ee9c391c98dee5331ac467854f0ae262 | ./cmd/Kubernetes_root_PayLoad_2.2.sh |
bcf76b649b5c6016b4071d197b1ce111 | ./cmd/setup_moneroocean_miner.sh |
7cced044d94a7ac6415598e663b46b26 | ./cmd/Setup_ETH_MinerService.sh |
e85c28315dcdae18ab273775c29cefa7 | ./cmd/gpu/ati.sh |
26870afb9524e1ab2eb396d15a222676 | ./cmd/gpu/nvidia.sh |
27fd3a594fd66f4c113ab1f70a95f82e | ./cmd/gpu/c3pool_gpu.sh |
a8415b189839b9585193e2b2ec63d6f3 | ./cmd/DockerAPI-SSH-BreakOut.sh |
45fc2131a4e60bb7545a2b1b235d66ef | ./cmd/Kubernetes_root_PayLoad_1.sh |
f7b90d0f91ed25806d49ca281a7db10c | ./cmd/init.sh |
940c1c591677efbe91d165751296dddd | ./cmd/ld.so.preload.sh |
4f476e9ea8aed60e29bf06ffe758f841 | ./cmd/Setup_ETH_Miner.sh |
9ca7f7e428ff5e3dbe943efe8ed0df31 | ./cmd/GRABBER_google-cloud.sh |
e2fcb71452e7e4057d144bd1c525432a | ./cmd/CLEAN.TeamTNT.sh |
c491a19742c352b2c6221037dfac7a4a | ./cmd/GRABBER_aws-cloud.sh |
3bfed4e4d3b828c427629f764d65bd57 | ./cmd/setup/all.glib.sh |
66d63fc99fb80c7a1fb67f712582725b | ./cmd/setup/docker.ethminer.sh |
26870afb9524e1ab2eb396d15a222676 | ./cmd/setup/nvidia.sh |
846b5ff8a0f64b9af3d22157cb437a5c | ./cmd/setup/all.golang.sh |
701bc6594b2e06952451d266ced2032a | ./cmd/setup/ngrok.sh |
03c43133db24a7b3f1e8a4d5c268668d | ./cmd/setup/tmate.sh |
39ea1f63f9ae414c56ab3dc66a7569cd | ./cmd/setup/apt.zgrab.sh |
64bcf5dc015e53c868950204e2cae3f1 | ./cmd/setup/all.tsh.sh |
779a0bd628b67834116309bf3b3278ed | ./cmd/setup/docker.sh |
de036084f92920a921bc2a43b82a8149 | ./cmd/Kubernetes_temp_PayLoad_1.sh |
4090469125917070c22203b7d973f52e | ./cmd/Kubernetes.LAN.IP.Range.sh |
406caa94137d5c1e18b9ee7d5c72d72d | ./cmd/clean/jupyter.sh |
b62fbf2f2a7859e69deeb75fa1153b41 | ./cmd/clean/TeamTNT.sh |
0d173ab9281f013221a94b4289443a16 | ./cmd/Kubernetes_temp_PayLoad_2.sh |
d88c87f1afb6de12d885fc0fbc33b605 | ./cmd/Kubernetes_scan_LAN_IPs.sh |
a0c7366cd907197702aed089463af482 | ./cmd/install-NVIDIA-driver.sh |
287794e108f3a4b07654ce83f6f41b38 | ./cmd/Kubernetes_root_PayLoad_2.sh |
15d4150a3190e0630a6182a882be5cad | ./cmd/fix/nameserver.sh |
fd65800ea90386abbdd2b099cb4cdb45 | ./cmd/fix/systemfix.sh |
419c721fd5eb8f740cb1f971af5dc745 | ./cmd/init_main_root.sh |
d2c6d0fed174f4cbb09d1596e46258a6 | ./cmd/MOUNTSPLOIT_V2.sh.txt |
c491a19742c352b2c6221037dfac7a4a | ./cmd/GRABBER_aws-cloud2.sh |
51a4ba442533bd0d69e0da7dd46e3d9c | ./cmd/clean.sh |
fefbc41c9514a9a4f4c4e88ead3ebd89 | ./cmd/ssh_user.sh |
3f9466ee106e947a4cea13d57ce96ed1 | ./cmd/exp/ssh.rsa.sh |
fffe69fabf5d014579686d8bc790e70f | ./cmd/exp/ssh.axx.sh |
80f3f20d5923c3a35022f065da9ea924 | ./cmd/Setup_tmate.sh |
e275c26583f08e6fdbb6045c7b2db647 | ./cmd/CLEAN.other.miners.sh |
68df6dc236a2f8d7231ca362b89148fe | ./cmd/ssh_user2.sh |
7d91732b7c8feced0ea698c83769e51d | ./bin/ngrok/aarch64 |
0429e95cf9e7f631c944f23f82b89b54 | ./bin/ngrok/x86_64 |
5cdd0e39fc9be0a13134f26aba70ede1 | ./bin/golang/go1.12.7.linux-386.tar.gz |
23bad8d12c43fc3e3a0568dbc8f19c85 | ./bin/ethminer/cuda-9-x86_64.tar.gz |
ae929d06265be0310c3f2eb6c44314d7 | ./bin/a.t.b/TeamTNTbot.c |
11d85a39722734273adb7a0b21ac29a6 | ./bin/a.t.b/aarch64 |
5e4424e2a11e53e36eb10eff417fd19a | ./bin/a.t.b/jupyter |
cffb2c0fbb0bb4a98024a682a982199b | ./bin/a.t.b/x86_64 |
2c22a520cd1ed4fc8e249d333724412d | ./bin/xmrig.tar.gz |
777e1d9b717d339a7582e06ab28d0dd3 | ./bin/bot_root/aarch64 |
bdb404a243e374cda8948a5480f263e6 | ./bin/bot_root/x86_64 |
d901256374ddd1770270971856bf735a | ./bin/masscan/x86_64.rpm |
7400bf51827682ec6a43b2d1c0a93eca | ./bin/masscan/aarch64.rpm |
c1d28488c149ad232ad3073605eeaf35 | ./bin/masscan/aarch64.apk |
ce43c3c74bde98127a91cd0224f1fa26 | ./bin/masscan/masscan.sh |
87b30ac544d39a044b66ef103f36c357 | ./bin/masscan/aarch64 |
422385becd4e08062b56f57afbc5ae6b | ./bin/masscan/x86_64 |
d4314256672783e773171fd25ac21f78 | ./bin/pnscan/aarch64.deb |
f7a515b639dc08d8061fa56ffacbecac | ./bin/pnscan/x86_64.deb |
3102067a3822ff1c3c17999e3e2b602d | ./bin/pnscan/x86_64.rpm |
db8bc741c40388270bd88cfa1ff2aa41 | ./bin/pnscan/aarch64 |
d3ba2c41757b203ad0a12d1028074bbf | ./bin/pnscan/pnscan.tar.gz |
89d7c2db1f892139ee567d7ae29133a9 | ./bin/pnscan/x86_64 |
d3fae6436a45bfbc22fda8bcb66b27c0 | ./bin/zgrab/ppc64le |
79b8b3d73c8e8c4b1f74a48a617690db | ./bin/zgrab/i386 |
d5869c7c642aff3d91839aaa3f4b0671 | ./bin/zgrab/aarch64 |
26c8f6597826fbdebb5df4cd8cd34663 | ./bin/zgrab/x86_64 |
bc4084451fcf1439a23a081e32a6c532 | ./bin/pei/pei32 |
07179295144082d0291759d5cf2d19c2 | ./bin/pei/pei64 |
d9dd55f66b3d783864f21684c612b406 | ./bin/tshd/x86_64 |
3634fd8b0be6de05eb6df806a4f7b11e | ./bin/bot/TNT_gpu |
bd703ac4ea6ec7127fc9b8f8ce4d7c1e | ./bin/bot/SSHSPR |
13e2c82ecd3bfee92c75f30cf0f40cdc | ./bin/bot/chimaera.cc_Version2.c |
1221631e5fd5628435b6dfef15899fce | ./bin/bot/chimaera.cc |
73a9c6eaa8afc2b02699f172f294b496 | ./bin/bot/TNT_gpu.c |
29c0f22199b6abb07f5f2a6a6037396b | ./bin/bot/AWS |
13e2c82ecd3bfee92c75f30cf0f40cdc | ./bin/bot/chimaera.cc.c |
cd7a98f04de9713b602c314743e5bf55 | ./bin/bot/TeamTNTbot.c |
5718175711512e3fb20f5cf556c57924 | ./bin/src/scope |
677000fb99bf02e3c477a4349df76319 | ./bin/src/log_clean.c |
068f3a272598e55dc02382818f4de70e | ./bin/src/master.zip |
b767837f26b23ec978c1c8b42f9457a1 | ./bin/src/rbm.zip |
3c61212d7bfb2c27834bb1d36c389273 | ./bin/src/tsh.tar.gz |
7950de1f8f013cf3bf2c4eaa8ff4a3e5 | ./bin/src/bash.tar.gz |
1dc06ba731199951436705f4969e5b4e | ./bin/src/dia/Makefile |
8ab4cecc4fbf10a1de46a5f0823e0a94 | ./bin/src/dia/chimaeraxmr.h |
7d4ee4e30088c680b9a50e3924ecce20 | ./bin/src/dia/chimaeraxmr.c |
b62ce36054a7e024376b98df7911a5a7 | ./bin/src/xmrig.so |
4b05c9ad17a82104dba978ab68cec49a | ./bin/src/chimaeraxmr.tar.gz |
1254351aa752d5876ad225243bed69a8 | ./CHIMAERA/bin/xmrigCC/kuben3.tar.gz |
Network
45.9.148.182
45.9.148.182/cmd
45.9.148.182/CHIMAERA
45.9.148.182/bin
45.9.148.182/in
45.9.148.182/init
51.79.226.64
85.214.149.236 (appears to have been compromised)
MITRE ATT&CK TTPs
Technique | ID | Name |
Execution | T1059.004 | Command and Scripting Interpreter: Unix |
T1609 | Container Administration Command | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information |
T1070.003 | Indicator Removal on Host: Clear Command History | |
T1070.004 | Indicator Removal on Host: File Deletion | |
T1027 | Obfuscated Files or Information | |
T1027.002 | Obfuscated Files or Information: Software Packing | |
T1036.005 | Masquerading: Match Legitimate Names or Locations | |
Credential Access | T1552.001 | Unsecured Credentials: Credentials In Files |
T1552.004 | Unsecured Credentials: Private Keys | |
T1552.005 | Unsecured Credentials: Instance Metadata API | |
Discovery | T1046 | Network Service Scanning |
T1082 | System Information Discovery | |
Command and Control | T1071 | Application Layer Protocol |
T1105 | Ingress Tool Transfer | |
T1219 | Remote Access Software | |
T1102 | Web Service | |
Impact | T1496 | Resource Hijacking |
Appendix A
Docker Images
TeamTNT are also hosting malicious docker images on a Docker repo named “alpineos”. The account contains 25 images, which includes XMRig, a reverse shell, moneroocean, kubepwn, and TeamTNTbot builder. In some of these images the scripts are reaching out to the scripts described above. In September 2021, CounterCraft released research on the “alpinos/dockerapi” image.[6]
Figure 11 – TeamTNT Docker Repo
Docker Image |
alpineos/dockerapi |
alpineos/wscopescan |
alpineos/dsbo |
alpineos/xxcrace |
alpineos/firstt |
alpineos/scopeppc64le |
alpineos/tntxmrigbuilder |
alpineos/simpledockerxmr |
alpineos/ttdft |
alpineos/tntbotbuilder |
alpineos/minion |
alpineos/xmrigcc |
alpineos/fluxfaxpax |
alpineos/scopeaarch64 |
alpineos/scanaround |
alpineos/kirito |
alpineos/kndb |
alpineos/jupyter |
alpineos/java |
alpineos/revs |
alpineos/lftk |
alpineos/basicxmr |
alpineos/lft |
alpineos/weavescope |
Appendix B
Source code available for TeamTNTBot.c, chimaera.cc_Version2.c, and TNT_GPU.c.