{
"id": "bundle--7783ea03-9f14-4d80-8b9a-c1a6ff015378",
"objects": [
{
"created": "2023-01-30T20:31:22.120362Z",
"definition": {
"statement": "CAPEC is sponsored by US-CERT in the office of Cybersecurity and Communications at the U.S. Department of Homeland Security. Copyright © 2007 - 2023, The MITRE Corporation. CAPEC and the CAPEC logo are trademarks of The MITRE Corporation."
},
"definition_type": "statement",
"id": "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d",
"type": "marking-definition"
},
{
"created": "2023-01-30T20:31:22.121Z",
"id": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
"identity_class": "organization",
"modified": "2023-01-30T20:31:22.121Z",
"name": "The MITRE Corporation",
"object_marking_refs": [
"marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
],
"type": "identity"
},
{
"created": "2014-06-23T00:00:00.000Z",
"created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
"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.",
"external_references": [
{
"external_id": "CAPEC-1",
"source_name": "capec",
"url": "https://capec.mitre.org/data/definitions/1.html"
},
{
"external_id": "CWE-276",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/276.html"
},
{
"external_id": "CWE-285",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/285.html"
},
{
"external_id": "CWE-434",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/434.html"
},
{
"external_id": "CWE-693",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/693.html"
},
{
"external_id": "CWE-732",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/732.html"
},
{
"external_id": "CWE-1191",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1191.html"
},
{
"external_id": "CWE-1193",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1193.html"
},
{
"external_id": "CWE-1220",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1220.html"
},
{
"external_id": "CWE-1297",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1297.html"
},
{
"external_id": "CWE-1311",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1311.html"
},
{
"external_id": "CWE-1314",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1314.html"
},
{
"external_id": "CWE-1315",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1315.html"
},
{
"external_id": "CWE-1318",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1318.html"
},
{
"external_id": "CWE-1320",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1320.html"
},
{
"external_id": "CWE-1321",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1321.html"
},
{
"external_id": "CWE-1327",
"source_name": "cwe",
"url": "http://cwe.mitre.org/data/definitions/1327.html"
},
{
"description": "Hijack Execution Flow: ServicesFile Permissions Weakness",
"external_id": "T1574.010",
"source_name": "ATTACK",
"url": "https://attack.mitre.org/wiki/Technique/T1574/010"
}
],
"id": "attack-pattern--92cdcd3d-d734-4442-afc3-4599f261498b",
"modified": "2022-09-29T00:00:00.000Z",
"name": "Accessing Functionality Not Properly Constrained by ACLs",
"object_marking_refs": [
"marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
],
"type": "attack-pattern",
"x_capec_abstraction": "Standard",
"x_capec_can_precede_refs": [
"attack-pattern--9ad2c2eb-9939-4590-9683-2e789692d262"
],
"x_capec_child_of_refs": [
"attack-pattern--fd669b7d-0e79-473c-9808-a860dfb0c871"
],
"x_capec_consequences": {
"Access_Control": [
"Gain Privileges"
],
"Authorization": [
"Gain Privileges"
],
"Confidentiality": [
"Gain Privileges"
]
},
"x_capec_domains": [
"Software",
"Hardware"
],
"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) |
Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. In this attack the adversary looks for an application that loads the content of an environment variable into a buffer.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.
Techniques |
---|
Change the values of environment variables thought to be used by the application to contain excessive data. If the program is loading the value of the environment variable into a buffer, this could cause a crash and an attack vector will be found. |
Craft overflow content: 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 crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: Using the injection vector, the adversary injects the crafted overflow content into the buffer.
Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. Adversaries often look for applications that accept user input and that perform manual memory management.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.
Techniques |
---|
Provide large input to a program or application and observe the behavior. If there is a crash, this means that a buffer overflow attack is possible. |
Craft overflow content: 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 crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: Using the injection vector, the adversary injects the crafted overflow content into the buffer.
Determine applicability: The adversary 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. |
Find Injection Point: 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: Using the found injection point, the adversary sends arbitrary code to be inlcuded by the application on the server side. They 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 adversary.
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. |
Survey network to identify target: The adversary performs network reconnaissance by monitoring relevant traffic to identify the network path and parsing of the HTTP messages with the goal of identifying potential targets.
Techniques |
---|
Scan networks to fingerprint HTTP infrastructure and monitor HTTP traffic to identify HTTP network path with a tool such as a Network Protocol Analyzer. |
Identify vulnerabilities in targeted HTTP infrastructure and technologies: The adversary sends a variety of benign/ambiguous HTTP requests to observe responses from HTTP infrastructure in order to identify differences/discrepancies in the interpretation and parsing of HTTP requests by examining supported HTTP protocol versions, HTTP headers, syntax checking and input filtering.
Cause differential HTTP responses by experimenting with identified HTTP Request vulnerabilities: The adversary sends maliciously crafted HTTP requests with custom strings and embedded web scripts and objects in HTTP headers to interfere with the parsing of intermediary and back-end HTTP infrastructure, followed by normal/benign HTTP request from the adversary or a random user. The intended consequences of the malicious HTTP requests will be observed in the HTTP infrastructure response to the normal/benign HTTP request to confirm applicability of identified vulnerabilities in the adversary's plan of attack.
Techniques |
---|
Continue the monitoring of HTTP traffic. |
\n |
Follow an unrecognized (sometimes a RFC compliant) HTTP header with a subsequent HTTP request to potentially cause the HTTP request to be ignored and interpreted as part of the preceding HTTP request. |
Perform HTTP Request Splitting attack: Using knowledge discovered in the experiment section above, smuggle a message to cause one of the consequences.
Techniques |
---|
Leverage techniques identified in the Experiment Phase. |
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 Nature of Messages: Determine the nature of messages being transported as well as the identifiers to be used as part of the attack
Authenticate: If required, authenticate to the distribution channel
Identify Known Client Identifiers: If any particular client's information is available through a control channel available to all users, the adversary will discover particular identifiers for targeted clients by observing this channel, or requesting client information through this channel.
Change Message Identifier: Adversaries 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 Adversary-in-the-Middle attacks (CAPEC-94), keylogging, Cross Site Scripting (XSS), hardware manipulation attacks, and more. |
Fingerprinting of the operating system: In order to perform a valid path traversal, the attacker needs to know what the underlying OS is so that the proper file seperator is used.
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 file 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
Manipulate files accessible by the application: The attacker may steal information or directly manipulate files (delete, copy, flush, etc.)
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. |
Probe target application: The adversary first probes the target application to determine important information about the target. This information could include types software used, software versions, what user input the application consumes, and so on. Most importantly, the adversary tries to determine what environment variables might be used by the underlying software, or even the application itself.
Find user-controlled environment variables: Using the information found by probing the application, the adversary attempts to manipulate any user-controlled environment variables they have found are being used by the application, or suspect are being used by the application, and observe the effects of these changes. If the adversary notices any significant changes to the application, they will know that a certain environment variable is important to the application behavior and indicates a possible attack vector.
Techniques |
---|
Alter known environment variables such as \"$PATH\", \"$HOSTNAME\", or \"LD_LIBRARY_PATH\" and see if application behavior changes. |
Manipulate user-controlled environment variables: The adversary manipulates the found environment variable(s) to abuse the normal flow of processes or to gain access to privileged resources.
Identify Target: Adversary identifies the target application by determining whether there is sufficient check before writing data to a file and creating symlinks to files in different directories.
Techniques |
---|
The adversary writes to files in different directories to check whether the application has sufficient checking before file operations. |
The adversary creates symlinks to files in different directories. |
Try to create symlinks to different files: The adversary then uses a variety of techniques, such as monitoring or guessing to create symlinks to the files accessed by the target application in the directories which are identified in the explore phase.
Techniques |
---|
The adversary monitors the file operations performed by the target application using a tool like dtrace or FileMon. And the adversary can delay the operations by using \"sleep(2)\" and \"usleep()\" to prepare the appropriate conditions for the attack, or make the application perform expansive tasks (large files parsing, etc.) depending on the purpose of the application. |
The adversary may need a little guesswork on the filenames on which the target application would operate. |
The adversary tries to create symlinks to the various filenames. |
Target application operates on created symlinks to sensitive files: The adversary is able to create symlinks to sensitive files while the target application is operating on the file.
Techniques |
---|
Create the symlink to the sensitive file such as configuration files, etc. |
Identify application: Discover an application 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 applications that allow option switches. |
Use automated tools to scan known ports to identify applications that might be accessible |
Authenticate to application: Authenticate to the application, 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. |
Try all common switches: Using manual or automated means, attempt to run the application with many different known common switches. Observe the output to see if any switches seemed to put the application in a non production mode that might give more information.
Techniques |
---|
Manually execute the application with switches such as --debug, --test, --development, --verbose, etc. |
Use automated tools to run the application with common switches and observe the output |
Use sensitive processing or configuration information: Once extra information is observed from an application through the use of a common switch, this information is used to aid other attacks on the application
Techniques |
---|
Using application information, formulate an attack on the application |
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. |
Fingerprinting of the operating system: In order to perform a valid path traversal, the adversary needs to know what the underlying OS is so that the proper file seperator is used.
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 adversary 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 application: Using manual or automated means, an adversary will survey the target application looking for all areas where user input is taken to specify a file name or path.
Techniques |
---|
Use a spidering tool to follow and record all links on a web page. 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 a 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 a website and analyze how it is constructed. Many browser plug-ins are available to facilitate the analysis or automate the URL discovery. |
Attempt variations on input parameters: Using manual or automated means, an adversary attempts varying relative file path combinations on all found user input locations and observes the responses.
Techniques |
---|
Provide \"../\" or \"..\\\" at the beginning of any filename to traverse to the parent directory |
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 adversary injects path traversal syntax into identified vulnerable inputs to cause inappropriate reading, writing or execution of files. An adversary could be able to read directories or files which they are normally not allowed to read. The adversary could also access data outside the web document root, or include scripts, source code and other kinds of files from external websites. Once the adversary accesses arbitrary files, they could also modify files. In particular situations, the adversary 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). |
Identify target client-side application: The adversary identifies a target client-side application to perform the buffer overflow on. The most common are browsers. If there is a known browser vulnerability an adversary could target that.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.
Techniques |
---|
Many times client side applications will be open source, so an adversary can examine the source code to identify possible injection vectors. |
Examine APIs of the client-side application and look for areas where a buffer overflow might be possible. |
Create hostile service: The adversary creates a hostile service that will deliver content to the client-side application. 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 crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.
Techniques |
---|
If the client-side application is a browser, the adversary will create a service that delivers a malicious webpage to the browser. |
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: Using the injection vector, the adversary delivers the content to the client-side application using the hostile service and overflows the buffer.
Techniques |
---|
If the adversary is targeting a local client-side application, they just need to use the service themselves. |
If the adversary is attempting to cause an overflow on an external user's client-side application, they must get the user to attach to their service by some other means. This could be getting a user to visit their hostile webpage to target a user's browser. |
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). |
Adversary-in-the-Middle attacks (CAPEC-94) intercept 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. |
Adversary-in-the-Middle (CAPEC-94) intercepts secure communication between two parties. |
Find target web site: An adversary finds a target web site that they think may have unpublicized web pages
Map the published web site: The adversary will map the published web site either by using an automated tool or by manually accessing well-known debugging or logging pages, or otherwise predictable pages within the site tree
Techniques |
---|
Use Dirbuster to brute force directories and file names to find unpublicized pages |
Find a pattern in the naming of documents and extrapolate this pattern to discover additional documents that have been created but are no longer externally linked |
Try to find weaknesses or information: The adversary will try to find weaknesses or information on the unpublicized pages that the targeted site did not intend to be public
Techniques |
---|
Manually analyze files or pages for information that could be useful in a further attack |
Use a static analysis tool to find weaknesses in unpublished web pages |
Follow-up attack: Use any information or weaknesses found to carry out a follow-up attack
Find target web site: An adversary finds a target web site that they think may have unpublicized web services
Map the published web site: The adversary will map the published web site either by using an automated tool or by manually accessing well-known debugging or logging pages, or otherwise predictable pages within the site tree
Techniques |
---|
Use Dirbuster to brute force directories and file names to find unpublicized web services |
Find a pattern in the naming of documents and extrapolate this pattern to discover additional documents that have been created but are no longer externally linked |
Try to find weaknesses or information: The adversary will try to find weaknesses in the unpublicized services that the targeted site did not intend to be public
Techniques |
---|
Use Nikto to look for web service vulnerabilities |
Follow-up attack: Use any information or weaknesses found to carry out a follow-up attack
Determine if XML schema is local or remote: Because this attack differs slightly if the target uses remote XML schemas versus local schemas, the adversary first needs to determine which of the two are used.
Gain access to XML schema: The adversary gains access to the XML schema so that they can modify the contents.
Techniques |
---|
For a local scenario, the adversary needs access to the machine that the schema is located on and needs to gain permissions to alter the contents of the file. |
For a remote scenario, the adversary needs to be able to sniff HTTP traffic that contains an XML schema. |
Poison XML schema: Once the adversary gains access to the XML schema, they will alter it to achieve a desired effect. Locally, they can simply modify the file. For remote schemas, the adversary will alter the schema in transit by performing an adversary in the middle attack.
Techniques |
---|
Cause a denial of service by modifying the schema so that it does not contain required information for subsequent processing. For example, the unaltered schema may require a @name attribute in all submitted documents. If the adversary removes this attribute from the schema then documents created using the new grammar may lack this field, which may cause the processing application to enter an unexpected state or record incomplete data. |
Manipulation of the data types described in the schema may affect the results of calculations. For example, a float field could be changed to an int field. |
Change the encoding defined in the schema for certain fields allowing the contents to bypass filters that scan for dangerous strings. For example, the modified schema might use a URL encoding instead of ASCII, and a filter that catches a semicolon (;) might fail to detect its URL encoding (%3B). |
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.
Look for temporary files in target application: An adversary will try to discover temporary files in a target application. Knowledge of where the temporary files are being stored is important information.
Attempt to read temporary files: An adversary will attempt to read any temporary files they may have discovered through normal means.
Techniques |
---|
Attempt to get the file by querying the file path to a web server |
Using a remote shell into an application, read temporary files and send out information remotely if necessary |
Recover temporary information from a user's browser cache |
Use function weaknesses to gain access to temporary files: If normal means to read temporary files did not work, an adversary will attempt to exploit weak temporary file functions to gain access to temporary files.
Techniques |
---|
Some C functions such as tmpnam(), tempnam(), and mktemp() will create a temporary file with a unique name, but do not stop an adversary from creating a file of the same name before it is opened by the application. Because these functions do not create file names that are sufficiently random, an adversary will try to make a file of the same name, causing a collision, and possibly altering file permissions for the temporary file so that it is able to be read. |
Similar to the last technique, an adversary might also create a file name collision using a linked file in a unix system such that the temporary file contents written out by the application write to a file of the adversaries choosing, allowing them to read the file contents. |
Determine Communication Mechanism: The adversary determines the nature and mechanism of communication between two components, looking for opportunities to exploit.
Techniques |
---|
Look for application documentation that might describe a communication mechanism used by a target. |
Position In Between Targets: The adversary positions themselves somewhere in the middle of the two components. If the communication is encrypted, the adversary will need to act as a proxy and route traffic between the components, exploiting a flaw in the encryption mechanism. Otherwise, the adversary can just observe the communication at either end.
Techniques |
---|
Use Wireshark or some other packet capturing tool to capture traffic on a network. |
Install spyware on a client that will intercept outgoing packets and route them to their destination as well as route incoming packets back to the client. |
Exploit a weakness in an encrypted communication mechanism to gain access to traffic. Look for outdated mechanisms such as SSL. |
Listen to Communication: The adversary observes communication, but does not alter or block it. The adversary gains access to sensitive information and can potentially utilize this information in a malicious way.
Identify Target: The adversary identifies the target application and determines what libraries are being used.
Techniques |
---|
Find public source code and identify library dependencies. |
Gain access to the system hosting the application and look for libraries in common locations. |
Deploy Malicious Libraries: The adversary crafts malicious libraries and deploys them on the system where the application is running, or in a remote location that can be loaded by the application.
Redirect Library Calls to Malicious Library: Once the malicious library crafted by the adversary is deployed, the adversary will manipulate the flow of the application such that it calls the malicious library. This can be done in a variety of ways based on how the application is loading and calling libraries.
Techniques |
---|
Poison the DNS cache of the system so that it loads a malicious library from a remote location hosted by the adversary instead of the legitimate location |
Create a symlink that tricks the application into thinking that a malicious library is the legitimate library. |
Use DLL side-loading to place a malicious verison of a DLL in the windows directory. |
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: An adversary determines the input data stream that is being processed by a data parser that supports using subsitituion on the victim's side.
Techniques |
---|
Use an automated tool to record all instances of URLs to process requests. |
Use a browser to manually explore the website and analyze how the application processes requests. |
Craft malicious payload: The adversary crafts a malicious message containing nested exponential expansion that completely uses up available server resources. See the \"Example Instances\" section for details on how to craft this malicious payload.
Send the message: Send the malicious crafted message to the target URL.
Survey the application for user-controllable inputs as URL parameters: Using a browser or an automated tool, an adversary 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, looking for URLs which use parameters.
Techniques |
---|
Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make 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. |
Cause application to return error page: The adversary uses the URLs gathered in the \"Explore\" phase as a target list and injects various common script payloads and special characters into the parameters to see if an error page occurs, and if the injected payload is executed by the error page.
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 HTML special characters to inject into parameters of known URLs and check if they caused errors |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS through an error page, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Change a URL parameter to include a malicious script tag. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
Survey the application for user-controllable inputs: Using a browser or an automated tool, an adversary 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. 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. |
Probe identified potential entry points for XSS vulnerability: Possibly using an automated tool, an adversary requests variations on the inputs they surveyed before using alternate syntax. These inputs are designed to bypass incomplete filtering (e.g., incomplete HTML encoding etc.) and try 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. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Change a URL parameter to include a malicious script tag created using alternate syntax to bypass filters. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
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 adversary 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. |
Craft malicious payload: The adversary crafts malicious data message that contains references to sensitive files.
Launch an External Linking attack: Send the malicious crafted message containing the reference to a sensitive file to the target URL.
Identify Application Cache: An adversary first identifies an application that utilizes a cache. This could either be a web application storing data in a browser cache, or an application running on a separate machine. The adversary examines the cache to determine file permissions and possible encryption.
Techniques |
---|
Use probing tools to look for application cache files on a machine. |
Use a web application and determine if any sensitive information is stored in browser cache. |
Attempt to Access Cache: Once the cache has been discovered, the adversary attempts to access the cached data. This often requires previous access to a machine hosting the target application.
Techniques |
---|
Use priviledge escalation to access cache files that might have strict privileges. |
If the application cache is encrypted with weak encryption, attempt to understand the encryption technique and break the encryption. |
Lift Sensitive Data from Cache: After gaining access to cached data, an adversary looks for potentially sensitive information and stores it for malicious use. This sensitive data could possibly be used in follow-up attacks related to authentication or authorization.
Techniques |
---|
Using a public computer, or gaining access to a victim's computer, examine browser cache to look for sensitive data left over from previous sessions. |
The adversary first attempts to obtain a digital certificate in order to sign their malware or tools. This certificate could be stolen, created by the adversary, or acquired normally through a certificate authority.
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 adversary 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 adversary probes by exploring an application's functionality and its underlying mapping to server-side components. |
The adversary 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 adversary tries to determine which functionality to disable or remove through reverse-engineering from the list of functionality identified in the Explore phase.
Techniques |
---|
The adversary 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 adversary disables or removes the critical functionality from the client code to perform malicious actions that the server believes are prohibited.
Techniques |
---|
The adversary 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. |
Survey the application for stored user-controllable inputs: Using a browser or an automated tool, an adversary follows all public links and actions on a web site. They record all areas that allow a user to upload content through an HTTP POST request. This is typically found in blogs or forums.
Techniques |
---|
Use a spidering tool to follow and record all links and analyze the web pages to file upload features |
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 MIME type mismatch: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and uploads files with scripting content, but whose MIME type is specified as a file type that cannot execute scripting content. If the application only checks the MIME type of the file, it may let the file through, causing the script to be executed by any user who accesses the file.
Techniques |
---|
Upload a script file with a MIME type of text/plain to a forum and then access the uploaded file to see if the script is executed. If possible, the script displays a unique identifier so the adversary knows for certain it was executed when testing. |
Store malicious XSS content: Once the adversary has determined which file upload locations are vulnerable to MIME type mismatch, they will upload a malicious script disguised as a non scripting file. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from a victim.
Techniques |
---|
Use a tool such as BeEF to store a hook into the web application. This will alert the adversary when the victim has accessed the content and will give the adversary control over the victim's browser, allowing them access to cookies, user screenshot, user clipboard, and more complex XSS attacks. |
Get victim to view stored content: In order for the attack to be successful, the victim needs to view the stored malicious content on the webpage.
Techniques |
---|
Send a phishing email to the victim containing a URL that will direct them to the malicious stored content. |
Simply wait for a victim to view the content. This is viable in situations where content is posted to a popular public forum. |
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.
Observe communication and inputs: The fuzzing adversary observes the target system looking for inputs and communications between modules, subsystems, or systems.
Techniques |
---|
Network sniffing. Using a network sniffer such as wireshark, the adversary observes communications into and out of the target system. |
Monitor API execution. Using a tool such as ktrace, strace, APISpy, or another debugging tool, the adversary observes the system calls and API calls that are made by the target system, and the nature of their parameters. |
Observe inputs using web inspection tools (OWASP's WebScarab, Paros, TamperData, TamperIE, etc.) |
Generate fuzzed inputs: Given a fuzzing tool, a target input or protocol, and limits on time, complexity, and input variety, generate a list of inputs to try. Although fuzzing is random, it is not exhaustive. Parameters like length, composition, and how many variations to try are important to get the most cost-effective impact from the fuzzer.
Techniques |
---|
Boundary cases. Generate fuzz inputs that attack boundary cases of protocol fields, inputs, or other communications limits. Examples include 0xff and 0x00 for single-byte inputs. In binary situations, approach each bit of an individual field with on and off (e.g., 0x80). |
Attempt arguments to system calls or APIs. The variations include payloads that, if they were successful, could lead to a compromise on the system. |
Observe the outcome: Observe the outputs to the inputs fed into the system by fuzzers and see if there are any log or error messages that might provide information to map the application
Craft exploit payloads: An adversary 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 adversary 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 adversary needs to hide the attacks by changing the IP addresses or other credentials. |
Determine SSL/TLS Configuration: Determine the SSL/TLS configuration of either the server or client being targeted, preferably both. This is not a hard requirement, as the adversary can simply assume commonly exploitable configuration settings and indiscriminately attempt them.
Techniques |
---|
If the target is a webpage, some of the SSL/TLS configuration can be viewed through the browser's security information, such as the key sizes and cipher being used. |
Intercept Communication: 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. AiTM (adversary in the middle - CAPEC-94).
Techniques |
---|
Create a malicious webpage that looks identical to the target webpage, but routes client traffic to the server such that the adversary can observe the traffic and perform an adverary in the middle attack. |
If the adversary has access to the network that either the client or server is on, the can attempt to use a packet sniffer to perform an adversary in the middle attack. |
Install a packet sniffer through malware directly to a client device that can intercept SSL/TLS traffic and perform an adversary in the middle attack. |
Capture or Manipulate Sensitive Data: Once the adversary has the ability to intercept the secure communication, they exploit the incorrectly configured SSL to view the encrypted communication. The adversary can choose to just record the secure communication or manipulate the data to achieve a desired effect.
Techniques |
---|
Use known exploits for old SSL and TLS versions. |
Use known exploits for weak ciphers such as DES and RC4. |
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 |
Find target web service: The adversary must first find a web service that takes input data in the form of a serialized language such as XML or YAML.
Host malicious file on a server: The adversary will create a web server that contains a malicious file. This file will be extremely large, so that if a web service were to try to load it, the service would most likely hang.
Craft malicious data: Using the serialization language that the web service takes as input, the adversary will craft data that links to the malicious file using an external entity reference to the URL of the file.
Send serialized data containing URI: The adversary will send specially crafted serialized data to the web service. When the web service loads the input, it will attempt to download the malicious file. Depending on the amount of memory the web service has, this could either crash the service or cause it to hang, resulting in a Denial of Service attack.
Craft an iFrame Overlay page: The adversary crafts a malicious iFrame overlay page.
Techniques |
---|
The adversary leverages iFrame overlay capabilities to craft a malicious iFrame overlay page. |
adversary tricks victim to load the iFrame overlay page: adversary 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 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. |
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 a data parser that supports using substitution on the victim's side.
An adversary crafts input data that may have an adverse effect on the operation of the 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.
Find process with elevated priveleges: The adversary probes for processes running with elevated privileges.
Techniques |
---|
On Windows, use the process explorer's security tab to see if a process is running with administror privileges. |
On Linux, use the ps command to view running processes and pipe the output to a search for a particular user, or the root user. |
Find vulnerability in running process: The adversary looks for a vulnerability in the running process that would allow for arbitrary code execution with the privilege of the running process.
Techniques |
---|
Look for improper input validation |
Look for a buffer overflow which may be exploited if an adversary can inject unvalidated data. |
Utilize system utilities that support process control that have been inadequately secured |
Execute arbitrary code: The adversary exploits the vulnerability that they have found and hijacks the running process.
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 for user-controllable inputs: Using a browser or an automated tool, an adversary 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 targeting HTML attributes: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects various malicious expressions as input, hoping to embed them as HTML attributes.
Techniques |
---|
Inject single and double quotes into URL parameters or other inputs to see if they are filtered out. Also use URL encoding to bypass filters. |
Use single or double quotes to close attribute evaluation and enter a new attribute that contains an expression. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Execute a script using an expression embedded in an HTML attribute, which avoids needing to inject a script tag. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
Survey the application for user-controllable inputs: Using a browser or an automated tool, an adversary 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. 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. |
Probe identified potential entry points for reflected XSS vulnerability: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects various payloads formatted as data URI schemes using base 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 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. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Change a URL parameter to include a malicious payload formatted as a URI scheme, or use the URL returned when the URI scheme was given as input to the web application. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
Survey the application for public links: Using a browser or an automated tool, an adversary 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. |
Probe public links for XSS vulnerability: The adversary uses the public links gathered in the \"Explore\" phase as a target list and 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. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Change a URL parameter to include a malicious script tag. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
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. |
Survey network to identify target: The adversary performs network reconnaissance by monitoring relevant traffic to identify the network path and parsing of the HTTP messages with the goal of identifying potential targets.
Techniques |
---|
Scan networks to fingerprint HTTP infrastructure and monitor HTTP traffic to identify HTTP network path with a tool such as a Network Protocol Analyzer. |
Identify vulnerabilities in targeted HTTP infrastructure and technologies: The adversary sends a variety of benign/ambiguous HTTP requests to observe responses from HTTP infrastructure in order to identify differences/discrepancies in the interpretation and parsing of HTTP requests by examining supported HTTP protocol versions, message sizes, and HTTP headers.
Cause differential HTTP responses by experimenting with identified HTTP Request vulnerabilities: The adversary sends maliciously crafted HTTP requests to interfere with the parsing of intermediary and back-end HTTP infrastructure, followed by normal/benign HTTP request from the adversary or a random user. The intended consequences of the malicious HTTP requests will be observed in the HTTP infrastructure response to the normal/benign HTTP request to confirm applicability of identified vulnerabilities in the adversary's plan of attack.
Techniques |
---|
Continue the monitoring of HTTP traffic. |
\n |
\n |
Follow an unrecognized (sometimes a RFC compliant) HTTP header with a subsequent HTTP request to potentially cause the HTTP request to be ignored and interpreted as part of the preceding HTTP request. |
Perform HTTP Request Smuggling attack: Using knowledge discovered in the experiment section above, smuggle a message to cause one of the consequences.
Techniques |
---|
Leverage techniques identified in the Experiment Phase. |
Survey network to identify target: The adversary performs network reconnaissance by monitoring relevant traffic to identify the network path and parsing of the HTTP messages with the goal of identifying potential targets
Techniques |
---|
Scan networks to fingerprint HTTP infrastructure and monitor HTTP traffic to identify HTTP network path with a tool such as a Network Protocol Analyzer. |
Identify vulnerabilities in targeted HTTP infrastructure and technologies: The adversary sends a variety of benign/ambiguous HTTP requests to observe responses from HTTP infrastructure in order to identify differences/discrepancies in the interpretation and parsing of HTTP requests by examining supported HTTP protocol versions, HTTP headers, syntax checking and input filtering.
Cause differential HTTP responses by experimenting with identified HTTP Request vulnerabilities: The adversary sends maliciously crafted HTTP request to back-end HTTP infrastructure to inject adversary data (in the form of HTTP headers with custom strings and embedded web scripts and objects) into HTTP responses (intended for intermediary and/or front-end client/victim HTTP agents communicating with back-end HTTP infrastructure) for the purpose of interfering with the parsing of HTTP responses by intermediary and front-end client/victim HTTP agents. The intended consequences of the malicious HTTP request and the subsequent adversary injection and manipulation of HTTP responses to intermediary and front-end client/victim HTTP agents, will be observed to confirm applicability of identified vulnerabilities in the adversary's plan of attack.
Techniques |
---|
Continue the monitoring of HTTP traffic. |
\n |
Follow an unrecognized (sometimes a RFC compliant) HTTP header with a subsequent HTTP request to potentially cause the HTTP request to be ignored and interpreted as part of the preceding HTTP request. |
Perform HTTP Response Splitting attack: Using knowledge discovered in the experiment section above, smuggle a message to cause one of the consequences.
Techniques |
---|
Leverage techniques identified in the Experiment Phase. |
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 credentials 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. |
Retrieve Embedded Data: The attacker then uses a variety of techniques, such as sniffing, reverse-engineering, and cryptanalysis to retrieve 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 |
Survey the application for IP addresses as user input: Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application where IP addresses are used.
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: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and attempts alternate IP address encodings, observing application behavior. The adversary will also attempt to access the application through an alternate IP address encoding to see if access control changes
Techniques |
---|
Instead of using a URL, use the IP address that the URL resolves to |
Specify a port directly to a URL input |
Omit or add \"http://\" or \"https://\" to a URL to see if the application behaves differently |
Bypass access control: Using an alternate IP address encoding, the adversary will either access the application or give the alternate encoding as input, bypassing access control restrictions.
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. |
Identify target mail server: The adversary identifies a target mail server that they wish to attack.
Techniques |
---|
Use Nmap on a system to identify a mail server service. |
Determine viability of attack: 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).
Find injection vector: Identify places in the system where vulnerable MIME conversion routines may be used.
Craft overflow content: The adversary crafts e-mail messages with special headers that will cause a buffer overflow for the vulnerable MIME conversion routine. The intent of this attack is to leverage the overflow for execution of arbitrary code and gain access to the mail server machine, so the adversary will craft an email 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 adversary's choosing.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: 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. |
Identify target software: 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.
Find injection vector: 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 then deploys the file to the software to determine if a buffer overflow was successful.
Craft overflow content: Once the adversary has determined that this attack is viable, they will specially craft the binary file in a way that achieves the desired behavior. If the source code is available, the adversary can carefully craft the malicious file so that the return address is overwritten to an intended value. If the source code is not available, the adversary will iteratively alter the file in order to overwrite the return address correctly.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: 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, either by serving it directly to the software or placing it in a shared location for a victim to load into the software.
Identify target application: The adversary identifies a target application or program that might load in certain files to memory.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.
Techniques |
---|
The adversary creates or modifies a symbolic link pointing to those files which contain an excessive amount of data. If creating a symbolic link to one of those files causes different behavior in the application, then an injection vector has been identified. |
Craft overflow file content: 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 crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: Using the specially crafted file content, the adversary creates a symbolic link from the identified resource to the malicious file, causing a targeted buffer overflow attack.
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. |
Craft Certificates: 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.
Send CSR to Certificate Authority: 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.
Insert Signed Blob into Unsigned Certificate: 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.
Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. Adversaries look for applications or programs that accept formatted files, such as configuration files, as input.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.
Techniques |
---|
Knowing the type of file that an application takes as input, the adversary takes a normal input file and modifies a single variable or tag to contain a large amount of data. If there is a crash, this means that a buffer overflow attack is possible. The adversary will keep changing single variables or tags one by one until they see a change in behavior. |
Craft overflow content: 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 crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: The adversary will upload the crafted file to the application, causing a buffer overflow.
Find User Input: The adversary finds anywhere in the web application that uses user-supplied input in a form or action. This can also be found by looking at parameters in the URL in the navigation bar of the browser
Add Duplicate Parameter Values: Once the adversary has identified what user input is used as HTTP parameters, they will add duplicates to each parameter one by one to observe the results. If the response from the HTTP request shows the duplicate parameter value concatenated with the original parameter value in some way, or simply just the duplicate parameter value, then HPP is possible.
Techniques |
---|
In the URL, add a duplicate parameter by using the \"&\" delimiter. For example \"par1=val1\" becomes \"par1=val1&par1=val2\". Depending on the backend API, this could be treated as \"par1=val1, val2\", which could lead to par1 being set to val2, ignoring val1. |
If the request is created based on user input directly on the page, the adversary will test by adding an encoded delimiter to the input. For example, the adverary might supply \"1000%26action=withdraw\" and the backend might interpret a POST request with the paramters \"action=deposit&amount=1000&action=withdraw\" |
Leverage HPP: Once the adversary has identified how the backend handles duplicate parameters, they will leverage this by polluting the paramters in a way that benefits them. In some cases, hardcoded parameters will be disregarded by the backend. In others, the adversary can bypass a WAF that might only check a parameter before it has been concatenated by the backend, resulting in malicious queries getting through.
Find a vulnerable web service: The adversary finds a web service that uses a vulnerable authentication scheme, where an authentication token is concatenated with the parameters of a request and then hashed
Techniques |
---|
Read application documentation to learn about authentication schemes being used |
Observe web service traffic to look for vulnerable authentication schemes |
Attempt adding padding to parameters: An adversary tests if they can simply add padding to the parameters of a request such that the request is technically changed, with the hash remaining the same
Techniques |
---|
Exploit the hash function extension / padding weakness with only padding to test the weakness |
Add malicious parameters to request: Add malicious parameters to a captured request in addition to what is already present. Do this by exploiting the padding weakness of the hash function and send the request to the web service so that it believes it is authenticated and acts on the extra parameters.
Techniques |
---|
Exploit the hash function extension / padding weakness by adding malicious parameters to a web service request such that it is still deemed authentic |
Determine service to send cross domain requests to: The adversary first determines which service they will be sending the requests to
Send and time various cross domain requests: Adversaries will send a variety of cross domain requests to the target, timing the time it takes for the target to respond. Although they won't be able to read the response, the adversary can use the time to infer information about what the service did upon receiving the request.
Techniques |
---|
Using a GET request, leverage the \"img\" tag in conjunction with \"onload() / onerror()\" javascript events to time a response |
Using a POST request, leverage the \"iframe\" element and use the \"onload()\" event to time a response |
Infer information from the response time: After obtaining reponse times to various requests, the adversary will compare these times and infer potentially sensitive information. An example of this could be asking a service to retrieve information and random usernames. If one request took longer to process, it is likely that a user with that username exists, which could be useful knowledge to an adversary.
Techniques |
---|
Compare timing of different requests to infer potentially sensitive information about a target service |
Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. Adversaries often look for applications that accept user input and that perform manual memory management.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.
Techniques |
---|
In this attack, the normal method of providing large user input does not work. The program performs bounds checking on the user input, but not the expanded user input. The adversary needs to provide input that they believe will be expanded by the program to overflow a buffer. To identify where this is possible, an adversary either needs to have knowledge of the inner workings of the program or use a disassembler and other reverse engineering tools to guide the search. |
Craft overflow content: The adversary crafts the input to be given to the program. If the intent is to simply cause the software to crash, the input needs only to expand to an excessive quantity of random data. If the intent is to leverage the overflow for execution of arbitrary code, the adversary will craft input that expands in a way 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.
Techniques |
---|
Create specific files and directories on the system and then give input using path traversal shortcuts to those directories that could expand past an input buffer. |
Overflow the buffer: Using the injection vector, the adversary gives the crafted input to the program, overflowing the buffer.
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. |
Determine target system: The adversary must first determine the system they wish to modify the registry of. This needs to be a windows machine as this attack only works on the windows registry.
Gain access to the system: The adversary needs to gain access to the system in some way so that they can modify the windows registry.
Techniques |
---|
Gain physical access to a system either through shoulder surfing a password or accessing a system that is left unlocked. |
Gain remote access to a system through a variety of means. |
Modify windows registry: The adversary will modify the windows registry by changing the configuration settings for a service. Specifically, the adversary will change the path settings to define a path to a malicious binary to be executed.
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. |
Probing: The adversary probes the target application, service, or device to find a possible weakness that would allow escaping the virtualized environment.
Techniques |
---|
Probing applications, services, or devices for virtualization weaknesses. |
Verify the exploitable security weaknesses: Using the found weakness, the adversary attempts to escape the virtualized environment.
Techniques |
---|
Using an application weakness to escape a virtualized environment |
Execute more complex attacks: Once outside of the virtualized environment, the adversary attempts to perform other more complex attacks such as accessing system resources or executing unauthorized code within the host environment.
Techniques |
---|
Executing complex attacks when given higher permissions by escaping a virtualized environment |
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. |
Survey the target: An adversary determines the input data stream that is being processed by a data parser that supports using substituion on the victim's side.
Techniques |
---|
Use an automated tool to record all instances of URLs to process requests. |
Use a browser to manually explore the website and analyze how the application processes requests. |
Craft malicious payload: The adversary crafts malicious message containing nested quadratic expansion that completely uses up available server resource.
Send the message: Send the malicious crafted message to the target URL.
Find an android application that uses implicit intents: Since this attack only works on android applications that use implicit intents, rather than explicit intents, an adversary must first identify an app that uses implicit intents. They must also determine what the contents of the intents being sent are such that a malicious application can get sent these intents.
Create a malicious app: The adversary must create a malicious android app meant to intercept implicit intents from a target application
Techniques |
---|
Specify the type of intent wished to be intercepted in the malicious app's manifest file using an intent filter |
Get user to download malicious app: The adversary must get a user using the targeted app to download the malicious app by any means necessary
Intercept Implicit Intents: Once the malicious app is downloaded, the android device will forward any implicit intents from the target application to the malicious application, allowing the adversary to gaina access to the contents of the intent. The adversary can proceed with any attack using the contents of the intent.
Techniques |
---|
Block the intent from reaching the desired location, causing a denial of service |
Gather sensitive information from the intercepted intent |
Modify the contents of the intent and forward along to another application |
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 target web application: An adversary first needs to determine what web application they wish to target.
Techniques |
---|
Target web applications that require users to enter sensitive information. |
Target web applications that an adversary wishes to operate on behalf of a logged in user. |
Create malicious application: An adversary creates an application, often mobile, that incorporates a WebView component to display the targeted web application. This malicious application needs to downloaded by a user, so adversaries will make this application useful in some way.
Techniques |
---|
Create a 3rd party application that adds useful functionality to the targeted web application. Victims will download the application as a means of using the targeted web application. |
Create a fun game that at some point directs a user to the targeted web application. For example, prompt the user to buy in game currency by directing them to PayPal. |
Get the victim to download and run the application: An adversary needs to get the victim to willingly download and run the application.
Techniques |
---|
Pay for App Store advertisements |
Promote the application on social media, either through accounts made by the adversary or by paying for other accounts to advertise. |
Inject malicious code: Once the victim runs the malicious application and views the targeted web page in the WebView component, the malicious application will inject malicious JavaScript code into the web application. This is done by using WebView's loadURL() API, which can inject arbitrary JavaScript code into pages loaded by the WebView component with the same privileges. This is often done by adding a script tag to the document body with a src destination to a remote location that serves malicious JavaScript code.
Techniques |
---|
Execute operations on the targeted web page on behalf of an authenticated user. |
Steal cookie information from the victim. |
Add in extra fields to the DOM in an attempt to get a user to divulge sensitive information. |
Find an android application that uses implicit intents: Since this attack only works on android applications that use implicit intents, rather than explicit intents, an adversary must first identify an app that uses implicit intents to launch an Android-based trusted activity, and what that activity is.
Create a malicious app: The adversary must create a malicious android app meant to intercept implicit intents to launch an Adroid-based trusted activity. This malicious app will mimic the trusted activiy's user interface to get the user to enter sensitive data.
Techniques |
---|
Specify the type of intent wished to be intercepted in the malicious app's manifest file using an intent filter |
Get user to download malicious app: The adversary must get a user using the targeted app to download the malicious app by any means necessary
Gather sensitive data through malicious app: Once the target application sends an implicit intent to launch a trusted activity, the malicious app will be launched instead that looks identical to the interface of that activity. When the user enters sensitive information it will be captured by the malicious app.
Techniques |
---|
Gather login information from a user using a malicious app |
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. |
Find a target SOA or Web Service: The adversary must first indentify a target SOA or Web Service.
Determine desired outcome: Because poisoning a web service registry can have different outcomes, the adversary must decide how they wish to effect the webservice.
Techniques |
---|
An adversary can perform a denial of service attack on a web service. |
An adversary can redirect requests or responses to a malicious service. |
Determine if a malicious service needs to be created: If the adversary wishes to redirect requests or responses, they will need to create a malicious service to redirect to.
Techniques |
---|
Create a service to that requests are sent to in addition to the legitimate service and simply record the requests. |
Create a service that will give malicious responses to a service provider. |
Act as a malicious service provider and respond to requests in an arbitrary way. |
Poison Web Service Registry: Based on the desired outcome, poison the web service registry. This is done by altering the data at rest in the registry or uploading malicious content by spoofing a service provider.
Techniques |
---|
Intercept and change WS-Adressing headers to route to a malicious service or service provider. |
Provide incorrect information in schema or metadata to cause a denial of service. |
Delete information about service procider interfaces to cause a denial of service. |
Survey the application for user-controllable inputs: Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application.
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: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects postfix null byte(s) to observe how the application handles them as input. The adversary is looking for areas where user input is placed in the middle of a string, and the null byte causes the application to stop processing the string at the end of the user input.
Techniques |
---|
Try different encodings for null such as \\0 or %00 |
Remove data after null byte(s): After determined entry points that are vulnerable, the adversary places a null byte(s) such that they remove data after the null byte(s) in a way that is beneficial to them.
Techniques |
---|
If the input is a directory as part of a longer file path, add a null byte(s) at the end of the input to try to traverse to the given directory. |
Determine Target Hardware: The adversary must first identify a system that they wish to target, and a specific hardware component that they can swap out with a malicious replacement.
Techniques |
---|
Look for datasheets containing the system schematics that can help identify possible target hardware. |
Procure a system and inspect it manually, looking for possible hardware component targets. Search for manufacturer IDs on hardware chips or FCC IDs on wireless chips to determine their functionality. |
Discover Vulnerability in Supply Chain: The adversary maps out the supply chain for the targeted system. They look for ooportunities to gain physical access to the system after it has left the manufacturer, but before it is deployed to the victim.
Techniques |
---|
Procure a system and observe the steps it takes in the shipment process. |
Identify possible warehouses that systems are stored after manufacturing. |
Test a Malicious Component Replacement: Before performing the attack in the wild, an adversary will test the attack on a system they have procured to ensure that the desired outcome will be achieved.
Techniques |
---|
Design a malicious hardware component that will perform the same functionality as the target component, but also contains additional functionality. |
Obtain already designed malicious components that just need to be placed into the system. |
Substitute Components in the Supply Chain: Using the vulnerability in the supply chain of the system discovered in the explore phase, the adversary substitutes the malicious component for the targeted component. This results in the adversary gaining unintended access to systems once they reach the victim and can lead to a variety of follow up attacks.
Determine Entry Point: The adversary must first identify a system that they wish to target and search for an entry point they can use to install the malicious software. This could be a system which they have prior knowledge of, giving them insight into the software and environment.
Techniques |
---|
Use a JTAGulator to identify exposed JTAG and UART interfaces in smaller embedded systems. |
Identify exposed USB connectors that could be used to load software. |
Discover Vulnerability in Supply Chain: The adversary maps out the supply chain for the targeted system. They look for ooportunities to gain physical access to the system after it has left the manufacturer, but before it is deployed to the victim.
Techniques |
---|
Procure a system and observe the steps it takes in the shipment process. |
Identify possible warehouses that systems are stored after manufacturing. |
Test Malicious Software: Before performing the attack in the wild, an adversary will test the attack on a system they have procured to ensure that the desired outcome will be achieved.
Techniques |
---|
Design malicious software that will give an adversary a backdoor into the system once it is deployed to the victim. |
Obtain already designed malicious software that just need to be placed into the system. |
Implant Software in the Supply Chain: Using the vulnerability in the supply chain of the system discovered in the explore phase, the adversary implants the malicious software into the system. This results in the adversary gaining unintended access to systems once they reach the victim and can lead to a variety of follow up attacks.
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. |
Survey the application for user-controllable inputs: Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application.
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: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects postfix null byte(s) followed by a backslash to observe how the application handles them as input. The adversary is looking for areas where user input is placed in the middle of a string, and the null byte causes the application to stop processing the string at the end of the user input.
Techniques |
---|
Try different encodings for null such as \\0 or %00 followed by an encoding for the backslash character. |
Remove data after null byte(s): After determined entry points that are vulnerable, the adversary places a null byte(s) followed by a backslash such that they bypass an input filter and remove data after the null byte(s) in a way that is beneficial to them.
Techniques |
---|
If the input is a directory as part of a longer file path, add a null byte(s) followed by a backslash at the end of the input to try to traverse to the given directory. |
Determine configuration process: The adversary, through a previously compromised system, either remotely or physically, determines what the configuration process is. They look at configuration files, data files, and running processes on the system to identify areas where they could inject malicious data.
Determine when configuration occurs: The adversary needs to then determine when configuration or recalibration of a system occurs so they know when to inject malicious data.
Techniques |
---|
Look for a weekly update cycle or repeated update schedule. |
Insert a malicious process into the target system that notifies the adversary when configuration is occurring. |
Determine malicious data to inject: By looking at the configuration process, the adversary needs to determine what malicious data they want to insert and where to insert it.
Techniques |
---|
Add false log data |
Change configuration files |
Change data files |
Inject malicious data: Right before, or during system configuration, the adversary injects the malicious data. This leads to the system behaving in a way that is beneficial to the adversary and is often followed by other attacks.
Determine the relevant open-source code project to target: The adversary will make the selection based on various criteria:
Develop a plan for malicious contribution: The adversary develops a plan to contribute malicious code, taking the following into consideration:
Execute the plan for malicious contribution: 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 parameters: Determine all user-controllable parameters of the application either by probing or by finding documentation
Cause error condition: Inject each parameter with content that causes an error condition to manifest
Modify parameters: Modify the content of each parameter according to observed error conditions
Follow up attack: Once the above steps have been repeated with enough parameters, the application will be sufficiently mapped out. The adversary can then launch a desired attack (for example, Blind SQL Injection)
Identify target application: The adversary identifies a target application or program to perform the buffer overread on. Adversaries often look for applications that accept user input and that perform manual memory management.
Find attack vector: The adversary identifies an attack vector by looking for areas in the application where they can specify to read more data than is required.
Overread the buffer: The adversary provides input to the application that gets it to read past the bounds of a buffer, possibly revealing sensitive information that was not intended to be given to the adversary.
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. |
Determine which user's credentials to capture: Since this is a more targeted attack, an adversary will first identify a particular user they wish the capture the credentials of.
Deploy keylogger: Once a user is identified, an adversary will deploy a keylogger to the user's system in one of many ways.
Techniques |
---|
Send a phishing email with a malicious attachment that installs a keylogger on a user's system |
Conceal a keylogger behind fake software and get the user to download the software |
Get a user to click on a malicious URL that directs them to a webpage that will install a keylogger without their knowledge |
Gain access to the user's system through a vulnerability and manually install a keylogger |
Record keystrokes: Once the keylogger is deployed on the user's system, the adversary will record keystrokes over a period of time.
Analyze data and determine credentials: Using the captured keystrokes, the adversary will be able to determine the credentials of the user.
Techniques |
---|
Search for repeated sequences that are following by the enter key |
Search for repeated sequences that are not found in a dictionary |
Search for several backspaces in a row. This could indicate a mistyped password. The correct password can then be inferred using the whole key sequence |
Use found credentials: After the adversary has found the credentials for the target user, they will then use them to gain access to a system in order to perform some follow-up attack
Find a REST-style application that uses SSL: The adversary must first find a REST-style application that uses SSL to target. Because this attack is easier to carry out from inside of a server network, it is likely that an adversary could have inside knowledge of how services operate.
Insert a listener to sniff client-server communication: The adversary inserts a listener that must exist beyond the point where SSL is terminated. This can be placed on the client side if it is believed that sensitive information is being sent to the client as a response, although most often the listener will be placed on the server side to listen for client authentication information.
Techniques |
---|
Run wireshark or tcpdump on a device that is on the inside of a firewall, load balancer, or router of a network and capture traffic after SSL has been terminated |
Gather information passed in the clear: If developers have not hashed or encrypted data sent in the sniffed request, the adversary will be able to read this data in the clear. Most commonly, they will now have a username or password that they can use to submit requests to the web service just as an authorized user
Survey the application for user-controllable inputs: Using a browser or an automated tool, an adversary 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 DOM-based XSS vulnerability: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects various common script payloads and special characters to determine if an entry point actually represents a vulnerability and to characterize the extent to which the vulnerability can be exploited. Specific to DOM-based XSS, the adversary is looking for areas where input is being used to directly change the DOM.
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 HTML special characters to inject into parameters of known URLs and check if they were properly encoded, replaced, or filtered out. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim. In DOM-based XSS, the malicious script might not even be sent to the server, since the victim's browser will manipulate the DOM itself. This can help avoid serve-side detection mechanisms.
Techniques |
---|
Change a URL parameter to include a malicious script tag. |
Add a URL fragment to alter the value of the expected Document object URL. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
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. |
Survey the application for user-controllable inputs: Using a browser or an automated tool, an adversary 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 reflected XSS vulnerability: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects various common script payloads and special characters 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 HTML special characters to inject into parameters of known URLs and check if they were properly encoded, replaced, or filtered out. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Change a URL parameter to include a malicious script tag. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
Survey the application for stored user-controllable inputs: Using a browser or an automated tool, an adversary 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. The adversary is looking for areas where user input is stored, such as user profiles, shopping carts, file managers, forums, blogs, and logs.
Techniques |
---|
Use a spidering tool to follow and record all links and analyze the web pages to find entry points. |
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 stored XSS vulnerability: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and injects various common script payloads and special characters 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 submit script in input fields that could be stored by the web application. If possible, the probe strings contain a unique identifier so they can be queried for after submitting to see if they are stored. |
Use a list of HTML special characters to submit in input fields that could be stored by the web application and check if they were properly encoded, replaced, or filtered out. |
Store malicious XSS content: Once the adversary has determined which stored locations are vulnerable to XSS, they will interact with the web application to store the malicious content. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from a victim.
Techniques |
---|
Store a malicious script on a page that will execute when viewed by the victim. |
Use a tool such as BeEF to store a hook into the web application. This will alert the adversary when the victim has accessed the content and will give the adversary control over the victim's browser, allowing them access to cookies, user screenshot, user clipboard, and more complex XSS attacks. |
Get victim to view stored content: In order for the attack to be successful, the victim needs to view the stored malicious content on the webpage.
Techniques |
---|
Send a phishing email to the victim containing a URL that will direct them to the malicious stored content. |
Simply wait for a victim to view the content. This is viable in situations where content is posted to a popular public forum. |
Discover Existing Session Token: Through varrying means, an adversary will discover and store an existing session token for some other authenticated user session.
Insert Found Session Token: The attacker attempts to insert a found 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.
Fingerprinting of the operating system: In order to perform a valid path traversal, the adversary needs to know what the underlying OS is so that the proper file seperator is used.
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 adversary 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 application: Using manual or automated means, an adversary will survey the target application looking for all areas where user input is taken to specify a file name or path.
Techniques |
---|
Use a spidering tool to follow and record all links on a web page. 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 a 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 a 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: Using manual or automated means, an adversary attempts varying absolute file paths on all found user input locations and observes the responses.
Techniques |
---|
Access common files in root directories such as \"/bin\", \"/boot\", \"/lib\", or \"/home\" |
Access a specific drive letter or windows volume letter by specifying \"C:dirname\" for example |
Access a known Windows UNC share by specifying \"\\\\UNC\\share\\name\" for example |
Access, modify, or execute arbitrary files.: An adversary injects absolute path traversal syntax into identified vulnerable inputs to cause inappropriate reading, writing or execution of files. An adversary could be able to read directories or files which they are normally not allowed to read. The adversary could also access data outside the web document root, or include scripts, source code and other kinds of files from external websites. Once the adversary accesses arbitrary files, they could also modify files. In particular situations, the adversary could also execute arbitrary code or system commands.
Techniques |
---|
Manipulate file and its path by injecting absolute path sequences (e.g. \"/home/file.txt\"). |
Download files, modify files, or try to execute shell commands (with binary files). |
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. |
Find an application that allows copying sensititve data to clipboad: An adversary first needs to find an application that allows copying and pasting of sensitive information. This could be an application that prints out temporary passwords to the screen, private email addresses, or any other sensitive information or data
Target users of the application: An adversary will target users of the application in order to obtain the information in their clipboard on a periodic basic
Techniques |
---|
Install malware on a user's system designed to log clipboard contents periodically |
Get the user to click on a malicious link that will bring them to an application to log the contents of the clipboard |
Follow-up attack: Use any sensitive information found to carry out a follow-up attack
Select Target: The adversary searches for a suitable target to attack, such as government and/or private industry organizations.
Techniques |
---|
Conduct reconnaissance to determine potential targets to exploit. |
Identify Components: After selecting a target, the adversary determines whether a vulnerable component, such as a specific make and model of a HDD, is contained within the target system.
Techniques |
---|
[Remote Access Vector] The adversary gains remote access to the target, typically via additional malware, and explores the system to determine hardware components that are being leveraged. |
[Physical Access Vector] The adversary intercepts components in transit and determines if the component is vulnerable to attack. |
Optional: Create Payload: If not using an already existing payload, the adversary creates their own to be executed at defined intervals and upon system boot processes. This payload may then be tested on the target system or a test system to confirm its functionality.
Insert Firmware Altering Malware: Once a vulnerable component has been identified, the adversary leverages known malware tools to infect the component's firmware and drop the payload within the component's MBR. This allows the adversary to maintain persistence on the target and execute the payload without being detected.
Techniques |
---|
The adversary inserts the firmware altering malware on the target component, via the use of known malware tools. |
[Physical Access Vector] The adversary then sends the component to its original intended destination, where it will be installed onto a victim system. |
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.
Determine target process: The adversary determines a process with sufficient privileges that they wish to include code into.
Techniques |
---|
On Windows, use the process explorer's security tab to see if a process is running with administror privileges. |
On Linux, use the ps command to view running processes and pipe the output to a search for a particular user, or the root user. |
Attempt to include simple code with known output: The adversary attempts to include very simple code into the existing process to determine if the code inclusion worked. The code will differ based on the approach used to include code into an existing process.
Include arbitrary code into existing process: Once an adversary has determined that including code into the existing process is possible, they will include code for a targeted purpose, such as accessing that process's memory.
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.
Gain logical access to system: An adversary must first gain logical access to the system it wants to gather registry information from,
Techniques |
---|
Obtain user account credentials and access the system |
Plant malware on the system that will give remote logical access to the adversary |
Determine if the permissions are correct: Once logical access is gained, an adversary will determine if they have the proper permissions, or are authorized, to view registry information. If they do not, they will need to escalate privileges on the system through other means
Peruse registry for information: Once an adversary has access to a registry, they will gather all system-specific data and sensitive information that they deem useful.
Follow-up attack: Use any information or weaknesses found to carry out a follow-up attack
Set up a sniffer: The adversary sets up a sniffer in the path between the server and the client and watches the traffic.
Techniques |
---|
The adversary sets up a sniffer in the path between the server and the client. |
[Capturing Application Code Bound During Patching]adversary knows that the computer/OS/application can request new applications to install, or it periodically checks for an available update. The adversary loads the sniffer set up during Explore phase, and extracts the application code from subsequent communication. The adversary then proceeds to reverse engineer the captured code.
Techniques |
---|
adversary loads the sniffer to capture the application code bound during a dynamic update. |
The adversary 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 operating system credentials: The adversary must obtain known operating system credentials in order to access the target system, application, or service within the domain.
Techniques |
---|
An adversary purchases breached operating system 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 operating system credentials as they are transmitted. |
An adversary gains access to a system/files and exfiltrates password hashes. |
An adversary examines outward-facing configuration and properties files to discover hardcoded credentials. |
Attempt authentication: Try each operating system 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 network
Spoofing: Malicious data can be injected into the target system or into other systems on the network. The adversary can also pose as a legitimate user to perform social engineering attacks.
Data Exfiltration: The adversary can obtain sensitive data contained within system files or application configuration.
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 adversary tricks the victim into installing the Trojan Horse malware onto their system.
Techniques |
---|
Conduct phishing attacks, drive-by malware installations, or masquerade malicious browser extensions as being legitimate. |
The adversary inserts themself into the communication channel initially acting as a routing proxy between the two targeted components.
The adversary observes, filters, or alters passed data of their choosing to gain access to sensitive information or to manipulate the actions of the two target components for their own purposes.
Survey target application and relevant OS shared code libraries: Adversary identifies vulnerable transient instruction sets and the code/function calls to trigger them as well as instruction sets or code fragments (gadgets) to perform attack.
Techniques |
---|
Utilize Disassembler and Debugger tools to examine and trace instruction set execution of source code and shared code libraries on a system. |
Explore cache and identify impacts: Utilize tools to understand the impact of transient instruction execution upon address spaces and CPU operations.
Techniques |
---|
Run OS or application specific tools that examine the contents of cache. |
Cause conditions for identified transient instruction set execution: Adversary ensures that specific code/instructions of the target process are executed by CPU, so desired transient instructions are executed.
Cause specific secret data to be cached from restricted address space: Executed instruction sets (gadgets) in target address space, initially executed via adversary-chosen transient instructions sets, establish covert channel and transfer secret data across this channel to cache.
Techniques |
---|
Prediction-based - adversary trains CPU to incorrectly predict/speculate conditions for instruction execution to be true, hence executing adversary-chosen transient instructions. These prediction-based methods include: Pattern History Table (PHT)/Input Validation Bypass, Branch Target Buffer (BTB)/Branch Target Injection, Return Stack Buffer (RSB)/Return Address Injection, and Store To Load (STL)/Speculative Store Bypass. |
Exception/Fault-based - adversary has CPU execute transient instructions that raise an exception allowing inaccessible memory space to be accessed via out-of-order execution. These exception/fault-based methods include: Supervisor-only Bypass, Virtual Translation Bypass, System Register Bypass, FPU Register Bypass, Read-only Bypass, Protection Key Bypass, and Bounds Check Bypass. |
Perform covert channel attack to obtain/access secret data: Adversary process code removes instructions/data from shared cache set, waits for target process to reinsert them back into cache, to identify location of secret data via a timing method. Adversary continuously repeat this process to identify and access entirety of targeted secret data.
Techniques |
---|
Flush+Reload - adversary frequently flushes targeted memory cache line using a dedicated machine flush instruction, and uses another process to measure time taken for CPU to load victim secret data. |
Evict+Time - adversary causes victim to load target set into cache and measures time for victim process to load this data, setting a baseline. Adversary evicts a specified cache line and causes victim process to execute again, and measures any change in execution time, to determine if cache line was accessed. |
Prime+Probe - adversary primes cache by filling cache line(s) or set(s) with data, after some time victim process evicts this adversary data to replace it with secret data. The adversary then probes/accesses all the previously accessed cache lines detecting cache misses, which determine that their attacker data has been evicted and replaced with secret data from victim process. |
Find target application: Find target web application that accepts a user input and retrieves data from the server
Examine existing application requests: Examine HTTP/GET requests to view the URL query format. Adversaries test to see if this type of attack is possible through weaknesses in an application's protection to Server Side Request Forgery
Techniques |
---|
Attempt manipulating the URL to retrieve an error response/code from the server to determine if URL/request validation is done. |
Use a list of XSS probe strings to specify as parameters to known URLs. If possible, use probe strings with unique identifiers. |
Create a GET request with a common server file path such as /etc/passwd as a parameter and examine output. |
Malicious request: Adversary crafts a malicious URL request that assumes the privilege level of the server to query internal or external network services and sends the request to the application
Survey physical victim environment and potential Thunderbolt system targets: The adversary monitors the target's physical environment to identify systems with Thunderbolt interfaces, identify potential weaknesses in physical security in addition to periods of nonattendance by the victim over their Thunderbolt interface equipped devices, and when the devices are in locked or sleep state.
Evaluate the target system and its Thunderbolt interface: The adversary determines the device's operating system, Thunderbolt interface version, and any implemented Thunderbolt protections to plan the attack.
Obtain and/or clone firmware image: The adversary physically manipulates Thunderbolt enabled devices to acquire the firmware image from the target and/or adversary Thunderbolt host controller's SPI (Serial Peripheral Interface) flash.
Techniques |
---|
Disassemble victim and/or adversary device enclosure with basic tools to gain access to Thunderbolt controller SPI flash by connecting adversary SPI programmer. |
Adversary connects SPI programmer to adversary-controlled Thunderbolt enabled device to obtain/clone victim thunderbolt controller firmware image through tools/scripts. |
Clone firmware image with SPI programmer and tools/scripts on adversary-controlled device. |
Parse and locate relevant firmware data structures and information based upon Thunderbolt controller model, firmware version, and other information: The acquired victim and/or adversary firmware image is parsed for specific data and other relevant identifiers required for exploitation, based upon the victim device information and firmware version.
Techniques |
---|
Utilize pre-crafted tools/scripts to parse and locate desired firmware data and modify it. |
Locate DROM (Device Read Only Memory) data structure section and calculate/determine appropriate offset to replicate victim device UUID. |
Locate ACL (Access Control List) data structure and calculate/determine appropriate offsets to identify victim device UUID. |
Locate data structure containing challenge-response key information between appropriate offsets. |
Disable Thunderbolt security and prevent future Thunderbolt security modifications (if necessary): The adversary overrides the target device's Thunderbolt Security Level to \"None\" (SL0) and/or enables block protections upon the SPI flash to prevent the ability for the victim to perform and/or recognize future Thunderbolt security modifications as well as update the Thunderbolt firmware.
Techniques |
---|
The adversary-controlled Thunderbolt device, connected to SPI programmer and victim device via Thunderbolt ports, is utilized to execute commands within tools/scripts to disable SPI flash protections, modify Thunderbolt Security Level, and enable malicious SPI flash protections. |
Modify/replace victim Thunderbolt firmware image: The modified victim and/or adversary thunderbolt firmware image is written to attacker SPI flash.
Connect adversary-controlled thunderbolt enabled device to victim device and verify successful execution of malicious actions: The adversary needs to determine if their exploitation of selected vulnerabilities had the intended effects upon victim device.
Techniques |
---|
Observe victim device identify adversary device as the victim device and enables PCIe tunneling. |
Resume victim device from sleep, connect adversary-controlled device and observe security is disabled and Thunderbolt connectivity is restored with PCIe tunneling being enabled. |
Observe that in UEFI or Thunderbolt Management Tool/UI that the Security Level does not match adversary modified Security Level of \"None\" (SL0) |
Observe after installation of Firmware update that within Thunderbolt Management UI the \"NVM version\" is unchanged/same prior to the prompt of successful Firmware update/installation. |
Exfiltration of desired data from victim device to adversary device: Utilize PCIe tunneling to transfer desired data and information from victim device across Thunderbolt connection.
Scan for Bluetooth Enabled Devices: Using BlueZ along with an antenna, an adversary searches for devices with Bluetooth on.
Techniques |
---|
Note the MAC address of the device you want to attack. |
Change L2CAP Packet Length: The adversary must change the L2CAP packet length to create packets that will overwhelm a Bluetooth enabled device.
Techniques |
---|
An adversary downloads and installs BlueZ, the standard Bluetooth utility package for Linux. |
Flood: An adversary sends the packets to the target device, and floods it until performance is degraded.
Find disguise and target: The adversary starts the Bluetooth service on the attacking device and searches for nearby listening devices.
Techniques |
---|
Knowledge of a trusted MAC address. |
Scanning for devices other than the target that may be trusted. |
Disguise: Using the MAC address of the device the adversary wants to impersonate, they may use a tool such as spooftooth or macchanger to spoof their Bluetooth address and attempt to authenticate with the target.
Use device capabilities to accomplish goal: Finally, if authenticated successfully the adversary can perform tasks/information gathering dependent on the target's capabilities and connections.
Discovery: Using an established Person in the Middle setup, search for Bluetooth devices beginning the authentication process.
Techniques |
---|
Use packet capture tools. |
Change the entropy bits: Upon recieving the initial key negotiation packet from the master, the adversary modifies the entropy bits requested to 1 to allow for easy decryption before it is forwarded.
Capture and decrypt data: Once the entropy of encryption is known, the adversary can capture data and then decrypt on their device.
Identify software with frequent updates: The adversary must first identify a target software that has updates at least with some frequency, enough that there is am update infrastructure.
Gain access to udpate infrastructure: The adversary must then gain access to the organization's software update infrastructure. This can either be done by gaining remote access from outside the organization, or by having a malicious actor inside the organization gain access. It is often easier if someone within the organization gains access.
Alter the software update: Through access to the software update infrastructure, an adversary will alter the software update by injecting malware into the content of an outgoing update.
Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. In this attack, adversaries look for applications that use syslog() incorrectly.
Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer. 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. |
Craft overflow content: 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.
Techniques |
---|
The formatting characters %s and %d are useful for observing memory and trying to print memory addresses. If an adversary has access to the log being written to they can observer this output and use it to help craft their attack. |
The formatting character %n is useful for adding extra data onto the buffer. |
Overflow the buffer: Using the injection vector, the adversary supplies the program with the crafted format string injection, causing a buffer.
Survey target application: Due to the number of NoSQL databases available and the numerous language/API combinations of each, the adversary must first survey the target application to learn what technologies are being leveraged and how they interact with user-driven data.
Techniques |
---|
Determine the technology stack leveraged by the target application, such as the application server, drivers, frameworks, APIs, and databases being utilized. |
Identify areas of the application that interact with user input and may be involved with NoSQL queries. |
Identify user-controllable input susceptible to injection: After identifying the technology stack being used and where user-driven input is leveraged, determine the user-controllable input susceptible to injection such as authentication or search forms. For each user-controllable input that the adversary suspects is vulnerable to NoSQL injection, attempt to inject characters or keywords that have special meaning in the given NoSQL database or language (e.g., \"$ne\" for MongoDB or \"$exists\" for PHP/MongoDB), or JavaScript that can be executed within the application. The goal is to create a NoSQL 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 NoSQL Injection vulnerabilities: After determining that a given input is vulnerable to NoSQL Injection, hypothesize what the underlying query looks like. Iteratively try to add logic to the query to extract information from the database, modify/delete information in the database, or execute commands on the server.
Techniques |
---|
Use public resources such as OWASP's \"Testing for NoSQL Injection\" [REF-668] or Null Sweep's \"NoSQL Injection Cheatsheet\" [REF-669] and try different approaches for adding logic to NoSQL queries. |
Iteratively add logic to the NoSQL query and use detailed error messages from the server to debug the query. |
Attempt an HTTP Parameter Pollution attack to replace language-specific keywords, such as \"where\" within PHP [CAPEC-460]. |
Exploit NoSQL Injection vulnerability: After refining and adding various logic to NoSQL queries, craft and execute the underlying NoSQL query that will be used to attack the target system.
Techniques |
---|
Craft and Execute underlying NoSQL query |
Determine vulnerable firmware or ROM code: An adversary will attempt to find device models that are known to have unpatchable firmware or ROM code, or are deemed “end-of-support” where a patch will not be made. The adversary looks for vulnerabilities in firmware or ROM code for the identified devices, or looks for devices which have known vulnerabilities
Techniques |
---|
Many botnets use wireless scanning to discover nearby devices that might have default credentials or commonly used passwords. Once these devices are infected, they can search for other nearby devices and so on. |
Determine plan of attack: An adversary identifies a specific device/model that they wish to attack. They will also investigate similar devices to determine if the vulnerable firmware or ROM code is also present.
Carry out attack: An adversary exploits the vulnerable firmware or ROM code on the identified device(s) to achieve their desired goal.
Techniques |
---|
Install malware on a device to recruit it for a botnet. |
Install malware on the device and use it for a ransomware attack. |
Gain root access and steal information stored on the device. |
Manipulate the device to behave in unexpected ways which would benefit the adversary. |
Find programs with elevated priveleges: The adversary probes for programs running with elevated privileges.
Techniques |
---|
Look for programs that write to the system directories or registry keys (such as HKLM, which stores a number of critical Windows environment variables). These programs are typically running with elevated privileges and have usually not been designed with security in mind. Such programs are excellent exploit targets because they yield lots of power when they break. |
Find vulnerability in running program: The adversary looks for a vulnerability in the running program that would allow for arbitrary code execution with the privilege of the running program.
Techniques |
---|
Look for improper input validation |
Look for improper failure safety. For instance when a program fails it may authorize restricted access to anyone. |
Look for a buffer overflow which may be exploited if an adversary can inject unvalidated data. |
Execute arbitrary code: The adversary exploits the vulnerability that they have found. For instance, they can try to inject and execute arbitrary code or write to OS resources.
Identify target: The adversary must first identify a target repository for them to spoof. Typically, this will be a popular and widely used repository, as to increase the amount of victims a successful attack will exploit.
Create malicious repository: The adversary must create a malicious repository that imitates the legitimate repository being spoofed. This may include creating a username that closely matches the legitimate repository owner; creating a repository name that closely matches the legitimate repository name; uploading the legitimate source code; and more.
Spoof commit metadata: Once the malicious repository has been created, the adversary must then spoof the commit metadata to make the repository appear to be frequently maintained and originating from trusted sources.
Techniques |
---|
Git Commit Timestamps: The adversary generates numerous fake commits while setting the \"GIT_AUTHOR_DATE\" and \"GIT_COMMITTER_DATE\" environment variables to a date which is to be spoofed. |
Git Commit Contributors: The adversary obtains a legitimate and trusted user's email address and then sets this information via the \"git config\" command. The adversary can then commit changes leveraging this username. |
Exploit victims: The adversary infiltrates software and/or system environments with the goal of conducting additional attacks.
Techniques |
---|
Active: The adversary attempts to trick victims into downloading the malicious software by means such as phishing and social engineering. |
Passive: The adversary waits for victims to download and leverage malicious software. |
Identify target: The adversary must first identify a target package whose popularity statistics will be leveraged. This will be a popular and widely used package, as to increase the perceived pedigree of the malicious package.
Spoof package popularity: The adversary provides their malicious package to a package manager and uses the source code repository URL identified in Step 1 to spoof the popularity of the package. This malicious package may also closely resemble the legitimate package whose statistics are being utilized.
Exploit victims: The adversary infiltrates development environments with the goal of conducting additional attacks.
Techniques |
---|
Active: The adversary attempts to trick victims into downloading the malicious package by means such as phishing and social engineering. |
Passive: The adversary waits for victims to download and leverage the malicious package. |
System Locale Information Discovery: The adversary examines system information from various sources such as registry and native API functions and correlates the gathered information to infer the geographical location of the target system
Techniques |
---|
Registry Query: Query the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\ContentIndex\\Language\\Language_Dialect on Windows to obtain system language, Computer\\HKEY_CURRENT_USER\\Keyboard Layout\\Preload to obtain the hexadecimal language IDs of the current user's preloaded keyboard layouts, and Computer\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation to obtain the system timezone configuration |
Native API Requests: Parse the outputs of Windows API functions GetTimeZoneInformation, GetUserDefaultUILanguage, GetSystemDefaultUILanguage, GetKeyboardLayoutList and GetUserDefaultLangID to obtain information about languages, keyboard layouts, and timezones installed on the system or on macOS or Linux systems, query locale to obtain the $LANG environment variable and view keyboard layout information or use timeanddatectl status to show the system clock settings. |
Read Configuration Files: For macOS and Linux-based systems, view the /etc/vconsole.conf file to get information about the keyboard mapping and console font. |
Identify target: The adversary must first identify a target repository that is commonly used and whose owner/maintainer has either changed/deleted their username or transferred ownership of the repository and then deleted their account. The target should typically be a popular and widely used package, as to increase the scope of the attack.
Recreate initial repository path: The adversary re-registers the account that was renamed/deleted by the target repository's owner/maintainer and recreates the target repository with malicious code intended to exploit an application. These steps may need to happen in reverse (i.e., recreate repository and then rename an existing account to the target account) if protections are in place to prevent repository reuse.
Exploit victims: The adversary's malicious code is incorporated into applications that directly reference the initial repository, which further allows the adversary to conduct additional attacks.
Survey target application and relevant OS shared code libraries: Adversary identifies vulnerable transient instruction sets and the code/function calls to trigger them as well as instruction sets or code fragments (gadgets) to perform attack. The adversary looks for code gadgets which will allow them to load an adversary-controlled value into trusted memory. They also look for code gadgets which might operate on this controlled value.
Techniques |
---|
Utilize Disassembler and Debugger tools to examine and trace instruction set execution of source code and shared code libraries on a system. |
Fill microarchitectural buffer with controlled value: The adversary will utilize the found code gadget from the previous step to load a value into a microarchitectural buffer.
Techniques |
---|
The adversary may choose the controlled value to be memory address of sensitive information that they want the system to access |
The adversary may choose the controlled value to be the memory address of other code gadgets that they wish to execute by hijacking the control flow of the system |
Set up instruction to page fault or microcode assist: The adversary must manipulate the system such that a page fault or microcode assist occurs when a valid instruction is run. If the instruction that fails is near where the adversary-controlled value was loaded, the system may forward this value from the microarchitectural buffer incorrectly.
Techniques |
---|
When targeting Intel SGX enclaves, adversaries that have privileges can manipulate PTEs to provoke page-fault exceptions or microcode assists. |
When targeting Intel SGX enclaves, adversaries can indirectly revoke permissions for enclave code through the “mprotect” system call |
An adversary can evict selected virtual memory pages using legacy interfaces or by increasing physical memory utilization |
When attacking a Windows machine, wait until the OS clears the PTE accessed bit. When the page is next accessed, the CPU will always issue a microcode assist for re-setting this bit |
Operate on adversary-controlled data: Once the attack has been set up and the page fault or microcode assist occurs, the system operates on the adversary-controlled data.
Techniques |
---|
Influence the system to load sensitive information into microarchitectural state which can be read by the adversary using a code gadget. |
Hijack execution by jumping to second stage gadgets found in the address space. By utilizing return-oriented programming, this can chain gadgets together and allow the adversary to execute a sequence of gadgets. |
Determine Exsisting DHCP lease: An adversary observes network traffic and waits for an existing DHCP lease to expire on a target machine in the LAN.
Techniques |
---|
Adversary observes LAN traffic for DHCP solicitations |
Capture the DHCP DISCOVER message: The adversary captures \"DISCOVER\" messages and crafts \"OFFER\" responses for the identified target MAC address. The success of this attack centers on the capturing of and responding to these \"DISCOVER\" messages.
Techniques |
---|
Adversary captures and responds to DHCP \"DISCOVER\" messages tailored to the target subnet. |
Compromise Network Access and Collect Network Activity: An adversary successfully acts as a rogue DHCP server by redirecting legitimate DHCP requests to itself.
Techniques |
---|
Adversary sends repeated DHCP \"REQUEST\" messages to quickly lease all the addresses within network's DHCP pool and forcing new DHCP requests to be handled by the rogue DHCP server. |
Identify target(s): The adversary must first identify target software that allows for extensions/plugins and which they wish to exploit, such as a web browser or desktop application. To increase the attack space, this will often be popular software with a large user-base.
Create malicious extension: Having identified a suitable target, the adversary crafts a malicious extension/plugin that can be installed by the underlying target software. This malware may be targeted to execute on specific operating systems or be operating system agnostic.
Install malicious extension: The malicious extension/plugin is installed by the underlying target software and executes the adversary-created malware, resulting in a variety of negative technical impacts.
Techniques |
---|
Adversary-Installed: Having already compromised the target system, the adversary simply installs the malicious extension/plugin themself. |
User-Installed: The adversary tricks the user into installing the malicious extension/plugin, via means such as social engineering, or may upload the malware on a reputable extension/plugin hosting site and wait for unknowing victims to install the malicious component. |
Survey Target: The adversary surveys the target location, looking for exposed display cables and locations to hide an SDR. This also includes looking for display cables or monitors placed close to a wall, where the SDR can be in range while behind the wall. The adversary also attempts to discover the resolution and refresh rate of the targeted display.
Find target using SDR: The adversary sets up an SDR near the target display cable or monitor. They use the SDR software to locate the corresponding frequency of the display cable. This is done by looking for interference peaks that change depending on what the screen is showing. The adversary notes down the possible frequencies of unintentional emission.
Techniques |
---|
An adversary can make use of many different commercially available SDR devices which are easy to setup such as a HackRF, Ubertooth, RTL-SDR, and many others. |
Visualize Monitor Image: Once the SDR software has been used to identify the target, the adversary will record the transmissions and visualize the monitor image using these transmissions, which allows them to eavesdrop on the information visible on the monitor.
Techniques |
---|
The TempestSDR software can be used in conjunction an SDR device to visualize the monitor image. The adversary will specify the known monitor resolution and refresh rate, or if those are not known they can use the provided auto-correlation graphs to help predict these values. The adversary will then try the different frequencies recorded from the experiment phase, looking for a viewing monitor display. Low pass filters and gain can be manipulated to make the display image clearer. |
[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. |
Identify potential targets: An adversary identifies network boundary devices that can be compromised.
Techniques |
---|
The adversary traces network traffic to identify which devices the traffic flows through. Additionally, the adversary can identify devices using fingerprinting methods or locating the management page to determine identifying information about the device. |
Compromise targets: The adversary must compromise the identified targets in the previous step.
Techniques |
---|
Once the device is identified, the adversary can attempt to input known default credentials for the device to gain access to the management console. |
Adversaries with sufficient identifying knowledge about the target device can exploit known vulnerabilities in network devices to obtain administrative access. |
Bridge Networks: The adversary changes the configuration of the compromised network device to connect the networks the device was segmenting. Depending on the type of network boundary device and its capabilities, bridging can be implemented using various methods.
Techniques |
---|
The adversary can abuse Network Address Translation (NAT) in firewalls and routers to manipulate traffic flow to their own design. With control of the network device, the adversary can manipulate NAT by either using existing configurations or creating their own to allow two previously unconnected networks to communicate. |
Some network devices can be configured to become a proxy server. Adversaries can set up or exploit an existing proxy server on compromised network devices to create a bridge between separate networks. |
Identify potential targets: The adversary identifies an application or service that the target is likely to use.
Techniques |
---|
The adversary stands up a server to host the transparent browser and entices victims to use it by using a domain name similar to the legitimate application. In addition to the transparent browser, the adversary could also install a web proxy, sniffer, keylogger, and other tools to assist in their goals. |
Lure victims: The adversary crafts a phishing campaign to lure unsuspecting victims into using the transparent browser.
Techniques |
---|
An adversary can create a convincing email with a link to download the web client and interact with the transparent browser. |
Monitor and Manipulate Data: When the victim establishes the connection to the transparent browser, the adversary can view victim activity and make alterations to what the victim sees when browsing the web.
Techniques |
---|
Once a victim has established a connection to the transparent browser, the adversary can use installed tools such as a web proxy, keylogger, or additional malicious browser extensions to gather and manipulate data or impersonate the victim. |
Find and scan debug interface: The adversary must first find and scan a debug interface to determine what they are authorized to use and what devices are chained to that interface.
Techniques |
---|
Use a JTAGulator on a JTAG interface to determine the correct pin configuration, baud rate, and number of devices in the chain |
Connect to debug interface: The adversary next connects a device to the JTAG interface using the properties found in the explore phase so that they can send commands. The adversary sends some test commands to make sure the connection is working.
Techniques |
---|
Connect a device such as a BusPirate or UM232H to the JTAG interface and connect using pin layout found from the JTAGulator |
Move along debug chain: Once the adversary has connected to the main TAP, or JTAG interface, they will move along the TAP chain to see what debug interfaces might be available on that chain.
Techniques |
---|
Run a command such as “scan_chain” to see what TAPs are available in the chain. |
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. |
Survey web application for URLs with parameters: Using a browser, an automated tool or by inspecting the application, an adversary records all URLs that contain parameters.
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. |
Probe URLs to locate vulnerabilities: The adversary uses the URLs gathered in the \"Explore\" phase as a target list and tests parameters with different encodings of special characters to see how the web application will handle them.
Techniques |
---|
Use URL encodings of special characters such as semi-colons, backslashes, or question marks that might be filtered out normally. |
Combine the use of URL encodings with other encoding techniques such as the triple dot and escape slashes. |
Inject special characters into URL parameters: Using the information gathered in the \"Experiment\" phase, the adversary injects special characters into the URL using URL encoding. This can lead to path traversal, cross-site scripting, SQL injection, etc.
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 indiscriminately 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 so that the proper file seperator is used.
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. |
Probe target application: The adversary first probes the target application to determine important information about the target. This information could include types software used, software versions, what user input the application consumes, and so on.
Find user-controlled variables: Using the information found by probing the application, the adversary attempts to manipulate many user-controlled variables and observes the effects on the application. If the adversary notices any significant changes to the application, they will know that a certain variable is useful to the application.
Techniques |
---|
Adversaries will try to alter many common variable names such as \"count\", \"tempFile\", \"i\", etc. The hope is that they can alter the flow of the application without knowing the inner-workings. |
Adversaries will try to alter known environment variables. |
Manipulate user-controlled variables: Once the adversary has found a user-controller variable(s) that is important to the application, they will manipulate it to change the normal behavior in a way that benefits the adversary.
Survey the application for user-controllable inputs: Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application.
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: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and attempts to escape multiple different special characters using a backslash.
Techniques |
---|
Escape a special character with a backslash to bypass input validation. |
Try different encodings of both the backslash and the special character to see if this bypasses input validation |
Manipulate input: Once the adversary determines how to bypass filters that filter out special characters using an escaped slash, they will manipulate the user input in a way that is not intended by the application.
Survey the application for user-controllable inputs: Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application.
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: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and looks for areas where user input is used to access resources on the target host. The adversary attempts different encodings of slash characters to bypass input filters.
Techniques |
---|
Try both backslash and forward slash characters |
Try different encodings for slash characters such as %5C |
Traverse application directories: Once the adversary determines how to bypass filters that filter out slash characters, they will manipulate the user input to include slashes in order to traverse directories and access resources that are not intended for the user.
Identify target application: The adversary, with knowledge of vulnerable libraries or shared code modules, identifies a target application or program that makes use of these.
Find injection vector: The adversary attempts to use the API, and if they can they send a large amount of data to see if the buffer overflow attack really does work.
Techniques |
---|
Provide large input to a program or application and observe the behavior. If there is a crash, this means that a buffer overflow attack is possible. |
Craft overflow content: The adversary crafts the content to be injected based on their knowledge of the vulnerability and their desired outcome. 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.
Techniques |
---|
Create malicious shellcode that will execute when the program execution is returned to it. |
Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs |
Overflow the buffer: Using the API as the injection vector, the adversary injects the crafted overflow content into the buffer.
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 adversary 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. |
Determine the tructure of queries: Using manual or automated means, test 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. |
Inject content into XPath query: 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. |
Use a combination of single quote (') and boolean expressions such as \"or 1=1\" to manipulate XPath logic. |
Use XPath functions in the malicious content such as \"string-length\", \"substring\", or \"count\" to gain information about the XML document structure being used. |
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 request to target webpage and analyze HTML: Using a browser or an automated tool, an adversary sends requests to a webpage and records the received HTML response. Adversaries then analyze the HTML to identify any known underlying JavaScript architectures. This can aid in mappiong publicly known vulnerabilities to the webpage and can also helpo the adversary guess application architecture and the inner workings of a system.
Techniques |
---|
Record all \"src\" values inside script tags. These JavaScript files are compared to lists of files for known architectures. If there is a large match between the \"src\" values and architecture files, then it can be assumed that particular architecture is being used. |
Survey the application for public links: Using a browser or an automated tool, an adversary 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. |
Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.
Techniques |
---|
Change a URL parameter which is used in an HTTP header to include a malicious script tag. Because it is in the header it may bypass validation. |
Send information gathered from the malicious script to a remote endpoint. |
Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.
Techniques |
---|
Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion. |
Put the malicious URL on a public forum, where many victims might accidentally click the link. |
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). |
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.
Identify target system: The adversary first finds a target system that they want to gain elevated priveleges on. This could be a system they already have some level of access to or a system that they will gain unauthorized access at a lower privelege using some other means.
Find injection vector: The adversary identifies command line utilities exposed by the target host that contain buffer overflow vulnerabilites. The adversary likely knows which utilities have these vulnerabilities and what the effected versions are, so they will also obtain version numbers for these utilities.
Craft overflow command: Once the adversary has found a vulnerable utility, they will use their knownledge of the vulnerabilty to create the command that will exploit the buffer overflow.
Overflow the buffer: Using the injection vector, the adversary executes the crafted command, gaining elevated priveleges on the machine.
Identify service with vulnerable handshake authentication: The adversary must first identify a vulnerable authentication protocol. The most common indication of an authentication protocol vulnerable to reflection attack is when the client initiates the handshake, rather than the server. This allows the client to get the server to encrypt targeted data using the server's pre-shared key.
Send challenge to target server: The adversary opens a connection to the target server and sends it a challenge. This challenge is arbitrary and is simply used as a placeholder for the protocol in order to get the server to respond.
Receive server challenge: The server responds by returning the challenge sent encrypted with the server's pre-shared key, as well as its own challenge to the attacker sent in plaintext. We will call this challenge sent by the server \"C\". C is very important and is stored off by the adversary for the next step.
Initiate second handshake: Since the adversary does not possess the pre-shared key, they cannot encrypt C from the previous step in order for the server to authenticate them. To get around this, the adversary initiates a second connection to the server while still keeping the first connection alive. In the second connection, the adversary sends C as the initial client challenge, which rather than being arbitary like the first connection, is very intentional.
Receive encrypted challenge: The server treats the intial client challenge in connection two as an arbitrary client challenge and responds by encrypting C with the pre-shared key. The server also sends a new challenge. The adversary ignores the server challenge and stores the encrypted version of C. The second connection is either terminated or left to expire by the adversary as it is no longer needed.
The adversary now posseses the encrypted version of C that is obtained through connection two. The adversary continues the handshake in connection one by responding to the server with the encrypted version of C, verifying that they have access to the pre-shared key (when they actually do not). Because the server uses the same pre-shared key for all authentication it will decrypt C and authenticate the adversary for the first connection, giving the adversary illegitimate access to the target system.
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 |
Determine Communication Mechanism: The adversary determines the nature and mechanism of communication between two components, looking for opportunities to exploit.
Techniques |
---|
Perform a sniffing attack and observe communication to determine a communication protocol. |
Look for application documentation that might describe a communication mechanism used by a target. |
Position In Between Targets: The adversary inserts themself into the communication channel initially acting as a routing proxy between the two targeted components.
Techniques |
---|
Install spyware on a client that will intercept outgoing packets and route them to their destination as well as route incoming packets back to the client. |
Exploit a weakness in an encrypted communication mechanism to gain access to traffic. Look for outdated mechanisms such as SSL. |
Use Intercepted Data Maliciously: The adversary 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.
Techniques |
---|
Prevent some messages from reaching their destination, causing a denial of service. |
Scan for WSDL Documents: The adversary 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 adversary.
Analyze WSDL files: An adversary will analyze the WSDL files and try to find potential weaknesses by sending messages matching the pattern described in the WSDL file. The adversary could run through all of the operations with different message request patterns until a breach is identified.
Craft malicious content: Once an adversary finds a potential weakness, they can craft malicious content to be sent to the system. For instance the adversary may try to submit special characters and observe how the system reacts to an invalid request. The message sent by the adversary 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 |