lsof: Prozesse mit bestimmten DNS-Requests finden

specialist

Cadet 3rd Year
Registriert
Sep. 2006
Beiträge
33
Hallo zusammen,

weiß jemand, wie ich auf dem Mac Prozesse loggen kann, welche ganz bestimmte DNS-Anfragen machen?

Es ist mir bisher mit lsof oder tcpdump nicht möglich, entsprechende Prozesse mitzuschneiden. Letzteres Tool kann das auch gar nicht, aber ich bekomme darüber und über meinen PiHole entsprechende DNS Anfragen mit.

Ich hoffe ihr könnt mir weiterhelfen, es geht noch ein bisschen weiter, muss dazu etwas ausholen:

Vor ein paar Wochen scheine ich mir ein Skript oder Malware auf meinem Mac eingefangen zu haben, welche ich nicht mehr loswerde (auch nach Neuinstallation). Ich habe von einem Auftragnehmer ein Xcode-Projekt bekommen, wo ein echo-Befehl (xxd | xxd | 44342....423432 | sh > &dev/null &2>&1 (so ähnlich)) in den Buildsettings eingeschleust gewesen ist. Dieser Befehl scheint ausgeführt worden zu sein und hat vermutlich entsprechende Skripte von Servern wie applecdn.ru, flowcdn.ru oder chartcdn.ru heruntergeladen und ausgeführt. Seitdem hat sich periodisch dieses Skript in mein User-Profil (zshrc, profile, ...) repliziert und wird somit bei jedem Terminalstart ausgeführt.

In meinem PiHole habe ich nun entsprechende Domains nach .ru oder .cn gesperrt, vorsichtshalber. Das User-Profil ist nicht mehr beschreibbar (chflags uchg ~/.zshrc), die entsprechenden Befehle sind rausgelöscht. Seitdem sind die Requests an entsprechende Domains weniger geworden (von sekündlich auf minütlich), aber haben nicht aufgehört.

Später ist mir dann irgendwann (nach Neustart) aufgefallen, dass entsprechende Requests an diese Domains immer dann anfingen, nach dem Google Chrome gestartet wurde. Daraufhin habe ich die Extensions deinstalliert und Google Chrome samt Library-Folder runtergeschmissen. Nur mit vorübergehendem Erfolg. Für 2 Stunden kamen keine Requests mehr, danach fing es wieder an.

Dieses Script / Malware / WasAuchImmer macht folgendes: Es versucht sich anscheinend ins User Profil zu schreiben und hängt sich an andere beliebige, zuvor geöffnete Xcode-Projekte, wo es sich in die Build-Phasen reinhängt. Sich da reinzuschreiben ist schon sehr sehr speziell. Echt fies.

Da ich den Mac bereits neu aufgesetzt habe weiß ich nun ehrlich gesagt nicht weiter. Ich hatte jetzt etwas Ruhe zwischen der Neu-Installation, ungefähr zwei Wochen sind vergangen.

Ich möchte gerne den Prozess herausfinden um weiter zu ermitteln, wer oder was da ständig versucht Skripte herunterzuladen.
 
ich würde vermuten, dass du nach der neuinstallation "alte" daten auf die neuinstallation übernomman hast, die alten dateien waren evtl in den projekten "infiziert" und somit hast du's dir neu eingefangen. aber malware und mac ist eigentlich sehr unüblich
 
  • Gefällt mir
Reaktionen: specialist
Mit lsof kannst du nur die Programme identifizieren, die eine Socket-Verbindung aufbauen (bspw. zum DNS). Du kannst aber keine Details sehen (also welche DNS-Queries tatsächlich ausgeführt werden). Das ginge dann nur mit strace, gdb etc.

Der Punkt der mich beschäftigen würde ist, dass du schreibst bereits eine Neuinstallation durchgeführt zu haben. Ist das wirklich der Fall? Wurde das gesamte Storage platt gemacht? Wurde MacOS dann nicht von der Rettungspartition wiederhergestellt, sondern tatsächlich über ein sauberes, externes Medium (leider muss man bei einem echten Malware-Befall annehmen, dass eben auch das Rettungssystem worüber man eine Neuinstallation initialisieren kann, kompromittiert wurde und damit auch jede Neuinstallation gleich wieder kompromittiert wird)?

