-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcapec.txt
3872 lines (3872 loc) · 517 KB
/
capec.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[
{
"CAPEC ID": "1",
"ID": "Accessing Functionality Not Properly Constrained by ACLs",
"group": 1,
"Abstraction": "Standard",
"Status": "Draft",
"Description": "In applications, particularly web applications, access to functionality is mitigated by an authorization framework. This framework maps Access Control Lists (ACLs) to elements of the application's functionality; particularly URL's for web apps. In the case that the administrator failed to specify an ACL for a particular element, an attacker may be able to access it with impunity. An attacker with the ability to access functionality not properly constrained by ACLs can obtain sensitive information and possibly compromise the entire application. Such an attacker can access resources that must be available only to users at a higher privilege level, can access management sections of the application, or can run queries for data that they otherwise not supposed to.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:122::NATURE:CanPrecede:CAPEC ID:17::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Survey] The attacker surveys the target application, possibly as a valid and authenticated userTECHNIQUE:Spidering web sites for all available links:TECHNIQUE:Brute force guessing of resource names:TECHNIQUE:Brute force guessing of user names / credentials:TECHNIQUE:Brute force guessing of function names / actions::STEP:2:PHASE:Explore:DESCRIPTION:[Identify Functionality] At each step, the attacker notes the resource or functionality access mechanism invoked upon performing specific actionsTECHNIQUE:Use the web inventory of all forms and inputs and apply attack data to those inputs.:TECHNIQUE:Use a packet sniffer to capture and record network traffic:TECHNIQUE:Execute the software in a debugger and record API calls into the operating system or important libraries. This might occur in an environment other than a production environment, in order to find weaknesses that can be exploited in a production environment.::STEP:3:PHASE:Experiment:DESCRIPTION:[Iterate over access capabilities] Possibly as a valid user, the attacker then tries to access each of the noted access mechanisms directly in order to perform functions not constrained by the ACLs.TECHNIQUE:Fuzzing of API parameters (URL parameters, OS API parameters, protocol parameters)::",
"Prerequisites": "::The application must be navigable in a manner that associates elements (subsections) of the application with ACLs.::The various resources, or individual URLs, must be somehow discoverable by the attacker::The administrator must have forgotten to associate an ACL or has associated an inappropriately permissive ACL with a particular navigable resource.::",
"Skills Required": "::SKILL:In order to discover unrestricted resources, the attacker does not need special tools or skills. They only have to observe the resources or access mechanisms invoked as each action is performed and then try and access those access mechanisms directly.:LEVEL:Low::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::",
"Mitigations": "::In a J2EE setting, administrators can associate a role that is impossible for the authenticator to grant users, such as NoAccess, with all Servlets to which access is guarded by a limited number of servlets visible to, and accessible by, the user. Having done so, any direct access to those protected Servlets will be prohibited by the web container. In a more general setting, the administrator must mark every resource besides the ones supposed to be exposed to the user as accessible by a role impossible for the user to assume. The default security setting must be to deny access and then grant access only to those resources intended by business logic.::",
"Example Instances": "::Implementing the Model-1-Controller (MVC) within Java EE's Servlet paradigm using a Single front controller pattern that demands that brokered HTTP requests be authenticated before hand-offs to other Action Servlets. If no security-constraint is placed on those Action Servlets, such that positively no one can access them, the front controller can be subverted.::",
"Related Weaknesses": "::276::285::434::693::732::1191::1193::1220::1297::1311::1314::1315::1318::1320::1321::1327::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1574.010:ENTRY NAME:Hijack Execution Flow: ServicesFile Permissions Weakness::",
"Notes": ""
},
{
"CAPEC ID": "11",
"ID": "Cause Web Server Misclassification",
"group": 2,
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An attack of this type exploits a Web server's decision to take action based on filename or file extension. Because different file types are handled by different server processes, misclassification may force the Web server to take unexpected action, or expected actions in an unexpected sequence. This may cause the server to exhaust resources, supply debug or system data to the attacker, or bind an attacker to a remote process.",
"Alternate Terms": "",
"Likelihood Of Attack": "Medium",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:635::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Footprint file input vectors] Manually or using an automated tool, an attacker searches for all input locations where a user has control over the filenames or MIME types of files submitted to the web server.TECHNIQUE:Attacker manually crawls application to identify file inputs:TECHNIQUE:Attacker uses an automated tool to crawl application identify file inputs:TECHNIQUE:Attacker manually assesses strength of access control protecting native application files from user control:TECHNIQUE:Attacker explores potential for submitting files directly to the web server via independently constructed HTTP Requests::STEP:2:PHASE:Experiment:DESCRIPTION:[File misclassification shotgunning] An attacker makes changes to file extensions and MIME types typically processed by web servers and looks for abnormal behavior.TECHNIQUE:Attacker submits files with switched extensions (e.g. .php on a .jsp file) to web server.:TECHNIQUE:Attacker adds extra characters (e.g. adding an extra . after the file extension) to filenames of files submitted to web server.::STEP:3:PHASE:Experiment:DESCRIPTION:[File misclassification sniping] Understanding how certain file types are processed by web servers, an attacker crafts varying file payloads and modifies their file extension or MIME type to be that of the targeted type to see if the web server is vulnerable to misclassification of that type.TECHNIQUE:Craft a malicious file payload, modify file extension to the targeted file type and submit it to the web server.:TECHNIQUE:Craft a malicious file payload, modify its associated MIME type to the targeted file type and submit it to the web server.::STEP:4:PHASE:Exploit:DESCRIPTION:[Disclose information] The attacker, by manipulating a file extension or MIME type is able to make the web server return raw information (not executed).TECHNIQUE:Manipulate the file names that are explicitly sent to the server.:TECHNIQUE:Manipulate the MIME sent in order to confuse the web server.::",
"Prerequisites": "::Web server software must rely on file name or file extension for processing.::The attacker must be able to make HTTP requests to the web server.::",
"Skills Required": "::SKILL:To modify file name or file extension:LEVEL:Low::SKILL:To use misclassification to force the Web server to disclose configuration information, source, or binary data:LEVEL:Medium::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::",
"Mitigations": "::Implementation: Server routines should be determined by content not determined by filename or file extension.::",
"Example Instances": "::J2EE application servers are supposed to execute Java Server Pages (JSP). There have been disclosure issues relating to Orion Application Server, where an attacker that appends either a period (.) or space characters to the end of a legitimate Http request, then the server displays the full source code in the attackers' web browser. http://victim.site/login.jsp. Since remote data and directory access may be accessed directly from the JSP, this is a potentially very serious issue. [REF-6]::",
"Related Weaknesses": "::430::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1036.006:ENTRY NAME:Masquerading: Space after Filename::",
"Notes": ""
},
{
"CAPEC ID": "112",
"ID": "Brute Force",
"group": 3,
"Abstraction": "Meta",
"Status": "Draft",
"Description": "In this attack, some asset (information, functionality, identity, etc.) is protected by a finite secret value. The attacker attempts to gain access to this asset by using trial-and-error to exhaustively explore all the possible secret values in the hope of finding the secret (or a value that is functionally equivalent) that will unlock the asset.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "High",
"Related Attack Patterns": "",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Determine secret testing procedure] Determine how a potential guess of the secret may be tested. This may be accomplished by comparing some manipulation of the secret to a known value, use of the secret to manipulate some known set of data and determining if the result displays specific characteristics (for example, turning cryptotext into plaintext), or by submitting the secret to some external authority and having the external authority respond as to whether the value was the correct secret. Ideally, the attacker will want to determine the correctness of their guess independently since involvement of an external authority is usually slower and can provide an indication to the defender that a brute-force attack is being attempted.TECHNIQUE:Determine if there is a way to parallelize the attack. Most brute force attacks can take advantage of parallel techniques by dividing the search space among available resources, thus dividing the average time to success by the number of resources available. If there is a single choke point, such as a need to check answers with an external authority, the attackers' position is significantly degraded.::STEP:2:PHASE:Explore:DESCRIPTION:[Reduce search space] Find ways to reduce the secret space. The smaller the attacker can make the space they need to search for the secret value, the greater their chances for success. There are a great many ways in which the search space may be reduced.TECHNIQUE:If possible, determine how the secret was selected. If the secret was determined algorithmically (such as by a random number generator) the algorithm may have patterns or dependencies that reduce the size of the secret space. If the secret was created by a human, behavioral factors may, if not completely reduce the space, make some types of secrets more likely than others. (For example, humans may use the same secrets in multiple places or use secrets that look or sound familiar for ease of recall.):TECHNIQUE:If the secret was chosen algorithmically, cryptanalysis can be applied to the algorithm to discover patterns in this algorithm. (This is true even if the secret is not used in cryptography.) Periodicity, the need for seed values, or weaknesses in the generator all can result in a significantly smaller secret space.:TECHNIQUE:If the secret was chosen by a person, social engineering and simple espionage can indicate patterns in their secret selection. If old secrets can be learned (and a target may feel they have little need to protect a secret that has been replaced) hints as to their selection preferences can be gleaned. These can include character substitutions a target employs, patterns in sources (dates, famous phrases, music lyrics, family members, etc.). Once these patterns have been determined, the initial efforts of a brute-force attack can focus on these areas.:TECHNIQUE:Some algorithmic techniques for secret selection may leave indicators that can be tested for relatively easily and which could then be used to eliminate large areas of the search space for consideration. For example, it may be possible to determine that a secret does or does not start with a given character after a relatively small number of tests. Alternatively, it might be possible to discover the length of the secret relatively easily. These discoveries would significantly reduce the search space, thus increasing speed with which the attacker discovers the secret.::STEP:3:PHASE:Explore:DESCRIPTION:[Expand victory conditions] It is sometimes possible to expand victory conditions. For example, the attacker might not need to know the exact secret but simply needs a value that produces the same result using a one-way function. While doing this does not reduce the size of the search space, the presence of multiple victory conditions does reduce the likely amount of time that the attacker will need to explore the space before finding a workable value.::STEP:4:PHASE:Exploit:DESCRIPTION:[Gather information so attack can be performed independently.] If possible, gather the necessary information so a successful search can be determined without consultation of an external authority. This can be accomplished by capturing cryptotext (if the goal is decoding the text) or the encrypted password dictionary (if the goal is learning passwords).::",
"Prerequisites": "::The attacker must be able to determine when they have successfully guessed the secret. As such, one-time pads are immune to this type of attack since there is no way to determine when a guess is correct.::",
"Skills Required": "::SKILL:The attack simply requires basic scripting ability to automate the exploration of the search space. More sophisticated attackers may be able to use more advanced methods to reduce the search space and increase the speed with which the secret is located.:LEVEL:Low::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack. Ultimately, the speed with which an attacker discovers a secret is directly proportional to the computational resources the attacker has at their disposal. This attack method is resource expensive: having large amounts of computational power do not guarantee timely success, but having only minimal resources makes the problem intractable against all but the weakest secret selection procedures.::",
"Indicators": "::Repeated submissions of incorrect secret values may indicate a brute force attack. For example, repeated bad passwords when accessing user accounts or repeated queries to databases using non-existent keys.::Attempts to download files protected by secrets (usually using encryption) may be a precursor to an offline attack to break the file's encryption and read its contents. This is especially significant if the file itself contains other secret values, such as password files.::If the attacker is able to perform the checking offline then there will likely be no indication that an attack is ongoing.::",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::",
"Mitigations": "::Select a provably large secret space for selection of the secret. Provably large means that the procedure by which the secret is selected does not have artifacts that significantly reduce the size of the total secret space.::Use a secret space that is well known and with no known patterns that may reduce functional size.::Do not provide the means for an attacker to determine success independently. This forces the attacker to check their guesses against an external authority, which can slow the attack and warn the defender. This mitigation may not be possible if testing material must appear externally, such as with a transmitted cryptotext.::",
"Example Instances": "",
"Related Weaknesses": "::330::326::521::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1110:ENTRY NAME:Brute Force::::TAXONOMY NAME:WASC:ENTRY ID:11:ENTRY NAME:Brute Force::::TAXONOMY NAME:OWASP Attacks:ENTRY NAME:Brute force attack::",
"Notes": ""
},
{
"CAPEC ID": "114",
"ID": "Authentication Abuse",
"group": 4,
"Abstraction": "Meta",
"Status": "Draft",
"Description": "An attacker obtains unauthorized access to an application, service or device either through knowledge of the inherent weaknesses of an authentication mechanism, or by exploiting a flaw in the authentication scheme's implementation. In such an attack an authentication mechanism is functioning but a carefully controlled sequence of events causes the mechanism to grant access to the attacker.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::An authentication mechanism or subsystem implementing some form of authentication such as passwords, digest authentication, security certificates, etc. which is flawed in some way.::",
"Skills Required": "",
"Resources Required": "::A client application, command-line access to a binary, or scripting language capable of interacting with the authentication mechanism.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::287::1244::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1548:ENTRY NAME:Abuse Elevation Control Mechanism::",
"Notes": ""
},
{
"CAPEC ID": "115",
"ID": "Authentication Bypass",
"group": 5,
"Abstraction": "Meta",
"Status": "Draft",
"Description": "An attacker gains access to application, service, or device with the privileges of an authorized or privileged user by evading or circumventing an authentication mechanism. The attacker is therefore able to access protected data without authentication ever having taken place.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::An authentication mechanism or subsystem implementing some form of authentication such as passwords, digest authentication, security certificates, etc.::",
"Skills Required": "",
"Resources Required": "::A client application, such as a web browser, or a scripting language capable of interacting with the target.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::287::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1548:ENTRY NAME:Abuse Elevation Control Mechanism::",
"Notes": ""
},
{
"CAPEC ID": "122",
"ID": "Privilege Abuse",
"group": 6,
"Abstraction": "Meta",
"Status": "Draft",
"Description": "An adversary is able to exploit features of the target that should be reserved for privileged users or administrators but are exposed to use by lower or non-privileged accounts. Access to sensitive information and functionality must be controlled to ensure that only authorized users are able to access these resources.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:CanPrecede:CAPEC ID:664::",
"Execution Flow": "",
"Prerequisites": "::The target must have misconfigured their access control mechanisms such that sensitive information, which should only be accessible to more trusted users, remains accessible to less trusted users.::The adversary must have access to the target, albeit with an account that is less privileged than would be appropriate for the targeted resources.::",
"Skills Required": "::SKILL:Adversary can leverage privileged features they already have access to without additional effort or skill. Adversary is only required to have access to an account with improper priveleges.:LEVEL:Low::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack. The ability to access the target is required.::",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:AuthorizationTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Authorization Execute Unauthorized Commands Run Arbitrary Code::SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::",
"Mitigations": "::Configure account privileges such privileged/administrator functionality is not exposed to non-privileged/lower accounts.::",
"Example Instances": "::Improperly configured account privileges allowed unauthorized users on a hospital's network to access the medical records for over 3,000 patients. Thus compromising data integrity and confidentiality in addition to HIPAA violations.::",
"Related Weaknesses": "::269::732::1317::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1548:ENTRY NAME:Abuse Elevation Control Mechanism::",
"Notes": ""
},
{
"CAPEC ID": "125",
"ID": "Flooding",
"group": 7,
"Abstraction": "Meta",
"Status": "Stable",
"Description": "An adversary consumes the resources of a target by rapidly engaging in a large number of interactions with the target. This type of attack generally exposes a weakness in rate limiting or flow. When successful this attack prevents legitimate users from accessing the service and can cause the target to crash. This attack differs from resource depletion through leaks or allocations in that the latter attacks do not rely on the volume of requests made to the target but instead focus on manipulation of the target's operations. The key factor in a flooding attack is the number of requests the adversary can make in a given period of time. The greater this number, the more likely an attack is to succeed against a given target.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::Any target that services requests is vulnerable to this attack on some level of scale.::",
"Skills Required": "",
"Resources Required": "::A script or program capable of generating more requests than the target can handle, or a network or cluster of objects all capable of making simultaneous requests.::",
"Indicators": "",
"Consequences": "::SCOPE:AvailabilityTECHNICAL IMPACT:Unreliable Execution:TECHNICAL IMPACT:Resource Consumption:NOTE:Availability Unreliable Execution Resource Consumption A successful flooding attack compromises the availability of the target system's service by exhausting its available resources.::",
"Mitigations": "::Ensure that protocols have specific limits of scale configured.::Specify expectations for capabilities and dictate which behaviors are acceptable when resource allocation reaches limits.::Uniformly throttle all requests in order to make it more difficult to consume resources more quickly than they can again be freed.::",
"Example Instances": "",
"Related Weaknesses": "::404::770::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1498.001:ENTRY NAME:Network Denial of Service: Direct Network Flood::::TAXONOMY NAME:ATTACK:ENTRY ID:1499:ENTRY NAME:Endpoint Denial of Service::::TAXONOMY NAME:WASC:ENTRY ID:10:ENTRY NAME:Denial of Service::::TAXONOMY NAME:OWASP Attacks:ENTRY NAME:Traffic flood::",
"Notes": ""
},
{
"CAPEC ID": "127",
"ID": "Directory Indexing",
"group": 8,
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An adversary crafts a request to a target that results in the target listing/indexing the content of a directory as output. One common method of triggering directory contents as output is to construct a request containing a path that terminates in a directory name rather than a file name since many applications are configured to provide a list of the directory's contents when such a request is received. An adversary can use this to explore the directory tree on a target as well as learn the names of files. This can often end up revealing test files, backup files, temporary files, hidden files, configuration files, user accounts, script contents, as well as naming conventions, all of which can be used by an attacker to mount additional attacks.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:54::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Directory Discovery] Use a method, either manual, scripted, or automated to discover the directories on the server by making requests for directories that may possibly exist. During this phase the adversary is less concerned with whether a directory can be accessed or indexed and more focused on simply discovering what directories do exist on the target.TECHNIQUE:Send requests to the web server for common directory names:TECHNIQUE:If directories are discovered that are native to a server type further refine the directory search to include directories usually present on those types of servers.:TECHNIQUE:Search for uncommon or potentially user created directories that may be present.::STEP:2:PHASE:Experiment:DESCRIPTION:[Iteratively explore directory/file structures] The adversary attempts to access the discovered directories that allow access and may attempt to bypass server or application level ACLs by using manual or automated methodsTECHNIQUE:Use a scanner tool to dynamically add directories/files to include their scan based upon data obtained in initial probes.:TECHNIQUE:Use a browser to manually explore the website by issuing a request ending the URL in a slash '/'.:TECHNIQUE:Attempt to bypass ACLs on directories by using methods that known to work against some server types by appending data to the directory request. For instance, appending a Null byte to the end of the request which may cause an ACL to fail and allow access.:TECHNIQUE:Sequentially request a list of common base files to each directory discovered.:TECHNIQUE:Try multiple fuzzing techniques to list directory contents for directories that will not reveal their contents with a / request::STEP:3:PHASE:Exploit:DESCRIPTION:[Read directories or files which are not intended for public viewing.] The adversary attempts to access the discovered directories that allow access and may attempt to bypass server or application level ACLs by using manual or automated methodsTECHNIQUE:Try multiple exploit techniques to list directory contents for directories that will not reveal their contents with a / request:TECHNIQUE:Try other known exploits to elevate privileges sufficient to bypass protected directories.:TECHNIQUE:List the files in the directory by issuing a request with the URL ending in a / slash.:TECHNIQUE:Access the files via direct URL and capture contents.:TECHNIQUE:Attempt to bypass ACLs on directories by using methods that are known to work against some server types by appending data to the directory request. For instance, appending a Null byte to the end of the request which may cause an ACL to fail and allow access.:TECHNIQUE:Sequentially request a list of common base files to each directory discovered.::",
"Prerequisites": "::The target must be misconfigured to return a list of a directory's content when it receives a request that ends in a directory name rather than a file name.::The adversary must be able to control the path that is requested of the target.::The administrator must have failed to properly configure an ACL or has associated an overly permissive ACL with a particular directory.::The server version or patch level must not inherently prevent known directory listing attacks from working.::",
"Skills Required": "::SKILL:To issue the request to URL without given a specific file name:LEVEL:Low::SKILL:To bypass the access control of the directory of listings:LEVEL:High::",
"Resources Required": "::Ability to send HTTP requests to a web application.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data:NOTE:Confidentiality Read Data Information Leakage::",
"Mitigations": "::1. Using blank index.html: putting blank index.html simply prevent directory listings from displaying to site visitors.::2. Preventing with .htaccess in Apache web server: In .htaccess, write Options-indexes.::3. Suppressing error messages: using error 403 Forbidden message exactly like error 404 Not Found message.::",
"Example Instances": "::The adversary uses directory listing to view sensitive files in the application. This is an example of accessing the backup file. The attack issues a request for http://www.example.com/admin/ and receives the following dynamic directory indexing content in the response: Index of /admin Name Last Modified Size Description backup/ 31-May-2007 08:18 - Apache/ 2.0.55 Server at www.example.com Port 80 The target application does not have direct hyperlink to the backup directory in the normal html webpage, however the attacker has learned of this directory due to indexing the content. The client then requests the backup directory URL and receives output which has a db_dump.php file in it. This sensitive data should not be disclosed publicly.::",
"Related Weaknesses": "::424::425::288::285::732::276::693::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1083:ENTRY NAME:File and Directory Discovery::",
"Notes": ""
},
{
"CAPEC ID": "13",
"ID": "Subverting Environment Variable Values",
"group": 9,
"Abstraction": "Detailed",
"Status": "Stable",
"Description": "The adversary directly or indirectly modifies environment variables used by or controlling the target software. The adversary's goal is to cause the target software to deviate from its expected operation in a manner that benefits the adversary.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Very High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:77::NATURE:CanPrecede:CAPEC ID:14::NATURE:PeerOf:CAPEC ID:10::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Probe target application] The adversary first probes the target application to determine important information about the target. This information could include types software used, software versions, what user input the application consumes, and so on. Most importantly, the adversary tries to determine what environment variables might be used by the underlying software, or even the application itself.::STEP:2:PHASE:Experiment:DESCRIPTION:[Find user-controlled environment variables] Using the information found by probing the application, the adversary attempts to manipulate any user-controlled environment variables they have found are being used by the application, or suspect are being used by the application, and observe the effects of these changes. If the adversary notices any significant changes to the application, they will know that a certain environment variable is important to the application behavior and indicates a possible attack vector.TECHNIQUE:Alter known environment variables such as $PATH, $HOSTNAME, or LD_LIBRARY_PATH and see if application behavior changes.::STEP:3:PHASE:Exploit:DESCRIPTION:[Manipulate user-controlled environment variables] The adversary manipulates the found environment variable(s) to abuse the normal flow of processes or to gain access to privileged resources.::",
"Prerequisites": "::An environment variable is accessible to the user.::An environment variable used by the application can be tainted with user supplied data.::Input data used in an environment variable is not validated properly.::The variables encapsulation is not done properly. For instance setting a variable as public in a class makes it visible and an adversary may attempt to manipulate that variable.::",
"Skills Required": "::SKILL:In a web based scenario, the client controls the data that it submitted to the server. So anybody can try to send malicious data and try to bypass the authentication mechanism.:LEVEL:Low::SKILL:Some more advanced attacks may require knowledge about protocols and probing technique which help controlling a variable. The malicious user may try to understand the authentication mechanism in order to defeat it.:LEVEL:High::",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:Confidentiality:SCOPE:Integrity:SCOPE:AvailabilityTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Confidentiality Integrity Availability Execute Unauthorized Commands Run Arbitrary Code::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::SCOPE:AvailabilityTECHNICAL IMPACT:Unreliable Execution::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:AccountabilityTECHNICAL IMPACT:Hide Activities::",
"Mitigations": "::Protect environment variables against unauthorized read and write access.::Protect the configuration files which contain environment variables against illegitimate read and write access.::Assume all input is malicious. Create an allowlist that defines all valid input to the software system based on the requirements specifications. Input that does not match against the allowlist should not be permitted to enter into the system.::Apply the least privilege principles. If a process has no legitimate reason to read an environment variable do not give that privilege.::",
"Example Instances": "::Changing the LD_LIBRARY_PATH environment variable in TELNET will cause TELNET to use an alternate (possibly Trojan) version of a function library. The Trojan library must be accessible using the target file system and should include Trojan code that will allow the user to log in with a bad password. This requires that the adversary upload the Trojan library to a specific location on the target. As an alternative to uploading a Trojan file, some file systems support file paths that include remote addresses, such as 172.16.2.100shared_filestrojan_dll.dll. See also: Path Manipulation (CVE-1999-0073)::The HISTCONTROL environment variable keeps track of what should be saved by the history command and eventually into the ~/.bash_history file when a user logs out. This setting can be configured to ignore commands that start with a space by simply setting it to ignorespace. HISTCONTROL can also be set to ignore duplicate commands by setting it to ignoredups. In some Linux systems, this is set by default to ignoreboth which covers both of the previous examples. This means that ls will not be saved, but ls would be saved by history. HISTCONTROL does not exist by default on macOS, but can be set by the user and will be respected. Adversaries can use this to operate without leaving traces by simply prepending a space to all of their terminal commands.::",
"Related Weaknesses": "::353::285::302::74::15::73::20::200::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1562.003:ENTRY NAME:Impair Defenses:Impair Command History Logging::::TAXONOMY NAME:ATTACK:ENTRY ID:1574.006:ENTRY NAME:Hijack Execution Flow:Dynamic Linker Hijacking::::TAXONOMY NAME:ATTACK:ENTRY ID:1574.007:ENTRY NAME:Hijack Execution Flow:Path Interception by PATH Environment Variable::",
"Notes": ""
},
{
"CAPEC ID": "130",
"ID": "Excessive Allocation",
"group": 10,
"Abstraction": "Meta",
"Status": "Stable",
"Description": "An adversary causes the target to allocate excessive resources to servicing the attackers' request, thereby reducing the resources available for legitimate services and degrading or denying services. Usually, this attack focuses on memory allocation, but any finite resource on the target could be the attacked, including bandwidth, processing cycles, or other resources. This attack does not attempt to force this allocation through a large number of requests (that would be Resource Depletion through Flooding) but instead uses one or a small number of requests that are carefully formatted to force the target to allocate excessive resources to service this request(s). Often this attack takes advantage of a bug in the target to cause the target to allocate resources vastly beyond what would be needed for a normal request.",
"Alternate Terms": "",
"Likelihood Of Attack": "Medium",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::The target must accept service requests from the attacker and the adversary must be able to control the resource allocation associated with this request to be in excess of the normal allocation. The latter is usually accomplished through the presence of a bug on the target that allows the adversary to manipulate variables used in the allocation.::",
"Skills Required": "",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "::SCOPE:AvailabilityTECHNICAL IMPACT:Resource Consumption:NOTE:Availability Resource Consumption A successful excessive allocation attack forces the target system to exhaust its resources, thereby compromising the availability of its service.::",
"Mitigations": "::Limit the amount of resources that are accessible to unprivileged users.::Assume all input is malicious. Consider all potentially relevant properties when validating input.::Consider uniformly throttling all requests in order to make it more difficult to consume resources more quickly than they can again be freed.::Use resource-limiting settings, if possible.::",
"Example Instances": "::In an Integer Attack, the adversary could cause a variable that controls allocation for a request to hold an excessively large value. Excessive allocation of resources can render a service degraded or unavailable to legitimate users and can even lead to crashing of the target.::",
"Related Weaknesses": "::404::770::1325::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1499.003:ENTRY NAME:Endpoint Denial of Service:Application Exhaustion Flood::::TAXONOMY NAME:WASC:ENTRY ID:10:ENTRY NAME:Denial of Service::",
"Notes": ""
},
{
"CAPEC ID": "131",
"ID": "Resource Leak Exposure",
"group": 11,
"Abstraction": "Meta",
"Status": "Stable",
"Description": "An adversary utilizes a resource leak on the target to deplete the quantity of the resource available to service legitimate requests.",
"Alternate Terms": "",
"Likelihood Of Attack": "Medium",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::The target must have a resource leak that the adversary can repeatedly trigger.::",
"Skills Required": "",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "::SCOPE:AvailabilityTECHNICAL IMPACT:Unreliable Execution:TECHNICAL IMPACT:Resource Consumption:NOTE:Availability Unreliable Execution Resource Consumption A successful resource leak exposure attack compromises the availability of the target system's services.::",
"Mitigations": "::If possible, leverage coding language(s) that do not allow this weakness to occur (e.g., Java, Ruby, and Python all perform automatic garbage collection that releases memory for objects that have been deallocated).::Memory should always be allocated/freed using matching functions (e.g., malloc/free, new/delete, etc.)::Implement best practices with respect to memory management, including the freeing of all allocated resources at all exit points and ensuring consistency with how and where memory is freed in a function.::",
"Example Instances": "",
"Related Weaknesses": "::404::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1499:ENTRY NAME:Endpoint Denial of Service::::TAXONOMY NAME:WASC:ENTRY ID:10:ENTRY NAME:Denial of Service::",
"Notes": ""
},
{
"CAPEC ID": "132",
"ID": "Symlink Attack",
"group": 12,
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An adversary positions a symbolic link in such a manner that the targeted user or application accesses the link's endpoint, assuming that it is accessing a file with the link's name.",
"Alternate Terms": "",
"Likelihood Of Attack": "Low",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:159::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Identify Target] Adversary identifies the target application by determining whether there is sufficient check before writing data to a file and creating symlinks to files in different directories.TECHNIQUE:The adversary writes to files in different directories to check whether the application has sufficient checking before file operations.:TECHNIQUE:The adversary creates symlinks to files in different directories.::STEP:2:PHASE:Experiment:DESCRIPTION:[Try to create symlinks to different files] The adversary then uses a variety of techniques, such as monitoring or guessing to create symlinks to the files accessed by the target application in the directories which are identified in the explore phase.TECHNIQUE:The adversary monitors the file operations performed by the target application using a tool like dtrace or FileMon. And the adversary can delay the operations by using sleep(2) and usleep() to prepare the appropriate conditions for the attack, or make the application perform expansive tasks (large files parsing, etc.) depending on the purpose of the application.:TECHNIQUE:The adversary may need a little guesswork on the filenames on which the target application would operate.:TECHNIQUE:The adversary tries to create symlinks to the various filenames.::STEP:3:PHASE:Exploit:DESCRIPTION:[Target application operates on created symlinks to sensitive files] The adversary is able to create symlinks to sensitive files while the target application is operating on the file.TECHNIQUE:Create the symlink to the sensitive file such as configuration files, etc.::",
"Prerequisites": "::The targeted application must perform the desired activities on a file without checking whether the file is a symbolic link or not. The adversary must be able to predict the name of the file the target application is modifying and be able to create a new symbolic link where that file would appear.::",
"Skills Required": "::SKILL:To create symlinks:LEVEL:Low::SKILL:To identify the files and create the symlinks during the file operation time window:LEVEL:High::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack. The only requirement is the ability to create the necessary symbolic link.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Other:NOTE:Confidentiality Other Information Leakage::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:AuthorizationTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Authorization Execute Unauthorized Commands Run Arbitrary Code::SCOPE:Accountability:SCOPE:Authentication:SCOPE:Authorization:SCOPE:Non-RepudiationTECHNICAL IMPACT:Gain Privileges::SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::SCOPE:AvailabilityTECHNICAL IMPACT:Unreliable Execution::",
"Mitigations": "::Design: Check for the existence of files to be created, if in existence verify they are neither symlinks nor hard links before opening them.::Implementation: Use randomly generated file names for temporary files. Give the files restrictive permissions.::",
"Example Instances": "::The adversary creates a symlink with the same name as the file which the application is intending to write to. The application will write to the file- causing the data to be written where the symlink is pointing. An attack like this can be demonstrated as follows: root# vulprog myFile {...program does some processing...] adversary# ln \u2013s /etc/nologin myFile [...program writes to 'myFile', which points to /etc/nologin...] In the above example, the root user ran a program with poorly written file handling routines, providing the filename myFile to vulnprog for the relevant data to be written to. However, the adversary happened to be looking over the shoulder of root at the time, and created a link from myFile to /etc/nologin. The attack would make no user be able to login.::",
"Related Weaknesses": "::59::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1547.009:ENTRY NAME:Boot or Logon Autostart Execution:Shortcut Modification::",
"Notes": ""
},
{
"CAPEC ID": "141",
"ID": "Cache Poisoning",
"group": 13
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An attacker exploits the functionality of cache technologies to cause specific data to be cached that aids the attackers' objectives. This describes any attack whereby an attacker places incorrect or harmful material in cache. The targeted cache can be an application's cache (e.g. a web browser cache) or a public cache (e.g. a DNS or ARP cache). Until the cache is refreshed, most applications or clients will treat the corrupted cache value as valid. This can lead to a wide range of exploits including redirecting web browsers towards sites that install malware and repeatedly incorrect calculations based on the incorrect value.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:161::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Identify and explore caches] Use tools to sniff traffic and scan a network in order to locate application's cache (e.g. a web browser cache) or a public cache (e.g. a DNS or ARP cache) that may have vulnerabilities. Look for poisoning point in cache table entries.TECHNIQUE:Run tools that check available entries in the cache.::STEP:2:PHASE:Experiment:DESCRIPTION:[Cause specific data to be cached] An attacker sends bogus request to the target, and then floods responses that trick a cache to remember malicious responses, which are wrong answers of queries.TECHNIQUE:Intercept or modify a query, or send a bogus query with known credentials (such as transaction ID).::STEP:3:PHASE:Exploit:DESCRIPTION:[Redirect users to malicious website] As the attacker succeeds in exploiting the vulnerability, they are able to manipulate and interpose malicious response data to targeted victim queries.TECHNIQUE:Intercept or modify a query, or send a bogus query with known credentials (such as transaction ID).:TECHNIQUE:Adversary-in-the-Middle attacks (CAPEC-94) intercept secure communication between two parties.::",
"Prerequisites": "::The attacker must be able to modify the value stored in a cache to match a desired value.::The targeted application must not be able to detect the illicit modification of the cache and must trust the cache value in its calculations.::",
"Skills Required": "::SKILL:To overwrite/modify targeted cache:LEVEL:Medium::",
"Resources Required": "",
"Indicators": "",
"Consequences": "",
"Mitigations": "::Configuration: Disable client side caching.::Implementation: Listens for query replies on a network, and sends a notification via email when an entry changes.::",
"Example Instances": "::In this example, an attacker sends request to a local DNS server to look up www.example .com. The associated IP address of www.example.com is 1.3.5.7. Local DNS usually caches IP addresses and do not go to remote DNS every time. Since the local record is not found, DNS server tries to connect to remote DNS for queries. However, before the remote DNS returns the right IP address 1.3.5.7, the attacker floods local DNS with crafted responses with IP address 2.4.6.8. The result is that 2.4.6.8 is stored in DNS cache. Meanwhile, 2.4.6.8 is associated with a malicious website www.maliciousexampsle.com When users connect to www.example.com, the local DNS will direct it to www.maliciousexample.com, this works as part of a Pharming attack.::",
"Related Weaknesses": "::348::345::349::346::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1557.002:ENTRY NAME:Adversary-in-the-Middle: ARP Cache Poisoning::::TAXONOMY NAME:OWASP Attacks:ENTRY NAME:Cache Poisoning::",
"Notes": ""
},
{
"CAPEC ID": "142",
"ID": "DNS Cache Poisoning",
"group": 14,
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "A domain name server translates a domain name (such as www.example.com) into an IP address that Internet hosts use to contact Internet resources. An adversary modifies a public DNS cache to cause certain names to resolve to incorrect addresses that the adversary specifies. The result is that client applications that rely upon the targeted cache for domain name resolution will be directed not to the actual address of the specified domain name but to some other address. Adversaries can use this to herd clients to sites that install malware on the victim's computer or to masquerade as part of a Pharming attack.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:141::NATURE:CanPrecede:CAPEC ID:89::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Explore resolver caches] Check DNS caches on local DNS server and client's browser with DNS cache enabled.TECHNIQUE:Run tools that check the resolver cache in the memory to see if it contains a target DNS entry.:TECHNIQUE:Figure out if the client's browser has DNS cache enabled.::STEP:2:PHASE:Experiment:DESCRIPTION:[Attempt sending crafted records to DNS cache] A request is sent to the authoritative server for target website and wait for the iterative name resolver. An adversary sends bogus request to the DNS local server, and then floods responses that trick a DNS cache to remember malicious responses, which are wrong answers of DNS query.TECHNIQUE:Adversary must know the transaction ID by intercepting a DNS query, or sending a bogus query with known transaction ID.:TECHNIQUE:If the transaction ID used to identify each query instance is randomized in some new DNS software, the attack must guess the transaction ID. Slow the response of the real DNS server by causing Denial-of-service. This gives adversaries enough time to guess transaction:TECHNIQUE:Adversary crafts DNS response with the same transaction ID as in the request. The adversary sends out DNS responses before the authorized DNS server. This forces DNS local cache stores fake DNS response (wrong answer). The fake DNS responses usually include a malicious website's IP address.::STEP:3:PHASE:Exploit:DESCRIPTION:[Redirect users to malicious website] As the adversary succeeds in exploiting the vulnerability, the victim connects to a malicious site using a good web site's domain name.TECHNIQUE:Redirecting Web traffic to a site that looks enough like the original so as to not raise any suspicion.:TECHNIQUE:Adversary-in-the-Middle (CAPEC-94) intercepts secure communication between two parties.::",
"Prerequisites": "::A DNS cache must be vulnerable to some attack that allows the adversary to replace addresses in its lookup table.Client applications must trust the corrupted cashed values and utilize them for their domain name resolutions.::",
"Skills Required": "::SKILL:To overwrite/modify targeted DNS cache:LEVEL:Medium::",
"Resources Required": "::The adversary must have the resources to modify the targeted cache. In addition, in most cases the adversary will wish to host the sites to which users will be redirected, although in some cases redirecting to a third party site will accomplish the adversary's goals.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "::Configuration: Make sure your DNS servers have been updated to the latest versions::Configuration: UNIX services like rlogin, rsh/rcp, xhost, and nfs are all susceptible to wrong information being held in a cache. Care should be taken with these services so they do not rely upon DNS caches that have been exposed to the Internet.::Configuration: Disable client side DNS caching.::",
"Example Instances": "::In this example, an adversary sends request to a local DNS server to look up www.example .com. The associated IP address of www.example.com is 1.3.5.7. Local DNS usually caches IP addresses and do not go to remote DNS every time. Since the local record is not found, DNS server tries to connect to remote DNS for queries. However, before the remote DNS returns the right IP address 1.3.5.7, the adversary floods local DNS with crafted responses with IP address 2.4.6.8. The result is that 2.4.6.8 is stored in DNS cache. Meanwhile, 2.4.6.8 is associated with a malicious website www.maliciousexampsle.com When users connect to www.example.com, the local DNS will direct it to www.maliciousexample.com, this works as part of a Pharming attack.::",
"Related Weaknesses": "::348::345::349::346::350::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1584.002:ENTRY NAME:Compromise Infrastructure: DNS Server::",
"Notes": ""
},
{
"CAPEC ID": "148",
"ID": "Content Spoofing",
"group": 15,
"Abstraction": "Meta",
"Status": "Stable",
"Description": "An adversary modifies content to make it contain something other than what the original content producer intended while keeping the apparent source of the content unchanged. The term content spoofing is most often used to describe modification of web pages hosted by a target to display the adversary's content instead of the owner's content. However, any content can be spoofed, including the content of email messages, file transfers, or the content of other network communication protocols. Content can be modified at the source (e.g. modifying the source file for a web page) or in transit (e.g. intercepting and modifying a message between the sender and recipient). Usually, the adversary will attempt to hide the fact that the content has been modified, but in some cases, such as with web site defacement, this is not necessary. Content Spoofing can lead to malware exposure, financial fraud (if the content governs financial transactions), privacy violations, and other unwanted outcomes.",
"Alternate Terms": "",
"Likelihood Of Attack": "Medium",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::The target must provide content but fail to adequately protect it against modification.The adversary must have the means to alter data to which they are not authorized. If the content is to be modified in transit, the adversary must be able to intercept the targeted messages.::",
"Skills Required": "",
"Resources Required": "::If the content is to be modified in transit, the adversary requires a tool capable of intercepting the target's communication and generating/creating custom packets to impact the communications. In some variants, the targeted content is altered so that all or some of it is redirected towards content published by the attacker (for example, images and frames in the target's web site might be modified to be loaded from a source controlled by the attacker). In these cases, the attacker requires the necessary resources to host the replacement content.::",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data:NOTE:Integrity Modify Data A successful content spoofing attack compromises the integrity of the application data.::",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::345::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1491:ENTRY NAME:Defacement::::TAXONOMY NAME:WASC:ENTRY ID:12:ENTRY NAME:Content Spoofing::::TAXONOMY NAME:OWASP Attacks:ENTRY NAME:Content Spoofing::",
"Notes": ""
},
{
"CAPEC ID": "150",
"ID": "Collect Data from Common Resource Locations",
"group": 16,
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An adversary exploits well-known locations for resources for the purposes of undermining the security of the target. In many, if not most systems, files and resources are organized in a default tree structure. This can be useful for adversaries because they often know where to look for resources or files that are necessary for attacks. Even when the precise location of a targeted resource may not be known, naming conventions may indicate a small area of the target machine's file tree where the resources are typically located. For example, configuration files are normally stored in the /etc director on Unix systems. Adversaries can take advantage of this to commit other types of attacks.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:116::",
"Execution Flow": "",
"Prerequisites": "::The targeted applications must either expect files to be located at a specific location or, if the location of the files can be configured by the user, the user either failed to move the files from the default location or placed them in a conventional location for files of the given type.::",
"Skills Required": "",
"Resources Required": "::None: No specialized resources are required to execute this type of attack. In some cases, the attacker need not even have direct access to the locations on the target computer where the targeted resources reside.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "::An adversary can use a technique called Bluesnarfing to retrieve data from Bluetooth enabled devices in which they know where the data is located. This is done by connecting to the device\u2019s Object Exchange (OBEX) Push Profile and making OBEX GET requests for known filenames (contact lists, photos, recent calls). Bluesnarfing was patched shortly after its discovery in 2003 and will only work on devices created before or during this time.::",
"Related Weaknesses": "::552::1239::1258::1266::1272::1323::1324::1330::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1003:ENTRY NAME:OS Credential Dumping::::TAXONOMY NAME:ATTACK:ENTRY ID:1119:ENTRY NAME:Automated Collection::::TAXONOMY NAME:ATTACK:ENTRY ID:1213:ENTRY NAME:Data from Information Repositories::::TAXONOMY NAME:ATTACK:ENTRY ID:1530:ENTRY NAME:Data from Cloud Storage Object::::TAXONOMY NAME:ATTACK:ENTRY ID:1555:ENTRY NAME:Credentials from Password Stores::::TAXONOMY NAME:ATTACK:ENTRY ID:1602:ENTRY NAME:Data from Configuration Repository::",
"Notes": ""
},
{
"CAPEC ID": "158",
"ID": "Sniffing Network Traffic",
"group": 17,
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "In this attack pattern, the adversary monitors network traffic between nodes of a public or multicast network in an attempt to capture sensitive information at the protocol level. Network sniffing applications can reveal TCP/IP, DNS, Ethernet, and other low-level network communication information. The adversary takes a passive role in this attack pattern and simply observes and analyzes the traffic. The adversary may precipitate or indirectly influence the content of the observed transaction, but is never the intended recipient of the target information.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:157::",
"Execution Flow": "",
"Prerequisites": "::The target must be communicating on a network protocol visible by a network sniffing application.::The adversary must obtain a logical position on the network from intercepting target network traffic is possible. Depending on the network topology, traffic sniffing may be simple or challenging. If both the target sender and target recipient are members of a single subnet, the adversary must also be on that subnet in order to see their traffic communication.::",
"Skills Required": "::SKILL:Adversaries can obtain and set up open-source network sniffing tools easily.:LEVEL:Low::",
"Resources Required": "::A tool with the capability of presenting network communication traffic (e.g., Wireshark, tcpdump, Cain and Abel, etc.).::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::",
"Mitigations": "::Obfuscate network traffic through encryption to prevent its readability by network sniffers.::Employ appropriate levels of segmentation to your network in accordance with best practices.::",
"Example Instances": "",
"Related Weaknesses": "::311::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1040:ENTRY NAME:Network Sniffing::::TAXONOMY NAME:ATTACK:ENTRY ID:1111:ENTRY NAME:Multi-Factor Authentication Interception::",
"Notes": ""
},
{
"CAPEC ID": "159",
"ID": "Redirect Access to Libraries",
"group": 18,
"Abstraction": "Standard",
"Status": "Stable",
"Description": "An adversary exploits a weakness in the way an application searches for external libraries to manipulate the execution flow to point to an adversary supplied library or code base. This pattern of attack allows the adversary to compromise the application or server via the execution of unauthorized code. An application typically makes calls to functions that are a part of libraries external to the application. These libraries may be part of the operating system or they may be third party libraries. If an adversary can redirect an application's attempts to access these libraries to other libraries that the adversary supplies, the adversary will be able to force the targeted application to execute arbitrary code. This is especially dangerous if the targeted application has enhanced privileges. Access can be redirected through a number of techniques, including the use of symbolic links, search path modification, and relative path manipulation.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Very High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:154::NATURE:CanPrecede:CAPEC ID:185::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Identify Target] The adversary identifies the target application and determines what libraries are being used.TECHNIQUE:Find public source code and identify library dependencies.:TECHNIQUE:Gain access to the system hosting the application and look for libraries in common locations.::STEP:2:PHASE:Experiment:DESCRIPTION:[Deploy Malicious Libraries] The adversary crafts malicious libraries and deploys them on the system where the application is running, or in a remote location that can be loaded by the application.::STEP:3:PHASE:Exploit:DESCRIPTION:[Redirect Library Calls to Malicious Library] Once the malicious library crafted by the adversary is deployed, the adversary will manipulate the flow of the application such that it calls the malicious library. This can be done in a variety of ways based on how the application is loading and calling libraries.TECHNIQUE:Poison the DNS cache of the system so that it loads a malicious library from a remote location hosted by the adversary instead of the legitimate location:TECHNIQUE:Create a symlink that tricks the application into thinking that a malicious library is the legitimate library.:TECHNIQUE:Use DLL side-loading to place a malicious verison of a DLL in the windows directory.::",
"Prerequisites": "::The target must utilize external libraries and must fail to verify the integrity of these libraries before using them.::",
"Skills Required": "::SKILL:To modify the entries in the configuration file pointing to malicious libraries:LEVEL:Low::SKILL:To force symlink and timing issues for redirecting access to libraries:LEVEL:Medium::SKILL:To reverse engineering the libraries and inject malicious code into the libraries:LEVEL:High::",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:AuthorizationTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Authorization Execute Unauthorized Commands Run Arbitrary Code::SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::",
"Mitigations": "::Implementation: Restrict the permission to modify the entries in the configuration file.::Implementation: Check the integrity of the dynamically linked libraries before use them.::Implementation: Use obfuscation and other techniques to prevent reverse engineering the libraries.::",
"Example Instances": "::In this example, the attacker using ELF infection that redirects the Procedure Linkage Table (PLT) of an executable allowing redirection to be resident outside of the infected executable. The algorithm at the entry point code is as follows... \u2022 mark the text segment writeable \u2022 save the PLT(GOT) entry \u2022 replace the PLT(GOT) entry with the address of the new lib call The algorithm in the new library call is as follows... \u2022 do the payload of the new lib call \u2022 restore the original PLT(GOT) entry \u2022 call the lib call \u2022 save the PLT(GOT) entry again (if its changed) \u2022 replace the PLT(GOT) entry with the address of the new lib call::",
"Related Weaknesses": "::706::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1574.008:ENTRY NAME:Hijack Execution Flow:Path Interception by Search Order Hijacking::",
"Notes": ""
},
{
"CAPEC ID": "163",
"ID": "Spear Phishing",
"group": 19,
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An adversary targets a specific user or group with a Phishing (CAPEC-98) attack tailored to a category of users in order to have maximum relevance and deceptive capability. Spear Phishing is an enhanced version of the Phishing attack targeted to a specific user or group. The quality of the targeted email is usually enhanced by appearing to come from a known or trusted entity. If the email account of some trusted entity has been compromised the message may be digitally signed. The message will contain information specific to the targeted users that will enhance the probability that they will follow the URL to the compromised site. For example, the message may indicate knowledge of the targets employment, residence, interests, or other information that suggests familiarity. As soon as the user follows the instructions in the message, the attack proceeds as a standard Phishing attack.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:98::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Obtain useful contextual detailed information about the targeted user or organization] An adversary collects useful contextual detailed information about the targeted user or organization in order to craft a more deceptive and enticing message to lure the target into responding.TECHNIQUE:Conduct web searching research of target. See also: CAPEC-118.:TECHNIQUE:Identify trusted associates, colleagues and friends of target. See also: CAPEC-118.:TECHNIQUE:Utilize social engineering attack patterns such as Pretexting. See also: CAPEC-407.:TECHNIQUE:Collect social information via dumpster diving. See also: CAPEC-406.:TECHNIQUE:Collect social information via traditional sources. See also: CAPEC-118.:TECHNIQUE:Collect social information via Non-traditional sources. See also: CAPEC-118.::STEP:2:PHASE:Experiment:DESCRIPTION:[Optional: Obtain domain name and certificate to spoof legitimate site] This optional step can be used to help the adversary impersonate the legitimate site more convincingly. The adversary can use homograph attacks to convince users that they are using the legitimate website. Note that this step is not required for phishing attacks, and many phishing attacks simply supply URLs containing an IP address and no SSL certificate.TECHNIQUE:Optionally obtain a domain name that visually looks similar to the legitimate site's domain name. An example is www.paypaI.com vs. www.paypal.com (the first one contains a capital i, instead of a lower case L).:TECHNIQUE:Optionally obtain a legitimate SSL certificate for the new domain name.::STEP:3:PHASE:Experiment:DESCRIPTION:[Optional: Explore legitimate website and create duplicate] An adversary creates a website (optionally at a URL that looks similar to the original URL) that closely resembles the website that they are trying to impersonate. That website will typically have a login form for the victim to put in their authentication credentials. There can be different variations on a theme here.TECHNIQUE:Use spidering software to get copy of web pages on legitimate site.:TECHNIQUE:Manually save copies of required web pages from legitimate site.:TECHNIQUE:Create new web pages that have the legitimate site's look at feel, but contain completely new content.::STEP:4:PHASE:Experiment:DESCRIPTION:[Optional: Build variants of the website with very specific user information e.g., living area, etc.] Once the adversary has their website which duplicates a legitimate website, they need to build very custom user related information in it. For example, they could create multiple variants of the website which would target different living area users by providing information such as local news, local weather, etc. so that the user believes this is a new feature from the website.TECHNIQUE:Integrate localized information in the web pages created to duplicate the original website. Those localized information could be dynamically generated based on unique key or IP address of the future victim.::STEP:5:PHASE:Exploit:DESCRIPTION:[Convince user to enter sensitive information on adversary's site.] An adversary sends a message (typically an e-mail) to the victim that has some sort of a call to action to get the user to click on the link included in the e-mail (which takes the victim to adversary's website) and log in. The key is to get the victim to believe that the message is coming from a legitimate entity trusted by the victim or with which the victim or does business and that the website pointed to by the URL in the e-mail is the legitimate website. A call to action will usually need to sound legitimate and urgent enough to prompt action from the user.TECHNIQUE:Send the user a message from a spoofed legitimate-looking e-mail address that asks the user to click on the included link.:TECHNIQUE:Place phishing link in post to online forum.::STEP:6:PHASE:Exploit:DESCRIPTION:[Use stolen credentials to log into legitimate site] Once the adversary captures some sensitive information through phishing (login credentials, credit card information, etc.) the adversary can leverage this information. For instance, the adversary can use the victim's login credentials to log into their bank account and transfer money to an account of their choice.TECHNIQUE:Log in to the legitimate site using another user's supplied credentials.::",
"Prerequisites": "::None. Any user can be targeted by a Spear Phishing attack.::",
"Skills Required": "::SKILL:Spear phishing attacks require specific knowledge of the victims being targeted, such as which bank is being used by the victims, or websites they commonly log into (Google, Facebook, etc).:LEVEL:Medium::",
"Resources Required": "::An adversay must have the ability communicate their phishing scheme to the victims (via email, instance message, etc.), as well as a website or other platform for victims to enter personal information into.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data:NOTE:Confidentiality Read Data Information Leakage::SCOPE:Accountability:SCOPE:Authentication:SCOPE:Authorization:SCOPE:Non-RepudiationTECHNICAL IMPACT:Gain Privileges:NOTE:Accountability Authentication Authorization Non-Repudiation Gain Privileges Privilege Escalation::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data:NOTE:Integrity Modify Data Data Modification::",
"Mitigations": "::Do not follow any links that you receive within your e-mails and certainly do not input any login credentials on the page that they take you too. Instead, call your Bank, PayPal, eBay, etc., and inquire about the problem. A safe practice would also be to type the URL of your bank in the browser directly and only then log in. Also, never reply to any e-mails that ask you to provide sensitive information of any kind.::",
"Example Instances": "::The target gets an official looking e-mail from their bank stating that their account has been temporarily locked due to suspected unauthorized activity that happened in a different area from where they live (details might be provided by the spear phishers) and that they need to click on the link included in the e-mail to log in to their bank account in order to unlock it. The link in the e-mail looks very similar to that of their bank and once the link is clicked, the log in page is the exact replica. The target supplies their login credentials after which they are notified that their account has now been unlocked and that everything is fine. An adversary has just collected the target's online banking information which can now be used by them to log into the target's bank account and transfer money to a bank account of the adversary's choice.::An adversary can leverage a weakness in the SMB protocol by sending the target, an official looking e-mail from their employer's IT Department stating that their system has vulnerable software, which they need to manually patch by accessing an updated version of the software by clicking on a provided link to a network share. Once the link is clicked, the target is directed to an external server controlled by the adversary or to a malicious file on a public access share. The SMB protocol will then attempt to authenticate the target to the adversary controlled server, which allows the adversary to capture the hashed credentials over SMB. These credentials can then be used to execute offline brute force attacks or a Pass The Hash attack.::",
"Related Weaknesses": "",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1534:ENTRY NAME:Internal Spearfishing::::TAXONOMY NAME:ATTACK:ENTRY ID:1566.001:ENTRY NAME:Phishing: Spearfishing Attachment::::TAXONOMY NAME:ATTACK:ENTRY ID:1566.002:ENTRY NAME:Phishing: Spearfishing Link::::TAXONOMY NAME:ATTACK:ENTRY ID:1566.003:ENTRY NAME:Phishing: Spearfishing via Service::::TAXONOMY NAME:ATTACK:ENTRY ID:1598.001:ENTRY NAME:Phishing for Information: Spearfishing Service::::TAXONOMY NAME:ATTACK:ENTRY ID:1598.002:ENTRY NAME:Phishing for Information: Spearfishing Attachment::::TAXONOMY NAME:ATTACK:ENTRY ID:1598.003:ENTRY NAME:Phishing for Information: Spearfishing Link::",
"Notes": ""
},
{
"CAPEC ID": "165",
"ID": "File Manipulation",
"group": 20,
"Abstraction": "Meta",
"Status": "Draft",
"Description": "An attacker modifies file contents or attributes (such as extensions or names) of files in a manner to cause incorrect processing by an application. Attackers use this class of attacks to cause applications to enter unstable states, overwrite or expose sensitive information, and even execute arbitrary code with the application's privileges. This class of attacks differs from attacks on configuration information (even if file-based) in that file manipulation causes the file processing to result in non-standard behaviors, such as buffer overflows or use of the incorrect interpreter. Configuration attacks rely on the application interpreting files correctly in order to insert harmful configuration information. Likewise, resource location attacks rely on controlling an application's ability to locate files, whereas File Manipulation attacks do not require the application to look in a non-default location, although the two classes of attacks are often combined.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::The target must use the affected file without verifying its integrity.::",
"Skills Required": "",
"Resources Required": "::None: No specialized resources are required to execute this type of attack. In some cases, tools can be used to better control the response of the targeted application to the modified file.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1036.003:ENTRY NAME:Masquerading: Rename System Utilities::",
"Notes": ""
},
{
"CAPEC ID": "169",
"ID": "Footprinting",
"group": 21,
"Abstraction": "Meta",
"Status": "Stable",
"Description": "An adversary engages in probing and exploration activities to identify constituents and properties of the target.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Very Low",
"Related Attack Patterns": "",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Request Footprinting] The attacker examines the website information and source code of the website and uses automated tools to get as much information as possible about the system and organization.TECHNIQUE:Open Source Footprinting: Examine the website about the organization and skim through the webpage's HTML source to look for comments.:TECHNIQUE:Network Enumeration: Perform various queries (Registrar Query, Organizational Query, Domain Query, Network Query, POC Query) on the many whois databases found on the internet to identify domain names and associated networks.:TECHNIQUE:DNS Interrogation: Once basic information is gathered the attack could begin to query DNS.:TECHNIQUE:Other Techniques: Use ping sweep, TCP scan, UDP scan, OS Identification various techniques to gain more information about the system and network.::",
"Prerequisites": "::An application must publicize identifiable information about the system or application through voluntary or involuntary means. Certain identification details of information systems are visible on communication networks (e.g., if an adversary uses a sniffer to inspect the traffic) due to their inherent structure and protocol standards. Any system or network that can be detected can be footprinted. However, some configuration choices may limit the useful information that can be collected during a footprinting attack.::",
"Skills Required": "::SKILL:The adversary knows how to send HTTP request, run the scan tool.:LEVEL:Low::",
"Resources Required": "::The adversary requires a variety of tools to collect information about the target. These include port/network scanners and tools to analyze responses from applications to determine version and configuration information. Footprinting a system adequately may also take a few days if the attacker wishes the footprinting attempt to go undetected.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::",
"Mitigations": "::Keep patches up to date by installing weekly or daily if possible.::Shut down unnecessary services/ports.::Change default passwords by choosing strong passwords.::Curtail unexpected input.::Encrypt and password-protect sensitive data.::Avoid including information that has the potential to identify and compromise your organization's security such as access to business plans, formulas, and proprietary documents.::",
"Example Instances": "::In this example let us look at the website http://www.example.com to get much information we can about Alice. From the website, we find that Alice also runs foobar.org. We type in www example.com into the prompt of the Name Lookup window in a tool, and our result is this IP address: 192.173.28.130 We type the domain into the Name Lookup prompt and we are given the same IP. We can safely say that example and foobar.org are hosted on the same box. But if we were to do a reverse name lookup on the IP, which domain will come up? www.example.com or foobar.org? Neither, the result is nijasvspirates.org. So nijasvspirates.org is the name of the box hosting 31337squirrel.org and foobar.org. So now that we have the IP, let's check to see if nijasvspirates is awake. We type the IP into the prompt in the Ping window. We'll set the interval between packets to 1 millisecond. We'll set the number of seconds to wait until a ping times out to 5. We'll set the ping size to 500 bytes and we'll send ten pings. Ten packets sent and ten packets received. nijasvspirates.org returned a message to my computer within an average of 0.35 seconds for every packet sent. nijasvspirates is alive. We open the Whois window and type nijasvspirates.org into the Query prompt, and whois.networksolutions.com into the Server prompt. This means we'll be asking Network Solutions to tell us everything they know about nijasvspirates.org. The result is this laundry list of info: Registrant: FooBar (nijasvspirates -DOM) p.o.box 11111 SLC, UT 84151 US Domain Name: nijasvspirates.ORG Administrative Contact, Billing Contact: Smith, John [email protected] FooBar p.o.box 11111 SLC, UT 84151 555-555-6103 Technical Contact: Johnson, Ken [email protected] fierymonkey p.o.box 11111 SLC, UT 84151 555-555-3849 Record last updated on 17-Aug-2001. Record expires on 11-Aug-2002. Record created on 11-Aug-2000. Database last updated on 12-Dec-2001 04:06:00 EST. Domain servers in listed order: NS1. fierymonkey.ORG 192.173.28.130 NS2. fierymonkey.ORG 64.192.168.80 A corner stone of footprinting is Port Scanning. Let's port scan nijasvspirates.org and see what kind of services are running on that box. We type in the nijasvspirates IP into the Host prompt of the Port Scan window. We'll start searching from port number 1, and we'll stop at the default Sub7 port, 27374. Our results are: 21 TCP ftp 22 TCP ssh SSH-1.99-OpenSSH_2.30 25 TCP smtp 53 TCP domain 80 TCP www 110 TCP pop3 111 TCP sunrpc 113 TCP ident Just by this we know that Alice is running a website and email, using POP3, SUNRPC (SUN Remote Procedure Call), and ident.::",
"Related Weaknesses": "::200::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1217:ENTRY NAME:Browser Bookmark Discovery::::TAXONOMY NAME:ATTACK:ENTRY ID:1592:ENTRY NAME:Gather Victim Host Information::::TAXONOMY NAME:ATTACK:ENTRY ID:1595:ENTRY NAME:Active Scanning::",
"Notes": ""
},
{
"CAPEC ID": "17",
"ID": "Using Malicious Files",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An attack of this type exploits a system's configuration that allows an adversary to either directly access an executable file, for example through shell access; or in a possible worst case allows an adversary to upload a file and then execute it. Web servers, ftp servers, and message oriented middleware systems which have many integration points are particularly vulnerable, because both the programmers and the administrators must be in synch regarding the interfaces and the correct privileges for each interface.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Very High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:122::NATURE:CanPrecede:CAPEC ID:233::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Determine File/Directory Configuration] The adversary looks for misconfigured files or directories on a system that might give executable access to an overly broad group of users.TECHNIQUE:Through shell access to a system, use the command ls -l to view permissions for files and directories.::STEP:2:PHASE:Experiment:DESCRIPTION:[Upload Malicious Files] If the adversary discovers a directory that has executable permissions, they will attempt to upload a malicious file to execute.TECHNIQUE:Upload a malicious file through a misconfigured FTP server.::STEP:3:PHASE:Exploit:DESCRIPTION:[Execute Malicious File] The adversary either executes the uploaded malicious file, or executes an existing file that has been misconfigured to allow executable access to the adversary.::",
"Prerequisites": "::System's configuration must allow an attacker to directly access executable files or upload files to execute. This means that any access control system that is supposed to mediate communications between the subject and the object is set incorrectly or assumes a benign environment.::",
"Skills Required": "::SKILL:To identify and execute against an over-privileged system interface:LEVEL:Low::",
"Resources Required": "::Ability to communicate synchronously or asynchronously with server that publishes an over-privileged directory, program, or interface. Optionally, ability to capture output directly through synchronous communication or other method such as FTP.::",
"Indicators": "",
"Consequences": "::SCOPE:Confidentiality:SCOPE:Integrity:SCOPE:AvailabilityTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Confidentiality Integrity Availability Execute Unauthorized Commands Run Arbitrary Code::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::",
"Mitigations": "::Design: Enforce principle of least privilege::Design: Run server interfaces with a non-root account and/or utilize chroot jails or other configuration techniques to constrain privileges even if attacker gains some limited access to commands.::Implementation: Perform testing such as pen-testing and vulnerability scanning to identify directories, programs, and interfaces that grant direct access to executables.::",
"Example Instances": "::Consider a directory on a web server with the following permissions drwxrwxrwx 5 admin public 170 Nov 17 01:08 webroot This could allow an attacker to both execute and upload and execute programs' on the web server. This one vulnerability can be exploited by a threat to probe the system and identify additional vulnerabilities to exploit.::",
"Related Weaknesses": "::732::285::272::59::282::270::693::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1574.005:ENTRY NAME:Hijack Execution Flow: Executable Installer File Permissions Weakness::::TAXONOMY NAME:ATTACK:ENTRY ID:1574.010:ENTRY NAME:Hijack Execution Flow: Services File Permissions Weakness::",
"Notes": ""
},
{
"CAPEC ID": "177",
"ID": "Create files with the same name as files protected with a higher classification",
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An attacker exploits file location algorithms in an operating system or application by creating a file with the same name as a protected or privileged file. The attacker could manipulate the system if the attacker-created file is trusted by the operating system or an application component that attempts to load the original file. Applications often load or include external files, such as libraries or configuration files. These files should be protected against malicious manipulation. However, if the application only uses the name of the file when locating it, an attacker may be able to create a file with the same name and place it in a directory that the application will search before the directory with the legitimate file is searched. Because the attackers' file is discovered first, it would be used by the target application. This attack can be extremely destructive if the referenced file is executable and/or is granted special privileges based solely on having a particular name.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Very High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:17::",
"Execution Flow": "",
"Prerequisites": "::The target application must include external files. Most non-trivial applications meet this criterion.::The target application does not verify that a located file is the one it was looking for through means other than the name. Many applications fail to perform checks of this type.::The directories the target application searches to find the included file include directories writable by the attacker which are searched before the protected directory containing the actual files. It is much less common for applications to meet this criterion, but if an attacker can manipulate the application's search path (possibly by controlling environmental variables) then they can force this criterion to be met.::",
"Skills Required": "",
"Resources Required": "::The attacker must have sufficient access to place an arbitrarily named file somewhere early in the application's search path.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::706::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1036:ENTRY NAME:Masquerading::",
"Notes": ""
},
{
"CAPEC ID": "180",
"ID": "Exploiting Incorrectly Configured Access Control Security Levels",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An attacker exploits a weakness in the configuration of access controls and is able to bypass the intended protection that these measures guard against and thereby obtain unauthorized access to the system or network. Sensitive functionality should always be protected with access controls. However configuring all but the most trivial access control systems can be very complicated and there are many opportunities for mistakes. If an attacker can learn of incorrectly configured access security settings, they may be able to exploit this in an attack.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:122::NATURE:CanPrecede:CAPEC ID:17::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Survey] The attacker surveys the target application, possibly as a valid and authenticated user.TECHNIQUE:Spider the web site for all available links.:TECHNIQUE:Brute force to guess all function names/action with different privileges.::STEP:2:PHASE:Experiment:DESCRIPTION:[Identify weak points in access control configurations] The attacker probes the access control for functions and data identified in the Explore phase to identify potential weaknesses in how the access controls are configured.TECHNIQUE:The attacker attempts authenticated access to targeted functions and data.:TECHNIQUE:The attacker attempts unauthenticated access to targeted functions and data.:TECHNIQUE:The attacker attempts indirect and side channel access to targeted functions and data.::STEP:3:PHASE:Exploit:DESCRIPTION:[Access the function or data bypassing the access control] The attacker executes the function or accesses the data identified in the Explore phase bypassing the access control.TECHNIQUE:The attacker executes the function or accesses the data not authorized to them.::",
"Prerequisites": "::The target must apply access controls, but incorrectly configure them. However, not all incorrect configurations can be exploited by an attacker. If the incorrect configuration applies too little security to some functionality, then the attacker may be able to exploit it if the access control would be the only thing preventing an attacker's access and it no longer does so. If the incorrect configuration applies too much security, it must prevent legitimate activity and the attacker must be able to force others to require this activity..::",
"Skills Required": "::SKILL:In order to discover unrestricted resources, the attacker does not need special tools or skills. They only have to observe the resources or access mechanisms invoked as each action is performed and then try and access those access mechanisms directly.:LEVEL:Low::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:AuthorizationTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Authorization Execute Unauthorized Commands Run Arbitrary Code::SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::SCOPE:AvailabilityTECHNICAL IMPACT:Unreliable Execution::",
"Mitigations": "::Design: Configure the access control correctly.::",
"Example Instances": "::For example, an incorrectly configured Web server, may allow unauthorized access to it, thus threaten the security of the Web application.::",
"Related Weaknesses": "::732::1190::1191::1193::1220::1268::1280::1297::1311::1315::1318::1320::1321::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1574.010:ENTRY NAME:Hijack Execution Flow: Services File Permissions Weaknesses::",
"Notes": ""
},
{
"CAPEC ID": "186",
"ID": "Malicious Software Update",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An adversary uses deceptive methods to cause a user or an automated process to download and install dangerous code believed to be a valid update that originates from an adversary controlled source.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:184::NATURE:CanFollow:CAPEC ID:98::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Identify target] The adversary must first identify what they want their target to be. Because malicious software updates can be carried out in a variety of ways, the adversary will first not only identify a target program, but also what users they wish to target. This attack can be targeted (a particular user or group of users) or untargeted (many different users).::STEP:2:PHASE:Experiment:DESCRIPTION:[Craft a deployment mechanism based on the target] The adversary must craft a deployment mechanism to deploy the malicious software update. This mechanism will differ based on if the attack is targeted or untargeted.TECHNIQUE:Targeted attack: hosting what appears to be a software update, then harvesting actual email addresses for an organization, or generating commonly used email addresses, and then sending spam, phishing, or spear-phishing emails to the organization's users requesting that they manually download and install the malicious software update.:TECHNIQUE:Targeted attack: Instant Messaging virus payload, which harvests the names from a user's contact list and sends instant messages to those users to download and apply the update:TECHNIQUE:Untargeted attack: Spam the malicious update to as many users as possible through unsolicited email, instant messages, or social media messages.:TECHNIQUE:Untargeted attack: Send phishing emails to as many users as possible and pretend to be a legitimate source suggesting to download an important software update.:TECHNIQUE:Untargeted attack: Use trojans/botnets to aid in either of the two untargeted attacks.::STEP:3:PHASE:Exploit:DESCRIPTION:[Deploy malicious software update] Using the deployment mechanism from the previous step, the adversary gets a user to install the malicious software update.::",
"Prerequisites": "",
"Skills Required": "::SKILL:This attack requires advanced cyber capabilities:LEVEL:High::",
"Resources Required": "::Manual or user-assisted attacks require deceptive mechanisms to trick the user into clicking a link or downloading and installing software. Automated update attacks require the adversary to host a payload and then trigger the installation of the payload code.::",
"Indicators": "",
"Consequences": "::SCOPE:Access Control:SCOPE:Availability:SCOPE:ConfidentialityTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Access Control Availability Confidentiality Execute Unauthorized Commands Utilize the built-in software update mechanisms of the commercial components to deliver software that could compromise security credentials, enable a denial-of-service attack, or enable tracking.::",
"Mitigations": "::Validate software updates before installing.::",
"Example Instances": "::Using an automated process to download and install dangerous code was key part of the NotPeyta attack [REF-697]::",
"Related Weaknesses": "::494::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1195.002:ENTRY NAME:Supply Chain Compromise: Compromise Software Supply Chain::",
"Notes": "TYPE:Other:NOTE:Other class of attacks focus on firmware, where malicious updates are made to the core system firmware or BIOS. Since this occurs outside the controls of the operating system, the OS detection and prevention mechanisms do not aid, thus allowing an adversary to evade defenses as well as gain persistence on the target's system.::"
},
{
"CAPEC ID": "187",
"ID": "Malicious Automated Software Update via Redirection",
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An attacker exploits two layers of weaknesses in server or client software for automated update mechanisms to undermine the integrity of the target code-base. The first weakness involves a failure to properly authenticate a server as a source of update or patch content. This type of weakness typically results from authentication mechanisms which can be defeated, allowing a hostile server to satisfy the criteria that establish a trust relationship. The second weakness is a systemic failure to validate the identity and integrity of code downloaded from a remote location, hence the inability to distinguish malicious code from a legitimate update.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:186::",
"Execution Flow": "",
"Prerequisites": "",
"Skills Required": "",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:Access Control:SCOPE:Availability:SCOPE:ConfidentialityTECHNICAL IMPACT:Execute Unauthorized Commands::",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::494::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1072:ENTRY NAME:Software Deployment Tools::",
"Notes": ""
},
{
"CAPEC ID": "19",
"ID": "Embedding Scripts within Scripts",
"Abstraction": "Standard",
"Status": "Stable",
"Description": "An adversary leverages the capability to execute their own script by embedding it within other scripts that the target software is likely to execute due to programs' vulnerabilities that are brought on by allowing remote hosts to execute scripts.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:242::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Spider] Using a browser or an automated tool, an adversary records all entry points for inputs that happen to be reflected in a client-side script element. These script elements can be located in the HTML content (head, body, comments), in an HTML tag, XML, CSS, etc.TECHNIQUE:Use a spidering tool to follow and record all non-static links that are likely to have input parameters (through forms, URL, fragments, etc.) actively used by the Web application.:TECHNIQUE:Use a proxy tool to record all links visited during a manual traversal of the web application.:TECHNIQUE:Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.::STEP:2:PHASE:Experiment:DESCRIPTION:[Probe identified potential entry points for XSS vulnerability] The adversary uses the entry points gathered in the Explore phase as a target list and injects various common script payloads to determine if an entry point actually represents a vulnerability and to characterize the extent to which the vulnerability can be exploited.TECHNIQUE:Manually inject various script payloads into each identified entry point using a list of common script injection probes that typically work in a client-side script elements context and observe system behavior to determine if script was executed.:TECHNIQUE:Manually inject various script payloads into each identified entry point using a list of common script injection probes that typically work in a server-side script elements context and observe system behavior to determine if script was executed.:TECHNIQUE:Use an automated injection attack tool to inject various script payloads into each identified entry point using a list of common script injection probes that typically work in a client-side script elements context and observe system behavior to determine if script was executed.:TECHNIQUE:Use an automated injection attack tool to inject various script payloads into each identified entry point using a list of common script injection probes that typically work in a server-side script elements context and observe system behavior to determine if script was executed.:TECHNIQUE:Use a proxy tool to record results of the created requests.::STEP:3:PHASE:Exploit:DESCRIPTION:[Steal session IDs, credentials, page content, etc.] As the adversary succeeds in exploiting the vulnerability, they can choose to steal user's credentials in order to reuse or to analyze them later on.TECHNIQUE:Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and sends document information to the adversary.:TECHNIQUE:Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an adversary's server and then causes the browser to execute appropriately.::STEP:4:PHASE:Exploit:DESCRIPTION:[Forceful browsing] When the adversary targets the current application or another one (through CSRF vulnerabilities), the user will then be the one who perform the attacks without being aware of it. These attacks are mostly targeting application logic flaws, but it can also be used to create a widespread attack against a particular website on the user's current network (Internet or not).TECHNIQUE:Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and performs actions on the same web site:TECHNIQUE:Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an adversary's server and then causes the browser to execute request to other web sites (especially the web applications that have CSRF vulnerabilities).::STEP:5:PHASE:Exploit:DESCRIPTION:[Content spoofing] By manipulating the content, the adversary targets the information that the user would like to get from the website.TECHNIQUE:Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and exposes adversary-modified invalid information to the user on the current web page.::",
"Prerequisites": "::Target software must be able to execute scripts, and also grant the adversary privilege to write/upload scripts.::",
"Skills Required": "::SKILL:To load malicious script into open, e.g. world writable directory:LEVEL:Low::SKILL:Executing remote scripts on host and collecting output:LEVEL:Medium::",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:Confidentiality:SCOPE:Integrity:SCOPE:AvailabilityTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Confidentiality Integrity Availability Execute Unauthorized Commands Run Arbitrary Code::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::",
"Mitigations": "::Use browser technologies that do not allow client side scripting.::Utilize strict type, character, and encoding enforcement.::Server side developers should not proxy content via XHR or other means. If a HTTP proxy for remote content is setup on the server side, the client's browser has no way of discerning where the data is originating from.::Ensure all content that is delivered to client is sanitized against an acceptable content specification.::Perform input validation for all remote content.::Perform output validation for all remote content.::Disable scripting languages such as JavaScript in browser::Session tokens for specific host::Patching software. There are many attack vectors for XSS on the client side and the server side. Many vulnerabilities are fixed in service packs for browser, web servers, and plug in technologies, staying current on patch release that deal with XSS countermeasures mitigates this.::Privileges are constrained, if a script is loaded, ensure system runs in chroot jail or other limited authority mode::",
"Example Instances": "::Ajax applications enable rich functionality for browser based web applications. Applications like Google Maps deliver unprecedented ability to zoom in and out, scroll graphics, and change graphic presentation through Ajax. The security issues that an adversary may exploit in this instance are the relative lack of security features in JavaScript and the various browser's implementation of JavaScript, these security gaps are what XSS and a host of other client side vulnerabilities are based on. While Ajax may not open up new security holes, per se, due to the conversational aspects between client and server of Ajax communication, attacks can be optimized. A single zoom in or zoom out on a graphic in an Ajax application may round trip to the server dozens of times. One of the first steps many adversarys take is frequently footprinting an environment, this can include scanning local addresses like 192.*.*.* IP addresses, checking local directories, files, and settings for known vulnerabilities, and so on. <IMG SRC=javascript:alert('XSS')> The XSS script that is embedded in a given IMG tag can be manipulated to probe a different address on every click of the mouse or other motions that the Ajax application is aware of. In addition the enumerations allow for the adversary to nest sequential logic in the attacks. While Ajax applications do not open up brand new attack vectors, the existing attack vectors are more than adequate to execute attacks, and now these attacks can be optimized to sequentially execute and enumerate host environments.::~/.bash_profile and ~/.bashrc are executed in a user's context when a new shell opens or when a user logs in so that their environment is set correctly. ~/.bash_profile is executed for login shells and ~/.bashrc is executed for interactive non-login shells. This means that when a user logs in (via username and password) to the console (either locally or remotely via something like SSH), ~/.bash_profile is executed before the initial command prompt is returned to the user. After that, every time a new shell is opened, ~/.bashrc is executed. This allows users more fine grained control over when they want certain commands executed. These files are meant to be written to by the local user to configure their own environment; however, adversaries can also insert code into these files to gain persistence each time a user logs in or opens a new shell.::",
"Related Weaknesses": "::284::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1546.004:ENTRY NAME:Event Triggered Execution:.bash_profile and .bashrc::",
"Notes": ""
},
{
"CAPEC ID": "191",
"ID": "Read Sensitive Constants Within an Executable",
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An adversary engages in activities to discover any sensitive constants present within the compiled code of an executable. These constants may include literal ASCII strings within the file itself, or possibly strings hard-coded into particular routines that can be revealed by code refactoring methods including static and dynamic analysis.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Low",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:167::",
"Execution Flow": "",
"Prerequisites": "::Access to a binary or executable such that it can be analyzed by various utilities.::",
"Skills Required": "",
"Resources Required": "::Binary analysis programs such as 'strings' or 'grep', or hex editors.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::798::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1552.001:ENTRY NAME:Unsecured Credentials:Credentials in files::",
"Notes": "TYPE:Other:NOTE:More sophisticated methods of searching for sensitive strings within a file involve disassembly or decompiling of the file. One could, for example, utilize disassembly methods on an ISAPI executable or dll to discover a hard-coded password within the code as it executes. This type of analysis usually involves four stages in which first a debugger is attached to the running process, anti-debugging countermeasures are circumvented or bypassed, the program is analyzed step-by-step, and breakpoints are established so that discrete functions and data structures can be analyzed. Debugging tools such as SoftICE, Ollydbg, or vendor supplied debugging tools are often used. Disassembly tools such as IDA pro, or similar tools, can also be employed. A third strategy for accessing sensitive strings within a binary involves the decompilation of the file itself into source code that reveals the strings. An example of this type of analysis involves extracting source code from a java JAR file and then using functionality within a java IDE to search the source code for sensitive, hard-coded information. In performing this analysis native java tools, such as jar are used to extract the compiled class files. Next, a java decompiler such as DJ is used to extract java source code from the compiled classes, revealing source code. Finally, the source code is audited to reveal sensitive information, a step that is usually assisted by source code analysis programs.::"
},
{
"CAPEC ID": "196",
"ID": "Session Credential Falsification through Forging",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An attacker creates a false but functional session credential in order to gain or usurp access to a service. Session credentials allow users to identify themselves to a service after an initial authentication without needing to resend the authentication information (usually a username and password) with every message. If an attacker is able to forge valid session credentials they may be able to bypass authentication or piggy-back off some other authenticated user's session. This attack differs from Reuse of Session IDs and Session Sidejacking attacks in that in the latter attacks an attacker uses a previous or existing credential without modification while, in a forging attack, the attacker must create their own credential, although it may be based on previously observed credentials.",
"Alternate Terms": "",
"Likelihood Of Attack": "Medium",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:CanPrecede:CAPEC ID:384::NATURE:CanPrecede:CAPEC ID:61::NATURE:ChildOf:CAPEC ID:21::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Analyze and Understand Session IDs] The attacker finds that the targeted application use session credentials to identify legitimate users.TECHNIQUE:An attacker makes many anonymous connections and records the session IDs.:TECHNIQUE:An attacker makes authorized connections and records the session tokens or credentials.::STEP:2:PHASE:Experiment:DESCRIPTION:[Create Session IDs.] Attackers craft messages containing their forged credentials in GET, POST request, HTTP headers or cookies.TECHNIQUE:The attacker manipulates the HTTP request message and adds their forged session IDs in to the requests or cookies.::STEP:3:PHASE:Exploit:DESCRIPTION:[Abuse the Victim's Session Credentials] The attacker fixates falsified session ID to the victim when victim access the system. Once the victim has achieved a higher level of privilege, possibly by logging into the application, the attacker can now take over the session using the forged session identifier.TECHNIQUE:The attacker loads the predefined or predicted session ID into their browser and browses to protected data or functionality.:TECHNIQUE:The attacker loads the predefined or predicted session ID into their software and utilizes functionality with the rights of the victim.::",
"Prerequisites": "::The targeted application must use session credentials to identify legitimate users. Session identifiers that remains unchanged when the privilege levels change. Predictable session identifiers.::",
"Skills Required": "::SKILL:Forge the session credential and reply the request.:LEVEL:Medium::",
"Resources Required": "::Attackers may require tools to craft messages containing their forged credentials, and ability to send HTTP request to a web application.::",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:AuthorizationTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Authorization Execute Unauthorized Commands Run Arbitrary Code::SCOPE:Accountability:SCOPE:Authentication:SCOPE:Authorization:SCOPE:Non-RepudiationTECHNICAL IMPACT:Gain Privileges::SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::",
"Mitigations": "::Implementation: Use session IDs that are difficult to guess or brute-force: One way for the attackers to obtain valid session IDs is by brute-forcing or guessing them. By choosing session identifiers that are sufficiently random, brute-forcing or guessing becomes very difficult.::Implementation: Regenerate and destroy session identifiers when there is a change in the level of privilege: This ensures that even though a potential victim may have followed a link with a fixated identifier, a new one is issued when the level of privilege changes.::",
"Example Instances": "::This example uses client side scripting to set session ID in the victim's browser. The JavaScript code document.cookie=sessionid=0123456789 fixates a falsified session credential into victim's browser, with the help of crafted a URL link. http://www.example.com/<script>document.cookie=sessionid=0123456789;</script> A similar example uses session ID as an argument of the URL. http://www.example.com/index.php/sessionid=0123456789 Once the victim clicks the links, the attacker may be able to bypass authentication or piggy-back off some other authenticated victim's session.::",
"Related Weaknesses": "::384::664::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1134.002:ENTRY NAME:Access Token Manipulation: Create Process with Token::::TAXONOMY NAME:ATTACK:ENTRY ID:1134.003:ENTRY NAME:Access Token Manipulation: Make and Impersonate Token::::TAXONOMY NAME:ATTACK:ENTRY ID:1606:ENTRY NAME:Forge Web Credentials::",
"Notes": ""
},
{
"CAPEC ID": "2",
"ID": "Inducing Account Lockout",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An attacker leverages the security functionality of the system aimed at thwarting potential attacks to launch a denial of service attack against a legitimate system user. Many systems, for instance, implement a password throttling mechanism that locks an account after a certain number of incorrect log in attempts. An attacker can leverage this throttling mechanism to lock a legitimate user out of their own account. The weakness that is being leveraged by an attacker is the very security feature that has been put in place to counteract attacks.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:212::",
"Execution Flow": "::STEP:1:PHASE:Experiment:DESCRIPTION:[Investigate account lockout behavior of system] Investigate the security features present in the system that may trigger an account lockoutTECHNIQUE:Analyze system documentation to find list of events that could potentially cause account lockout:TECHNIQUE:Obtain user account in system and attempt to lock it out by sending malformed or incorrect data repeatedly:TECHNIQUE:Determine another user's login ID, and attempt to brute force the password (or other credentials) for it a predetermined number of times, or until the system provides an indication that the account is locked out.::STEP:2:PHASE:Experiment:DESCRIPTION:[Obtain list of user accounts to lock out] Generate a list of valid user accounts to lock outTECHNIQUE:Obtain list of authorized users using another attack pattern, such as SQL Injection.:TECHNIQUE:Attempt to create accounts if possible; system should indicate if a user ID is already taken.:TECHNIQUE:Attempt to brute force user IDs if system reveals whether a given user ID is valid or not upon failed login attempts.::STEP:3:PHASE:Exploit:DESCRIPTION:[Lock Out Accounts] Perform lockout procedure for all accounts that the attacker wants to lock out.TECHNIQUE:For each user ID to be locked out, perform the lockout procedure discovered in the first step.::",
"Prerequisites": "::The system has a lockout mechanism.::An attacker must be able to reproduce behavior that would result in an account being locked.::",
"Skills Required": "::SKILL:No programming skills or computer knowledge is needed. An attacker can easily use this attack pattern following the Execution Flow above.:LEVEL:Low::",
"Resources Required": "::Computer with access to the login portion of the target system::",
"Indicators": "",
"Consequences": "::SCOPE:AvailabilityTECHNICAL IMPACT:Resource Consumption:NOTE:Availability Resource Consumption Denial of Service::",
"Mitigations": "::Implement intelligent password throttling mechanisms such as those which take IP address into account, in addition to the login name.::When implementing security features, consider how they can be misused and made to turn on themselves.::",
"Example Instances": "::A famous example of this type an attack is the eBay attack. eBay always displays the user id of the highest bidder. In the final minutes of the auction, one of the bidders could try to log in as the highest bidder three times. After three incorrect log in attempts, eBay password throttling would kick in and lock out the highest bidder's account for some time. An attacker could then make their own bid and their victim would not have a chance to place the counter bid because they would be locked out. Thus an attacker could win the auction.::",
"Related Weaknesses": "::645::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1531:ENTRY NAME:Account Access Removal::",
"Notes": ""
},
{
"CAPEC ID": "203",
"ID": "Manipulate Registry Information",
"Abstraction": "Standard",
"Status": "Stable",
"Description": "An adversary exploits a weakness in authorization in order to modify content within a registry (e.g., Windows Registry, Mac plist, application registry). Editing registry information can permit the adversary to hide configuration information or remove indicators of compromise to cover up activity. Many applications utilize registries to store configuration and service information. As such, modification of registry information can affect individual services (affecting billing, authorization, or even allowing for identity spoofing) or the overall configuration of a targeted application. For example, both Java RMI and SOAP use registries to track available services. Changing registry values is sometimes a preliminary step towards completing another attack pattern, but given the long term usage of many registry values, manipulation of registry information could be its own end.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:176::",
"Execution Flow": "",
"Prerequisites": "::The targeted application must rely on values stored in a registry.::The adversary must have a means of elevating permissions in order to access and modify registry content through either administrator privileges (e.g., credentialed access), or a remote access tool capable of editing a registry through an API.::",
"Skills Required": "::SKILL:The adversary requires privileged credentials or the development/acquiring of a tailored remote access tool.:LEVEL:High::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "::Ensure proper permissions are set for Registry hives to prevent users from modifying keys.::Employ a robust and layered defensive posture in order to prevent unauthorized users on your system.::Employ robust identification and audit/blocking using an allowlist of applications on your system. Unnecessary applications, utilities, and configurations will have a presence in the system registry that can be leveraged by an adversary through this attack pattern.::",
"Example Instances": "::Manipulating registration information can be undertaken in advance of a path traversal attack (inserting relative path modifiers) or buffer overflow attack (enlarging a registry value beyond an application's ability to store it).::",
"Related Weaknesses": "::15::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1112:ENTRY NAME:Modify Registry::::TAXONOMY NAME:ATTACK:ENTRY ID:1647:ENTRY NAME:Plist Modification::",
"Notes": ""
},
{
"CAPEC ID": "204",
"ID": "Lifting Sensitive Data Embedded in Cache",
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "An adversary examines a target application's cache, or a browser cache, for sensitive information. Many applications that communicate with remote entities or which perform intensive calculations utilize caches to improve efficiency. However, if the application computes or receives sensitive information and the cache is not appropriately protected, an attacker can browse the cache and retrieve this information. This can result in the disclosure of sensitive information.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:167::NATURE:CanPrecede:CAPEC ID:560::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Identify Application Cache] An adversary first identifies an application that utilizes a cache. This could either be a web application storing data in a browser cache, or an application running on a separate machine. The adversary examines the cache to determine file permissions and possible encryption.TECHNIQUE:Use probing tools to look for application cache files on a machine.:TECHNIQUE:Use a web application and determine if any sensitive information is stored in browser cache.::STEP:2:PHASE:Experiment:DESCRIPTION:[Attempt to Access Cache] Once the cache has been discovered, the adversary attempts to access the cached data. This often requires previous access to a machine hosting the target application.TECHNIQUE:Use priviledge escalation to access cache files that might have strict privileges.:TECHNIQUE:If the application cache is encrypted with weak encryption, attempt to understand the encryption technique and break the encryption.::STEP:3:PHASE:Exploit:DESCRIPTION:[Lift Sensitive Data from Cache] After gaining access to cached data, an adversary looks for potentially sensitive information and stores it for malicious use. This sensitive data could possibly be used in follow-up attacks related to authentication or authorization.TECHNIQUE:Using a public computer, or gaining access to a victim's computer, examine browser cache to look for sensitive data left over from previous sessions.::",
"Prerequisites": "::The target application must store sensitive information in a cache.::The cache must be inadequately protected against attacker access.::",
"Skills Required": "",
"Resources Required": "::The attacker must be able to reach the target application's cache. This may require prior access to the machine on which the target application runs. If the cache is encrypted, the attacker would need sufficient computational resources to crack the encryption. With strong encryption schemes, doing this could be intractable, but weaker encryption schemes could allow an attacker with sufficient resources to read the file.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::524::311::1239::1258::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1005:ENTRY NAME:Data from Local System::",
"Notes": ""
},
{
"CAPEC ID": "206",
"ID": "Signing Malicious Code",
"Abstraction": "Detailed",
"Status": "Draft",
"Description": "The adversary extracts credentials used for code signing from a production environment and then uses these credentials to sign malicious content with the developer's key. Many developers use signing keys to sign code or hashes of code. When users or applications verify the signatures are accurate they are led to believe that the code came from the owner of the signing key and that the code has not been modified since the signature was applied. If the adversary has extracted the signing credentials then they can use those credentials to sign their own code bundles. Users or tools that verify the signatures attached to the code will likely assume the code came from the legitimate developer and install or run the code, effectively allowing the adversary to execute arbitrary code on the victim's computer. This differs from CAPEC-673, because the adversary is performing the code signing.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Very High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:444::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:The adversary first attempts to obtain a digital certificate in order to sign their malware or tools. This certificate could be stolen, created by the adversary, or acquired normally through a certificate authority.::STEP:2:PHASE:Explore:DESCRIPTION:Based on the type of certificate obtained, the adversary will create a goal for their attack. This is either a broad or targeted attack. If an adversary was able to steal a certificate from a targeted organization, they could target this organization by pretending to have legitimate code signed by them. In other cases, the adversary would simply sign their malware and pose as legitimate software such that any user might trust it. This is the more broad approach::STEP:3:PHASE:Experiment:DESCRIPTION:The adversary creates their malware and signs it with the obtained digital certificate. The adversary then checks if the code that they signed is valid either through downloading from the targeted source or testing locally.::STEP:4:PHASE:Exploit:DESCRIPTION:Once the malware has been signed, it is then deployed to the desired location. They wait for a trusting user to run their malware, thinking that it is legitimate software. This malware could do a variety of things based on the motivation of the adversary.::",
"Prerequisites": "::The targeted developer must use a signing key to sign code bundles. (Note that not doing this is not a defense - it only means that the adversary does not need to steal the signing key before forging code bundles in the developer's name.)::",
"Skills Required": "",
"Resources Required": "::None: No specialized resources are required to execute this type of attack.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "::Ensure digital certificates are protected and inaccessible by unauthorized uses.::If a digital certificate has been compromised it should be revoked and regenerated.::Even if a piece of software has a valid and trusted digital signature, it should be assessed for any weaknesses and vulnerabilities.::",
"Example Instances": "::In the famous Stuxnet malware incident, two digital certificates were compromised in order to sign malicious device drivers with legitimate credentials. The signing resulted in the malware appearing as trusted by the system it was running on, which facilitated the installation of the malware in kernel mode. This further resulted in Stuxnet remaining undetected for a significant amount of time. [REF-699]::The cyber espionage group CyberKittens leveraged a stolen certificate from AI Squared that allowed them to leverage a signed executable within Operation Wilted Tulip. This ultimately allowed the executable to run as trusted on the system, allowing a Crowd Strike stager to be loaded within the system's memory. [REF-714]::",
"Related Weaknesses": "::732::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1553.002:ENTRY NAME:Subvert Trust Controls:Code Signing::",
"Notes": ""
},
{
"CAPEC ID": "21",
"ID": "Exploitation of Trusted Identifiers",
"Abstraction": "Meta",
"Status": "Stable",
"Description": "An adversary guesses, obtains, or rides a trusted identifier (e.g. session ID, resource ID, cookie, etc.) to perform authorized actions under the guise of an authenticated user or service.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Survey the application for Indicators of Susceptibility] Using a variety of methods, until one is found that applies to the target, the adversary probes for cookies, session tokens, or entry points that bypass identifiers altogether.TECHNIQUE:Spider all available pages:TECHNIQUE:Attack known bad interfaces:TECHNIQUE:Search outward-facing configuration and properties files for identifiers.::STEP:2:PHASE:Experiment:DESCRIPTION:[Fetch samples] The adversary fetches many samples of identifiers. This may be through legitimate access (logging in, legitimate connections, etc.) or via systematic probing.TECHNIQUE:An adversary makes many anonymous connections and records the session IDs assigned.:TECHNIQUE:An adversary makes authorized connections and records the session tokens or credentials issued.:TECHNIQUE:An adversary gains access to (legitimately or illegitimately) a nearby system (e.g., in the same operations network, DMZ, or local network) and makes a connection from it, attempting to gain the same privileges as a trusted system.::STEP:3:PHASE:Exploit:DESCRIPTION:[Impersonate] An adversary can use successful experiments or authentications to impersonate an authorized user or system or to laterally move within a system or application::STEP:4:PHASE:Exploit:DESCRIPTION:[Spoofing] Malicious data can be injected into the target system or into a victim user's system by an adversary. The adversary can also pose as a legitimate user to perform social engineering attacks.::STEP:5:PHASE:Exploit:DESCRIPTION:[Data Exfiltration] The adversary can obtain sensitive data contained within the system or application.::",
"Prerequisites": "::Server software must rely on weak identifier proof and/or verification schemes.::Identifiers must have long lifetimes and potential for reusability.::Server software must allow concurrent sessions to exist.::",
"Skills Required": "::SKILL:To achieve a direct connection with the weak or non-existent server session access control, and pose as an authorized user:LEVEL:Low::",
"Resources Required": "::Ability to deploy software on network.::Ability to communicate synchronously or asynchronously with server.::",
"Indicators": "",
"Consequences": "::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthenticationTECHNICAL IMPACT:Gain Privileges::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::",
"Mitigations": "::Design: utilize strong federated identity such as SAML to encrypt and sign identity tokens in transit.::Implementation: Use industry standards session key generation mechanisms that utilize high amount of entropy to generate the session key. Many standard web and application servers will perform this task on your behalf.::Implementation: If the identifier is used for authentication, such as in the so-called single sign on use cases, then ensure that it is protected at the same level of assurance as authentication tokens.::Implementation: If the web or application server supports it, then encrypting and/or signing the identifier (such as cookie) can protect the ID if intercepted.::Design: Use strong session identifiers that are protected in transit and at rest.::Implementation: Utilize a session timeout for all sessions, for example 20 minutes. If the user does not explicitly logout, the server terminates their session after this period of inactivity. If the user logs back in then a new session key is generated.::Implementation: Verify authenticity of all identifiers at runtime.::",
"Example Instances": "::Thin client applications like web applications are particularly vulnerable to session ID attacks. Since the server has very little control over the client, but still must track sessions, data, and objects on the server side, cookies and other mechanisms have been used to pass the key to the session data between the client and server. When these session keys are compromised it is trivial for an adversary to impersonate a user's session in effect, have the same capabilities as the authorized user. There are two main ways for an adversary to exploit session IDs. A brute force attack involves an adversary repeatedly attempting to query the system with a spoofed session header in the HTTP request. A web server that uses a short session ID can be easily spoofed by trying many possible combinations so the parameters session-ID= 1234 has few possible combinations, and an adversary can retry several hundred or thousand request with little to no issue on their side. The second method is interception, where a tool such as wireshark is used to sniff the wire and pull off any unprotected session identifiers. The adversary can then use these variables and access the application.::For example, in a message queuing system that allows service requesters to post messages to its queue through an open channel (such as anonymous FTP), authorization is done through checking group or role membership contained in the posted message. However, there is no proof that the message itself, the information in the message (such group or role membership), or the process that wrote the message to the queue is authentic and authorized to do so.::",
"Related Weaknesses": "::290::302::346::539::6::384::664::602::642::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1134:ENTRY NAME:Access Token Manipulation::::TAXONOMY NAME:ATTACK:ENTRY ID:1528:ENTRY NAME:Steal Application Access Token::::TAXONOMY NAME:ATTACK:ENTRY ID:1539:ENTRY NAME:Steal Web Session Cookie::",
"Notes": ""
},
{
"CAPEC ID": "227",
"ID": "Sustained Client Engagement",
"Abstraction": "Meta",
"Status": "Draft",
"Description": "An adversary attempts to deny legitimate users access to a resource by continually engaging a specific resource in an attempt to keep the resource tied up as long as possible. The adversary's primary goal is not to crash or flood the target, which would alert defenders; rather it is to repeatedly perform actions or abuse algorithmic flaws such that a given resource is tied up and not available to a legitimate user. By carefully crafting a requests that keep the resource engaged through what is seemingly benign requests, legitimate users are limited or completely denied access to the resource.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "::This pattern of attack requires a temporal aspect to the servicing of a given request. Success can be achieved if the adversary can make requests that collectively take more time to complete than legitimate user requests within the same time frame.::",
"Skills Required": "",
"Resources Required": "::To successfully execute this pattern of attack, a script or program is often required that is capable of continually engaging the target and maintaining sustained usage of a specific resource. Depending on the configuration of the target, it may or may not be necessary to involve a network or cluster of objects all capable of making parallel requests.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "::Potential mitigations include requiring a unique login for each resource request, constraining local unprivileged access by disallowing simultaneous engagements of the resource, or limiting access to the resource to one access per IP address. In such scenarios, the adversary would have to increase engagements either by launching multiple sessions manually or programmatically to counter such defenses.::",
"Example Instances": "",
"Related Weaknesses": "",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1499:ENTRY NAME:Endpoint Denial of Service::::TAXONOMY NAME:WASC:ENTRY ID:10:ENTRY NAME:Denial of Service::",
"Notes": ""
},
{
"CAPEC ID": "233",
"ID": "Privilege Escalation",
"Abstraction": "Meta",
"Status": "Draft",
"Description": "An adversary exploits a weakness enabling them to elevate their privilege and perform an action that they are not supposed to be authorized to perform.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "",
"Related Attack Patterns": "",
"Execution Flow": "",
"Prerequisites": "",
"Skills Required": "",
"Resources Required": "",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::269::1264::1311::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1548:ENTRY NAME:Abuse Elevation Control Mechanism::",
"Notes": ""
},
{
"CAPEC ID": "25",
"ID": "Forced Deadlock",
"Abstraction": "Meta",
"Status": "Stable",
"Description": "The adversary triggers and exploits a deadlock condition in the target software to cause a denial of service. A deadlock can occur when two or more competing actions are waiting for each other to finish, and thus neither ever does. Deadlock conditions can be difficult to detect.",
"Alternate Terms": "",
"Likelihood Of Attack": "Low",
"Typical Severity": "High",
"Related Attack Patterns": "",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:The adversary initiates an exploratory phase to get familiar with the system.::STEP:2:PHASE:Explore:DESCRIPTION:The adversary triggers a first action (such as holding a resource) and initiates a second action which will wait for the first one to finish.::STEP:3:PHASE:Explore:DESCRIPTION:If the target program has a deadlock condition, the program waits indefinitely resulting in a denial of service.::",
"Prerequisites": "::The target host has a deadlock condition. There are four conditions for a deadlock to occur, known as the Coffman conditions. [REF-101]::The target host exposes an API to the user.::",
"Skills Required": "::SKILL:This type of attack may be sophisticated and require knowledge about the system's resources and APIs.:LEVEL:Medium::",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:AvailabilityTECHNICAL IMPACT:Resource Consumption:NOTE:Availability Resource Consumption A successful forced deadlock attack compromises the availability of the system by exhausting its available resources.::",
"Mitigations": "::Use known algorithm to avoid deadlock condition (for instance non-blocking synchronization algorithms).::For competing actions, use well-known libraries which implement synchronization.::",
"Example Instances": "::An example of a deadlock which may occur in database products is the following. Client applications using the database may require exclusive access to a table, and in order to gain exclusive access they ask for a lock. If one client application holds a lock on a table and attempts to obtain the lock on a second table that is already held by a second client application, this may lead to deadlock if the second application then attempts to obtain the lock that is held by the first application (Source: Wikipedia, http://en.wikipedia.org/wiki/Deadlock)::",
"Related Weaknesses": "::412::567::662::667::833::1322::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1499.004:ENTRY NAME:Endpoint Denial of Service: Application or System Exploitation::",
"Notes": ""
},
{
"CAPEC ID": "251",
"ID": "Local Code Inclusion",
"Abstraction": "Standard",
"Status": "Stable",
"Description": "The attacker forces an application to load arbitrary code files from the local machine. The attacker could use this to try to load old versions of library files that have known vulnerabilities, to load files that the attacker placed on the local machine during a prior attack, or to otherwise change the functionality of the targeted application in unexpected ways.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:175::",
"Execution Flow": "",
"Prerequisites": "::The targeted application must have a bug that allows an adversary to control which code file is loaded at some juncture.::Some variants of this attack may require that old versions of some code files be present and in predictable locations.::",
"Skills Required": "",
"Resources Required": "::The adversary needs to have enough access to the target application to control the identity of a locally included file. The attacker may also need to be able to upload arbitrary code files to the target machine, although any location for these files may be acceptable.::",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Integrity Execute Unauthorized Commands Through local code inclusion, the adversary compromises the integrity of the application.::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data:NOTE:Confidentiality Read Data An attacker may leverage local code inclusion in order to print sensitive data to a page, such as hidden configuration files or or password hashes.::",
"Mitigations": "::Implementation: Avoid passing user input to filesystem or framework API. If necessary to do so, implement a specific, allowlist approach.::",
"Example Instances": "",
"Related Weaknesses": "::829::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1055:ENTRY NAME:Process Injection::",
"Notes": ""
},
{
"CAPEC ID": "267",
"ID": "Leverage Alternate Encoding",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An adversary leverages the possibility to encode potentially harmful input or content used by applications such that the applications are ineffective at validating this encoding standard.",
"Alternate Terms": "",
"Likelihood Of Attack": "High",
"Typical Severity": "High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:153::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Survey the application for user-controllable inputs] Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application.TECHNIQUE:Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.:TECHNIQUE:Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.:TECHNIQUE:Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.:TECHNIQUE:Manually inspect the application to find entry points.::STEP:2:PHASE:Experiment:DESCRIPTION:[Probe entry points to locate vulnerabilities] The adversary uses the entry points gathered in the Explore phase as a target list and injects various payloads using a variety of different types of encodings to determine if an entry point actually represents a vulnerability with insufficient validation logic and to characterize the extent to which the vulnerability can be exploited.TECHNIQUE:Try to use different encodings of content in order to bypass validation routines.::",
"Prerequisites": "::The application's decoder accepts and interprets encoded characters. Data canonicalization, input filtering and validating is not done properly leaving the door open to harmful characters for the target host.::",
"Skills Required": "::SKILL:An adversary can inject different representation of a filtered character in a different encoding.:LEVEL:Low::SKILL:An adversary may craft subtle encoding of input data by using the knowledge that they have gathered about the target host.:LEVEL:Medium::",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data::SCOPE:ConfidentialityTECHNICAL IMPACT:Read Data::SCOPE:AuthorizationTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Authorization Execute Unauthorized Commands Run Arbitrary Code::SCOPE:Accountability:SCOPE:Authentication:SCOPE:Authorization:SCOPE:Non-RepudiationTECHNICAL IMPACT:Gain Privileges::SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism::SCOPE:AvailabilityTECHNICAL IMPACT:Unreliable Execution:TECHNICAL IMPACT:Resource Consumption:NOTE:Availability Unreliable Execution Resource Consumption Denial of Service::",
"Mitigations": "::Assume all input might use an improper representation. Use canonicalized data inside the application; all data must be converted into the representation used inside the application (UTF-8, UTF-16, etc.)::Assume all input is malicious. Create an allowlist that defines all valid input to the software system based on the requirements specifications. Input that does not match against the allowlist should not be permitted to enter into the system. Test your decoding process against malicious input.::",
"Example Instances": "::Microsoft Internet Explorer 5.01 SP4, 6, 6 SP1, and 7 does not properly handle unspecified encoding strings, which allows remote adversaries to bypass the Same Origin Policy and obtain sensitive information via a crafted web site, aka Post Encoding Information Disclosure Vulnerability. Related Vulnerabilities CVE-2010-0488::Adversaries may attempt to make an executable or file difficult to discover or analyze by encrypting, encoding, or otherwise obfuscating its contents on the system or in transit. This is common behavior that can be used across different platforms and the network to evade defenses.::",
"Related Weaknesses": "::173::172::180::181::73::74::20::697::692::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1027:ENTRY NAME:Obfuscated Files or Information::",
"Notes": ""
},
{
"CAPEC ID": "268",
"ID": "Audit Log Manipulation",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "The attacker injects, manipulates, deletes, or forges malicious log entries into the log file, in an attempt to mislead an audit of the log file or cover tracks of an attack. Due to either insufficient access controls of the log files or the logging mechanism, the attacker is able to perform such actions.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:161::",
"Execution Flow": "",
"Prerequisites": "::The target host is logging the action and data of the user.::The target host insufficiently protects access to the logs or logging mechanisms.::",
"Skills Required": "",
"Resources Required": "::The attacker must understand how the logging mechanism works. Optionally, the attacker must know the location and the format of individual entries of the log files.::",
"Indicators": "",
"Consequences": "",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::117::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1070:ENTRY NAME:Indicator Removal on Host::::TAXONOMY NAME:ATTACK:ENTRY ID:1562.002:ENTRY NAME:Impair Defenses: Disable Windows Event Logging::::TAXONOMY NAME:ATTACK:ENTRY ID:1562.003:ENTRY NAME:Impair Defenses: Impair Command History Logging::::TAXONOMY NAME:ATTACK:ENTRY ID:1562.008:ENTRY NAME:Impair Defenses: Disable Cloud Logs::::TAXONOMY NAME:OWASP Attacks:ENTRY NAME:Log Injection::",
"Notes": ""
},
{
"CAPEC ID": "270",
"ID": "Modification of Registry Run Keys",
"Abstraction": "Detailed",
"Status": "Stable",
"Description": "An adversary adds a new entry to the run keys in the Windows registry so that an application of their choosing is executed when a user logs in. In this way, the adversary can get their executable to operate and run on the target system with the authorized user's level of permissions. This attack is a good way for an adversary to run persistent spyware on a user's machine, such as a keylogger.",
"Alternate Terms": "",
"Likelihood Of Attack": "Medium",
"Typical Severity": "Medium",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:203::NATURE:CanPrecede:CAPEC ID:568::NATURE:CanPrecede:CAPEC ID:529::NATURE:CanPrecede:CAPEC ID:646::NATURE:CanFollow:CAPEC ID:555::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Determine target system] The adversary must first determine the system they wish to target. This attack only works on Windows.::STEP:2:PHASE:Experiment:DESCRIPTION:[Gain access to the system] The adversary needs to gain access to the system in some way so that they can modify the Windows registry.TECHNIQUE:Gain physical access to a system either through shoulder surfing a password or accessing a system that is left unlocked.:TECHNIQUE:Gain remote access to a system through a variety of means.::STEP:3:PHASE:Exploit:DESCRIPTION:[Modify Windows registry] The adversary will modify the Windows registry by adding a new entry to the run keys referencing a desired program. This program will be run whenever the user logs in.::",
"Prerequisites": "::The adversary must have gained access to the target system via physical or logical means in order to carry out this attack.::",
"Skills Required": "",
"Resources Required": "",
"Indicators": "",
"Consequences": "::SCOPE:IntegrityTECHNICAL IMPACT:Modify Data:TECHNICAL IMPACT:Gain Privileges::",
"Mitigations": "::Identify programs that may be used to acquire process information and block them by using a software restriction policy or tools that restrict program execution by using a process allowlist.::",
"Example Instances": "::An adversary can place a malicious executable (RAT) on the target system and then configure it to automatically run when the user logs in to maintain persistence on the target system.::Through the modification of registry run keys the adversary can masquerade a malicious executable as a legitimate program.::",
"Related Weaknesses": "::15::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1547.001:ENTRY NAME:Boot or Logon Autostart Execution: Registry Run Keys / Start Folder::::TAXONOMY NAME:ATTACK:ENTRY ID:1547.014:ENTRY NAME:Boot or Logon Autostart Execution: Active::",
"Notes": ""
},
{
"CAPEC ID": "292",
"ID": "Host Discovery",
"Abstraction": "Standard",
"Status": "Stable",
"Description": "An adversary sends a probe to an IP address to determine if the host is alive. Host discovery is one of the earliest phases of network reconnaissance. The adversary usually starts with a range of IP addresses belonging to a target network and uses various methods to determine if a host is present at that IP address. Host discovery is usually referred to as 'Ping' scanning using a sonar analogy. The goal is to send a packet through to the IP address and solicit a response from the host. As such, a 'ping' can be virtually any crafted packet whatsoever, provided the adversary can identify a functional host based on its response. An attack of this nature is usually carried out with a 'ping sweep,' where a particular kind of ping is sent to a range of IP addresses.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Low",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:169::",
"Execution Flow": "",
"Prerequisites": "::The adversary requires logical access to the target network in order to carry out host discovery.::",
"Skills Required": "",
"Resources Required": "::The resources required will differ based upon the type of host discovery being performed. Usually a network scanning tool or scanning script is required due to the volume of requests that must be generated.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Other::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Bypass Protection Mechanism:TECHNICAL IMPACT:Hide Activities::",
"Mitigations": "",
"Example Instances": "",
"Related Weaknesses": "::200::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1018:ENTRY NAME:Remote System Discovery::",
"Notes": ""
},
{
"CAPEC ID": "295",
"ID": "Timestamp Request",
"Abstraction": "Detailed",
"Status": "Stable",
"Description": "This pattern of attack leverages standard requests to learn the exact time associated with a target system. An adversary may be able to use the timestamp returned from the target to attack time-based security algorithms, such as random number generators, or time-based authentication mechanisms.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Low",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:292::",
"Execution Flow": "",
"Prerequisites": "::The ability to send a timestamp request to a remote target and receive a response.::",
"Skills Required": "",
"Resources Required": "::Scanners or utilities that provide the ability to send custom ICMP queries.::",
"Indicators": "",
"Consequences": "::SCOPE:ConfidentialityTECHNICAL IMPACT:Other::",
"Mitigations": "",
"Example Instances": "::An adversary sends an ICMP type 13 Timestamp Request to determine the time as recorded by a remote target. Timestamp Replies, ICMP Type 14, usually return a value in Greenwich Mean Time. An adversary can attempt to use an ICMP Timestamp requests to 'ping' a remote system to see if is alive. Additionally, because these types of messages are rare they are easily spotted by intrusion detection systems, many ICMP scanning tools support IP spoofing to help conceal the origin of the actual request among a storm of similar ICMP messages. It is a common practice for border firewalls and gateways to be configured to block ingress ICMP type 13 and egress ICMP type 14 messages.::An adversary may gather the system time or time zone from a local or remote system. This information may be gathered in a number of ways, such as with Net on Windows by performing net time hostname to gather the system time on a remote system. The victim's time zone may also be inferred from the current system time or gathered by using w32tm /tz. The information could be useful for performing other techniques, such as executing a file with a Scheduled Task, or to discover locality information based on time zone to assist in victim targeting::",
"Related Weaknesses": "::200::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1124:ENTRY NAME:System Time Discovery::",
"Notes": ""
},
{
"CAPEC ID": "30",
"ID": "Hijacking a Privileged Thread of Execution",
"Abstraction": "Standard",
"Status": "Draft",
"Description": "An adversary hijacks a privileged thread of execution by injecting malicious code into a running process. By using a privleged thread to do their bidding, adversaries can evade process-based detection that would stop an attack that creates a new process. This can lead to an adversary gaining access to the process's memory and can also enable elevated privileges. The most common way to perform this attack is by suspending an existing thread and manipulating its memory.",
"Alternate Terms": "",
"Likelihood Of Attack": "Low",
"Typical Severity": "Very High",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:233::",
"Execution Flow": "::STEP:1:PHASE:Explore:DESCRIPTION:[Determine target thread] The adversary determines the underlying system thread that is subject to user-control::STEP:2:PHASE:Experiment:DESCRIPTION:[Gain handle to thread] The adversary then gains a handle to a process thread.TECHNIQUE:Use the OpenThread API call in Windows on a known thread.:TECHNIQUE:Cause an exception in a java privileged block public function and catch it, or catch a normal signal. The thread is then hanging and the adversary can attempt to gain a handle to it.::STEP:3:PHASE:Experiment:DESCRIPTION:[Alter process memory] Once the adversary has a handle to the target thread, they will suspend the thread and alter the memory using native OS calls.TECHNIQUE:On Windows, use SuspendThread followed by VirtualAllocEx, WriteProcessMemory, and SetThreadContext.::STEP:4:PHASE:Exploit:DESCRIPTION:[Resume thread execution] Once the process memory has been altered to execute malicious code, the thread is then resumed.TECHNIQUE:On Windows, use ResumeThread.::",
"Prerequisites": "::The application in question employs a threaded model of execution with the threads operating at, or having the ability to switch to, a higher privilege level than normal users::In order to feasibly execute this class of attacks, the adversary must have the ability to hijack a privileged thread. This ability includes, but is not limited to, modifying environment variables that affect the process the thread belongs to, or calling native OS calls that can suspend and alter process memory. This does not preclude network-based attacks, but makes them conceptually more difficult to identify and execute.::",
"Skills Required": "::SKILL:Hijacking a thread involves knowledge of how processes and threads function on the target platform, the design of the target application as well as the ability to identify the primitives to be used or manipulated to hijack the thread.:LEVEL:High::",
"Resources Required": "::None: No specialized resources are required to execute this type of attack. The adversary needs to be able to latch onto a privileged thread. The adversary does, however, need to be able to program, compile, and link to the victim binaries being executed so that it will turn control of a privileged thread over to the adversary's malicious code. This is the case even if the adversary conducts the attack remotely.::",
"Indicators": "",
"Consequences": "::SCOPE:Confidentiality:SCOPE:Access Control:SCOPE:AuthorizationTECHNICAL IMPACT:Gain Privileges::SCOPE:Confidentiality:SCOPE:Integrity:SCOPE:AvailabilityTECHNICAL IMPACT:Execute Unauthorized Commands:NOTE:Confidentiality Integrity Availability Execute Unauthorized Commands Run Arbitrary Code::",
"Mitigations": "::Application Architects must be careful to design callback, signal, and similar asynchronous constructs such that they shed excess privilege prior to handing control to user-written (thus untrusted) code.::Application Architects must be careful to design privileged code blocks such that upon return (successful, failed, or unpredicted) that privilege is shed prior to leaving the block/scope.::",
"Example Instances": "::Adversary targets an application written using Java's AWT, with the 1.2.2 era event model. In this circumstance, any AWTEvent originating in the underlying OS (such as a mouse click) would return a privileged thread (e.g., a system call). The adversary could choose to not return the AWT-generated thread upon consuming the event, but instead leveraging its privilege to conduct privileged operations.::",
"Related Weaknesses": "::270::",
"Taxonomy Mappings": "TAXONOMY NAME:ATTACK:ENTRY ID:1055.003:ENTRY NAME:Process Injection: Thread Execution Hijacking::",
"Notes": ""
},
{
"CAPEC ID": "300",
"ID": "Port Scanning",
"Abstraction": "Standard",
"Status": "Stable",
"Description": "An adversary uses a combination of techniques to determine the state of the ports on a remote target. Any service or application available for TCP or UDP networking will have a port open for communications over the network.",
"Alternate Terms": "",
"Likelihood Of Attack": "",
"Typical Severity": "Low",
"Related Attack Patterns": "::NATURE:ChildOf:CAPEC ID:169::",