|
1 | 1 | name: Download Files Using Telegram |
2 | 2 | id: 58194e28-ae5e-11eb-8912-acde48001122 |
3 | | -version: 7 |
4 | | -date: '2025-05-02' |
| 3 | +version: 8 |
| 4 | +date: '2025-08-22' |
5 | 5 | author: Teoderick Contreras, Splunk |
6 | 6 | status: production |
7 | 7 | type: TTP |
8 | | -description: |
9 | | - The following analytic detects suspicious file downloads by the Telegram |
10 | | - application on a Windows system. It leverages Sysmon EventCode 15 to identify instances |
11 | | - where Telegram.exe creates files with a Zone.Identifier, indicating a download. |
12 | | - This activity is significant as it may indicate an adversary using Telegram to download |
13 | | - malicious tools, such as network scanners, for further exploitation. If confirmed |
14 | | - malicious, this behavior could lead to network mapping, lateral movement, and potential |
15 | | - compromise of additional systems within the network. |
| 8 | +description: The following analytic detects suspicious file downloads by the |
| 9 | + Telegram application on a Windows system. It leverages Sysmon EventCode 15 to |
| 10 | + identify instances where Telegram.exe creates files with a Zone.Identifier, |
| 11 | + indicating a download. This activity is significant as it may indicate an |
| 12 | + adversary using Telegram to download malicious tools, such as network |
| 13 | + scanners, for further exploitation. If confirmed malicious, this behavior |
| 14 | + could lead to network mapping, lateral movement, and potential compromise of |
| 15 | + additional systems within the network. |
16 | 16 | data_source: |
17 | | - - Sysmon EventID 15 |
18 | | -search: |
19 | | - '`sysmon` EventCode= 15 process_name = "telegram.exe" TargetFilename = "*:Zone.Identifier" |
| 17 | +- Sysmon EventID 15 |
| 18 | +search: '`sysmon` EventCode= 15 process_name = "telegram.exe" TargetFilename = "*:Zone.Identifier" |
20 | 19 | | stats count min(_time) as firstTime max(_time) as lastTime by dest dvc file_hash |
21 | 20 | file_name file_path process_exec process_guid process_id process_name process_path |
22 | 21 | signature signature_id user_id vendor_product Contents Image | `security_content_ctime(firstTime)` |
23 | 22 | | `security_content_ctime(lastTime)` | `download_files_using_telegram_filter`' |
24 | | -how_to_implement: |
25 | | - To successfully implement this search, you need to be ingesting |
26 | | - logs with the process name and TargetFilename from your endpoints or Events that |
27 | | - monitor filestream events which is happened when process download something. (EventCode |
28 | | - 15) If you are using Sysmon, you must have at least version 6.0.4 of the Sysmon |
29 | | - TA. |
30 | | -known_false_positives: |
31 | | - normal download of file in telegram app. (if it was a common |
32 | | - app in network) |
| 23 | +how_to_implement: To successfully implement this search, you need to be |
| 24 | + ingesting logs with the process name and TargetFilename from your endpoints or |
| 25 | + Events that monitor filestream events which is happened when process download |
| 26 | + something. (EventCode 15) If you are using Sysmon, you must have at least |
| 27 | + version 6.0.4 of the Sysmon TA. |
| 28 | +known_false_positives: normal download of file in telegram app. (if it was a |
| 29 | + common app in network) |
33 | 30 | references: |
34 | | - - https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/ |
| 31 | +- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/ |
35 | 32 | drilldown_searches: |
36 | | - - name: View the detection results for - "$dest$" |
37 | | - search: '%original_detection_search% | search dest = "$dest$"' |
38 | | - earliest_offset: $info_min_time$ |
39 | | - latest_offset: $info_max_time$ |
40 | | - - name: View risk events for the last 7 days for - "$dest$" |
41 | | - search: |
42 | | - '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$") |
43 | | - starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime |
44 | | - values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) |
45 | | - as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) |
46 | | - as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` |
47 | | - | `security_content_ctime(lastTime)`' |
48 | | - earliest_offset: $info_min_time$ |
49 | | - latest_offset: $info_max_time$ |
| 33 | +- name: View the detection results for - "$dest$" |
| 34 | + search: '%original_detection_search% | search dest = "$dest$"' |
| 35 | + earliest_offset: $info_min_time$ |
| 36 | + latest_offset: $info_max_time$ |
| 37 | +- name: View risk events for the last 7 days for - "$dest$" |
| 38 | + search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$") |
| 39 | + starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime |
| 40 | + values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) |
| 41 | + as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) |
| 42 | + as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` |
| 43 | + | `security_content_ctime(lastTime)`' |
| 44 | + earliest_offset: $info_min_time$ |
| 45 | + latest_offset: $info_max_time$ |
50 | 46 | rba: |
51 | | - message: Suspicious files were downloaded with the Telegram application on $dest$ |
| 47 | + message: Suspicious files were downloaded with the Telegram application on |
| 48 | + $dest$ |
52 | 49 | risk_objects: |
53 | | - - field: dest |
54 | | - type: system |
55 | | - score: 49 |
| 50 | + - field: dest |
| 51 | + type: system |
| 52 | + score: 49 |
56 | 53 | threat_objects: [] |
57 | 54 | tags: |
58 | 55 | analytic_story: |
59 | | - - Phemedrone Stealer |
60 | | - - Crypto Stealer |
61 | | - - Snake Keylogger |
62 | | - - XMRig |
63 | | - - Water Gamayun |
| 56 | + - Phemedrone Stealer |
| 57 | + - Crypto Stealer |
| 58 | + - Snake Keylogger |
| 59 | + - XMRig |
| 60 | + - Water Gamayun |
| 61 | + - 0bj3ctivity Stealer |
64 | 62 | asset_type: Endpoint |
65 | 63 | mitre_attack_id: |
66 | | - - T1105 |
| 64 | + - T1105 |
67 | 65 | product: |
68 | | - - Splunk Enterprise |
69 | | - - Splunk Enterprise Security |
70 | | - - Splunk Cloud |
| 66 | + - Splunk Enterprise |
| 67 | + - Splunk Enterprise Security |
| 68 | + - Splunk Cloud |
71 | 69 | security_domain: endpoint |
72 | 70 | tests: |
73 | | - - name: True Positive Test |
74 | | - attack_data: |
75 | | - - data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/minergate/windows-sysmon.log |
76 | | - source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational |
77 | | - sourcetype: XmlWinEventLog |
| 71 | +- name: True Positive Test |
| 72 | + attack_data: |
| 73 | + - data: |
| 74 | + https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/minergate/windows-sysmon.log |
| 75 | + source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational |
| 76 | + sourcetype: XmlWinEventLog |
0 commit comments