Boost Beast check in and response

Found this Pcap, not really sure if it is malware or not.

Here is my signature for the check in,

alert tcp $HOME_NET any → $EXTERNAL_NET any (msg:“boost beast check in”; http.uri; content:“/api/taskforecast/get”; http.method; content:“GET”; reference:url,file (MD5: 73923A750344D1A1E734A12E98271C69) - Interactive analysis - ANY.RUN; sid:2008005; rev:1;)

Here is my signature for the response,

alert tcp $EXTERNAL_NET any → $HOME_NET any (msg:“boost beast response”; content:“{"Id"”; content:“Report”; content:“Watch”; content:“Action”; reference:url,file (MD5: 73923A750344D1A1E734A12E98271C69) - Interactive analysis - ANY.RUN; sid:2008006; rev:1;)

1 Like

Thanks @NoahWolf - I’ll take a look at these tonight and see what I can find out.

At first glance this looks ADWARE_PUP related.

Where did you get the naming “Boost Beast” from?

1 Like

I got the name “Boost Beast” from the strings output of the binary.

It is from a library that the binary uses. Probably not best to name it after a library its using, but I could not find anything else in the binary that would lead to a name.

Ok, finally got around to taking a good look at this today.

I’ve detailed my analysis of the samples and have provided some feedback on your proposed rules! Today there will be five new rules released based on your research :tada:. I’ll be sure to update the post with the sids and rule content once they are released.

SIDs

  2044038 - ET ADWARE_PUP BoostBeast Task Request M1 (adware_pup.rules)
  2044039 - ET ADWARE_PUP BoostBeast Task Request M2 (adware_pup.rules)
  2044040 - ET ADWARE_PUP BoostBeast Checkin M1 (adware_pup.rules)
  2044041 - ET ADWARE_PUP BoostBeast Checkin M2 (adware_pup.rules)
  2044042 - ET ADWARE_PUP BoostBeast Task Response (adware_pup.rules)

Rules

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET ADWARE_PUP BoostBeast Task Request M1"; flow:established,to_server; http.method; content:"GET"; http.uri; bsize:21; content:"/api/taskforecast/get"; fast_pattern; threshold:type limit, count 1, seconds 120, track by_src; reference:url,app.any.run/tasks/556c8a11-a736-48db-9779-bb74db2431c6/; reference:md5,73923a750344d1a1e734a12e98271c69; classtype:pup-activity; sid:2044038; rev:1; metadata:attack_target Client_Endpoint, created_at 2023_01_31, deployment Perimeter, former_category ADWARE_PUP, performance_impact Low, signature_severity Minor, updated_at 2023_01_31; target:src_ip;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET ADWARE_PUP BoostBeast Task Request M2"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"/api/"; startswith; content:"/task/get?browser="; distance:0; fast_pattern; threshold:type limit, count 1, seconds 120, track by_src; reference:url,tria.ge/230131-lezarafg93/behavioral2; reference:md5,fbdd33cf51fe4113000a7fc14908b56d; classtype:trojan-activity; sid:2044039; rev:1; metadata:attack_target Client_Endpoint, created_at 2023_01_31, deployment Perimeter, former_category ADWARE_PUP, performance_impact Low, signature_severity Minor, updated_at 2023_01_31; target:src_ip;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET ADWARE_PUP BoostBeast Checkin M1"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/api/taskforecast/installed"; bsize:27; fast_pattern; http.content_len; byte_test:0,=,0,0,string,dec; reference:url,app.any.run/tasks/556c8a11-a736-48db-9779-bb74db2431c6/; reference:md5,73923a750344d1a1e734a12e98271c69; classtype:pup-activity; sid:2044040; rev:1; metadata:attack_target Client_Endpoint, created_at 2023_01_31, deployment Perimeter, former_category ADWARE_PUP, performance_impact Low, signature_severity Minor, updated_at 2023_01_31; target:src_ip;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET ADWARE_PUP BoostBeast Checkin M2"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"/api/"; startswith; content:"/task/installed"; endswith; fast_pattern; http.user_agent; content:"HeadlessChrome/"; reference:url,tria.ge/230131-lezarafg93/behavioral2; reference:md5,fbdd33cf51fe4113000a7fc14908b56d; classtype:trojan-activity; sid:2044041; rev:1; metadata:attack_target Client_Endpoint, created_at 2023_01_31, deployment Perimeter, former_category ADWARE_PUP, signature_severity Minor, updated_at 2023_01_31; target:src_ip;)
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET ADWARE_PUP BoostBeast Task Response"; flow:established,to_client; http.stat_code; content:"200"; http.content_type; content:"text/plain|3b|"; startswith; http.response_body; content:"|7b 22|Id|22 3a|"; startswith; content:"|2c 22|Watch|22 3a|"; fast_pattern; content:"|2c 22|Action|22 3a 22|"; threshold:type limit, count 1, seconds 120, track by_src; reference:url,app.any.run/tasks/556c8a11-a736-48db-9779-bb74db2431c6/; reference:md5,73923a750344d1a1e734a12e98271c69; classtype:trojan-activity; sid:2044042; rev:1; metadata:attack_target Client_Endpoint, created_at 2023_01_31, deployment Perimeter, former_category ADWARE_PUP, performance_impact Low, signature_severity Minor, updated_at 2023_01_31; target:dest_ip;)

Analysis

Very interesting find! This actually seems to be some sort of malicious program which forces a user to unknowingly watch or stream a YouTube Video or Live Stream. I did a pivot on the IP address in VirusTotal and found many related samples.

Sidnote: The most interesting youtube video I could find which was commanded, was located at https://www.youtube.com/watch?v=3eWCZq94teo This is an unlisted live stream titled “Test”.

I was able to identify three main activities which happen with the C2 server.

Checkin

Task Requests

Exception Handling

Distribution

In at least two cases it appears that this was delivered via SmokeLoader

Active Development

Using that same C2 server, I was able to find, what appears to be an updated version of the application. This sample appears to have been complied on Jan 27th of 2023.

A very good sandbox execution can be found on Tria.ge

While this version uses the same interactions (Checkin, Task Request, and Exception Handling) the format of them is slightly different.

Checkin

Task Request

Monitoring

If you wanted, you could actually monitor which video’s are being “commanded” via a simple curl to the c2 server. Fun stuff!

image

Rule Feedback

Protocols

I’m guessing, based on the use of suricata keyworks (http.uri, http.method) these rules were written for Suricata. As such, it’s highly suggested to use the protocol associated with the traffic being inspected. In this case, the protocol of [http]( would be best.

bsize

When you’ve got an “exact” match (like the URI in sid:2008005) the bsize keyword can be used to ensure the match is exact and can help optimize the fast_pattern when used.

In this case adding the bsize:21 to http.uri; bsize:21; content:“/api/taskforecast/get”;

Hex Encoding Special Characters

With this content match content:"{"Id""; there are a handful of “special” characters within Suricata’s (and snort’s) language that need to be hex encoded when used within a content match. The quote (") is one of them and should be encoded using the |22| method.

From the Docs