Wie ich Hunderte von Unternehmen über ihren Helpdesk gehackt habe

UPDATE: The Next Web hat eine Geschichte über meine Ergebnisse geschrieben: https://thenextweb.com/security/2017/09/21/ticket-trick-see-hackers-gain-unauthorized-access-slack-teams-exploiting-issue- Tracker /

Einführung

Vor Monaten entdeckte ich einen Fehler, mit dem Hacker auf die interne Kommunikation eines Unternehmens zugreifen können. Der Fehler erfordert nur ein paar Klicks, um potenziell auf Intranets, Social-Media-Konten wie Twitter und am häufigsten auf Yammer- und Slack-Teams zuzugreifen.

Der Fehler ist immer noch da draußen. Es ist nicht etwas, das sofort behoben werden kann. In den letzten Monaten habe ich im Rahmen ihrer Bug-Bounty-Programme Dutzende von Unternehmen und betroffenen Anbietern kontaktiert, um deren Einrichtung zu verbessern. Aufgrund der Anzahl der betroffenen Unternehmen war es nicht möglich, alle zu kontaktieren. Auf Empfehlung einiger meiner Hackerhelden und mit Zustimmung der betroffenen Anbieter veröffentliche ich diesen Blog, damit alle Betroffenen sofort handeln können. Wir stellen vor, was ich Ticket Trick genannt habe:

Ich gab meiner Suche einen Namen und ein Logo. Komm damit klar.

DIE TÜR - Melden Sie sich mit Ihrer @ Unternehmen-E-Mail an

Bei beliebten Tools für die Geschäftskommunikation wie Slack, Yammer und Facebook Workplace müssen sich Mitarbeiter mit ihrer @ Unternehmen-E-Mail-Adresse anmelden. Sobald ein Mitarbeiter auf den an seine interne E-Mail-Adresse gesendeten Bestätigungslink klickt, kann er sich der Instanz des Unternehmens anschließen und auf die interne Kommunikation zugreifen.

Slack: Benutzer mit derselben @ company-E-Mail können standardmäßig dem Team beitreten. Dies kann durch SSO ersetzt oder auf Nur-Einladung eingestellt werden.Yammer: Jeder mit einer @ company Mail kann teilnehmen.Facebook Workplace: Jeder mit einer @ Unternehmenssendung kann teilnehmen.

DIE SCHLÜSSEL - Der Helpdesk oder die Funktion zum Erstellen per E-Mail

METHODE 1 - DER AUSGABE-TRACKER

Es begann, als ich einen Weg entdeckte, diese Authentifizierung mit GitLab zu umgehen. Jeder mit einer gültigen @ gitlab.com-E-Mail-Adresse kann seinem Team beitreten.

Gleichzeitig bietet GitLab eine Funktion zum Erstellen von Problemen per E-Mail, indem diese an eine eindeutige @ gitlab.com-E-Mail-Adresse gesendet werden. Sehen Sie *, wohin das führt?

GitLab ist einer von vielen Issue-Trackern, die die Erstellung von Issues per E-Mail ermöglichen

Ich habe versucht, mich diesem Slack-Team anzuschließen, indem ich dieses Problem beim Erstellen einer E-Mail-Adresse verwendet habe, um zu sehen, was passieren würde.

Ich habe meine Problemliste schnell aktualisiert und die Bestätigungs-E-Mails als Problem zu meinem Projekt hinzugefügt:

Die neu hinzugefügte Ausgabe enthielt den magischen Link, der für den Beitritt zum internen Slack-Team erforderlich ist:

Ich klickte auf den Link, um zu sehen, ob es tatsächlich funktionieren würde - und das tat es auch. Ich wurde von der Liste der Kanäle begrüßt, denen ich beitreten konnte, und entfernte sofort mein Konto und benachrichtigte GitLab.

Ein zensierter Schnappschuss der Kanalliste

Das GitLab-Team antwortete auf meinen Bericht am selben Sonntagabend, an dem ich ihn gemeldet hatte.

Sie setzten sofort auf "Nur auf Einladung" und ergriffen zusätzliche Maßnahmen, um ihre Kunden über die Gefahren dieser Funktionalität zu informieren.

METHODE 2 - DER SUPPORT DESK

Nur eine Handvoll Websites haben öffentliche Issue-Tracker, daher habe ich mich entschlossen, tiefer zu graben, um zu sehen, ob es einen häufigeren Exploitation-Vektor gibt. Wie sich herausstellte, war und ist es weitaus häufiger, als ich jemals gedacht hätte: Kundenservice.

