@@ -32,11 +32,10 @@ class UsesWindowsUtilitiesScheduler(Signature):
32
32
33
33
def on_call (self , _ , process ):
34
34
if process ["process_name" ].lower () in self .filter_processnames :
35
+ # ToDo this doesn't apply MITRE map conversion for newer versions
35
36
self .ttps += ["T1053.005" ] if process ["process_name" ].lower () == "schtasks" else ["T1053.002" ] # MITRE v7,8
36
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
37
- for cmdline in cmdlines :
38
- lower = cmdline .lower ()
39
- if re .search (process ["process_name" ].lower (), lower ):
37
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
38
+ if re .search (process ["process_name" ].lower (), cmdline .lower ()):
40
39
self .data .append ({"command" : cmdline })
41
40
return True
42
41
return False
@@ -116,8 +115,7 @@ def run(self):
116
115
r"Internet Explorer" ,
117
116
]
118
117
ret = False
119
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
120
- for cmdline in cmdlines :
118
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
121
119
lower = cmdline .lower ()
122
120
for utility in utilities :
123
121
if re .search (utility , lower ):
@@ -206,8 +204,7 @@ def run(self):
206
204
]
207
205
208
206
ret = False
209
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
210
- for cmdline in cmdlines :
207
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
211
208
lower = cmdline .lower ()
212
209
for utility_regex in utilities :
213
210
if re .search (utility_regex , lower ):
@@ -239,8 +236,7 @@ def run(self):
239
236
]
240
237
241
238
ret = False
242
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
243
- for cmdline in cmdlines :
239
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
244
240
lower = cmdline .lower ()
245
241
for utility in utilities :
246
242
if utility in lower :
@@ -265,8 +261,7 @@ class SuspiciousPingUse(Signature):
265
261
266
262
def run (self ):
267
263
ret = False
268
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
269
- for cmdline in cmdlines :
264
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
270
265
lower = cmdline .lower ()
271
266
if "ping" in lower and ("-n" in lower or "/n" in lower ):
272
267
ret = True
@@ -313,8 +308,7 @@ def run(self):
313
308
]
314
309
315
310
ret = False
316
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
317
- for cmdline in cmdlines :
311
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
318
312
lower = cmdline .lower ()
319
313
if "wmic" in lower :
320
314
for argument in self .arguments :
@@ -397,8 +391,7 @@ class SuspiciousCertutilUse(Signature):
397
391
398
392
def run (self ):
399
393
ret = False
400
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
401
- for cmdline in cmdlines :
394
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
402
395
lower = cmdline .lower ()
403
396
if "certutil" in lower and ("urlcache" in lower or "encode" in lower or "decode" in lower or "addstore" in lower ):
404
397
ret = True
@@ -468,8 +461,7 @@ class DotNETCSCBuild(Signature):
468
461
469
462
def run (self ):
470
463
ret = False
471
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
472
- for cmdline in cmdlines :
464
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
473
465
lower = cmdline .lower ()
474
466
if "csc " in lower or "csc.exe" in lower :
475
467
ret = True
@@ -545,8 +537,7 @@ def run(self):
545
537
]
546
538
547
539
ret = False
548
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
549
- for cmdline in cmdlines :
540
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
550
541
lower = cmdline .lower ()
551
542
for utility in utilities :
552
543
if utility in lower :
@@ -574,8 +565,7 @@ def run(self):
574
565
]
575
566
576
567
ret = False
577
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
578
- for cmdline in cmdlines :
568
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
579
569
lower = cmdline .lower ()
580
570
for utility in utilities :
581
571
if utility in lower :
@@ -604,8 +594,7 @@ def run(self):
604
594
]
605
595
606
596
ret = False
607
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
608
- for cmdline in cmdlines :
597
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
609
598
lower = cmdline .lower ()
610
599
for utility in utilities :
611
600
if utility in lower :
@@ -635,8 +624,7 @@ def run(self):
635
624
]
636
625
637
626
ret = False
638
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
639
- for cmdline in cmdlines :
627
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
640
628
lower = cmdline .lower ()
641
629
for utility in utilities :
642
630
if utility in lower :
@@ -658,20 +646,18 @@ class UsesWindowsUtilitiesCurl(Signature):
658
646
mbcs = ["OB0009" , "E1203.m06" ]
659
647
660
648
def run (self ):
661
- utilities = [
649
+ utilities = (
662
650
"curl " ,
663
651
"curl.exe " ,
664
- ]
652
+ )
665
653
666
654
ret = False
667
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
668
- for cmdline in cmdlines :
655
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
669
656
lower = cmdline .lower ()
670
657
for utility in utilities :
671
658
if utility in lower :
672
659
ret = True
673
660
self .data .append ({"command" : cmdline })
674
-
675
661
return ret
676
662
677
663
@@ -721,8 +707,7 @@ def run(self):
721
707
]
722
708
723
709
ret = False
724
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
725
- for cmdline in cmdlines :
710
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
726
711
lower = cmdline .lower ()
727
712
for utility in utilities :
728
713
if utility in lower :
@@ -749,8 +734,7 @@ def run(self):
749
734
]
750
735
751
736
ret = False
752
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
753
- for cmdline in cmdlines :
737
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
754
738
lower = cmdline .lower ()
755
739
for utility in utilities :
756
740
if utility in lower :
@@ -778,8 +762,7 @@ def run(self):
778
762
]
779
763
780
764
ret = False
781
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
782
- for cmdline in cmdlines :
765
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
783
766
lower = cmdline .lower ()
784
767
for utility in utilities :
785
768
if utility in lower :
@@ -809,8 +792,7 @@ def run(self):
809
792
]
810
793
811
794
ret = False
812
- cmdlines = self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , [])
813
- for cmdline in cmdlines :
795
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
814
796
lower = cmdline .lower ()
815
797
for utility in utilities :
816
798
if utility in lower :
@@ -1002,3 +984,23 @@ def on_complete(self):
1002
984
if self .detected :
1003
985
return True
1004
986
return False
987
+
988
+ class MavInjectLolbin (Signature ):
989
+ name = "mavinject_lolbin"
990
+ description = "Uses mavinject to inject code"
991
+ severity = 3
992
+ categories = ["injection" , "anti-av" , "lolbin" ]
993
+ authors = ["Kevin Ross" ]
994
+ minimum = "1.3"
995
+ evented = True
996
+ ttps = ["T1218.013" ]
997
+
998
+ def run (self ):
999
+ ret = False
1000
+ for cmdline in self .results .get ("behavior" , {}).get ("summary" , {}).get ("executed_commands" , []):
1001
+ lower = cmdline .lower ()
1002
+ if "mavinject" in lower and ("injectrunning" in lower or "hmodule" in lower ):
1003
+ ret = True
1004
+ self .data .append ({"command" : cmdline })
1005
+
1006
+ return ret
0 commit comments