DeviceDoor npm Paketi, Microsoft 365 Aygıt Kodu Kimlik Avı Çerçevesi Sunuyor

DeviceDoor: Microsoft 365 cihaz kodu tabanlı kimlik avı ve toplu e-posta gönderme çerçevesi sunan herkese açık bir npm paketi.

TL; DR

nolimit-agent Bu, yayınlanmış sürümleri bulunan bir npm paketidir. 1.0.299 ile 1.0.30726 Haziran 2026 ile 29 Haziran 2026 tarihleri ​​arasında dört gün boyunca piyasaya sürülen her biri bir eksiksiz kimlik avı ve toplu e-posta gönderme çerçevesi Gizli, tamamen gizlenmiş bir dizinin içinde. Her sürümde ana giriş şu şekilde çözümlenir: .ad/x0.jsYaklaşık 4,200 adet JavaScript gizleme dizesi dizisi bloğu içeren, nokta ile adlandırılmış bir klasördeki ~86 dosyadan biri; kurulum kancası ve giriş düzeni tüm sürümlerde aynıdır.

Bu belirsizliğin ardında bir şey yatıyor. Microsoft 365 OAuth cihaz kodu akışı (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode(Bir kod onaylandıktan sonra, Microsoft Graph API aracılığıyla kurbanın Outlook gelen kutusunu ve gönderilen öğelerini okuyan; operatör tarafından sağlanan alıcı listeleriyle çalışan toplu SMTP ve SMS gönderme motoru; marka taklit mesaj şablonları; açık yönlendirme bağlantısı oluşturma; ve DNS-over-HTTPS, WHOIS ve GitHub kod araması üzerinden keşif yapan) api[.]nolimitent[.]xyz:4100.

Etkilenenler: Paketin herhangi bir sürümünü yükleyen herkes ve herhangi bir Microsoft 365 posta kutusu Sahibinin, üzerinden sunulan bir cihaz kodunu onayladığı cihaz. En son sürüm, 1.0.307Bu, mevcut en son etikettir ve aynı cihaz kodu posta kutusu özelliğini taşır; kötü amaçlı kod tek bir eski sürüme sınırlı değildir.

Önem: kritikEtkilenen ekosistem: npmÖncelikle aranması gereken gösterge: sunucu. api[.]nolimitent[.]xyz.

Saldırı: Nasıl işliyor?

Gizli yükün üzerini örten zararsız bir kabuk.

Paket sıradan bir yüzey sunuyor. paket.json bir ilan eder kurulum sonrası kanca – 

text postinstall: node scripts/postinstall.js 

— ve inceleme sırasında komut dosyaları/kurulum sonrası.js Zararsızdır: bir Windows komut katmanı yükler ve çıkar. Davranış, kancada değil, başka bir yerde gerçekleşir. ana hem de çöp kutusu alanların her ikisi de işaret ediyor .ad/Başındaki nokta sayesinde sıradanlığın dışında kalan bir dizin. ls Çıktısı, içeriği tekdüze bir şekilde makine tarafından gizlenmiş olan verilerdir. Statik tarayıcı, yaklaşık 4,293 kodlanmış yük aralığı saydı. .ad/ modül seti; javascript-karmaşıklaştırıcı Bu, paketlenmiş dosyaların dize-dizi-döndürme şekline uyan, tanımlanmış bir geliştirme bağımlılığıdır.

Bu ayrım, adlandırılmaya değer ilk sinyaldir: bir inceleyicinin inceleyeceği kurulum kancası temizdir, oysa operasyonel kod bir dizin ötede, gizli ve karmaşık bir şekilde yer alır ve yalnızca paketin dışa aktarılan giriş noktası çalıştırıldığında erişilir.

Microsoft 365 cihaz koduyla posta kutusuna erişim

modül .ad/x12.js Çerçeve yapısının en önemli özelliğini taşır. Microsoft 365 OAuth 2.0 cihaz yetkilendirme iznini yönlendirir:

text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode 

Cihaz kodu verme işlemi, giriş kısıtlamalı cihazlar için tasarlanmış meşru bir Microsoft akışıdır: bir hizmet bir kod ister, kullanıcı bu kodu girer. microsoft.com/cihazloginİkinci bir cihazda `onaylanır ve talep eden servis token alır. Talep eden servis posta kutusu sahibinden başka birine ait olduğunda, onay bu üçüncü tarafa bir token verir. Bir token alındıktan sonra, `.ad/x12.js` posta kutusunu doğrudan Microsoft Graph üzerinden okur:

text GET graph[.]microsoft[.]com/v1.0/me/mailFolders/inbox/messages?$top=250&$select=from GET graph[.]microsoft[.]com/v1.0/me/mailFolders/sentitems/messages?$top=250&$select=toRecipients 

MKS $seç Projeksiyonlar, gönderen adreslerini gelen kutusundan, alıcı adreslerini ise gönderilen öğelerden alır; bu da mağdurun yazışmalarını haritalamak için gerekli ham maddedir. Bu, parola yakalama yerine rıza yoluyla gerçekleştirilen bir düşman-ortadaki (AiTM) erişim yöntemidir: klasik anlamda kimlik avı için bir kimlik bilgisi yoktur, sadece onay almak için bir kod vardır.

Kimlik taklit şablonlarına sahip toplu e-posta ve SMS gönderme motoru

Posta kutusu girişinin etrafında bir posta paketi bulunur. Paket, operatör tarafından düzenlenebilir veri dosyaları - gönderen listeleri (gönderenler.txt, smtps.txt) ve bir şablon dosyası (fonksiyonlar.txt) — yer tutucu adresleri taklit için bir oyuncu seçme listesi gibi okunan: güvenlik@apple.com, login-doğrulama, OAuth hizmeti, faturalama ve hesap bildirimi göndericilerine karşı yourdomain.com Operatörün yerini aldığı yedek cihaz. SMS tarafı bir telefon taşıyor.ebook ve ağ geçidi yapılandırması. Posta gönderici, operatör tarafından sağlanan alıcı listelerini yineleyerek yapılandırılmış SMTP röleleri üzerinden gönderir.

Bağlantıların başarılı olması için, .ad/xu.js hem de .ad/xq.js URL ayrıştırma belirsizliğinden ve tıklama takibinden yararlanan URL'ler oluşturun. Sahtekarlık kalıpları, güvenilir görünümlü bir otoriteyi URL'nin önüne yerleştirir. @ Dolayısıyla görünür önek, gerçek ana bilgisayardan farklıdır:

text https://trusted[.]com@      https://trusted[.]com%40      https://trusted[.]com:80@ https://redirect[.]example[.]com/      https://track[.]example[.]com/click? 

Bu çerçeve aynı zamanda büyük tüketici ve tedarikçi sitelerinden favicon'ları da alıyor. enterprise E-posta sağlayıcıları — inandırıcı bir sağlayıcı markalı yönlendirme sayfası veya açılış sayfası oluşturmak için kullanılan rutin bir teknik.

Hedef ve altyapı keşfi

Göndermeden önce çeşitli modüller bağlam bilgisi toplar. .ad/x0.js DNS-overHTTPS üzerinden adları çözümlüyor (dns[.]google/çözümle), .ad/xa.js WHOIS sorguları (api[.]whois[.]vu), Ve .ad/x9.js GitHub kod aramasını çalıştırır (api[.]github[.]com/search/code?q=Bu, röle listesine beslemek üzere açıkta kalan posta sunucusu yapılandırmasını ve SMTP kimlik bilgilerini keşfetmekle tutarlı bir modeldir. .ad/xs.js Wayback Machine'in CDX dizinini sorgular.

Komuta ve kontrol

Karmaşık sahne düzeni boyunca, .ad/x4.js Operatör uç noktasına referans verir:

text http://api[.]nolimitent[.]xyz:4100 

Ev sahibi kendi bilgilerini paylaşıyor. sınırsız Yayıncının kendi adlandırmasıyla oluşturulan marka ve : 4100 Port, çerçevenin bağlantı kurma kanalıdır. Bu, savunucular için en kalıcı göstergedir: bir paket, bir geliştirici iş istasyonu veya bir derleme aracısı porta ulaşıyor. api[.]nolimitent[.]xyz Bu kod çalıştırıldı.

Uzlaşma göstergeleri

Aşağıdaki göstergeler, bir savunmacının harekete geçebileceği göstergelerdir: kilit dosyasını aramak, bir sunucuyu engellemek veya proxy ve DNS günlüklerini aramak. Microsoft uç noktaları, çerçeve bunları kötüye kullandığı için görünür; kendileri kötü amaçlı değildir ve engellenmemelidir.

Gösterge Menşei Dönüşümün Savunmacı eylemi
nolimit-agent (tüm sürümler 1.0.299–1.0.307) paket npm Grep kilit dosyaları / kurulum günlükleri
api[.]nolimitent[.]xyz (:4100) C2 sunucusu .ad/x4.js Engelle; DNS ve proxy günlüklerinde arama yap
.ad/ gizli dizin main/bin hedefi olarak Structure package.json Kayıt incelemesinde statik sinyal
trusted[.]com@ / %40 / :80@ bağlantı formları URL sahtekarlığı .ad/xu.js, .ad/xq.js Posta/proxy URL denetimi
Cihaz kodu izni + Grafik inbox/sentitems okumak Davranış .ad/x12.js M365 oturum açma + Grafik denetim incelemesi

Dosya incelemesi sırasında yakalanan dosya özetleri:

  • paket/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a

  • paket/paket.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Bu paketten bağımsız olarak araştırılmaya değer bir Microsoft 365 kiracı sinyali: başarılı cihaz kodu oturum açmalarının hemen ardından Graph okumaları. postaKlasörleri/gelen kutusu hem de posta klasörleri/gönderilen öğelerÖzellikle kullanıcının tanımadığı bir oturumdan kaynaklanıyorsa.

Atıf ve gözlemlenen davranış

Gözlemlenebilir olan şey, onu kimin yaptığından bağımsızdır.

Gözlemlenebilir gerçekler: paket şu kullanıcı adı altında yayınlanmıştır. nolimit-agent Doğrulanmamış bir Gmail adresi ve bağlantılı kaynak deposu olmamasıyla; paket.json Bunu "gelişmiş bir e-posta gönderici" olarak tanımlıyor ve şu etiketle işaretliyor: kırmızı takım anahtar kelime; çalışma zamanı kodu gizli, karmaşıklaştırılmış bir şekilde yoğunlaştırılmıştır. .ad/ araç zincirinin bulunduğu dizin (javascript-karmaşıklaştırıcı) tanımlanmış bir bağımlılıktır; ve çağrı merkezi sunucusu api[.]nolimitent[.]xyz yeniden kullanır sınırsız Bu, tek bir operatör kontrollü altyapı unsuruna sahip tek bir pakettir; çoklu paket kümesi değildir ve daha önce adı geçen bir kampanya ile herhangi bir örtüşme tespit edilmemiştir.

MKS kırmızı takım Anahtar kelime sınıflandırmayı değiştirmez. Çift kullanımlı yetenek sunan meşru saldırı güvenliği araçları bunu şeffaf bir şekilde yapar: okunabilir kaynak kod, operatör tarafından sağlanan hedefler ve gizli bağlantı yok. Bu paket bu özelliklerin her birini tersine çeviriyor; operasyonel kodu gizlenmiş ve şifrelenmiş durumda ve kullanıcının sağladığı bir hedef yerine sabit operatör altyapısına sinyal gönderiyor. Kararı belirleyen etiket değil, davranıştır ve bu da kötü amaçlı yazılım olduğu anlamına gelir.

Burada amaç belirtilmemiş. Yazıda kodun ne yaptığı açıklanıyor — cihaz kodu isteme, Graph üzerinden posta kutusunu okuma, yapılandırılmış röleler aracılığıyla toplu posta gönderme, sabit bir sunucuya sinyal gönderme — ancak amaç belirtilmemiş.

Etki, trendler ve savunmacı kılavuzu

Kurulum sırasında iki etki önemlidir. Birincisi, kurulumu gerçekleştiren herhangi bir geliştirici veya CI aracısı; nolimit-agent Çerçeveyi o ana bilgisayara getirir ve bağlantı kurma işlemini gerçekleştirir. api[.]nolimitent[.]xyzİkinci olarak, aygıt kodu özelliği, kurulumu yapan ana bilgisayarın ötesine uzanıyor: Sahibi sunulan bir kodu onaylamaya ikna edilen bir Microsoft 365 posta kutusu, hiçbir parola iletilmeden doğrudan Graph üzerinden okunuyor.

Daha geniş kapsamlı eğilim, içselleştirme yönündedir. Cihaz kodu (AiTM) kimlik avı, bağımsız kimlik avı altyapısından, halka açık bir kayıt defterinde yer alan bir pakete dönüştü ve dağıtımı şu şekilde gerçekleşti: npm kurulumu E-posta yoluyla gönderilen bağlantı yerine, bu şekilde paketleme, kimlik avı operatörünün barındırma ve bağlantı teslimi sorununu bir kayıt defterinin erişimiyle değiştirir ve operasyonel kodu, hızlı bir manuel taramayı engelleyen temiz bir kurulum kancası ve nokta dosyasıyla adlandırılmış gizlenmiş bir dizinin arkasına gizler.

Savunmacılar için:

  • Sicil kaydı ve bağımlılık incelemesi. Pakete şu şekilde davranın: ana/çöp kutusu Kurulum kancasının temiz görünüp görünmemesinden bağımsız olarak, yalnızca yapısal açıdan yüksek riskli olarak değerlendirilen, tekdüze şekilde gizlenmiş birinci taraf kodunun bulunduğu gizli (nokta önekli) bir dizine çözümlenir. Küçültme, gizleme değildir; satır uzunluğuna değil, dize dizisi kod çözücü imzasına göre kontrol edilir.
  • Microsoft 365 güvenliğinin artırılması. Operasyonel olarak gerekli olmadığı durumlarda, koşullu erişim ile cihaz kodu yetkilendirme akışını kısıtlayın; cihaz kodu yetkilendirmeleri bilinen bir AiTM vektörüdür ve etkileşimli kullanıcılar tarafından nadiren gereklidir. Cihaz kodu oturum açmalarını denetleyin ve ardından hemen Graph posta kutusu numaralandırması yapın.
  • Ağ tespiti. Engelle ve uyarı ver api[.]nolimitent[.]xyzGeliştirici ve derleme altyapısı genelinde giden DNS ve proxy günlüklerinde bunu arayın.
  • Posta yolu tespiti. MKS kullanıcı@host URL sahtekarlığı formları (trusted[.]com@…) posta ağ geçidinde ve proxy'de tespit edilebilir; yetki bileşeni bir'den önce gelen bağlantıları işaretler. @.

Analiz sırasında paket npm'de yayındaydı. Gizli çerçeve, yayınlanmış tüm sürüm serisini ve mevcut sürümü kapsadığından, son (1.0.307) etiketi aygıt kodu özelliğini içeriyor, kayıt defteri kaldırma işlemi yalnızca tek bir eski sürümü değil, her sürümü kapsamalıdır. 

sca-tools-software-composition-analysis-tools
Yazılım risklerinizi önceliklendirin, giderin ve güvence altına alın.
Ücretsiz hesabınızı alın.
Hiçbir kredi kartı gerekmektedir.

Yazılım Geliştirme ve Teslimatınızı Güvence Altına Alın

Xygeni Ürün Paketi ile