E-Mails an support@company.com wurden manchmal in einem Online-Support-Portal wie Zendesk, Kayako, (Fresh) Desk, WHMCS oder einem benutzerdefinierten Tool angezeigt. Also habe ich mich entschlossen, damit zu spielen und zu sehen, ob ein Hacker die Links irgendwie aus der Datenbank extrahieren kann.

Die meisten Support-Portale können mit Single Sign-On integriert werden: Ein authentifizierter Benutzer wird automatisch am Support Desk angemeldet, um eine nahtlose Benutzererfahrung zu gewährleisten. Mehr als die Hälfte der von mir getesteten Websites erforderte keine E-Mail-Überprüfung. Dies bedeutet, dass sich jeder mit einer beliebigen E-Mail-Adresse anmelden und alle von dieser E-Mail-Adresse erstellten Support-Tickets effektiv lesen konnte. Die Online-Videoplattform [zensiert *] war eines der vielen Unternehmen, für die keine Überprüfung erforderlich war.

Also habe ich ein [zensiertes *] Konto mit der gleichen E-Mail-Adresse registriert, die Slack verwendet, um die Links zur magischen Überprüfung zu senden: feedback@slack.com.

Mit Slacks praktischer Funktion zum Finden Ihres Arbeitsbereichs habe ich die [zensierte *] Slack-Instanz gefunden und mich bei der E-Mail-Adresse support @ [zensiert *]. Com angemeldet.

Hinter den Kulissen sendet feedback@slack.com jetzt eine E-Mail an support @ [zensiert *]. Com mit dem Bestätigungslink.

Wenn support @ [zensiert *] .com die E-Mail erhält, wird sie als Support-Ticket klassifiziert, das von feedback@slack.com erstellt wurde. Dies ist die genaue E-Mail, mit der ich mich angemeldet habe.

Also ging ich zur Hilfe, um meine Support-Tickets zu überprüfen.

Ich hatte ein offenes Support-Ticket… das den magischen Verifizierungslink enthielt, den ich brauchte, um dem [zensierten *] Team beizutreten.

Das [zensierte *] Team reagierte sofort auf diesen Bericht und vergab im Rahmen seines Bug Bounty-Programms ein Kopfgeld in Höhe von 2.000 USD.

Alle Websites, die ein Support-Portal ohne E-Mail-Überprüfung integrieren, sind davon betroffen. Und es wird noch schlimmer.

Ich habe in Kayako und Zendesk zwei zusätzliche Fehler gefunden, die es mir ermöglichten, den E-Mail-Überprüfungsprozess in ihren allgemeinen Setups zu umgehen. Dadurch konnte ich den Angriff immer ausführen, auch wenn SSO nicht aktiviert war und eine E-Mail-Überprüfung erforderlich war. Ich habe diese Probleme im Rahmen ihres Programms zur verantwortungsvollen Offenlegung am 1. Juni gemeldet und beide haben eine Lösung gefunden.

Darüber hinaus sind Websites anfällig, auf denen Benutzer ihre E-Mail-Adresse bei der Registrierung überprüfen müssen, jedoch nicht, wenn sie später geändert werden.

Die Wirkung steigern

Wenn ein Unternehmen Slack nicht verwendet und es für sicher hält, hat es wahrscheinlich kein Glück, wenn man bedenkt, wie weit verbreitet dieses Problem ist. Beispiel: Andere Tools für die Geschäftskommunikation wie Yammer sind ebenfalls anfällig für diesen Angriff:

Ich konnte mich dem Yammer-Intranet eines unbekannten Unternehmens anschließen

Und da wir E-Mails lesen können, die an support @ gesendet wurden, können wir auch jeden Link zum Zurücksetzen des Passworts sehen, der an diese E-Mail-Adresse gesendet wurde. Wie sich herausstellt, verwenden einige Unternehmen genau diese E-Mail-Adresse, um sich für Dienste von Drittanbietern und soziale Medien wie Twitter anzumelden.

Dies bedeutet, dass ein Angreifer auch jedes Konto entführen kann, das mit der support @ mail-Adresse verknüpft ist:

Ich konnte mehrere Twitter-Konten mit über einer Million Followern entführen

In einigen Fällen hatte diese E-Mail-Adresse auch ein privilegiertes Konto auf der Website selbst. Durch die Registrierung von no-reply@company.com können Sie das Token-Reset-Token für support@company.com abfangen und Zugriff auf privilegierte Konten erhalten, die Zugriff auf alle Kundeninformationen bieten.

