Skip to content

Latest commit

 

History

History
139 lines (125 loc) · 13.5 KB

http-communication.md

File metadata and controls

139 lines (125 loc) · 13.5 KB
ID C0002
Objective(s) Communication
Related ATT&CK Techniques None
Version 2.2
Created 14 August 2020
Last Modified 30 April 2024

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 Class Mapping APIs
internet_dropper Internet_Dropper HTTP Communication (C0002) HttpOpenRequestA, InternetConnectA, HttpOpenRequestW, InternetConnectW
bot_madness Madness HTTP Communication (C0002) --
bot_madness Madness HTTP Communication::Send Request (C0002.003) --
bot_drive Drive HTTP Communication (C0002) --
bot_drive Drive HTTP Communication::Send Data (C0002.005) --
network_cnc_http NetworkCnCHTTP HTTP Communication (C0002) --
recon_beacon Recon_Beacon HTTP Communication (C0002) HttpOpenRequestA, HttpSendRequestA
network_http NetworkHTTP HTTP Communication (C0002) --
explorer_http ExplorerHTTP HTTP Communication (C0002) WinHttpConnect, WinHttpOpenRequest
bot_drive2 Drive2 HTTP Communication (C0002) --
bot_drive2 Drive2 HTTP Communication::Send Data (C0002.005) --
bot_dirtjumper DirtJumper HTTP Communication (C0002) --
bot_dirtjumper DirtJumper HTTP Communication::Send Data (C0002.005) --
bot_athenahttp AthenaHttp HTTP Communication (C0002) --
koadic_network_activity KoadicNetworkActivity HTTP Communication (C0002) WinHttpOpenRequest, HttpOpenRequestW
http_request HTTP_Request HTTP Communication (C0002) HttpOpenRequestA, HttpOpenRequestW, InternetConnectW, InternetOpenUrlA, InternetConnectA, InternetOpenUrlW, WinHttpGetProxyForUrl
cmdline_http_link CommandLineHTTPLink HTTP Communication (C0002) --
cmdline_reversed_http_link CommandLineReversedHTTPLink HTTP Communication (C0002) --
network_docfile_http NetworkDocumentHTTP HTTP Communication (C0002) InternetCrackUrlW, InternetCrackUrlA, URLDownloadToFileW, HttpOpenRequestW, InternetReadFile, WSASend
banker_zeus_url ZeusURL HTTP Communication (C0002) --
downloads_from_filehosting Modiloader_APIs HTTP Communication (C0002) InternetOpenUrlA, WinHttpOpenRequest
purplewave_network_activity PurpleWaveNetworkAcivity HTTP Communication (C0002) InternetOpenW, HttpAddRequestHeadersA, HttpSendRequestW, HttpOpenRequestW

C0002.017 Snippet

Communication::HTTP Communication::Get Response SHA256: 3ac8c22eb7c59d35fe49c20f2a0eca06765543dfb15f455a5557af4428066641 Location: 0x180001380
mov     param_2, ebx
lea     r9, [rsp + 0x44]        ; where to store the number of bytes read
add     param_2, r14    ; pointer to buffer to receive HTTP data
mov     param_3, 0x400  ; number of bytes to read (1024)
mov     param_1, rsi    ; handle to previously opened HTTP request
call    qword ptr [->WININET::InternetReadFile] ; Windows API for reading data from HTTP or FTP connections

References

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