Files
MBCProject-mbc-markdown/micro-behaviors/communication/http-communication.md
T
Ryan Xu d423b5a5fa Adding CAPE mappings to detection section (#132)
* Making spacing between sections consistent

* Adding cape mappings
2023-12-05 14:19:50 -05:00

13 KiB

ID C0002
Objective(s) Communication
Related ATT&CK Techniques None
Version 2.0
Created 14 August 2020
Last Modified 13 September 2023

HTTP Communication

This micro-behavior is related to HTTP communication.

Instead of being listed alphabetically, methods have been grouped to better faciliate labeling and mapping.

Methods

Name ID Description
Server C0002.001 General HTTP server behavior.
Client C0002.002 General HTTP client behavior.
Connect to Server C0002.009 HTTP client connects to HTTP server.
Open URL C0002.004 HTTP client connects to a URL.
Download URL C0002.006 HTTP client downloads URL to file.
Extract Body C0002.011 HTTP client extracts HTTP body.
Create Request C0002.012 HTTP client creates request.
Send Request C0002.003 HTTP client sends request (GET).
Send Data C0002.005 HTTP clients sends data to a server (POST/PUT).
Receive Request C0002.015 HTTP server receives request.
Send Response C0002.016 HTTP server sends response.
Get Response C0002.017 HTTP client receives response.
Start Server C0002.018 HTTP server is started.
Set Header C0002.013 HTTP header is set.
Read Header C0002.014 HTTP read header.
IWebBrowser C0002.010 The IWebBrowser interface exposes methods and properties implemented by the WebBrowser control or implemented by an instance of the InternetExplorer application. Specific methods and properties can be captured: e.g., COMMUNICATION::HTTP Communication::IWebBrowser.get_Document.
WinHTTP C0002.008 An HTTP request is made via the Windows HTTP Services (WinHTTP) application programming interface (API).
WinINet C0002.007 A HTTP request is made via the Windows Internet (WinINet) application programming interface (API). A specific function can be specified as a method on the WinInet micro-behavior.

Use in Malware

Name Date Method Description
BlackEnergy 2007 C0002.010 The malware initializes IWebBrowser2. [1]
BlackEnergy 2007 C0002.011 The malware extracts the HTTP body. [1]
Emotet 2018 C0002.012 The malware creates a HTTP request. [1]
Kovter 2016 C0002.009 Kovter connects to a HTTP server. [1]
Kovter 2016 C0002.012 Kovter creates a HTTP request. [1]

Detection

Tool: capa Mapping APIs
read HTTP header HTTP Communication::Read Header (C0002.014) winhttp.WinHttpQueryHeaders
initialize WinHTTP library HTTP Communication::WinHTTP (C0002.008) winhttp.WinHttpOpen
initialize IWebBrowser2 HTTP Communication::IWebBrowser (C0002.010) ole32.CoCreateInstance
get HTTP content length HTTP Communication (C0002) wininet.HttpQueryInfo
set HTTP header HTTP Communication::Set Header (C0002.013) winhttp.WinHttpAddRequestHeaders, System.Net.WebHeaderCollection::Add
reference HTTP User-Agent string HTTP Communication (C0002) urlmon.ObtainUserAgentString
start HTTP server HTTP Communication::Start Server (C0002.018) httpapi.HttpInitialize, httpapi.HttpTerminate, System.Net.HttpListener::Start
receive HTTP request HTTP Communication::Receive Request (C0002.015) httpapi.HttpReceiveHttpRequest, httpapi.HttpReceiveRequestEntityBody
send HTTP response HTTP Communication::Send Response (C0002.016) httpapi.HttpSendHttpResponse, httpapi.HttpSendResponseEntityBody
receive HTTP response HTTP Communication::Get Response (C0002.017) System.Net.WebRequest::GetResponse, winhttp.WinHttpReceiveResponse, winhttp.WinHttpReadData, winhttp.WinHttpQueryDataAvailable
send HTTP request HTTP Communication::Send Request (C0002.003) System.Net.WebRequest::GetResponse, System.Net.WebRequest::GetResponseAsync, wininet.HttpOpenRequest, wininet.InternetConnect, wininet.HttpSendRequest, wininet.HttpSendRequestEx, winhttp.WinHttpSendRequest, winhttp.WinHttpWriteData, winhttp.WinHttpOpenRequest, winhttp.WinHttpConnect
read data from Internet HTTP Communication::Get Response (C0002.017) wininet.InternetReadFile, wininet.InternetReadFileEx, System.Net.WebClient::DownloadString, System.Net.WebClient::DownloadStringAsync, System.Net.WebClient::DownloadStringTaskAsync, System.Net.WebClient::DownloadData, System.Net.WebClient::DownloadDataAsync, System.Net.WebClient::DownloadDataTaskAsync
get HTTP document via IWebBrowser2 HTTP Communication::Get Response (C0002.017) oleaut32.SysAllocString, oleaut32.VariantInit
get HTTP document via IWebBrowser2 HTTP Communication::IWebBrowser (C0002.010) oleaut32.SysAllocString, oleaut32.VariantInit
download URL HTTP Communication::Download URL (C0002.006) urlmon.URLDownloadToFile, urlmon.URLDownloadToCacheFile, urlmon.URLOpenBlockingStream, urlmon.URLOpenPullStream, urlmon.URLOpenStream, System.Net.WebClient::DownloadFile, System.Net.WebClient::DownloadFileAsync, System.Net.WebClient::DownloadFileTaskAsync, Microsoft.VisualBasic.Devices.Network::DownloadFile
prepare HTTP request HTTP Communication::Create Request (C0002.012) winhttp.WinHttpOpenRequest
create HTTP request HTTP Communication::Create Request (C0002.012) wininet.InternetOpen, System.Net.WebRequest::Create, System.Net.WebRequest::CreateDefault, System.Net.WebRequest::CreateHttp, wininet.InternetCloseHandle
send file via HTTP HTTP Communication::Send Data (C0002.005) wininet.InternetWriteFile
decompress HTTP response via IEncodingFilterFactory HTTP Communication::Get Response (C0002.017) --
check HTTP status code HTTP Communication::Read Header (C0002.014) atoi, wininet.HttpQueryInfo
get HTTP response content encoding HTTP Communication::Get Response (C0002.017) wininet.HttpQueryInfo
connect to URL HTTP Communication::Open URL (C0002.004) wininet.InternetOpenUrl
connect to HTTP server HTTP Communication::Connect to Server (C0002.009) wininet.InternetConnect
extract HTTP body HTTP Communication::Extract Body (C0002.011) --
Tool: CAPE Mapping APIs
internet_dropper HTTP Communication (C0002) HttpOpenRequestA, InternetConnectA, HttpOpenRequestW, InternetConnectW
bot_madness HTTP Communication (C0002) --
bot_madness HTTP Communication::Send Request (C0002.003) --
bot_drive HTTP Communication (C0002) --
bot_drive HTTP Communication::Send Data (C0002.005) --
network_cnc_http HTTP Communication (C0002) --
recon_beacon HTTP Communication (C0002) HttpOpenRequestA, HttpSendRequestA
network_http HTTP Communication (C0002) --
explorer_http HTTP Communication (C0002) WinHttpConnect, WinHttpOpenRequest
bot_drive2 HTTP Communication (C0002) --
bot_drive2 HTTP Communication::Send Data (C0002.005) --
bot_dirtjumper HTTP Communication (C0002) --
bot_dirtjumper HTTP Communication::Send Data (C0002.005) --
bot_athenahttp HTTP Communication (C0002) --
koadic_network_activity HTTP Communication (C0002) HttpOpenRequestW, WinHttpOpenRequest
http_request HTTP Communication (C0002) HttpOpenRequestA, HttpOpenRequestW, InternetConnectW, InternetOpenUrlA, InternetConnectA, InternetOpenUrlW, WinHttpGetProxyForUrl
cmdline_http_link HTTP Communication (C0002) --
cmdline_reversed_http_link HTTP Communication (C0002) --
https_urls HTTP Communication (C0002) InternetOpenUrlW, InternetOpenUrlA
network_document_http HTTP Communication (C0002) URLDownloadToFileW, HttpOpenRequestW, InternetCrackUrlW, InternetCrackUrlA, WSASend, InternetReadFile
banker_zeus_url HTTP Communication (C0002) --
downloads_from_filehosting HTTP Communication (C0002) WinHttpOpenRequest, InternetOpenUrlA
purplewave_network_activity HTTP Communication (C0002) InternetOpenW, HttpOpenRequestW, HttpSendRequestW, HttpAddRequestHeadersA

References

[1] capa v4.0, analyzed at MITRE on 10/12/2022