Wenn keines der oben genannten Verfahren funktioniert, kann der Angreifer weiterhin per E-Mail erstellte vergangene und zukünftige Support-Tickets lesen und darauf reagieren. Ein Freund von mir hat einmal eine E-Mail an die Support-Adresse eines Unternehmens gesendet, weil etwas nicht richtig funktioniert hat. Bei der Untersuchung dieses Problems stellte ich fest, dass dieses bestimmte Unternehmen anfällig ist. Daher habe ich mich mit seiner E-Mail-Adresse angemeldet, auf die Registerkarte "Meine Support-Fälle" geklickt und festgestellt, dass diese bestimmte E-Mail angezeigt wird. Ich konnte buchstäblich jede E-Mail lesen und beantworten, die an den Kundendienst gesendet wurde, solange sie kein Konto auf dem Support Desk hatten. Benutzer, die glauben, mit dem Kundendienst zu sprechen, würden stattdessen mit einem Hacker sprechen.

Antworten von Anbietern und Unternehmen

Es war interessant zu sehen, wie unterschiedlich jedes Unternehmen mit der Offenlegung umging.

  • Die meisten betroffenen Unternehmen haben meine Berichte sehr professionell behandelt. Einige Unternehmen haben sogar beschlossen, ein Bug Bounty in Höhe von 8.000 US-Dollar auszugeben. Ich erhielt gelegentlich eine negative Antwort und einige entschieden sich dafür, meine Offenlegung vollständig zu ignorieren.
  • Issue Tracker GitLab (# 21823, veröffentlicht) hat schnell Maßnahmen ergriffen, indem das Vertrauen für die eigene Unternehmensdomäne deaktiviert und die Slack-Einstellungen geändert wurden. Sie haben auch ihre Dokumentation aktualisiert, um zu verhindern, dass ihre Benutzer denselben Fehler machen.
  • Ich habe dieses Problem Slack mitgeteilt (Nr. 23923, ausstehende Offenlegung), um zu prüfen, ob wir dies auf einer höheren Ebene verhindern können. Obwohl sie nicht direkt für dieses Problem verantwortlich sind, betrifft es einen erheblichen Teil ihrer Kunden. Slack nahm das Risiko ernst und änderte die E-Mail-Adresse ohne Antwort so, dass sie ein zufälliges Token enthielt. Dies verhindert effektiv den Angriff in der Helpdesk-Software. Das Problem besteht weiterhin für Issue-Tracker und andere E-Mail-Integrationen. Trotz der Tatsache, dass dies keine Sicherheitslücke in Slack selbst ist, hat Slack beschlossen, für meinen Bericht ein großzügiges Kopfgeld in Höhe von 1.500 US-Dollar zu gewähren.
Slack fügte seiner E-Mail-Adresse ohne Antwort ein zufälliges Token hinzu, um Missbrauch in Helpdesks zu verhindern
  • Ich habe auch versucht, Yammer wegen dieses Problems zu kontaktieren. Anfangs bekam ich keine Antwort. Zwei Wochen später schickte ich eine Folge-E-Mail, in der sie mir antworteten, sie hätten sie zusammen mit der Definition einer Sicherheitslücke an das Yammer-Team weitergeleitet. Bisher haben sie keine proaktiven Maßnahmen ergriffen, um dieses Problem auf einer höheren Ebene anzugehen, wie es Slack getan hat.
Angreifer können weiterhin Yammer-Arbeitsbereiche mit von mir entdeckten Methoden verbinden.
  • Ich habe Kayako und Zendesk (Nr. 235139, bekannt gegeben) wegen der SSO-Umgehung im Rahmen ihres Bug-Bounty-Programms kontaktiert. Beide haben dieses Problem gelöst und mich mit einem Kopfgeld von 1000 USD bzw. 750 USD belohnt.

Gewonnene Erkenntnisse

  • Einmal drinnen, ist die Sicherheit der meisten Unternehmen erheblich schwächer. Interne Folgenabschätzungen zeigten, dass Mitarbeiter Passwörter, Unternehmensgeheimnisse und Kundeninformationen in Kanäle eingefügt haben, auf die jeder im Team Zugriff hatte.
  • Wir müssen an allen möglichen Orten nach Sicherheitsproblemen suchen. Diese Sicherheitsanfälligkeit bestand jahrelang auf Hunderten von Websites, die von Sicherheitsexperten überprüft wurden, aber meines Wissens wurde sie von niemandem gefunden.
  • Große Unternehmen haben keine Ahnung, was ihre Mitarbeiter tun. Ich habe diesen Fehler bei einem CISO eines riesigen Zahlungsverarbeitungsunternehmens besprochen. Er versicherte mir, dass dies kein Problem sein würde, da ihre Mitarbeiter nicht über Slack kommunizieren sollten. Sie hatten ein eigenes Intranet eingerichtet, um diese Dinge zu erledigen. Ich habe ihm das Gegenteil bewiesen, indem ich mich 8 betrügerischen Slack-Kanälen angeschlossen habe, die von 332 Mitarbeitern auf der ganzen Welt aktiv genutzt werden. Am Ende bekam ich ein Kopfgeld von 5.000 Dollar dafür.
  • Wenn Sie sich fragen, welchen Slack-Teams Sie mithilfe Ihrer Unternehmens-E-Mail beitreten können, können Sie die Funktionen von Slack verwenden, um Ihr Team zu finden.

FAQ

  • Woher weiß ich, ob mein Unternehmen betroffen ist? Diese Sicherheitsanfälligkeit besteht, wenn Support-Tickets per E-Mail erstellt werden können und Benutzer auf Support-Tickets mit einer nicht überprüften E-Mail-Adresse zugreifen können. Es ist auch in öffentlichen Issue-Trackern oder Respondern vorhanden, die eine eindeutige @ company.com-E-Mail-Adresse angeben, um Informationen direkt an ein Ticket, einen Forumsbeitrag, eine private Nachricht oder ein Benutzerkonto zu senden.
  • Wie können wir als betroffenes Unternehmen dieses Problem beheben? Ich habe mehrere Ansätze gesehen. Unternehmen wie AirBnb, LinkedIn und GitHub bieten E-Mail-Adressen mit einer anderen Domain an, z. B. @ reply.linkedin.com oder @ mail.github.com. Sie können nicht verwendet werden, um sich für Dienste wie Yammer oder Slack anzumelden. GitLab hat seine Dokumentation mit diesem Rat aktualisiert, um diesen Angriff in Issue-Trackern zu verhindern. Einige haben die E-Mail-Funktionalität, das Serviceportal oder die einmalige Anmeldung deaktiviert, während andere eine ordnungsgemäße E-Mail-Überprüfung implementiert haben. Es wird auch nicht empfohlen, sich für Dienste wie Twitter, Slack oder Zendesk mit der offiziellen E-Mail-Adresse support @ anzumelden.
  • Wie können wir als betroffener Anbieter von Geschäftskommunikationssoftware dies verhindern? Sie könnten zusätzliche Sicherheitsmaßnahmen für Personen implementieren, die sich mit einer Kundendienst-E-Mail anmelden. In vielen Fällen wäre dies jedoch nicht praktikabel und / oder nicht effizient. Facebook Workplace hat einen besseren Ansatz, da sie ihre E-Mails von einer zufällig generierten E-Mail-Adresse wie Benachrichtigung+ajivdw9kpwld@fbworkmail.com senden, die ein Angreifer nicht erraten kann. Als Reaktion auf meine Entdeckung entschied sich Slack auch, diese zufälligen E-Mail-Adressen zu implementieren.
  • Warum geben Sie diese Informationen weiter, wenn Hunderte von Unternehmen immer noch anfällig sind? Aufgrund der Anzahl der betroffenen Unternehmen ist es unmöglich, alle zu informieren, da rechtliche Bedrohungen durch Unternehmen riskiert werden, die nicht um Sicherheitsberatung gebeten haben. Ich habe nur die kleine Minderheit der betroffenen Unternehmen und Anbieter mit öffentlich zugänglichen Offenlegungsprogrammen kontaktiert. Dies jetzt offenzulegen ist eine schwierige Entscheidung und könnte direkt zu Sicherheitsverletzungen führen, aber die Geschichte hat gezeigt, dass das Horten von Fehlern auch keine gute Idee ist.
  • Wer bist du? Ich bin Inti und lebe in Oilsjt, Belgien. Als Kind war ich äußerst geschickt darin, Sachen zu zerbrechen. Ich bin jetzt 22 und arbeite als kreativer Programmierer für Studio Brussel, Belgiens größten Radiosender. Nachts mache ich immer noch Sachen als ethischer Hacker mit Dank von Google, Facebook, Microsoft, Yahoo und so weiter.
  • Irgendwelche anderen Projekte? Ich habe einen Trump-Tweet entführt, StalkScan.com erstellt, das die gruselige Seite der Facebook-Diagrammsuche hervorhebt, und möchte über meine Fehlerprämienergebnisse auf Medium bloggen.

FOLGEN SIE MIR AUF TWITTER FÜR MEHR: https://twitter.com/securinti

Ich möchte dem erstaunlichen Pete Yaworski für das Korrekturlesen und Reparieren meines Englisch danken. Auch ein Gruß an Arne, Preben und Jerome von #teambelgium als Dankeschön dafür, dass sie den Mund gehalten haben. Vielen Dank an Slack, Gitlab, [zensiert *] und Zendesk für die Zusammenarbeit und Genehmigung meines Blogposts.