{
"objects": [
{
"definition_type": "statement",
"id": "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d",
"definition": {
"statement": "CAPEC is sponsored by US-CERT in the office of Cybersecurity and Communications at the U.S. Department of Homeland Security. Copyright \u00a9 2007 - 2021, The MITRE Corporation. CAPEC and the CAPEC logo are trademarks of The MITRE Corporation."
},
"type": "marking-definition",
"created": "2021-01-08T19:55:06.45963Z"
},
{
"name": "The MITRE Corporation",
"identity_class": "organization",
"id": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
"object_marking_refs": [
"marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
],
"type": "identity",
"created": "2021-01-08T19:55:06.461Z",
"modified": "2021-01-08T19:55:06.461Z"
},
{
"id": "attack-pattern--92cdcd3d-d734-4442-afc3-4599f261498b",
"name": "Accessing Functionality Not Properly Constrained by ACLs",
"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.",
"created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
"object_marking_refs": [
"marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
],
"created": "2014-06-23T00:00:00.000Z",
"modified": "2020-12-17T00:00:00.000Z",
"external_references": [
{
"source_name": "capec",
"url": "https://capec.mitre.org/data/definitions/1.html",
"external_id": "CAPEC-1"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/276.html",
"external_id": "CWE-276"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/285.html",
"external_id": "CWE-285"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/434.html",
"external_id": "CWE-434"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/693.html",
"external_id": "CWE-693"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/721.html",
"external_id": "CWE-721"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/732.html",
"external_id": "CWE-732"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1191.html",
"external_id": "CWE-1191"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1193.html",
"external_id": "CWE-1193"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1220.html",
"external_id": "CWE-1220"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1224.html",
"external_id": "CWE-1224"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1244.html",
"external_id": "CWE-1244"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1252.html",
"external_id": "CWE-1252"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1257.html",
"external_id": "CWE-1257"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1262.html",
"external_id": "CWE-1262"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1268.html",
"external_id": "CWE-1268"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1283.html",
"external_id": "CWE-1283"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1311.html",
"external_id": "CWE-1311"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1312.html",
"external_id": "CWE-1312"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1313.html",
"external_id": "CWE-1313"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1314.html",
"external_id": "CWE-1314"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1315.html",
"external_id": "CWE-1315"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1318.html",
"external_id": "CWE-1318"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1320.html",
"external_id": "CWE-1320"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1321.html",
"external_id": "CWE-1321"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1326.html",
"external_id": "CWE-1326"
},
{
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1327.html",
"external_id": "CWE-1327"
},
{
"source_name": "ATTACK",
"description": "Hijack Execution Flow: ServicesFile Permissions Weakness",
"url": "https://attack.mitre.org/wiki/Technique/T1574/010",
"external_id": "T1574.010"
}
],
"x_capec_likelihood_of_attack": "High",
"x_capec_typical_severity": "High",
"x_capec_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."
],
"x_capec_skills_required": {
"Low": "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."
},
"x_capec_resources_required": [
"None: No specialized resources are required to execute this type of attack."
],
"x_capec_consequences": {
"Confidentiality": [
"Gain Privileges"
],
"Access_Control": [
"Gain Privileges"
],
"Authorization": [
"Gain Privileges"
]
},
"x_capec_abstraction": "Standard",
"x_capec_example_instances": [
"\n
Survey: The attacker surveys the target application, possibly as a valid and authenticated user
Techniques |
---|
Spidering web sites for all available links |
Brute force guessing of resource names |
Brute force guessing of user names / credentials |
Brute force guessing of function names / actions |
Identify Functionality: At each step, the attacker notes the resource or functionality access mechanism invoked upon performing specific actions
Techniques |
---|
Use the web inventory of all forms and inputs and apply attack data to those inputs. |
Use a packet sniffer to capture and record network traffic |
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. |
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.
Techniques |
---|
Fuzzing of API parameters (URL parameters, OS API parameters, protocol parameters) |
The attacker tries to find an environment variable which can be overwritten for instance by gathering information about the target host (error pages, software's version number, etc.).
The attacker manipulates the environment variable to contain excessive-length content to cause a buffer overflow.
The attacker potentially leverages the buffer overflow to inject maliciously crafted code in an attempt to execute privileged command on the target environment.
The adversary identifies a buffer to target. Buffer regions are either allotted on the stack or the heap, and the exact nature of attack would vary depending on the location of the buffer
Next, the adversary identifies an injection vector to deliver the excessive content to the targeted buffer.
The adversary crafts the content to be injected. If the intent is to simply cause the software to crash, the content need only consist of an excessive quantity of random data. If the intent is to leverage the overflow for execution of arbitrary code, the adversary will craft a set of content that not only overflows the targeted buffer but does so in such a way that the overwritten return address is replaced with one of the adversaries' choosing which points to code injected by the adversary.
The adversary injects the content into the targeted software.
Upon successful exploitation, the system either crashes or control of the program is returned to a location of the adversaries' choice. This can result in execution of arbitrary code or escalated privileges, depending upon the exploited target.
Determine applicability: The attacker determines whether server side includes are enabled on the target web server.
Techniques |
---|
Look for popular page file names. The attacker will look for .shtml, .shtm, .asp, .aspx, and other well-known strings in URLs to help determine whether SSI functionality is enabled. |
Fetch .htaccess file. In Apache web server installations, the .htaccess file may enable server side includes in specific locations. In those cases, the .htaccess file lives inside the directory where SSI is enabled, and is theoretically fetchable from the web server. Although most web servers deny fetching the .htaccess file, a misconfigured server will allow it. Thus, an attacker will frequently try it. |
Attempt SSI: Look for user controllable input, including HTTP headers, that can carry server side include directives to the web server.
Techniques |
---|
Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL. |
Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms. |
Inject SSI: The attacker may then need to view a particular page in order to have the server execute the include directive and run a command or open a file on behalf of the attacker
Detect Unprotected Session Token Transfer: The attacker sniffs on the wireless network to detect unencrypted traffic that contains session tokens.
Techniques |
---|
The attacker uses a network sniffer tool like ferret or hamster to monitor the wireless traffic at a WiFi hotspot while examining it for evidence of transmittal of session tokens in unencrypted or recognizably encrypted form. An attacker applies their knowledge of the manner by which session tokens are generated and transmitted by various target systems to identify the session tokens. |
Capture session token: The attacker uses sniffing tools to capture a session token from traffic.
Insert captured session token: The attacker attempts to insert a captured session token into communication with the targeted application to confirm viability for exploitation.
Session Token Exploitation: The attacker leverages the captured session token to interact with the targeted application in a malicious fashion, impersonating the victim.
Craft a clickjacking page: The adversary utilizes web page layering techniques to try to craft a malicious clickjacking page
Techniques |
---|
The adversary leveraged iframe overlay capabilities to craft a malicious clickjacking page |
The adversary leveraged Flash file overlay capabilities to craft a malicious clickjacking page |
The adversary leveraged Silverlight overlay capabilities to craft a malicious clickjacking page |
The adversary leveraged cross-frame scripting to craft a malicious clickjacking page |
Adversary lures victim to clickjacking page: Adversary utilizes some form of temptation, misdirection or coercion to lure the victim to loading and interacting with the clickjacking page in a way that increases the chances that the victim will click in the right areas.
Techniques |
---|
Lure the victim to the malicious site by sending the victim an e-mail with a URL to the site. |
Lure the victim to the malicious site by manipulating URLs on a site trusted by the victim. |
Lure the victim to the malicious site through a cross-site scripting attack. |
Trick victim into interacting with the clickjacking page in the desired manner: The adversary tricks the victim into clicking on the areas of the UI which contain the hidden action controls and thereby interacts with the target system maliciously with the victim's level of privilege.
Techniques |
---|
Hide action controls over very commonly used functionality. |
Hide action controls over very psychologically tempting content. |
Find systems susceptible to the attack: Find systems that contain functionality that is accessed from both the internet zone and the local zone. There needs to be a way to supply input to that functionality from the internet zone and that original input needs to be used later on a page from a local zone.
Techniques |
---|
Leverage knowledge of common local zone functionality on targeted platforms to guide attempted injection of code through relevant internet zone mechanisms. In some cases this may be due to standard system configurations enabling shared functionality between internet and local zones. The attacker can search for indicators that these standard configurations are in place. |
Find the insertion point for the payload: The attacker first needs to find some system functionality or possibly another weakness in the system (e.g. susceptibility to cross site scripting) that would provide the attacker with a mechanism to deliver the payload (i.e. the code to be executed) to the user. The location from which this code is executed in the user's browser needs to be within the local machine zone.
Techniques |
---|
Finding weaknesses in functionality used by both privileged and unprivileged users. |
Craft and inject the payload: Develop the payload to be executed in the higher privileged zone in the user's browser. Inject the payload and attempt to lure the victim (if possible) into executing the functionality which unleashes the payload.
Techniques |
---|
The attacker makes it as likely as possible that the vulnerable functionality into which they have injected the payload has a high likelihood of being used by the victim. |
Leverage cross-site scripting vulnerability to inject payload. |
Investigate Target Environment: Determine the technologies used in the target environment such as types of browsers, web servers, application firewalls, proxies, etc.
Techniques |
---|
Investigation of the target environment to determine the types of technologies used to parse the incoming HTTP requests. Attempt to understand how HTTP Request headers are parsed |
Post a malicious HTTP Request: Post a malicious HTTP request that will be interpreted as multiple HTTP requests when parsed on the server
Techniques |
---|
Post a malicious HTTP Request utilizing double CR/LF characters in HTTP header to cause request splitting |
Post a malicious HTTP Request utilizing \"Transfer Encoding: chunked\" in the request header to cause request splitting |
Post a malicious HTTP Request utilizing double Content-Length headers to cause request splitting |
Determine if HTTP Trace is enabled: Determine if HTTP Trace is enabled at the web server with which the victim has an active session
Techniques |
---|
An adversary may issue an HTTP Trace request to the target web server and observe if the response arrives with the original request in the body of the response. |
Identify mechanism to launch HTTP Trace request: The adversary attempts to force the victim to issue an HTTP Trace request to the targeted application.
Techniques |
---|
The adversary probes for cross-site scripting vulnerabilities to force the victim into issuing an HTTP Trace request. |
Create a malicious script that pings the web server with HTTP TRACE request: The adversary creates a malicious script that will induce the victim's browser to issue an HTTP TRACE request to the destination system's web server. The script will further intercept the response from the web server, pick up sensitive information out of it, and forward to the site controlled by the adversary.
Techniques |
---|
The adversary's malicious script circumvents the httpOnly cookie attribute that prevents from hijacking the victim's session cookie directly using document.cookie and instead leverages the HTTP TRACE to catch this information from the header of the HTTP request once it is echoed back from the web server in the body of the HTTP TRACE response. |
Execute malicious HTTP Trace launching script: The adversary leverages an XSS vulnerability to force the victim to execute the malicious HTTP Trace launching script
Intercept HTTP TRACE response: The adversary's script intercepts the HTTP TRACE response from teh web server, glance sensitive information from it, and forward that information to a server controlled by the adversary.
Probe for SQL Injection vulnerability: The attacker injects SQL syntax into user-controllable data inputs to search unfiltered execution of the SQL syntax in a query.
Achieve arbitrary command execution through SQL Injection with the MSSQL_xp_cmdshell directive: The attacker leverages a SQL Injection attack to inject shell code to be executed by leveraging the xp_cmdshell directive.
Inject malicious data in the database: Leverage SQL injection to inject data in the database that could later be used to achieve command injection if ever used as a command line argument
Trigger command line execution with injected arguments: The attacker causes execution of command line functionality which leverages previously injected database content as arguments.
Determine Persistence Framework Used: An attacker tries to determine what persistence framework is used by the application in order to leverage a weakness in the generated data access layer code or a weakness in a way that the data access layer may have been used by the developer.
Techniques |
---|
An attacker provides input to the application in an attempt to induce an error screen that reveals a stack trace that gives an indication of the automated data access layer used. Or an attacker may simply make some educated guesses and assume, for instance, that Hibernate is used and try to craft an attack from there. |
Probe for ORM Injection vulnerabilities: The attacker injects ORM syntax into user-controllable data inputs of the application to determine if it is possible modify data query structure and content.
Perform SQL Injection through the generated data access layer: An attacker proceeds to exploit a weakness in the generated data access methods that does not properly separate control plane from the data plan, or potentially a particular way in which developer might have misused the generated code, to modify the structure of the executed SQL queries and/or inject entirely new SQL queries.
Techniques |
---|
An attacker uses normal SQL injection techniques and adjusts them to reflect the type of data access layer generation framework used by the application. |
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.
Techniques |
---|
Attacker manually crawls application to identify file inputs |
Attacker uses an automated tool to crawl application identify file inputs |
Attacker manually assesses strength of access control protecting native application files from user control |
Attacker explores potential for submitting files directly to the web server via independently constructed HTTP Requests |
File misclassification shotgunning: An attacker makes changes to file extensions and MIME types typically processed by web servers and looks for abnormal behavior.
Techniques |
---|
Attacker submits files with switched extensions (e.g. .php on a .jsp file) to web server. |
Attacker adds extra characters (e.g. adding an extra . after the file extension) to filenames of files submitted to web server. |
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.
Techniques |
---|
Craft a malicious file payload, modify file extension to the targeted file type and submit it to the web server. |
Craft a malicious file payload, modify its associated MIME type to the targeted file type and submit it to the web server. |
Disclose information: The attacker, by manipulating a file extension or MIME type is able to make the web server return raw information (not executed).
Techniques |
---|
Manipulate the file names that are explicitly sent to the server. |
Manipulate the MIME sent in order to confuse the web server. |
Detect Incorrect SOAP Parameter Handling: The attacker tampers with the SOAP message parameters and looks for indications that the tampering caused a change in behavior of the targeted application.
Techniques |
---|
The attacker tampers with the SOAP message parameters by injecting some special characters such as single quotes, double quotes, semi columns, etc. The attacker observes system behavior. |
Probe for SQL Injection vulnerability: The attacker injects SQL syntax into vulnerable SOAP parameters identified during the Explore phase to search for unfiltered execution of the SQL syntax in a query.
Inject SQL via SOAP Parameters: The attacker injects SQL via SOAP parameters identified as vulnerable during Explore phase to launch a first or second order SQL injection attack.
Techniques |
---|
An attacker performs a SQL injection attack via the usual methods leveraging SOAP parameters as the injection vector. An attacker has to be careful not to break the XML parser at the service provider which may prevent the payload getting through to the SQL query. The attacker may also look at the WSDL for the web service (if available) to better understand what is expected by the service provider. |
Understand How to Request JSON Responses from the Target System: An attacker first explores the target system to understand what URLs need to be provided to it in order to retrieve JSON objects that contain information of interest to the attacker.
Techniques |
---|
An attacker creates an account with the target system and observes requests and the corresponding JSON responses from the server. Understanding how to properly elicit responses from the server is crucial to the attackers' ability to craft the exploit. |
[Craft a malicious website]
Launch JSON hijack: An attacker lures the victim to the malicious website or leverages other means to get their malicious code executing in the victim's browser. Once that happens, the malicious code makes a request to the victim target system to retrieve a JSON object with sensitive information. The request includes the victim's session cookie if the victim is logged in.
Techniques |
---|
An attacker employs a myriad of standard techniques to get the victim to visit their malicious site or by some other means get the attackers' malicious code executing in the victim's browser. |
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.
Techniques |
---|
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. |
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.
Techniques |
---|
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.) |
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. |
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. |
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. |
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.
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).
Determine the nature of messages being transported as well as the identifiers to be used as part of the attack
If required, authenticate to the distribution channel
If any particular client's information is available through the transport means simply by selecting a particular identifier, an attacker can simply provide that particular identifier.
Attackers with client access connecting to output channels could change their channel identifier and see someone else's (perhaps more privileged) data.
Survey the application for user-controllable inputs: Using a browser, an automated tool or by inspecting the application, an attacker records all entry points to the application.
Techniques |
---|
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. |
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application. |
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. |
Manually inspect the application to find entry points. |
Probe entry points to locate vulnerabilities: Try double-encoding for parts of the input in order to try to get past the filters. For instance, by double encoding certain characters in the URL (e.g. dots and slashes) an adversary may try to get access to restricted resources on the web server or force browse to protected pages (thus subverting the authorization service). An adversary can also attempt other injection style attacks using this attack pattern: command injection, SQL injection, etc.
Techniques |
---|
Try to use double-encoding to bypass validation routines. |
Determine Vulnerable Interface: An adversary explores a target system for sample or test interfaces that have not been disabled by a system administrator and which may be exploitable by the adversary.
Techniques |
---|
If needed, the adversary explores an organization's network to determine if any specific systems of interest exist. |
Leverage Test Interface to Execute Attacks: Once an adversary has discovered a system with a non-production interface, the interface is leveraged to exploit the system and/or conduct various attacks.
Techniques |
---|
The adversary can leverage the sample or test interface to conduct several types of attacks such as Man-in-the-Middle attacks, keylogging, Cross Site Scripting (XSS), hardware manipulation attacks, and more. |
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.
Techniques |
---|
Send requests to the web server for common directory names |
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. |
Search for uncommon or potentially user created directories that may be present. |
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 methods
Techniques |
---|
Use a scanner tool to dynamically add directories/files to include their scan based upon data obtained in initial probes. |
Use a browser to manually explore the website by issuing a request ending the URL in a slash '/'. |
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. |
Sequentially request a list of common base files to each directory discovered. |
Try multiple fuzzing techniques to list directory contents for directories that will not reveal their contents with a \"/\" request |
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 methods
Techniques |
---|
Try multiple exploit techniques to list directory contents for directories that will not reveal their contents with a \"/\" request |
Try other known exploits to elevate privileges sufficient to bypass protected directories. |
List the files in the directory by issuing a request with the URL ending in a \"/\" slash. |
Access the files via direct URL and capture contents. |
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. |
Sequentially request a list of common base files to each directory discovered. |
The attacker probes the application for information. Which version of the application is running? Are there known environment variables? etc.
The attacker gains control of an environment variable and ties to find out what process(es) the environment variable controls.
The attacker modifies the environment variable to abuse the normal flow of processes or to gain access to privileged resources.
Identify Target: Attacker 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.
Techniques |
---|
The attacker writes to files in different directories to check whether the application has sufficient checking before file operations. |
The attacker creates symlinks to files in different directories. |
Try to create symlinks to different files: The attacker 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.
Techniques |
---|
The attacker monitors the file operations performed by the target application using a tool like dtrace or FileMon. And the attacker 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. |
The attacker may need a little guesswork on the filenames on which the target application would operate. |
The attacker tries to create symlinks to the various filenames. |
Target application operates on created symlinks to sensitive files: The attacker is able to create symlinks to sensitive files while the target application is operating on the file.
Techniques |
---|
Create the symlink to the sensitive file such as configuration files, etc. |
Survey application: The adversary takes an inventory of the entry points of the application.
Techniques |
---|
Spider web sites for all available links |
List parameters, external variables, configuration files variables, etc. that are possibly used by the application. |
Determine user-controllable input susceptible to format string injection: Determine the user-controllable input susceptible to format string injection. For each user-controllable input that the adversary suspects is vulnerable to format string injection, attempt to inject formatting characters such as %n, %s, etc.. The goal is to manipulate the string creation using these formatting characters.
Techniques |
---|
Inject probe payload which contains formatting characters (%s, %d, %n, etc.) through input parameters. |
Try to exploit the Format String Injection vulnerability: After determining that a given input is vulnerable to format string injection, hypothesize what the underlying usage looks like and the associated constraints.
Techniques |
---|
Insert various formatting characters to read or write the memory, e.g. overwrite return address, etc. |
Survey application: The attacker takes an inventory of the entry points of the application.
Techniques |
---|
Spider web sites for all available links |
Sniff network communications with application using a utility such as WireShark. |
Determine user-controllable input susceptible to LDAP injection: For each user-controllable input that the attacker suspects is vulnerable to LDAP injection, attempt to inject characters that have special meaning in LDAP (such as a single quote character, etc.). The goal is to create a LDAP query with an invalid syntax
Techniques |
---|
Use web browser to inject input through text fields or through HTTP GET parameters |
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, or other HTTP header. |
Use modified client (modified by reverse engineering) to inject input. |
Try to exploit the LDAP injection vulnerability: After determining that a given input is vulnerable to LDAP Injection, hypothesize what the underlying query looks like. Possibly using a tool, iteratively try to add logic to the query to extract information from the LDAP, or to modify or delete information in the LDAP.
Techniques |
---|
Add logic to the LDAP query to change the meaning of that command. Automated tools could be used to generate the LDAP injection strings. |
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, or other HTTP header. |
Survey application: Using a browser or an automated tool, an attacker follows all public links on a web site. They record all the links they find. They pick out the URL parameters that may related to access to files.
Techniques |
---|
Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL. |
Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms. |
Use a browser to manually explore the website and analyze how it is constructed. Many browser's plug-in are available to facilitate the analysis or automate the URL discovery. |
Attempt variations on input parameters: Possibly using an automated tool, an attacker requests variations on the identified inputs. They send parameters that include variations of payloads.
Techniques |
---|
Use a list of probe strings as path traversal payload. Different strings may be used for different platforms. Strings contain relative path sequences such as \"../\". |
Use a proxy tool to record results of manual input of relative path traversal probes in known URLs. |
Access, modify, or execute arbitrary files.: An attacker injects path traversal syntax into identified vulnerable inputs to cause inappropriate reading, writing or execution of files. An attacker could be able to read directories or files which they are normally not allowed to read. The attacker could also access data outside the web document root, or include scripts, source code and other kinds of files from external websites. Once the attacker accesses arbitrary files, they could also modify files. In particular situations, the attacker could also execute arbitrary code or system commands.
Techniques |
---|
Manipulate file and its path by injecting relative path sequences (e.g. \"../\"). |
Download files, modify files, or try to execute shell commands (with binary files). |
The attacker creates a custom hostile service
The attacker acquires information about the kind of client attaching to their hostile service to determine if it contains an exploitable buffer overflow vulnerability.
The attacker intentionally feeds malicious data to the client to exploit the buffer overflow vulnerability that they have uncovered.
The attacker leverages the exploit to execute arbitrary code or to cause a denial of service.
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.
Techniques |
---|
Run tools that check available entries in the cache. |
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.
Techniques |
---|
Intercept or modify a query, or send a bogus query with known credentials (such as transaction ID). |
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.
Techniques |
---|
Intercept or modify a query, or send a bogus query with known credentials (such as transaction ID). |
Man-in-the-Middle intercepts secure communication between two parties. |
Explore resolver caches: Check DNS caches on local DNS server and client's browser with DNS cache enabled.
Techniques |
---|
Run tools that check the resolver cache in the memory to see if it contains a target DNS entry. |
Figure out if the client's browser has DNS cache enabled. |
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.
Techniques |
---|
Adversary must know the transaction ID by intercepting a DNS query, or sending a bogus query with known transaction ID. |
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 |
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. |
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.
Techniques |
---|
Redirecting Web traffic to a site that looks enough like the original so as to not raise any suspicion. |
Man-in-the-Middle intercepts secure communication between two parties. |
Survey the target: Using a browser or an automated tool, an attacker records all instance of web services to process XML requests.
Techniques |
---|
Use an automated tool to record all instances of URLs to process XML requests. |
Use a browser to manually explore the website and analyze how the application processes XML requests. |
Launch a resource depletion attack: The attacker delivers a large number of small XML messages to the target URLs found in the explore phase at a sufficiently rapid rate. It causes denial of service to the target application.
Techniques |
---|
Send a large number of crafted small XML messages to the target URL. |
Assess Target Runtime Environment: In situations where the runtime environment is not implicitly known, the attacker makes connections to the target system and tries to determine the system's runtime environment. Knowing the environment is vital to choosing the correct delimiters.
Techniques |
---|
Port mapping using network connection-based software (e.g., nmap, nessus, etc.) |
Port mapping by exploring the operating system (netstat, sockstat, etc.) |
TCP/IP Fingerprinting |
Induce errors to find informative error messages |
Survey the Application: The attacker surveys the target application, possibly as a valid and authenticated user
Techniques |
---|
Spidering web sites for all available links |
Inventory all application inputs |
Attempt delimiters in inputs: The attacker systematically attempts variations of delimiters on known inputs, observing the application's response each time.
Techniques |
---|
Inject command delimiters using network packet injection tools (netcat, nemesis, etc.) |
Inject command delimiters using web test frameworks (proxies, TamperData, custom programs, etc.) |
Enter command delimiters directly in input fields. |
Use malicious command delimiters: The attacker uses combinations of payload and carefully placed command delimiters to attack the software.
Determine application's/system's password policy: Determine the password policies of the target application/system.
Techniques |
---|
Determine minimum and maximum allowed password lengths. |
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary). |
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks). |
Select dictionaries: Pick the dictionaries to be used in the attack (e.g. different languages, specific terminology, etc.)
Techniques |
---|
Select dictionary based on particular users' preferred languages. |
Select dictionary based on the application/system's supported languages. |
Determine username(s) to target: Determine username(s) whose passwords to crack.
Techniques |
---|
Obtain username(s) by sniffing network packets. |
Obtain username(s) by querying application/system (e.g. if upon a failed login attempt, the system indicates whether the entered username was valid or not) |
Obtain usernames from filesystem (e.g. list of directories in C:\\Documents and Settings\\ in Windows, and list in /etc/passwd in UNIX-like systems) |
Use dictionary to crack passwords.: Use a password cracking tool that will leverage the dictionary to feed passwords to the system and see if they work.
Techniques |
---|
Try all words in the dictionary, as well as common misspellings of the words as passwords for the chosen username(s). |
Try common combinations of words in the dictionary, as well as common misspellings of the combinations as passwords for the chosen username(s). |
Analyze and Understand Session IDs: The attacker finds that the targeted application use session credentials to identify legitimate users.
Techniques |
---|
An attacker makes many anonymous connections and records the session IDs. |
An attacker makes authorized connections and records the session tokens or credentials. |
Create Session IDs.: Attackers craft messages containing their forged credentials in GET, POST request, HTTP headers or cookies.
Techniques |
---|
The attacker manipulates the HTTP request message and adds their forged session IDs in to the requests or cookies. |
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.
Techniques |
---|
The attacker loads the predefined or predicted session ID into their browser and browses to protected data or functionality. |
The attacker loads the predefined or predicted session ID into their software and utilizes functionality with the rights of the victim. |
Survey the target: Using a browser or an automated tool, an attacker records all instances of web services to process XML requests.
Techniques |
---|
Use an automated tool to record all instances of URLs to process XML requests. |
Use a browser to manually explore the website and analyze how the application processes XML requests. |
Launch an XML Entity Expansion attack: The attacker crafts malicious XML message to force recursive entity expansion (or other repeated processing) that completely uses up available server resource.
Techniques |
---|
Send the malicious crafted XML message containing recursive entity uses to the target URL. |
Survey the application: Using a browser or an automated tool, an attacker follows all public links on a web site. They record all the links they find.
Techniques |
---|
Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL. |
Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms. |
Use a browser to manually explore the website and analyze how it is constructed. Many browser's plugins are available to facilitate the analysis or automate the URL discovery. |
Attempt injection payload variations on input parameters: Possibly using an automated tool, an attacker requests variations on the inputs they surveyed before. They send parameters that include variations of payloads. The payloads are designed to bypass incomplete filtering (e.g., incomplete HTML encoding etc.) and tries many variations of characters injection that would enable the XSS payload. They record all the responses from the server that include unmodified versions of their script.
Techniques |
---|
Use a list of XSS probe strings to inject in parameters of known URLs. If possible, the probe strings contain a unique identifier. Attempt numerous variations based on form, format, syntax & encoding. |
Use a proxy tool to record results of manual input of XSS probes in known URLs. |
Steal session IDs, credentials, page content, etc.: As the attacker succeeds in exploiting the vulnerability, they can choose to steal user's credentials in order to reuse or to analyze them later on.
Techniques |
---|
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 attacker. |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute appropriately. |
Forceful browsing: When the attacker 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).
Techniques |
---|
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 |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute request to other web sites (especially the web applications that have CSRF vulnerabilities). |
Content spoofing: By manipulating the content, the attacker targets the information that the user would like to get from the website.
Techniques |
---|
Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and exposes attacker-modified invalid information to the user on the current web page. |
Investigate account lockout behavior of system: Investigate the security features present in the system that may trigger an account lockout
Techniques |
---|
Analyze system documentation to find list of events that could potentially cause account lockout |
Obtain user account in system and attempt to lock it out by sending malformed or incorrect data repeatedly |
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. |
Obtain list of user accounts to lock out: Generate a list of valid user accounts to lock out
Techniques |
---|
Obtain list of authorized users using another attack pattern, such as SQL Injection. |
Attempt to create accounts if possible; system should indicate if a user ID is already taken. |
Attempt to brute force user IDs if system reveals whether a given user ID is valid or not upon failed login attempts. |
Lock Out Accounts: Perform lockout procedure for all accounts that the attacker wants to lock out.
Techniques |
---|
For each user ID to be locked out, perform the lockout procedure discovered in the first step. |
Determine the ciphertext and the encryption algorithm.
Perform an exhaustive brute force search of the key space, producing candidate plaintexts and observing if they make sense.
Survey the target: Using a browser or an automated tool, an attacker records all instances of web services that process requests with serialized data.
Techniques |
---|
Use an automated tool to record all instances of URLs that process requests with serialized data. |
Use a browser to manually explore the website and analyze how the application processes serialized data requests. |
Launch an External Entity Linking attack: The attacker crafts malicious data message that contains references to sensitive files.
Techniques |
---|
Send the malicious crafted message containing the reference to a sensitive file to the target URL. |
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 aquired normally through a certificate authority.
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
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.
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.
Probing: The attacker probes, through brute-forcing, reverse-engineering or other similar means, the functionality on the client that server assumes to be present and trustworthy.
Techniques |
---|
The attacker probes by exploring an application's functionality and its underlying mapping to server-side components. |
The attacker reverse engineers client-side code to identify the functionality that the server relies on for the proper or secure operation. |
Determine which functionality to disable or remove: The attacker tries to determine which functionality to disable or remove through reverse-engineering from the list of functionality identified in the Explore phase.
Techniques |
---|
The attacker reverse engineers the client-side code to determine which functionality to disable or remove. |
Disable or remove the critical functionality from the client code: Once the functionality has been determined, the attacker disables or removes the critical functionality from the client code to perform malicious actions that the server believes are prohibited.
Techniques |
---|
The attacker disables or removes the functionality from the client-side code to perform malicious actions, such as sending of dangerous content (such as scripts) to the server. |
The adversary identifies a webpage that allows uploading content through an HTTP POST request. This is typically a blog or forum where other users will access the uploaded content.
The adversary creates a file with scripting content that they wish to be executed on other users' web browsers. This file is then uploaded through a POST request and the MIME type is specified as a file type that cannot execute scripting content, such as text/plain.
The adversary then attempts to access the uploaded content to see if the browser correctly executes their desired scripting content
Once the adversary has determined that their uploaded script will run when accessed, they either wait for users to access the content on their own or they target users to access their content through phishing emails.
The adversary's script can do just about anything, but a common use is to read a user's cookies which may contain a token. This can then be used to launch a Cross Site Request Forgery Attack.
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.
Techniques |
---|
Spider all available pages |
Attack known bad interfaces |
Search outward-facing configuration and properties files for identifiers. |
Fetch samples: The adversary fetches many samples of identifiers. This may be through legitimate access (logging in, legitimate connections, etc.) or via systematic probing.
Techniques |
---|
An adversary makes many anonymous connections and records the session IDs assigned. |
An adversary makes authorized connections and records the session tokens or credentials issued. |
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. |
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
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.
Data Exfiltration: The adversary can obtain sensitive data contained within the system or application.
Probing: The attacker uses fuzzing tools to send random malformed messages to an application and observes for log or error messages.
Techniques |
---|
The attacker uses fuzzing tools to send random malformed messages to an application and observes for log or error messages. |
Modify the parameters to get the desired information from the error messages.: Attacker usually needs to modify the fuzzing parameters according to the observed error messages to get the desired sensitive information for the application. To defeat correlation, the attacker may try changing the origin IP addresses or client browser identification strings or start a new session from where they left off in obfuscating the attack.
Techniques |
---|
Modify the parameters in the fuzzing tool according to the observed error messages. Repeat with enough parameters until the application has been sufficiently mapped. |
If the application rejects the large amount of fuzzing messages from the same host machine, the attacker needs to hide the attacks by changing the IP addresses or other credentials. |
Determine the configuration levels of either the server or client being targeted, preferably both. This is not a hard requirement, as the attacker can simply assume commonly exploitable configuration settings and blindly attempt them.
Provide controlled access to the server by the client, by either providing a link for the client to click on, or by positioning one's self at a place on the network to intercept and control the flow of data between client and server, e.g. MITM (man in the middle).
Insert the malicious data into the stream that takes advantage of the configuration flaw.
Survey the target: Using command line or an automated tool, an attacker records all instances of web services to process XML requests.
Techniques |
---|
Use automated tool to record all instances to process XML requests or find exposed WSDL. |
Use tools to crawl WSDL |
Identify SOAP messages that have multiple state processing.: Inspect instance to see whether the XML processing has multiple stages or not.
Techniques |
---|
Inspect the SOAP message routing head to see whether the XML processing has multiple stages or not. |
Launch an XML routing detour attack: The attacker injects a bogus routing node (using a WS-Referral service) into the routing table of the XML header of the SOAP message identified in the Explore phase. Thus, the attacker can route the XML message to the attacker controlled node (and access the message contents).
Techniques |
---|
The attacker injects a bogus routing node (using a WS-Referral service) into the routing table of the XML header of the SOAP message |
Craft an iFrame Overlay page: The attacker crafts a malicious iFrame overlay page.
Techniques |
---|
The attacker leverages iFrame overlay capabilities to craft a malicious iFrame overlay page. |
Attacker tricks victim to load the iFrame overlay page: Attacker utilizes some form of temptation, misdirection or coercion to trick the victim to loading and interacting with the iFrame overlay page in a way that increases the chances that the victim will visit the malicious page.
Techniques |
---|
Trick the victim to the malicious site by sending the victim an e-mail with a URL to the site. |
Trick the victim to the malicious site by manipulating URLs on a site trusted by the victim. |
Trick the victim to the malicious site through a cross-site scripting attack. |
Trick victim into interacting with the iFrame overlay page in the desired manner: The attacker tricks the victim into clicking on the areas of the UI which contain the hidden action controls and thereby interacts with the target system maliciously with the victim's level of privilege.
Techniques |
---|
Hide action controls over very commonly used functionality. |
Hide action controls over very psychologically tempting content. |
Survey the target: Using a browser or an automated tool, an attacker records all instances of web services to process XML requests.
Techniques |
---|
Use an automated tool to record all instances of URLs to process XML requests. |
Use a browser to manually explore the website and analyze how the application processes XML requests. |
Determine use of XML with DTDs: Examine application input to identify XML input that leverage the use of one or more DTDs.
Techniques |
---|
Examine any available documentation for the application that discusses expected XML input. |
Exercise the application using XML input with and without a DTD specified. Failure without DTD likely indicates use of DTD. |
[Craft and inject XML containg malicious DTD payload]
Techniques |
---|
Inject XML expansion attack that creates a Denial of Service impact on the targeted server using its DTD. |
Inject XML External Entity (XEE) attack that can cause the disclosure of confidential information, execute abitrary code, create a Denial of Service of the targeted server, or several other malicious impacts. |
Survey the target: Using a browser or an automated tool, an attacker records all instances of web services to process requests using serialized data.
Techniques |
---|
Use an automated tool to record all instances of URLs to process requests from serialized data. |
Use a browser to manually explore the website and analyze how the application processes requests using serialized data. |
Launch a Blowup attack: The attacker crafts malicious messages that contain multiple configuration parameters in the same dataset.
Techniques |
---|
Send the malicious crafted message containing the multiple configuration parameters to the target URL, causing a denial of service. |
An adversary determines the input data stream that is being processed by an XML parser on the victim's side.
An adversary crafts input data that may have an adverse effect on the operation of the XML parser when the data is parsed on the victim's system.
An adversary determines the input data stream that is being processed by an serialized data parser on the victim's side.
An adversary crafts input data that may have an adverse effect on the operation of the data parser when the data is parsed on the victim's system.
Attacker determines the underlying system thread that is subject to user-control
Attacker then provides input, perhaps by way of environment variables for the process in question, that affect the executing thread
Upon successful hijacking, the attacker enjoys elevated privileges, and can possibly have the hijacked thread do their bidding
Probing: The attacker probes the target application to see whether calling code of another language is allowed within a sandbox.
Techniques |
---|
The attacker probes the target application to see whether calling code of another language is allowed within a sandbox. |
Analysis: The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox.
Techniques |
---|
The attacker analyzes the target application to get a list of cross code weaknesses in the standard libraries of the sandbox. |
Verify the exploitable security weaknesses: The attacker tries to craft malicious code of another language allowed by the sandbox to verify the security weaknesses of the standard libraries found in the Explore phase.
Techniques |
---|
The attacker tries to explore the security weaknesses by calling malicious code of another language allowed by the sandbox. |
Exploit the security weaknesses in the standard libraries: The attacker calls malicious code of another language to exploit the security weaknesses in the standard libraries verified in the Experiment phase. The attacker will be able to obtain access to privileges that were not intentionally exposed by the sandbox, thus escaping the sandbox.
Techniques |
---|
The attacker calls malicious code of another language to exploit the security weaknesses in the standard libraries. |
Survey: The attacker surveys the target application, possibly as a valid and authenticated user
Techniques |
---|
Spidering web sites for inputs that involve potential filtering |
Brute force guessing of filtered inputs |
Attempt injections: Try to feed overly long data to the system. This can be done manually or a dynamic tool (black box) can be used to automate this. An attacker can also use a custom script for that purpose.
Techniques |
---|
Brute force attack through black box penetration test tool. |
Fuzzing of communications protocols |
Manual testing of possible inputs with attack data. |
Monitor responses: Watch for any indication of failure occurring. Carefully watch to see what happened when filter failure occurred. Did the data get in?
Techniques |
---|
Boron tagging. Choose clear attack inputs that are easy to notice in output. In binary this is often 0xa5a5a5a5 (alternating 1s and 0s). Another obvious tag value is all zeroes, but it is not always obvious what goes wrong if the null values get into the data. |
Check Log files. An attacker with access to log files can look at the outcome of bad input. |
Abuse the system through filter failure: An attacker writes a script to consistently induce the filter failure.
Techniques |
---|
DoS through filter failure. The attacker causes the system to crash or stay down because of its failure to filter properly. |
Malicious code execution. An attacker introduces a malicious payload and executes arbitrary code on the target system. |
An attacker can use the filter failure to introduce malicious data into the system and leverage a subsequent SQL injection, Cross Site Scripting, Command Injection or similar weakness if it exists. |
Survey the application: Using a browser or an automated tool, an attacker follows all public links on a web site. They record all the links they find.
Techniques |
---|
Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL. |
Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms. |
Use a browser to manually explore the website and analyze how it is constructed. Many browser's plugins are available to facilitate the analysis or automate the URL discovery. |
Attempt injection payload variations on input parameters: Possibly using an automated tool, an attacker requests variations on the inputs they surveyed before. They send parameters that include variations of payloads. They record all the responses from the server that include unmodified versions of their script.
Techniques |
---|
Use a list of XSS probe strings using different URI schemes to inject in parameters of known URLs. If possible, the probe strings contain a unique identifier to trace the injected string back to the entry point. |
Use a proxy tool to record results of manual input of XSS probes in known URLs. |
Steal session IDs, credentials, page content, etc.: As the attacker succeeds in exploiting the vulnerability, they can choose to steal user's credentials in order to reuse or to analyze them later on.
Techniques |
---|
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 attacker. |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute appropriately. |
Forceful browsing: When the attacker 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).
Techniques |
---|
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 |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute request to other web sites (especially the web applications that have CSRF vulnerabilities). |
Content spoofing: By manipulating the content, the attacker targets the information that the user would like to get from the website
Techniques |
---|
Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and exposes attacker-modified invalid information to the user on the current web page. |
Spider: Using a browser or an automated tool, an attacker follows all public links on a web site. They record all the links they find.
Techniques |
---|
Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL. |
Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms. |
Use a browser to manually explore the website and analyze how it is constructed. Many browser's plugins are available to facilitate the analysis or automate the URL discovery. |
Attempt variations on input parameters: Possibly using an automated tool, an attacker requests variations on the URLs they spidered before. They send parameters that include variations of payloads. They record all the responses from the server that include unmodified versions of their script.
Techniques |
---|
Use a list of XSS probe strings to inject in parameters of known URLs. If possible, the probe strings contain a unique identifier. |
Use a proxy tool to record results of manual input of XSS probes in known URLs. |
Steal session IDs, credentials, page content, etc.: As the attacker succeeds in exploiting the vulnerability, they can choose to steal user's credentials in order to reuse or to analyze them later on.
Techniques |
---|
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 attacker. |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute appropriately. |
Forceful browsing: When the attacker 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).
Techniques |
---|
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 |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute request to other web sites (especially the web applications that have CSRF vulnerabilities). |
Content spoofing: By manipulating the content, the attacker targets the information that the user would like to get from the website.
Techniques |
---|
Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and exposes attacker-modified invalid information to the user on the current web page. |
Determine if timestamps are present.: The adversary sends a probe packet to the remote host to identify if timestamps are present.
Record and analyze timestamp values.: If the remote host is using timestamp, obtain several timestamps, analyze them and compare them to known values.
Techniques |
---|
The adversary sends several requests and records the timestamp values. |
The adversary analyzes the timestamp values and determines an average increments per second in the timestamps for the target. |
The adversary compares this result to a database of known TCP timestamp increments for a possible match. |
Identify HTTP parsing chain: Determine the technologies used in the target environment such as types of web servers, application firewalls, proxies, etc.
Techniques |
---|
Investigation of the target environment to determine the types of technologies used to parse the incoming HTTP requests. Attempt to understand the parsing chain traversed by the incoming HTTP request. |
Probe for vulnerable differences in HTTP parsing chain: Attacker sends malformed HTTP Requests to the application looking for differences in the ways that individual layers in the parsing chain parse requests. When differences are identified, the attacker crafts specially malformed HTTP requests to determine if the identified parsing differences will allow extra requests to be smuggled through parsing layers.
Techniques |
---|
Create many consecutive requests to the server. Some of which must be malformed. |
Use a proxy tool to record the HTTP responses headers. |
Cache poisoning: The attacker decides to target the cache server. The server will then cache the request and serve a wrong page to a legitimate user's request. The malicious request will most likely exploit a Cross-Site Scripting or another injection typed vulnerability.
Techniques |
---|
Leverage the vulnerabilities identified in the Experiment Phase to inject malicious HTTP request that contains HTTP Request syntax that will be processed and acted on by the outer parsing layer of the cache server but not by the inner application layer. In this way it will be cached by the server without obvious sign from the application and the corrupt data will be served to future requesters. |
Session Hijacking: The attacker decides to target the web server by crafting a malicious HTTP Request containing a second HTTP Request using syntax that will not be processed and acted on by an outer \"filter\" parsing layer but will be acted on by the inner web server/application processing layers. The application/web server will then act on the malicious HTTP Request as if it is a valid request from the client potentially subverting session management.
Techniques |
---|
Leverage the vulnerabilities identified in the Experiment Phase to inject malicious HTTP request that contains HTTP Request syntax that will not be processed and acted on by the outer parsing layer of the malicious content filters but will be by the inner application/web server layer. In this way it will be acted on by the application/web server as if it is a valid request from the client. |
Spider: Using a browser or an automated tool, an adversary follows all public links on a web site. They record all the links, the forms and all potential user-controllable input points for the web application.
Techniques |
---|
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, forms found in the pages (like file upload, etc.). |
Use a proxy tool to record all links visited during a manual traversal of the web application. |
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. |
Attempt variations on input parameters: The adversary injects the entry points identified in the Explore Phase with response splitting syntax and variations of payloads to be acted on in the additional response. They record all the responses from the server that include unmodified versions of their payload.
Techniques |
---|
Use CR\\LF characters (encoded or not) in the payloads in order to see if the HTTP header can be split. |
Use a proxy tool to record the HTTP responses headers. |
Cross-Site Scripting: As the adversary succeeds in exploiting the vulnerability, they can choose to attack the user with Cross-Site Scripting. The possible outcomes of such an attack are described in the Cross-Site Scripting related attack patterns.
Techniques |
---|
Inject cross-site scripting payload preceded by response splitting syntax (CR/LF) into user-controllable input identified as vulnerable in the Experiment Phase. |
Cache poisoning: The adversary decides to target the cache server by forging new responses. The server will then cache the second request and response. The cached response has most likely an attack vector like Cross-Site Scripting; this attack will then be serve to many clients due to the caching system.
Techniques |
---|
The adversary decides to target the cache server by forging new responses. The server will then cache the second request and response. The cached response has most likely an attack vector like Cross-Site Scripting; this attack will then be serve to many clients due to the caching system. |
Identify services: Discover a service of interest by exploring service registry listings or by connecting on a known port or some similar means.
Techniques |
---|
Search via internet for known, published services. |
Use automated tools to scan known ports to identify internet-enabled services. |
Dump the code from the chip and then perform reverse engineering to analyze the code. |
Authenticate to service: Authenticate to the service, if required, in order to explore it.
Techniques |
---|
Use published credentials to access system. |
Find unpublished credentails to access service. |
Use other attack pattern or weakness to bypass authentication. |
Identify all interfaces: Determine the exposed interfaces by querying the registry as well as probably sniffing to expose interfaces that are not explicitly listed.
Techniques |
---|
For any published services, determine exposed interfaces via the documentation provided. |
For any services found, use error messages from poorly formed service calls to determine valid interfaces. In some cases, services will respond to poorly formed calls with valid ones. |
Attempt to discover unpublished functions: Using manual or automated means, discover unpublished or undocumented functions exposed by the service.
Techniques |
---|
Manually attempt calls to the service using an educated guess approach, including the use of terms like' 'test', 'debug', 'delete', etc. |
Use automated tools to scan the service to attempt to reverse engineer exposed, but undocumented, features. |
Exploit unpublished functions: Using information determined via experimentation, exploit the unpublished features of the service.
Techniques |
---|
Execute features that are not intended to be used by general system users. |
Craft malicious calls to features not intended to be used by general system users that take advantage of security flaws found in the functions. |
Identify Target: Attacker identifies client components to extract information from. These may be binary executables, class files, shared libraries (e.g., DLLs), configuration files, or other system files.
Techniques |
---|
Binary file extraction. The attacker extracts binary files from zips, jars, wars, PDFs or other composite formats. |
Package listing. The attacker uses a package manifest provided with the software installer, or the filesystem itself, to identify component files suitable for attack. |
Apply mining techniques: The attacker then uses a variety of techniques, such as sniffing, reverse-engineering, and cryptanalysis to extract the information of interest.
Techniques |
---|
API Profiling. The attacker monitors the software's use of registry keys or other operating system-provided storage locations that can contain sensitive information. |
Execution in simulator. The attacker physically removes mass storage from the system and explores it using a simulator, external system, or other debugging harness. |
Common decoding methods. The attacker applies methods to decode such encodings and compressions as Base64, unzip, unrar, RLE decoding, gzip decompression and so on. |
Common data typing. The attacker looks for common file signatures for well-known file types (JPEG, TIFF, ASN.1, LDIF, etc.). If the signatures match, they attempt decoding in that format. |
Enumerate information passed to client side: The attacker identifies the parameters used as part of tokens to take business or security decisions
Techniques |
---|
Use WebScarab to reveal hidden fields while browsing. |
Use a sniffer to capture packets |
View source of web page to find hidden fields |
Examine URL to see if any opaque tokens are in it |
Disassemble or decompile client-side application |
Use debugging tools such as File Monitor, Registry Monitor, Debuggers, etc. |
Determine protection mechanism for opaque token: The attacker determines the protection mechanism used to protect the confidentiality and integrity of these data tokens. They may be obfuscated or a full blown encryption may be used.
Techniques |
---|
Look for signs of well-known character encodings |
Look for cryptographic signatures |
Look for delimiters or other indicators of structure |
Modify parameter/token values: Trying each parameter in turn, the attacker modifies the values
Techniques |
---|
Modify tokens logically |
Modify tokens arithmetically |
Modify tokens bitwise |
Modify structural components of tokens |
Modify order of parameters/tokens |
Cycle through values for each parameter.: Depending on the nature of the application, the attacker now cycles through values of each parameter and observes the effects of this modification in the data returned by the server
Techniques |
---|
Use network-level packet injection tools such as netcat |
Use application-level data modification tools such as Tamper Data, WebScarab, TamperIE, etc. |
Use modified client (modified by reverse engineering) |
Use debugging tools to modify data in client |
Identify attacker-writable terminals: Determine if users TTYs are writable by the attacker.
Techniques |
---|
Determine the permissions for the TTYs found on the system. Any that allow user write to the TTY may be vulnerable. |
Attempt to write to other user TTYs. This approach could leave a trail or alert a user. |
Execute malicious commands: Using one or more vulnerable TTY, execute commands to achieve various impacts.
Techniques |
---|
Commands that allow reading or writing end user files can be executed. |
Identify and characterize metacharacter-processing vulnerabilities in email headers: An attacker creates emails with headers containing various metacharacter-based malicious payloads in order to determine whether the target application processes the malicious content and in what manner it does so.
Techniques |
---|
Use an automated tool (fuzzer) to create malicious emails headers containing metacharacter-based payloads. |
Manually tampering email headers to inject malicious metacharacter-based payload content in them. |
An attacker leverages vulnerabilities identified during the Experiment Phase to inject malicious email headers and cause the targeted email application to exhibit behavior outside of its expected constraints.
Techniques |
---|
Send emails with specifically-constructed, metacharacter-based malicious payloads in the email headers to targeted systems running email processing applications identified as vulnerable during the Experiment Phase. |
Determine whether the mail server is unpatched and is potentially vulnerable to one of the known MIME conversion buffer overflows (e.g. Sendmail 8.8.3 and 8.8.4).
Identify places in the system where vulnerable MIME conversion routines may be used.
Send e-mail messages to the target system with specially crafted headers that trigger the buffer overflow and execute the shell code.
Determine application/system inputs where bypassing input validation is desired: The attacker first needs to determine all of the application's/system's inputs where input validation is being performed and where they want to bypass it.
Techniques |
---|
While using an application/system, the attacker discovers an input where validation is stopping them from performing some malicious or unauthorized actions. |
Determine which character encodings are accepted by the application/system: The attacker then needs to provide various character encodings to the application/system and determine which ones are accepted. The attacker will need to observe the application's/system's response to the encoded data to determine whether the data was interpreted properly.
Techniques |
---|
Determine which escape characters are accepted by the application/system. A common escape character is the backslash character, '\\' |
Determine whether URL encoding is accepted by the application/system. |
Determine whether UTF-8 encoding is accepted by the application/system. |
Determine whether UTF-16 encoding is accepted by the application/system. |
Determine if any other encodings are accepted by the application/system. |
Combine multiple encodings accepted by the application.: The attacker now combines encodings accepted by the application. The attacker may combine different encodings or apply the same encoding multiple times.
Techniques |
---|
Combine same encoding multiple times and observe its effects. For example, if special characters are encoded with a leading backslash, then the following encoding may be accepted by the application/system: \"\\\\\\.\". With two parsing layers, this may get converted to \"\\.\" after the first parsing layer, and then, to \".\" after the second. If the input validation layer is between the two parsing layers, then \"\\\\\\.\\\\\\.\" might pass a test for \"..\" but still get converted to \"..\" afterwards. This may enable directory traversal attacks. |
Combine multiple encodings and observe the effects. For example, the attacker might encode \".\" as \"\\.\", and then, encode \"\\.\" as \"\.\", and then, encode that using URL encoding to \"%26%2392%3B%26%2346%3B\" |
Leverage ability to bypass input validation: Attacker leverages their ability to bypass input validation to gain unauthorized access to system. There are many attacks possible, and a few examples are mentioned here.
Techniques |
---|
Gain access to sensitive files. |
Perform command injection. |
Perform SQL injection. |
Perform XSS attacks. |
The adversary identifies software that uses external binary files in some way. This could be a file upload, downloading a file from a shared location, or other means.
The adversary creates a malicious binary file by altering the header to make the file seem shorter than it is. Additional bytes are added to the end of the file to be placed in the overflowed location.
The adversary deploys this file to the software, observing its behavior. If the source code is available, the adversary can carefully craft the malicious file to execute the intended behavior. If the source code is not available, the adversary will iteratively alter the file to reach the intended behavior
Once the adversary has constructed a file that will effectively overflow the targeted software in the intended way. The file is deployed to the software.
Upon successful exploitation, the system either crashes or control of the program is returned to a location of the adversaries' choice. This can result in execution of arbitrary code or escalated privileges, depending upon the exploited target.
The attacker creates or modifies a symbolic link pointing to a resources (e.g., file, directory). The content of the symbolic link file includes out-of-bounds (e.g. excessive length) data.
The target host consumes the data pointed to by the symbolic link file. The target host may either intentionally expect to read a symbolic link or it may be fooled by the replacement of the original resource and read the attackers' symbolic link.
While consuming the data, the target host does not check for buffer boundary which can lead to a buffer overflow. If the content of the data is controlled by the attacker, this is an avenue for remote code execution.
Determine Target System: In certain cases, the adversary will explore an organization's network to determine a specific target machine to exploit based on the information it contains or privileges the main user may possess.
Techniques |
---|
If needed, the adversary explores an organization's network to determine if any specific systems of interest exist. |
Develop or Obtain malware and install on a USB device: The adversary develops or obtains the malicious software necessary to exploit the target system, which they then install on an external USB device such as a USB flash drive.
Techniques |
---|
The adversary can develop or obtain malware for to perform a variety of tasks such as sniffing network traffic or monitoring keystrokes. |
Connect or deceive a user into connecting the infected USB device: Once the malware has been placed on an external USB device, the adversary connects the device to the target system or deceives a user into connecting the device to the target system such as in a USB Drop Attack.
Techniques |
---|
The adversary connects the USB device to a specified target system or performs a USB Drop Attack, hoping a user will find and connect the USB device on their own. Once the device is connected, the malware executes giving the adversary access to network traffic, credentials, etc. |
The adversary crafts two different, but valid X.509 certificates that when hashed with an insufficiently collision resistant hashing algorithm would yield the same value.
The adversary sends the CSR for one of the certificates to the Certification Authority which uses the targeted hashing algorithm. That request is completely valid and the Certificate Authority issues an X.509 certificate to the adversary which is signed with its private key.
The adversary takes the signed blob and inserts it into the second X.509 certificate that the attacker generated. Due to the hash collision, both certificates, though different, hash to the same value and so the signed blob is valid in the second certificate. The result is two certificates that appear to be signed by a valid certificate authority despite only one having been signed.
The attacker modifies a tag or variable from a formatted configuration data. For instance they change it to an oversized string.
The target program consumes the data modified by the attacker without prior boundary checking. As a consequence, a buffer overflow occurs and at worst remote code execution may follow.
Consider parts of the program where user supplied data may be expanded by the program. Use a disassembler and other reverse engineering tools to guide the search.
Find a place where a buffer overflow occurs due to the fact that the new expanded size of the string is not correctly accounted for by the program. This may happen perhaps when the string is copied to another buffer that is big enough to hold the original, but not the expanded string. This may create an opportunity for planting the payload and redirecting program execution to the shell code.
Write the buffer overflow exploit. To be exploitable, the \"spill over\" amount (e.g. the difference between the expanded string length and the original string length before it was expanded) needs to be sufficient to allow the overflow of the stack return pointer (in the case of a stack overflow), without causing a stack corruption that would crash the program before it gets to execute the shell code. Heap overflow will be more difficult and will require the attacker to get more lucky, by perhaps getting a chance to overwrite some of the accounting information stored as part of using malloc().
The adversary identifies a database management system running on a machine they would like to gain control over, or on a network they want to move laterally through.
The adversary goes about the typical steps of an SQL injection and determines if an injection is possible.
Once the Adversary determines that an SQL injection is possible, they must ensure that the requirements for the attack are met. These are a high privileged session user and batched query support. This is done in similar ways to discovering if an SQL injection is possible.
If the requirements are met, based on the database management system that is running, the adversary will find or create user defined functions (UDFs) that can be loaded as DLLs. An example of a DLL can be found at https://github.com/rapid7/metasploit-framework/tree/master/data/exploits/mysql
In order to load the DLL, the adversary must first find the path to the plugin directory. The command to achieve this is different based on the type of DBMS, but for MySQL, this can be achieved by running the command \"select @@plugin_dir\"
The DLL is then moved into the previously found plugin directory so that the contained functions can be loaded. This can be done in a number of ways; loading from a network share, writing the entire hex encoded string to a file in the plugin directory, or loading the DLL into a table and then into a file. An example using MySQL to load the hex string is as follows. select 0x4d5a9000... into dump file \"{plugin directory}\\\\udf.dll\";
Once the DLL is in the plugin directory, a command is then run to load the UDFs. An example of this in MySQL is \"create function sys_eval returns string soname 'udf.dll';\" The function sys_eval is specific to the example DLL listed above.
Once the adversary has loaded the desired function(s), they will use these to execute arbitrary commands on the compromised system. This is done through a simple select command to the loaded UDF. For example: \"select sys_eval('dir');\". Because the prerequisite to this attack is that the database session user is a super user, this means that the adversary will be able to execute commands with elevated privileges.
Identify target general susceptibility: An attacker uses an automated tool or manually finds whether the target application uses dynamically linked libraries and the configuration file or look up table (such as Procedure Linkage Table) which contains the entries for dynamically linked libraries.
Techniques |
---|
The attacker uses a tool such as the OSX \"otool\" utility or manually probes whether the target application uses dynamically linked libraries. |
The attacker finds the configuration files containing the entries to the dynamically linked libraries and modifies the entries to point to the malicious libraries the attacker crafted. |
Craft malicious libraries: The attacker uses knowledge gained in the Explore phase to craft malicious libraries that they will redirect the target to leverage. These malicious libraries could have the same APIs as the legitimate library and additional malicious code.
Techniques |
---|
The attacker monitors the file operations performed by the target application using a tool like dtrace or FileMon. And the attacker 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. |
Redirect the access to libraries to the malicious libraries: The attacker redirects the target to the malicious libraries they crafted in the Experiment phase. The attacker will be able to force the targeted application to execute arbitrary code when the application attempts to access the legitimate libraries.
Techniques |
---|
The attacker modifies the entries in the configuration files pointing to the malicious libraries they crafted. |
The attacker leverages symlink/timing issues to redirect the target to access the malicious libraries they crafted. See also: CAPEC-132. |
The attacker leverages file search path order issues to redirect the target to access the malicious libraries they crafted. See also: CAPEC-38. |
Identify web application URL inputs: Review application inputs to find those that are designed to be URLs.
Techniques |
---|
Manually navigate web site pages to identify URLs. |
Use automated tools to identify URLs. |
Identify URL inputs allowing local access.: Execute test local commands via each URL input to determine which are successful.
Techniques |
---|
Manually execute a local command (such as 'pwd') via the URL inputs. |
Using an automated tool, test each URL input for weakness. |
Execute malicious commands: Using the identified URL inputs that allow local command execution, execute malicious commands.
Techniques |
---|
Execute local commands via the URL input. |
Determine application's/system's password policy: Determine the password policies of the target application/system.
Techniques |
---|
Determine minimum and maximum allowed password lengths. |
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc.). |
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks). |
Brute force password: Given the finite space of possible passwords dictated by the password policy determined in the previous step, try all possible passwords for a known user ID until application/system grants access.
Techniques |
---|
Manually or automatically enter all possible passwords through the application/system's interface. In most systems, start with the shortest and simplest possible passwords, because most users tend to select such passwords if allowed to do so. |
Perform an offline dictionary attack or a rainbow table attack against a known password hash. |
Understand the password recovery mechanism and how it works.
Find a weakness in the password recovery mechanism and exploit it. For instance, a weakness may be that a standard single security question is used with an easy to determine answer.
Determine suitable tasks to exploit: Determine what tasks exist on the target system that may result in a user providing sensitive information.
Techniques |
---|
Determine what tasks prompt a user for their credentials. |
Determine what tasks may prompt a user to authorize a process to execute with elevated privileges. |
Impersonate Task: Impersonate a legitimate task, either expected or unexpected, in an attempt to gain user credentials or to ride the user's privileges.
Techniques |
---|
Prompt a user for their credentials, while making the user believe the credential request is legitimate. |
Prompt a user to authorize a task to run with elevated privileges, while making the user believe the request is legitimate. |
Scan for user accounts with set SPN values
Techniques |
---|
These can be found via Powershell or LDAP queries, as well as enumerating startup name accounts and other means. |
Request service tickets
Techniques |
---|
Using user account's SPN value, request other service tickets from Active Directory |
Extract ticket and save to disk
Techniques |
---|
Certain tools like Mimikatz can extract local tickets and save them to memory/disk. |
Crack the encrypted ticket to harvest plain text credentials
Techniques |
---|
Leverage a brute force application/script on the hashed value offline until cracked. The shorter the password, the easier it is to crack. |
Identify a place in the program where user input may be used to escalate privileges by for instance accessing unauthorized file system resources through directory browsing.
An attacker realizes that there is a postfix data that gets in the way of getting to the desired resources
An attacker then ads a postfix NULL terminator to the supplied input in order to \"swallow\" the postfixed data when the insertion is taking place. With the postfix data that got in the way of the attack gone, the doors are opened for accessing the desired resources.
Survey the target: Using a browser or an automated tool, an attacker records all instance of web services to process XML requests.
Techniques |
---|
Use an automated tool to record all instances of URLs to process XML requests. |
Use a browser to manually explore the website and analyze how the application processes XML requests. |
An adversary crafts input data that may have an adverse effect on the operation of the web service when the XML data sent to the service.
Launch a resource depletion attack: The attacker delivers a large number of XML messages to the target URLs found in the explore phase at a sufficiently rapid rate. It causes denial of service to the target application.
Techniques |
---|
Send a large number of crafted XML messages to the target URL. |
An attacker first probes to figure out what restrictions on input are placed by filter, such as a specific characters on the end of the URL.
The attacker then injects a string of their choosing with a null terminator (using an alternate encoding such as %00), followed by a backslash (%5C), followed by some additional characters that are required to keep the filter happy
\n
Determine the relevent open-source code project to target: The adversary will make the selection based on various criteria:
Develop a malicious contribution plan: The adversary develops a plan to contribute the malicious code, taking the following into consideration:
Execute the malicious contribution plan: Write the code to be contributed based on the plan and then submit the contribution. Multiple commits, possibly using multiple identities, will help obscure the attack. Monitor the contribution site to try to determine if the code has been uploaded to the target system.
Determine user-controllable parameters of the application
Inject each parameter with content that causes an error condition to manifest
Modify the content of each parameter according to observed error conditions
Repeat above steps with enough parameters until the application has been sufficiently mapped out to launch desired attack (for example, Blind SQL Injection)
Determine application's/system's password policy: Determine the password policies of the target application/system.
Techniques |
---|
Determine minimum and maximum allowed password lengths. |
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc.). |
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks). |
Obtain password hashes: An attacker gets access to the database table storing hashes of passwords or potentially just discovers a hash of an individual password.
Techniques |
---|
Obtain copy of database table or flat file containing password hashes (by breaking access controls, using SQL Injection, etc.) |
Obtain password hashes from platform-specific storage locations (e.g. Windows registry) |
Sniff network packets containing password hashes. |
Run rainbow table-based password cracking tool: An attacker finds or writes a password cracking tool that uses a previously computed rainbow table for the right hashing algorithm. It helps if the attacker knows what hashing algorithm was used by the password system.
Techniques |
---|
Run rainbow table-based password cracking tool such as Ophcrack or RainbowCrack. Reduction function must depend on application's/system's password policy. |
Acquire known credentials: The adversary must obtain known credentials in order to access the target system, application, or service.
Techniques |
---|
An adversary purchases breached username/password combinations or leaked hashed passwords from the dark web. |
An adversary leverages a key logger or phishing attack to steal user credentials as they are provided. |
An adversary conducts a sniffing attack to steal credentials as they are transmitted. |
An adversary gains access to a database and exfiltrates password hashes. |
An adversary examines outward-facing configuration and properties files to discover hardcoded credentials. |
Determine target's password policy: Determine the password policies of the target system/application to determine if the known credentials fit within the specified criteria.
Techniques |
---|
Determine minimum and maximum allowed password lengths. |
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary). |
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks if multiple passwords are known for a single user account). |
Attempt authentication: Try each credential until the target grants access.
Techniques |
---|
Manually or automatically enter each credential through the target's interface. |
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
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.
Data Exfiltration: The adversary can obtain sensitive data contained within the system or application.
Acquire known Windows administrator credentials: The adversary must obtain known Windows administrator credentials in order to access the administrative network shares.
Techniques |
---|
An adversary purchases breached Windows administrator credentials from the dark web. |
An adversary leverages a key logger or phishing attack to steal administrator credentials as they are provided. |
An adversary conducts a sniffing attack to steal Windows administrator credentials as they are transmitted. |
An adversary gains access to a Windows domain system/files and exfiltrates Windows administrator password hashes. |
An adversary examines outward-facing configuration and properties files to discover hardcoded Windows administrator credentials. |
Attempt domain authentication: Try each Windows administrator credential against the hidden network shares until the target grants access.
Techniques |
---|
Manually or automatically enter each administrator credential through the target's interface. |
Malware Execution: An adversary can remotely execute malware within the administrative network shares to infect other systems within the domain.
Data Exfiltration: The adversary can remotely obtain sensitive data contained within the administrative network shares.
Determine target's password policy: Determine the password policies of the target system/application.
Techniques |
---|
Determine minimum and maximum allowed password lengths. |
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary). |
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks). |
Select passwords: Pick the passwords to be used in the attack (e.g. commonly used passwords, passwords tailored to individual users, etc.)
Techniques |
---|
Select passwords based on common use or a particular user's additional details. |
Select passwords based on the target's password complexity policies. |
Brute force password: Given the finite space of possible passwords dictated by information determined in the previous steps, try each password for all known user accounts until the target grants access.
Techniques |
---|
Manually or automatically enter the first password for each known user account through the target's interface. In most systems, start with the shortest and simplest possible passwords, because most users tend to select such passwords if allowed to do so. |
Iterate through the remaining passwords for each known user account. |
Find Session IDs: The attacker interacts with the target host and finds that session IDs are used to authenticate users.
Techniques |
---|
An attacker makes many anonymous connections and records the session IDs assigned. |
An attacker makes authorized connections and records the session tokens or credentials issued. |
Characterize IDs: The attacker studies the characteristics of the session ID (size, format, etc.). As a results the attacker finds that legitimate session IDs are predictable.
Techniques |
---|
Cryptanalysis. The attacker uses cryptanalysis to determine if the session IDs contain any cryptographic protections. |
Pattern tests. The attacker looks for patterns (odd/even, repetition, multiples, or other arithmetic relationships) between IDs |
Comparison against time. The attacker plots or compares the issued IDs to the time they were issued to check for correlation. |
Match issued IDs: The attacker brute forces different values of session ID and manages to predict a valid session ID.
Techniques |
---|
The attacker models the session ID algorithm enough to produce a compatible session IDs, or just one match. |
Use matched Session ID: The attacker uses the falsified session ID to access the target system.
Techniques |
---|
The attacker loads the session ID into their web browser and browses to restricted data or functionality. |
The attacker loads the session ID into their network communications and impersonates a legitimate user to gain access to data or functionality. |
Discovery of potential injection vectors: Using an automated tool or manual discovery, the attacker identifies services or methods with arguments that could potentially be used as injection vectors (OS, API, SQL procedures, etc.).
Techniques |
---|
Manually cover the application and record the possible places where arguments could be passed into external systems. |
Use a spider, for web applications, to create a list of URLs and associated inputs. |
1. Attempt variations on argument content: Possibly using an automated tool, the attacker will perform injection variations of the arguments.
Techniques |
---|
Use a very large list of probe strings in order to detect if there is a positive result, and, what type of system has been targeted (if obscure). |
Use a proxy tool to record results, error messages and/or log if accessible. |
Abuse of the application: The attacker injects specific syntax into a particular argument in order to generate a specific malicious effect in the targeted application.
Techniques |
---|
Manually inject specific payload into targeted argument. |
The attacker interacts with the target host and finds that session IDs are used to authenticate users.
The attacker steals a session ID from a valid user.
The attacker tries to use the stolen session ID to gain access to the system with the privileges of the session ID's original owner.
Acquire known credentials: The adversary must obtain known credentials in order to access the target system, application, or service.
Techniques |
---|
An adversary purchases breached username/password combinations or leaked hashed passwords from the dark web. |
An adversary leverages a key logger or phishing attack to steal user credentials as they are provided. |
An adversary conducts a sniffing attack to steal credentials as they are transmitted. |
An adversary gains access to a database and exfiltrates password hashes. |
An adversary examines outward-facing configuration and properties files to discover hardcoded credentials. |
Determine target's password policy: Determine the password policies of the target system/application to determine if the known credentials fit within the specified criteria.
Techniques |
---|
Determine minimum and maximum allowed password lengths. |
Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary). |
Determine account lockout policy (a strict account lockout policy will prevent brute force attacks if multiple passwords are known for a single user account). |
Attempt authentication: Try each username/password combination until the target grants access.
Techniques |
---|
Manually or automatically enter each username/password combination through the target's interface. |
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
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.
Data Exfiltration: The adversary can obtain sensitive data contained within the system or application.
Setup the Attack: Setup a session: The attacker has to setup a trap session that provides a valid session identifier, or select an arbitrary identifier, depending on the mechanism employed by the application. A trap session is a dummy session established with the application by the attacker and is used solely for the purpose of obtaining valid session identifiers. The attacker may also be required to periodically refresh the trap session in order to obtain valid session identifiers.
Techniques |
---|
The attacker chooses a predefined identifier that they know. |
The attacker creates a trap session for the victim. |
Attract a Victim: Fixate the session: The attacker now needs to transfer the session identifier from the trap session to the victim by introducing the session identifier into the victim's browser. This is known as fixating the session. The session identifier can be introduced into the victim's browser by leveraging cross site scripting vulnerability, using META tags or setting HTTP response headers in a variety of ways.
Techniques |
---|
Attackers can put links on web sites (such as forums, blogs, or comment forms). |
Attackers can establish rogue proxy servers for network protocols that give out the session ID and then redirect the connection to the legitimate service. |
Attackers can email attack URLs to potential victims through spam and phishing techniques. |
Abuse the Victim's Session: Takeover the fixated session: 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 fixated session identifier.
Techniques |
---|
The attacker loads the predefined session ID into their browser and browses to protected data or functionality. |
The attacker loads the predefined session ID into their software and utilizes functionality with the rights of the victim. |
Determine target website: The adversary first determines which website to impersonate, generally one that is trusted and receives a consistent amount of traffic.
Techniques |
---|
Research popular or high traffic websites. |
Impersonate trusted domain: In order to impersonate the trusted domain, the adversary needs to register the BitSquatted URL.
Techniques |
---|
Register the BitSquatted domain. |
Wait for a user to visit the domain: Finally, the adversary simply waits for a user to be unintentionally directed to the BitSquatted domain.
Techniques |
---|
Simply wait for an error in memory to occur, redirecting the user to the malicious domain. |
Explore target website: The attacker first explores the target website to determine pieces of functionality that are of interest to them (e.g. money transfers). The attacker will need a legitimate user account on the target website. It would help to have two accounts.
Techniques |
---|
Use web application debugging tool such as WebScarab, Tamper Data or TamperIE to analyze the information exchanged between the client and the server |
Use network sniffing tool such as Wireshark to analyze the information exchanged between the client and the server |
View HTML source of web pages that contain links or buttons that perform actions of interest. |
Create a link that when clicked on, will execute the interesting functionality.: The attacker needs to create a link that will execute some interesting functionality such as transfer money, change a password, etc.
Techniques |
---|
Create a GET request containing all required parameters (e.g. https://www.somebank.com/members/transfer.asp?to=012345678901&amt=10000) |
Create a form that will submit a POST request (e.g. |
Convince user to click on link: Finally, the attacker needs to convince a user that is logged into the target website to click on a link to execute the CSRF attack.
Techniques |
---|
Execute a phishing attack and send the user an e-mail convincing them to click on a link. |
Execute a stored XSS attack on a website to permanently embed the malicious link into the website. |
Execute a stored XSS attack on a website where an XMLHTTPRequest object will automatically execute the attack as soon as a user visits the page. This removes the step of convincing a user to click on a link. |
Include the malicious link on the attackers' own website where the user may have to click on the link, or where an XMLHTTPRequest object may automatically execute the attack when a user visits the site. |
Survey the application for user-controllable inputs: Using a browser or an automated tool, an attacker follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application.
Techniques |
---|
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. |
Use a proxy tool to record all links visited during a manual traversal of the web application. |
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. |
Probe identified potential entry points for XSS vulnerability: The attacker 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.
Techniques |
---|
Use a list of XSS probe strings to inject script in parameters of known URLs. If possible, the probe strings contain a unique identifier. |
Use a proxy tool to record results of manual input of XSS probes in known URLs. |
Use a list of XSS probe strings to inject script into UI entry fields. If possible, the probe strings contain a unique identifier. |
Use a list of XSS probe strings to inject script into resources accessed by the application. If possible, the probe strings contain a unique identifier. |
Steal session IDs, credentials, page content, etc.: As the attacker succeeds in exploiting the vulnerability, they can choose to steal user's credentials in order to reuse or to analyze them later on.
Techniques |
---|
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 attacker. |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute appropriately. |
Forceful browsing: When the attacker 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).
Techniques |
---|
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 |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute request to other web sites (especially the web applications that have CSRF vulnerabilities). |
Content spoofing: By manipulating the content, the attacker targets the information that the user would like to get from the website.
Techniques |
---|
Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and exposes attacker-modified invalid information to the user on the current web page. |
Determine target website: The adversary first determines which website to impersonate, generally one that is trusted and receives a consistent amount of traffic.
Techniques |
---|
Research popular or high traffic websites. |
Impersonate trusted domain: In order to impersonate the trusted domain, the adversary needs to register the TypoSquatted URL.
Techniques |
---|
Register the TypoSquatted domain. |
Deceive user into visiting domain: Finally, the adversary needs to deceive a user into visiting the TypoSquatted domain.
Techniques |
---|
Execute a phishing attack and send a user an e-mail convincing the user to click on a link leading the user to the TypoSquatted domain. |
Assume that a user will incorrectly type the legitimate URL, leading the user to the TypoSquatted domain. |
Determine target website: The adversary first determines which website to impersonate, generally one that is trusted, receives a consistent amount of traffic, and is a homophone.
Techniques |
---|
Research popular or high traffic websites which are also homophones. |
Impersonate trusted domain: In order to impersonate the trusted domain, the adversary needs to register the SoundSquatted URL.
Techniques |
---|
Register the SoundSquatted domain. |
Deceive user into visiting domain: Finally, the adversary needs to deceive a user into visiting the SoundSquatted domain.
Techniques |
---|
Execute a phishing attack and send a user an e-mail convincing the user to click on a link leading the user to the SoundSquatted domain. |
Assume that a user will unintentionally use the homophone in the URL, leading the user to the SoundSquatted domain. |
Determine target website: The adversary first determines which website to impersonate, generally one that is trusted and receives a consistent amount of traffic.
Techniques |
---|
Research popular or high traffic websites. |
Impersonate trusted domain: In order to impersonate the trusted domain, the adversary needs to register the URL containing the homoglpyh character(s).
Techniques |
---|
Register the Homograph domain. |
Deceive user into visiting domain: Finally, the adversary needs to deceive a user into visiting the Homograph domain.
Techniques |
---|
Execute a phishing attack and send a user an e-mail convincing the to click on a link leading the user to the malicious domain. |
The attacker accesses the server using a specific URL.
The attacker tries to encode some special characters in the URL. The attacker find out that some characters are not filtered properly.
The attacker crafts a malicious URL string request and sends it to the server.
The server decodes and interprets the URL string. Unfortunately since the input filtering is not done properly, the special characters have harmful consequences.
Acquire known Windows credential hash value pairs: The adversary must obtain known Windows credential hash value pairs of accounts that exist on the domain.
Techniques |
---|
An adversary purchases breached Windows credential hash value pairs from the dark web. |
An adversary conducts a sniffing attack to steal Windows credential hash value pairs as they are transmitted. |
An adversary gains access to a Windows domain system/files and exfiltrates Windows credential hash value pairs. |
An adversary examines outward-facing configuration and properties files to discover hardcoded Windows credential hash value pairs. |
Attempt domain authentication: Try each Windows credential hash value pair until the target grants access.
Techniques |
---|
Manually or automatically enter each Windows credential hash value pair through the target's interface. |
Impersonate: An adversary can use successful experiments or authentications to impersonate an authorized user or system, or to laterally move within the domain
Spoofing: Malicious data can be injected into the target system or into other systems on the domain. The adversary can also pose as a legitimate domain user to perform social engineering attacks.
Data Exfiltration: The adversary can obtain sensitive data contained within domain systems or applications.
\n
Techniques |
---|
The attacker sets up a sniffer in the path between the server and the client. |
\n
Techniques |
---|
Attacker loads the sniffer to capture the application code bound during a dynamic update. |
The attacker proceeds to reverse engineer the captured code. |
Acquire known Kerberos credentials: The adversary must obtain known Kerberos credentials in order to access the target system, application, or service within the domain.
Techniques |
---|
An adversary purchases breached Kerberos service account username/password combinations or leaked hashed passwords from the dark web. |
An adversary guesses the credentials to a weak Kerberos service account. |
An adversary conducts a sniffing attack to steal Kerberos tickets as they are transmitted. |
An adversary conducts a Kerberoasting attack. |
Attempt Kerberos authentication: Try each Kerberos credential against various resources within the domain until the target grants access.
Techniques |
---|
Manually or automatically enter each Kerberos service account credential through the target's interface. |
Attempt a Pass the Ticket attack. |
Impersonate: An adversary can use successful experiments or authentications to impersonate an authorized user or system, or to laterally move within the domain
Spoofing: Malicious data can be injected into the target system or into other systems on the domain. The adversary can also pose as a legitimate domain user to perform social engineering attacks.
Data Exfiltration: The adversary can obtain sensitive data contained within domain systems or applications.
Acquire known Windows credentials: The adversary must obtain known Windows credentials in order to access the target system, application, or service within the domain.
Techniques |
---|
An adversary purchases breached Windows username/password combinations or leaked hashed passwords from the dark web. |
An adversary leverages a key logger or phishing attack to steal user credentials as they are provided. |
An adversary conducts a sniffing attack to steal Windows credentials as they are transmitted. |
An adversary gains access to a Windows domain system/files and exfiltrates Windows password hashes. |
An adversary examines outward-facing configuration and properties files to discover hardcoded Windows credentials. |
Attempt domain authentication: Try each Windows credential against various systems, applications, and services within the domain until the target grants access.
Techniques |
---|
Manually or automatically enter each credential through the target's interface. |
Impersonate: An adversary can use successful experiments or authentications to impersonate an authorized user or system, or to laterally move within the domain
Spoofing: Malicious data can be injected into the target system or into other systems on the domain. The adversary can also pose as a legitimate domain user to perform social engineering attacks.
Data Exfiltration: The adversary can obtain sensitive data contained within domain systems or applications.
Determine suitable tasks to exploit: Determine what tasks exist on the target system that may result in a user providing their credentials.
Techniques |
---|
Determine what tasks prompt a user for their credentials. |
Impersonate Task: Impersonate a legitimate task, either expected or unexpected, in an attempt to gain user credentials.
Techniques |
---|
Prompt a user for their credentials, while making the user believe the credential request is legitimate. |
Obtain domain name and certificate to spoof legitimate site: This optional step can be used to help the adversary impersonate the legitimate organization more convincingly. The adversary can use homograph or similar attacks to convince users that they are using the legitimate website. If the adversary leverages cold-calling for this attack, this step is skipped.
Techniques |
---|
Optionally obtain a domain name that visually looks similar to the legitimate organization'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) |
Optionally obtain a legitimate SSL certificate for the new domain name. |
Explore legitimate website and create duplicate: An adversary optionally creates a website (optionally at a URL that looks similar to the original URL) that closely resembles the organization's website that they are trying to impersonate. That website will contain a telephone number for the victim to call to assist them with their issue and initiate the attack. If the adversary leverages cold-calling for this attack, this step is skipped.
Techniques |
---|
Use spidering software to get copy of web pages on legitimate site. |
Manually save copies of required web pages from legitimate site. |
Create new web pages that have the legitimate site's look and feel, but contain completely new content. |
Convince user to provide sensitive information to the adversary.: An adversary \"cold calls\" the victim or receives a call from the victim via the malicious site and provides a call-to-action, in order to persuade the user into providing sensitive details to the adversary (e.g. login credentials, bank account information, etc.). The key is to get the victim to believe that the individual they are talking to is from a legitimate entity with which the victim does business and that the call is occurring for legitimate reasons. A call-to-action will usually need to sound legitimate and urgent enough to prompt action from the user.
Techniques |
---|
Call the user a from a spoofed legitimate-looking telephone number. |
Use stolen information: Once the adversary obtains the sensitive information, this information can be leveraged to log into the victim's bank account and transfer money to an account of their choice, or to make fraudulent purchases with stolen credit card information.
Techniques |
---|
Login to the legitimate site using another the victim's supplied credentials |
Survey application: The attacker first takes an inventory of the functionality exposed by the application.
Techniques |
---|
Spider web sites for all available links |
Sniff network communications with application using a utility such as WireShark. |
Determine user-controllable input susceptible to injection: Determine the user-controllable input susceptible to injection. For each user-controllable input that the attacker suspects is vulnerable to SQL injection, attempt to inject characters that have special meaning in SQL (such as a single quote character, a double quote character, two hyphens, a parenthesis, etc.). The goal is to create a SQL query with an invalid syntax.
Techniques |
---|
Use web browser to inject input through text fields or through HTTP GET parameters. |
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, etc. |
Use network-level packet injection tools such as netcat to inject input |
Use modified client (modified by reverse engineering) to inject input. |
Experiment with SQL Injection vulnerabilities: After determining that a given input is vulnerable to SQL Injection, hypothesize what the underlying query looks like. Iteratively try to add logic to the query to extract information from the database, or to modify or delete information in the database.
Techniques |
---|
Use public resources such as \"SQL Injection Cheat Sheet\" at http://ferruh.mavituna.com/makale/sql-injection-cheatsheet/, and try different approaches for adding logic to SQL queries. |
Add logic to query, and use detailed error messages from the server to debug the query. For example, if adding a single quote to a query causes an error message, try : \"' OR 1=1; --\", or something else that would syntactically complete a hypothesized query. Iteratively refine the query. |
Use \"Blind SQL Injection\" techniques to extract information about the database schema. |
If a denial of service attack is the goal, try stacking queries. This does not work on all platforms (most notably, it does not work on Oracle or MySQL). Examples of inputs to try include: \"'; DROP TABLE SYSOBJECTS; --\" and \"'); DROP TABLE SYSOBJECTS; --\". These particular queries will likely not work because the SYSOBJECTS table is generally protected. |
Exploit SQL Injection vulnerability: After refining and adding various logic to SQL queries, craft and execute the underlying SQL query that will be used to attack the target system. The goal is to reveal, modify, and/or delete database data, using the knowledge obtained in the previous step. This could entail crafting and executing multiple SQL queries if a denial of service attack is the intent.
Techniques |
---|
Craft and Execute underlying SQL query |
Identify application with attack potential: The adversary searches for and identifies a mobile application that could be exploited for malicious purposes (e.g. banking, voting, or medical applications).
Techniques |
---|
Search application stores for mobile applications worth exploiting |
Develop code to be hooked into chosen target application: The adversary develops code or leverages existing code that will be hooked into the target application in order to evade Root/Jailbreak detection methods.
Techniques |
---|
Develop code or leverage existing code to bypass Root/Jailbreak detection methods. |
Test the code to see if it works. |
Iteratively develop the code until Root/Jailbreak detection methods are evaded. |
Execute code hooking to evade Root/Jailbreak detection methods: Once hooking code has been developed or obtained, execute the code against the target application to evade Root/Jailbreak detection methods.
Techniques |
---|
Hook code into the target application. |
Identify application with attack potential: The adversary searches for and identifies a mobile application that could be exploited for malicious purposes (e.g. banking, voting, or medical applications).
Techniques |
---|
Search application stores for mobile applications worth exploiting |
Debug the target application: The adversary inserts the debugger into the program entry point of the mobile application, after the application's signature has been identified, to dump its memory contents.
Techniques |
---|
Insert the debugger at the mobile application's program entry point, after the application's signature has been identified. |
Dump the memory region containing the now decrypted code from the address space of the binary. |
Remove application signature verification methods: Remove signature verification methods from the decrypted code and resign the application with a self-signed certificate.
Execute the application and evade Root/Jailbreak detection methods: The application executes with the self-signed certificate, while believing it contains a trusted certificate. This now allows the adversary to evade Root/Jailbreak detection via code hooking or other methods.
Techniques |
---|
Optional: Hook code into the target application. |
The attacker finds that they can inject data to the format string parameter of Syslog().
The attacker craft a malicious input and inject it into the format string parameter. From now on, the attacker can execute arbitrary code and do more damage.
The attacker probes for programs running with elevated privileges.
The attacker finds a bug in a program running with elevated privileges.
The attacker exploits the bug that they have found. For instance, they can try to inject and execute arbitrary code or write to OS resources.
[Hypothesize SQL queries in application]
Techniques |
---|
Research types of SQL queries and determine which ones could be used at various places in an application. |
[Determine how to inject information into the queries]
Techniques |
---|
Add clauses to the SQL queries such that the query logic does not change. |
Add delays to the SQL queries in case server does not provide clear error messages (e.g. WAITFOR DELAY '0:0:10' in SQL Server or BENCHMARK(1000000000,MD5(1) in MySQL). If these can be injected into the queries, then the length of time that the server takes to respond reveals whether the query is injectable or not. |
Determine user-controllable input susceptible to injection: Determine the user-controllable input susceptible to injection. For each user-controllable input that the adversary suspects is vulnerable to SQL injection, attempt to inject the values determined in the previous step. If an error does not occur, then the adversary knows that the SQL injection was successful.
Techniques |
---|
Use web browser to inject input through text fields or through HTTP GET parameters. |
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, etc. |
Use network-level packet injection tools such as netcat to inject input |
Use modified client (modified by reverse engineering) to inject input. |
Determine database type: Determines the type of the database, such as MS SQL Server or Oracle or MySQL, using logical conditions as part of the injected queries
Techniques |
---|
Try injecting a string containing char(0x31)=char(0x31) (this evaluates to 1=1 in SQL Server only) |
Try injecting a string containing 0x313D31 (this evaluates to 1=1 in MySQL only) |
Inject other database-specific commands into input fields susceptible to SQL Injection. The adversary can determine the type of database that is running by checking whether the query executed successfully or not (i.e. whether the adversary received a normal response from the server or not). |
Extract information about database schema: Extract information about database schema by getting the database to answer yes/no questions about the schema.
Techniques |
---|
Automatically extract database schema using a tool such as Absinthe. |
Manually perform the blind SQL Injection to extract desired information about the database schema. |
Exploit SQL Injection vulnerability: Use the information obtained in the previous steps to successfully inject the database in order to bypass checks or modify, add, retrieve or delete data from the database
Techniques |
---|
Use information about how to inject commands into SQL queries as well as information about the database schema to execute attacks such as dropping tables, inserting records, etc. |
Survey the application for user-controllable inputs: Using a browser or an automated tool, an attacker follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application.
Techniques |
---|
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. |
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application. |
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. |
Probe entry points to locate vulnerabilities: The attacker uses the entry points gathered in the \"Explore\" phase as a target list and injects various Unicode encoded payloads 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.
Techniques |
---|
Try to use Unicode encoding of content in Scripts in order to bypass validation routines. |
Try to use Unicode encoding of content in HTML in order to bypass validation routines. |
Try to use Unicode encoding of content in CSS in order to bypass validation routines. |
The attacker accesses the server using a specific URL.
The attacker tries to encode some special characters in the URL. The attacker finds out that some characters are not filtered properly.
The attacker crafts a malicious URL string request and sends it to the server.
The server decodes and interprets the URL string. Unfortunately since the input filtering is not done properly, the special characters may have harmful consequences.
Adversary determines the nature of state management employed by the target. This includes determining the location (client-side, server-side or both applications) and possibly the items stored as part of user state.
The adversary now tries to modify the user state contents (possibly blindly if the contents are encrypted or otherwise obfuscated) or cause a state transition and observe the effects of this change on the target.
Having determined how to manipulate the state, the adversary can perform illegitimate actions.
Fingerprinting of the operating system: In order to create a valid file injection, the attacker needs to know what the underlying OS is.
Techniques |
---|
Port mapping. Identify ports that the system is listening on, and attempt to identify inputs and protocol types on those ports. |
TCP/IP Fingerprinting. The attacker uses various software to make connections or partial connections and observe idiosyncratic responses from the operating system. Using those responses, they attempt to guess the actual operating system. |
Induce errors to find informative error messages |
Survey the Application to Identify User-controllable Inputs: The attacker surveys the target application to identify all user-controllable inputs, possibly as a valid and authenticated user
Techniques |
---|
Spider web sites for all available links, entry points to the web site. |
Manually explore application and inventory all application inputs |
Vary inputs, looking for malicious results: Depending on whether the application being exploited is a remote or local one the attacker crafts the appropriate malicious input containing the path of the targeted file or other file system control syntax to be passed to the application
Techniques |
---|
Inject context-appropriate malicious file path using network packet injection tools (netcat, nemesis, etc.) |
Inject context-appropriate malicious file path using web test frameworks (proxies, TamperData, custom programs, etc.) or simple HTTP requests |
Inject context-appropriate malicious file system control syntax |
Manipulate files accessible by the application: The attacker may steal information or directly manipulate files (delete, copy, flush, etc.)
Techniques |
---|
The attacker injects context-appropriate malicious file path to access the content of the targeted file. |
The attacker injects context-appropriate malicious file system control syntax to access the content of the targeted file. |
The attacker injects context-appropriate malicious file path to cause the application to create, delete a targeted file. |
The attacker injects context-appropriate malicious file system control syntax to cause the application to create, delete a targeted file. |
The attacker injects context-appropriate malicious file path in order to manipulate the meta-data of the targeted file. |
The attacker injects context-appropriate malicious file system control syntax in order to manipulate the meta-data of the targeted file. |
The attacker communicates with the application server using a thin client (browser) or thick client.
While communicating with the server, the attacker finds that they can control and override a variable consumed by the application server.
The attacker overrides the variable and influences the normal behavior of the application server.
The attacker can send input data to the host target (e.g., via http request or command line request
The attacker craft malicious input data which includes escaped slashes. The attacker may need multiple attempts before finding a successful combination.
The attacker has access to a resource path and required to use slashes as resource delimiter.
The attacker tries variation and combination of the slashes characters in different encoding format.
The attacker found an unfiltered combination which maps to a valid path and accesses unauthorized resources (directories, files, etc.)
An attacker can call an API exposed by the target host.
On the probing stage, the attacker injects malicious code using the API call and observes the results. The attacker's goal is to uncover a buffer overflow vulnerability.
The attacker finds a buffer overflow vulnerability, crafts malicious code and injects it through an API call. The attacker can at worst execute remote code on the target host.
Survey the application for user-controllable inputs: Using a browser or an automated tool, an attacker follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application.
Techniques |
---|
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. |
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application. |
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. |
Probe entry points to locate vulnerabilities: The attacker uses the entry points gathered in the \"Explore\" phase as a target list and injects various UTF-8 encoded payloads 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.
Techniques |
---|
Try to use UTF-8 encoding of content in Scripts in order to bypass validation routines. |
Try to use UTF-8 encoding of content in HTML in order to bypass validation routines. |
Try to use UTF-8 encoding of content in CSS in order to bypass validation routines. |
Determine Application Web Server Log File Format: The attacker observes the system and looks for indicators of which logging utility is being used by the web server.
Techniques |
---|
Determine logging utility being used by application web server (e.g. log4j), only possible if the application is known by the attacker or if the application returns error messages with logging utility information. |
Determine Injectable Content: The attacker launches various logged actions with malicious data to determine what sort of log injection is possible.
Techniques |
---|
Attacker triggers logged actions with maliciously crafted data as inputs, parameters, arguments, etc. |
Manipulate Log Files: The attacker alters the log contents either directly through manipulation or forging or indirectly through injection of specially crafted request that the web server will receive and write into the logs. This type of attack typically follows another attack and is used to try to cover the traces of the previous attack.
Techniques |
---|
\n |
\n |
Directly through log file or database manipulation, modify existing log entries. |
Survey the target: Using a browser or an automated tool, an attacker records all instances of user-controllable input used to contruct XPath queries.
Techniques |
---|
Use an automated tool to record all instances of user-controllable input used to contruct XPath queries. |
Use a browser to manually explore the website and analyze how the application processes inputs. |
Determines the structure of queries: Using manual or automated means, query inputs found for XPath weaknesses.
Techniques |
---|
Use an automated tool automatically probe the inputs for XPath weaknesses. |
Manually probe the inputs using characters such as single quote (') that can cause XPath-releated errors, thus indicating an XPath weakness. |
Exploit the target: Craft malicious content containing XPath expressions that is not validated by the application and is executed as part of the XPath queries.
Techniques |
---|
Use the crafted input to execute unexpected queries that can disclose sensitive database information to the attacker. |
Survey the application for user-controllable inputs: Using a browser or an automated tool, an attacker follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application.
Techniques |
---|
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. |
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application. |
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. |
Determine user-controllable input susceptible to injection: Determine the user-controllable input susceptible to injection. For each user-controllable input that the attacker suspects is vulnerable to XQL injection, attempt to inject characters that have special meaning in XQL. The goal is to create an XQL query with an invalid syntax.
Techniques |
---|
Use web browser to inject input through text fields or through HTTP GET parameters. |
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, etc. |
Use XML files to inject input. |
Use network-level packet injection tools such as netcat to inject input |
Use modified client (modified by reverse engineering) to inject input. |
Information Disclosure: The attacker crafts and injects an XQuery payload which is acted on by an XQL query leading to inappropriate disclosure of information.
Techniques |
---|
Leveraging one of the vulnerable inputs identified during the Experiment phase, inject malicious XQuery payload. The payload aims to get information on the structure of the underlying XML database and/or the content in it. |
Manipulate the data in the XML database: The attacker crafts and injects an XQuery payload which is acted on by an XQL query leading to modification of application data.
Techniques |
---|
Leveraging one of the vulnerable inputs identified during the Experiment phase, inject malicious XQuery payload.. The payload tries to insert or replace data in the XML database. |
Send requests to the server and analyze responses: Using a browser or an automated tool, an attacker sends requests to a website and then captures the responses. Responses are analyzed for information on frameworks, architecture, and dependencies.
Techniques |
---|
Use a browser to manually request pages and view the responses. Manually parse responses to find information on dependencies and underlying architecture |
Use automated scripting to send one or multiple requests to a server and capture any responses. Parse responses from the server to identify any tags that may provide information about dependencies and underlying architecture. |
Spider: Using a browser or an automated tool, an attacker follows all public links on a web site. They record all the entry points (input) that becomes part of generated HTTP header (not only GET/POST/COOKIE, but also Content-Type, etc.)
Techniques |
---|
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 used in the HTTP headers. |
Look for HTML meta tags that could be injectable |
Use a proxy tool to record all links visited during a manual traversal of the web application. |
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. |
[Probe identified potential entry points for XSS vulnerability]
Techniques |
---|
Manually inject various script payloads into each identified entry point using a list of common script injection probes and observe system behavior to determine if script was executed. |
Use an automated injection attack tool to inject various script payloads into each identified entry point using a list of common script injection probes and observe system behavior to determine if script was executed. |
Use a proxy tool to record results of manual input of XSS probes in known URLs. |
Steal session IDs, credentials, page content, etc.: As the attacker succeeds in exploiting the vulnerability, they can choose to steal user's credentials in order to reuse or to analyze them later on.
Techniques |
---|
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 attacker. |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute appropriately. |
Forceful browsing: When the attacker 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).
Techniques |
---|
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 |
Develop malicious JavaScript that injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the browser to execute request to other web sites (especially the web applications that have CSRF vulnerabilities). |
Content spoofing: By manipulating the content, the attacker targets the information that the user would like to get from the website.
Techniques |
---|
Develop malicious JavaScript that is injected through vectors identified during the Experiment Phase and loaded by the victim's browser and exposes attacker-modified invalid information to the user on the current web page. |
Spider: Using an automated tool, an attacker follows all public links on a web site. They record all the links they find.
Techniques |
---|
Use a spidering tool to follow and record all links. |
Use a proxy tool to record all links visited during a manual traversal of the web application. |
Attempt well-known or guessable resource locations: Using an automated tool, an attacker requests a variety of well-known URLs that correspond to administrative, debugging, or other useful internal actions. They record all the positive responses from the server.
Techniques |
---|
Use a spidering tool to follow and record attempts on well-known URLs. |
Use a proxy tool to record all links visited during a manual traversal of attempts on well-known URLs. |
Use unauthorized resources: By visiting the unprotected resource, the attacker makes use of unauthorized functionality.
Techniques |
---|
Access unprotected functions and execute them. |
View unauthorized data: The attacker discovers and views unprotected sensitive data.
Techniques |
---|
Direct request of protected pages that directly access database back-ends. (e.g., list.jsp, accounts.jsp, status.jsp, etc.) |
Identify inputs for OS commands: The attacker determines user controllable input that gets passed as part of a command to the underlying operating system.
Techniques |
---|
Port mapping. Identify ports that the system is listening on, and attempt to identify inputs and protocol types on those ports. |
TCP/IP Fingerprinting. The attacker uses various software to make connections or partial connections and observe idiosyncratic responses from the operating system. Using those responses, they attempt to guess the actual operating system. |
Induce errors to find informative error messages |
Survey the Application: The attacker surveys the target application, possibly as a valid and authenticated user
Techniques |
---|
Spidering web sites for all available links |
Inventory all application inputs |
Vary inputs, looking for malicious results.: Depending on whether the application being exploited is a remote or local one the attacker crafts the appropriate malicious input, containing OS commands, to be passed to the application
Techniques |
---|
Inject command delimiters using network packet injection tools (netcat, nemesis, etc.) |
Inject command delimiters using web test frameworks (proxies, TamperData, custom programs, etc.) |
Execute malicious commands: The attacker may steal information, install a back door access mechanism, elevate privileges or compromise the system in some other way.
Techniques |
---|
The attacker executes a command that stores sensitive information into a location where they can retrieve it later (perhaps using a different command injection). |
The attacker executes a command that stores sensitive information into a location where they can retrieve it later (perhaps using a different command injection). |
The attacker executes a command that stores sensitive information into a location where they can retrieve it later (perhaps using a different command injection). |
Attacker sets up a system mocking the one trusted by the users. This is usually a website that requires or handles sensitive information.
The attacker then poisons the resolver for the targeted site. This is achieved by poisoning the DNS server, or the local hosts file, that directs the user to the original website
When the victim requests the URL for the site, the poisoned records direct the victim to the attackers' system rather than the original one.
Because of the identical nature of the original site and the attacker controlled one, and the fact that the URL is still the original one, the victim trusts the website reached and the attacker can now \"farm\" sensitive information such as credentials or account numbers.
Attacker identifies command utilities exposed by the target host.
On the probing stage, the attacker interacts with the command utility and observes the results of its input. The attacker's goal is to uncover a buffer overflow in the command utility. For instance the attacker may find that input data are not properly validated.
The attacker finds a buffer overflow vulnerability in the command utility and tries to exploit it. They craft malicious code and injects it using the command utility. The attacker can at worst execute remote code on the target host.
The attacker opens a connection to the target server and sends it a challenge
The server responds by returning the challenge encrypted with a shared secret as well as its own challenge to the attacker
Since the attacker does not possess the shared secret, they initiate a second connection to the server and sends it, as challenge, the challenge received from the server on the first connection
The server treats this as just another handshake and responds by encrypting the challenge and issuing its own to the attacker
The attacker now receives the encrypted challenge on the second connection and sends it as response to the server on the first connection, thereby successfully completing the handshake and authenticating to the server.
The first step is exploratory meaning the attacker looks for an integer variable that they can control.
The attacker finds an integer variable that they can write into or manipulate and try to get the value of the integer out of the possible range.
The integer variable is forced to have a value out of range which set its final value to an unexpected value.
The target host acts on the data and unexpected behavior may happen.
Determine Application's Log File Format: The first step is exploratory meaning the attacker observes the system. The attacker looks for action and data that are likely to be logged. The attacker may be familiar with the log format of the system.
Techniques |
---|
Determine logging utility being used by application (e.g. log4j) |
Gain access to application's source code to determine log file formats. |
Install or obtain access to instance of application and observe its log file format. |
Manipulate Log Files: The attacker alters the log contents either directly through manipulation or forging or indirectly through injection of specially crafted input that the target software will write to the logs. This type of attack typically follows another attack and is used to try to cover the traces of the previous attack.
Techniques |
---|
\n |
\n |
The attacker probes to determine the nature and mechanism of communication between two components looking for opportunities to exploit.
The attacker inserts themself into the communication channel initially acting as a routing proxy between the two targeted components. The attacker may or may not have to use cryptography.
The attacker observes, filters or alters passed data of its choosing to gain access to sensitive information or to manipulate the actions of the two target components for their own purposes.
The first step is exploratory meaning the attacker scans for WSDL documents. The WDSL document written in XML is like a handbook on how to communicate with the web services provided by the target host. It provides an open view of the application (function details, purpose, functional break down, entry points, message types, etc.). This is very useful information for the attacker.
The second step that an attacker would undertake is to analyze the WSDL files and try to find potential weaknesses by sending messages matching the pattern described in the WSDL file. The attacker could run through all of the operations with different message request patterns until a breach is identified.
Once an attacker finds a potential weakness, they can craft malicious content to be sent to the system. For instance the attacker may try to submit special characters and observe how the system reacts to an invalid request. The message sent by the attacker may not be XML validated and cause unexpected behavior.
Determine what external libraries the application accesses.
Block access to the external libraries accessed by the application.
Monitor the behavior of the system to see if it goes into an insecure/inconsistent state.
If the system does go into an insecure/inconsistent state, leverage that to obtain information about the system functionality or data, elevate access control, etc. The rest of this attack will depend on the context and the desired goal.
An attacker discovers a weakness in the cryptographic algorithm or a weakness in how it was applied to a particular chunk of plaintext.
An attacker leverages the discovered weakness to decrypt, partially decrypt or infer some information about the contents of the encrypted message. All of that is done without knowing the secret key.
Obtain domain name and certificate to spoof legitimate site: This optional step can be used to help the attacker impersonate the legitimate site more convincingly. The attacker 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.
Techniques |
---|
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) |
Optionally obtain a legitimate SSL certificate for the new domain name. |
Explore legitimate website and create duplicate: An attacker 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.
Techniques |
---|
Use spidering software to get copy of web pages on legitimate site. |
Manually save copies of required web pages from legitimate site. |
Create new web pages that have the legitimate site's look and feel, but contain completely new content. |
Convince user to enter sensitive information on attacker's site.: An attacker sends 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 attacker's website) and log in. The key is to get the victim to believe that the e-mail is coming from a legitimate entity with which the victim 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.
Techniques |
---|
Send the user a message from a spoofed legitimate-looking e-mail address that asks the user to click on the included link. |
Place phishing link in post to online forum. |
Use stolen credentials to log into legitimate site: Once the attacker captures some sensitive information through phishing (login credentials, credit card information, etc.) the attacker can leverage this information. For instance, the attacker can use the victim's login credentials to log into their bank account and transfer money to an account of their choice.
Techniques |
---|
Log in to the legitimate site using another user's supplied credentials |