Meerkat
Meerkat
Platform: HackTheBox | Type: SOC/DFIR | Difficulty: Easy | Author: D3v0o0Nu11 | Date: 2026-02-10
Scenario
As a fast growing startup, Forela have been utilising a business management platform. Unfortunately our documentation is scarce and our administrators aren't the most security aware. As our new security provider we'd like you to take a look at some PCAP and log data we have exported to confirm if we have (or have not) been compromised.
Key Questions
- What indicators of compromise exist?
- What attack chain / MITRE techniques were used?
- What is the full timeline?
Investigation Timeline
| Time | Event | Evidence / Source |
|---|---|---|
| — | In this challenge we're given two files. | |
| — | To answer it, I started by analyzing the .pcap file. | |
| — | Found out that there are several request with POST method to 172.31.6.44. The endpoint is /bonita/loginservice. | |
| — | Searching for Bonita at the .json file, shall resulting to Bonitasoft. Great now we know the ans is Bonitasoft. | |
| — | Continue analyzing the logs, noticed several response with status code 401 which indicates unauthorized access. | |
| — | I tried to follow few of them and found several different creds used. | |
| — | If you noticed, the mail which used as the username always ends with .forela.co.uk. This indicates a company email. | |
| — | Remembering status code is 401 for both (actually more), it means the attacker is bruteforcing. | |
| — | The passwords also seem to be specific (?) and few of them seem to be complicated. | |
| — | This kind of attacks is called Credential Stuffing. | |
| — | Searching for keyword CVE at the .json file shall found the answer for this. | |
| — | Reading the CVE documentation, shall found a statement that the attacker is appending `;i18ntranslation or /../i18ntr... |
Evidence Analysed
- Tools: wireshark, wget, ssh.
- Artifacts: PCAP, pcap.
Detailed Investigation
- In this challenge we're given two files.
1ST QUESTION --> ANS : REDACTED
-
To answer it, I started by analyzing the .pcap file.
-
Found out that there are several request with POST method to
172.31.6.44. The endpoint is/bonita/loginservice. -
Searching for Bonita at the .json file, shall resulting to
Bonitasoft. Great now we know the ans isBonitasoft.
2ND QUESTION --> ANS: REDACTED
-
Continue analyzing the logs, noticed several response with status code 401 which indicates unauthorized access.
-
I tried to follow few of them and found several different creds used.
-
If you noticed, the mail which used as the username always ends with
.forela.co.uk. This indicates a company email. -
Remembering status code is 401 for both (actually more), it means the attacker is bruteforcing.
-
The passwords also seem to be specific (?) and few of them seem to be complicated.
-
This kind of attacks is called
Credential Stuffing.
3RD QUESTION --> ANS: REDACTED
- Searching for keyword CVE at the .json file shall found the answer for this.
4TH QUESTION --> ANS: REDACTED
- Reading the CVE documentation, shall found a statement that the attacker is appending
;i18ntranslation or /../i18ntranslation/to the end of an URL.
5TH QUESTION --> ANS: REDACTED
-
To get the answer, a filter command is needed for quick analyze.
-
Simply execute -->
urlencoded-form.key == "username". -
To see the username value, luckily wireshark allows us to do custom columns.
-
Hence we can create a custom column -->
edit -> preferences -> columns, then set the column type to custom. -
Next, to modify the column, right click at the column area then choose
edit columnand set the fields to -->urlencoded-form.value. -
Noticed at the bottom right it states 118 data displayed.
-
Scrolling down the packets, noticed several packets which unnecesarry is included.
-
Hence let's add another filter which denied
install. -
Filter command -->
urlencoded-form.key == "username" && !(http contains "install"). -
Now it shows 59 but there are still duplicated username.
-
Hence the answer is 59 - 3 --> 56.
6TH QUESTION --> ANS: REDACTED
-
To answer this, we can filter the response which status code is below 300. Filter command -->
http.response.code < 300. -
After analyzing each log, seems only the packets with status code 204 which is a response of the login request. 204 indicates the server has successfully fulfilled the request and that there is no additional content to send in the response payload body.
7TH QUESTION --> ANS: REDACTED
- To answer this, we can simply filter the packet using -->
http.request.method.
8TH QUESTION --> ANS: REDACTED
-
To get the hash, we need to export the objects of our previous packet.
-
Running file command it states that the exported objects is a JSON data.
-
Reading it shall found the endpoint of the script used by hacker, run wget shall download the script.
-
To get the md5checksum simply run md5sum.
9TH QUESTION --> ANS: REDACTED
-
Accessing the pastes.io shall resulting to this:
-
Based from the bash script, we can identified that
hffgra4unvcontains the public key. -
Simply
wgetit then get the md5sum.
10TH QUESTION --> ANS: REDACTED
- The answer is the destination of the public key.
11TH QUESTION --> ANS: REDACTED
-
Searching
sshshall resulting to these: -
The first one should be our interest.
-
It discussed the same method used by the attacker.
Findings
- Persistence mechanism — As documented in the investigation steps.
- Initial access — The threat actor established access via the vector described in the investigation steps.
- Impact — As documented in the investigation steps.
MITRE ATT&CK Mapping
| Tactic | Technique | ID |
|---|---|---|
| Defense Evasion | Obfuscated Files or Information | T1027 |
| Persistence | Account Manipulation: SSH Authorized Keys | T1098.004 |
| Command and Control | Ingress Tool Transfer | T1105 |
| Credential Access | Brute Force | T1110 |
| Persistence | Boot or Logon Autostart Execution | T1547 |
Answers / Flags
- 1ST QUESTION --> ANS : REDACTED
- 2ND QUESTION --> ANS: REDACTED
- 3RD QUESTION --> ANS: REDACTED
- 4TH QUESTION --> ANS: REDACTED
- 5TH QUESTION --> ANS: REDACTED
- 6TH QUESTION --> ANS: REDACTED
- 7TH QUESTION --> ANS: REDACTED
- 8TH QUESTION --> ANS: REDACTED
- 9TH QUESTION --> ANS: REDACTED
- 10TH QUESTION --> ANS: REDACTED
- 11TH QUESTION --> ANS: REDACTED
Lessons Learned
- Identifying Credential Stuffing attacks.
- Bonitasoft CVE.
- Packet filtering and custom column value.