Dein Ziel muss es sein, eine wirklich saubere Basis hinzubekommen. Wenn du in dem Zustand, direkt nach der Installation, bereits unerwünschte Aktivitäten feststellst. dann hast du keine saubere Neuinstallation durchgeführt oder im Worst Case dir wirklich eine persistente Malware eingefangen, die sich bspw. in die Firmware eingenistet hat und sich bei nächster Gelegenheit wieder aufspielt.

Ich nehme aber erst einmal an, dass du keine richtige Neuinstallation durchgeführt hast bzw. bereits alte Daten/Profile übernommen hast und die Infektion darüber zurückgeholt hast. Du solltest NICHTS übernehmen. Kein Profil. Keine Settings. Nichts. Außer du hast deine DotFiles bspw. in einem externen Git-Repository und kannst dadurch sicher sein, dass dort alles sauber ist, weil du von einer verifizierbare Quelle klonst.
 
  • Gefällt mir
Reaktionen: specialist
Danke für eure Antworten!

Um Details von DNS Queries geht es mir so auch gar nicht, sondern um die Ermittlung der sendenden Prozesse. Mein Plan war, dann weiterzugehen und entsprechende Software zu entfernen.

honky-tonk schrieb:
ich würde vermuten, dass du nach der neuinstallation "alte" daten auf die neuinstallation übernomman hast, die alten dateien waren evtl in den projekten "infiziert" und somit hast du's dir neu eingefangen. aber malware und mac ist eigentlich sehr unüblich
Das kann natürlich sein. Ich habe aber meinen Mac aber vor dem Backup mit einem Antivirus durchsucht, es wurde aber nichts gefunden soweit. Möglich ist das natürlich trotzdem, da sich da noch was drunter befindet.
Whistl0r schrieb:
Der Punkt der mich beschäftigen würde ist, dass du schreibst bereits eine Neuinstallation durchgeführt zu haben. Ist das wirklich der Fall? Wurde das gesamte Storage platt gemacht? Wurde MacOS dann nicht von der Rettungspartition wiederhergestellt, sondern tatsächlich über ein sauberes, externes Medium (leider muss man bei einem echten Malware-Befall annehmen, dass eben auch das Rettungssystem worüber man eine Neuinstallation initialisieren kann, kompromittiert wurde und damit auch jede Neuinstallation gleich wieder kompromittiert wird)?
MacOS wurde vom Recovery Tool installiert. Ein externes Medium wie du beschreibst, wurde nicht verwendet. Wenn ich jetzt davon ausgehe, dass der ganze Mac infiziert ist, dürfte ich von diesem Gerät auch kein Installationsmedium erstellen. Das ist aber kein Problem, ich könnte eins von einem anderen Gerät erstellen.

Ich bin davon ausgegangen, dass wenn ich die Festplatte lösche auch alle Daten weg sind, da auch die Festplatte verschlüsselt ist und der Key nur weggeschmissen wird. Kann natürlich sein das sich da was in der Recovery Partition festgesetzt hat. Ich werde mal eine Neuinstallation von einem externen Medium (eines anderen Macs) anstreben. Danke für den Tipp!

Die Projekte werden auch remote verwaltet, da auch andere mitarbeiten. In den Xcode Projektordnern sehe ich sobald nichts Verdächtiges. Alle Projekte sind auch nach der Neuinstallation vom Remote Server gecloned worden.
 
Ein externes Medium ist nicht zwingend erforderlich: Starte im Recovery Modus (Cmd-Opt-R) und plätte mit dem Disk Utility alle vorhandenen Partitionen und erstelle eine neue System-Partition. Anschließend sollte Internet Recovery (IR) starten und der Mac sich sich alles via Internet neu holen.

Noch ein Hinweis: Es ist auch möglich, dass sich die Payload mit einer von dir verwendeten Cloud synchronisiert hat. So kannst du ja Startskripte etc. genutzt haben die alle wieder kommen, wenn du die Verbindung zur Cloud wiederherstellst...
 
  • Gefällt mir
Reaktionen: specialist
Der Tipp mit der Cloud ist gut, natürlich ist das iCloud Drive permanent eingehangen. Das wird bei der nächsten Installation erstmal deaktiviert.

Dann wird gleich mal die Internet Recovery (IR) angestoßen... Merci!
 
Zurück
Oben