“AccountDumpling”: В пошуках фішингової атаки від Google, яка скомпрометувала понад 30 000 облікових записів Facebook
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Операція фішингу зловживає Google AppSheet для відправлення листів, що виглядають як справжні, аби заманити жертв на шкідливі сторінки, розміщені на Netlify та Vercel. Ці сторінки збирають усі дані для відновлення акаунтів Facebook і пересилають їх ботам у Telegram у режимі реального часу. Кампанію пов’язано з особою, яка знаходиться у В’єтнамі та вже призвела до компрометації понад 30 000 облікових записів Facebook. Викрадені акаунти потім монетизуються через магазин, що рекламує послуги відновлення облікових записів.
Розслідування
Дослідники Guardio відслідкували шлях доставки назад до AppSheet, ідентифікували чотири окремі кластери фішингу та зібрали сотні URL-адрес шкідливого хостингу. Вони також витягли токени ботів Telegram і ідентифікатори чату, під’єднали інфраструктуру до PDF із Canva, що містив в’єтнамське ім’я, і проаналізували географічне поширення жертв. Їхнє дослідження розкрило модульну екосистему, в якій одна група розробляє фішингові комплекти, інша проводить кампанії, а третя отримує прибуток від доступу до викрадених облікових записів.
Послаблення
Захисники повинні блокувати відомі шкідливі піддомени Netlify і Vercel, контролювати листи, згенеровані через AppSheet, які містять підозрілі посилання для дії, а також виявляти вихідні з’єднання з кінцевими точками API ботів Telegram. Організації також повинні посилити валідацію процесу входу в систему та відновлення облікових записів Facebook і вимагати повторної аутентифікації для чутливих дій з відновлення. Користувачам слід нагадати, що листи, надіслані через надійні сервіси Google, можуть бути частиною фішингової атаки.
Відповідь
Команди безпеки повинні попереджати про листи від noreply@appsheet.com , які містять посилання на невідомі Netlify, Vercel або shorten.tv доменів. Пошук DNS для цих доменів має бути скорельований із трафіком ботів Telegram, щоб виявити можливе ексфільтрація. Якщо облікові дані були вкрадені, користувачів слід змусити скинути паролі, а будь-які скомпрометовані облікові записи Facebook повинні бути негайно переглянуті. Відповідні індикатори також слід поділитися з SOC та зовнішніми каналами розвідки загроз.
"graph TB %% Визначення класів classDef action fill:#99ccff %% Вузли action_phishing["<b>Дія</b> – <b>T1566 Фішинг</b><br/>Фішинг через Google AppSheet для обману користувачів у розкритті облікових даних або натискання на шкідливі посилання."] class action_phishing action action_cloud_abuse["<b>Дія</b> – <b>T1496.004 Використання ресурсів: Використання хмарного сервісу</b><br/>Зловживання хмарною службою електронної пошти для відправлення автентичних шкідливих листів.<br/><b>Додаткова методика</b> – <b>T1021.007 Віддалені сервіси: Хмарні сервіси</b><br/>Використання легітимних хмарних віддалених сервісів для здійснення шкідливої діяльності."] class action_cloud_abuse action action_credential_harvest["<b>Дія</b> – <b>T1606 Підробка веб-облікових даних</b><br/>Створення сторінок на платформі Netlify/Vercel для збирання облікових даних.<br/><b>Додаткова методика</b> – <b>T1212 Експлуатація для доступу до облікових даних</b><br/>Експлуатація веб-платформ для збору облікових даних користувачів."] class action_credential_harvest action action_gather_info["<b>Дія</b> – <b>T1589 Збір ідентифікаційних даних жертв</b><br/>Збір даних про ідентифікацію жертви.<br/><b>Додаткові методики</b> – <b>T1591.002 Збір інформації про організацію жертви: Ділові відносини</b><br/>Збір деталей ділових відносин.<br/><b>Додаткова методика</b> – <b>T1591.004 Збір інформації про організацію жертви: Ідентифікація ролей</b><br/>Ідентифікація ролей жертви в організації."] class action_gather_info action action_exfil_telegram["<b>Дія</b> – <b>T1041 Ексфільтрація через канал C2</b><br/>Ексфільтрація даних через канал C2 Telegram bot.<br/><b>Додаткова методика</b> – <b>T1552.001 Незахищені облікові дані: Облікові дані в файлах</b><br/>Збір облікових даних, збережених у файлах."] class action_exfil_telegram action action_facebook_access["<b>Дія</b> – <b>T1078 Дійсні облікові записи</b><br/>Використання викрадених дійсних облікових записів для доступу до ресурсів Facebook Business. "] class action_facebook_access action %% З’єднання action_phishing –>|призводить до| action_cloud_abuse action_cloud_abuse –>|призводить до| action_credential_harvest action_credential_harvest –>|призводить до| action_gather_info action_gather_info –>|призводить до| action_exfil_telegram action_exfil_telegram –>|призводить до| action_facebook_access "
Потік атаки
Детекція
Можливе вторгнення даних / ексфільтрація / C2 через сторонні сервіси / інструменти (через проксі)
Переглянути
Можливе вторгнення даних / ексфільтрація / C2 через сторонні сервіси / інструменти (через dns)
Переглянути
Фішингові листи через Google AppSheet, націлені на облікові записи Facebook [Google Cloud Platform]
Переглянути
Запуск симуляції
Передумова: Повинен бути пройдений перевірочний тест телеметрії та базового рівня.
Мета: Цей розділ деталізує точне виконання техніки противника (TTP), розробленої для виклику правила детекції. Команди та нарратив МУСЯТь точно відображати TTP, виявлені, і прагнути генерувати точну телеметрію, очікувану детекційною логікою. Абстрактні або не пов’язані приклади призведуть до неправильної діагностики.
-
Погрозлива ситуація та команди:
-
Розвідка: Атакуючий збирає список електронних адрес працівників Facebook із публічних джерел.
-
Настройка зловживання AppSheet: Використовуючи скомпрометований обліковий запис Google Workspace, атака створює додаток AppSheet, який відправляє електронні сповіщення. Додаток налаштований використовувати домен відхилення по замовчуванню AppSheet
appsheet.bounces.google.com. -
Фішинговий заряд: Електронний лист із сповіщенням містить заманюючий текст («Ваш пароль Facebook спливає – встановіть негайно») з шкідливим посиланням, що вказує на сторінку збору облікових даних.
-
Запуск кампанії: Атакуючий запускає робочий процес AppSheet, змушуючи платформу відправити підроблений лист у цільовий список. Метадані результативного електронного листа відповідають:
sender_email = noreply@appsheet.comdelivery_domain = appsheet.bounces.google.com
-
Результат: Правило SIEM оцінює вхідний лог-запис, збігає обидва поля та генерує попередження.
-
-
Скрипт регресійного тестування: Скрипт нижче автоматизує кроки 2‑4 за допомогою API Google Apps Script для емуляції сповіщення в стилі AppSheet. Це вимагає від облікового запису JSON з дозволом відправляти пошту через Gmail API.
# python 3.x – відправити підроблений фішинговий лист електронною поштою через Gmail API import base64, json, sys from email.mime.text import MIMEText from google.oauth2 import service_account from googleapiclient.discovery import build # ---- Налаштування ------------------------------------------------- SERVICE_ACCOUNT_FILE = "service-account.json" # <-- замінити шляхом SCOPES = ["https://www.googleapis.com/auth/gmail.send"] SENDER = "noreply@appsheet.com" RECIPIENT = "victim@facebook.com" SUBJECT = "Важливо: Необхідно Дія з обліковим записом Facebook" BODY = """ Шановний користуваче Facebook, Наші дані вказують, що ваш пароль спливає через 24 години. Будь ласка, оновіть його негайно, натиснувши посилання нижче: https://malicious.example.com/steal?uid=12345 Дякуємо, Команда безпеки Facebook """ # -------------------------------------------------------------------- credentials = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=SCOPES) try: service = build('gmail', 'v1', credentials=credentials) message = MIMEText(BODY, "plain") message["to"] = RECIPIENT message["from"] = SENDER message["subject"] = SUBJECT # Додати на замовлення заголовок для імітації домену від AppSheet message["X-Delivery-Domain"] = "appsheet.bounces.google.com" raw = base64.urlsafe_b64encode(message.as_bytes()).decode() send_body = {"raw": raw} result = service.users().messages().send(userId="me", body=send_body).execute() print(f"Message sent, ID={result['id']}") except Exception as e: print(f"Error sending email: {e}", file=sys.stderr) sys.exit(1) -
Команди очищення: Видалити тестове повідомлення з папки відправлених і відкликати токен облікового запису.
# PowerShell – видалити тестове повідомлення з папки відправлених на Gmail, використовуючи API Gmail $serviceAccount = "service-account.json" $scopes = @("https://www.googleapis.com/auth/gmail.modify") $cred = (Get-Content $serviceAccount | ConvertFrom-Json) | ` New-Object Google.Apis.Auth.OAuth2.ServiceAccountCredential ` -ArgumentList ([Google.Apis.Auth.OAuth2.ServiceAccountCredential]::Initializer) ` -Property @{Scopes = $scopes} $gmail = New-Object Google.Apis.Gmail.v1.GmailService -ArgumentList $cred # Отримати ідентифікатор повідомлення (замінити на фактичний ідентифікатор з скрипта відправки) $msgId = "INSERT_MESSAGE_ID_HERE" $gmail.Users.Messages.Delete("me", $msgId).Execute() Write-Host "Тестовий лист видалено."