|
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