Frage:
Wie untersuche ich eine unbekannte 1,5-GB-Datei mit dem Namen "sudo" in meinem Linux-Ausgangsverzeichnis?
Karlo Licudine
2019-08-29 05:56:33 UTC
view on stackexchange narkive permalink

Ich habe in meinem Home-Verzeichnis eine Datei mit dem Namen "sudo" gefunden. Es ist 1,5 GB groß und ich habe keine Ahnung, woher es kommt.

  -rw-r - r-- 1 foo foo 1598296064 9. August 11:22 sudo  

Hat jemand Tipps, wie Sie diese Datei untersuchen können? Ich befürchte, dass mein Computer kompromittiert wird, möchte aber trotzdem wissen, womit ich es zu tun habe.

Folgendes habe ich bisher getan:

  • Datei sudo zeigt `sudo: data '.
  • Beim Ausführen von Strings sudo wurde eine große Menge zufälliger Daten angezeigt.
  • Ausführen von , wobei sudo auf die sudo-Datei in /usr/bin/sudo

verweist ausführbare Binärdatei Ich habe vor, sie auszuführen, kann sie jedoch vorher auf eine virtuelle Maschine übertragen. Ich habe nur begrenzte gdb Kenntnisse, so dass ich es zumindest überprüfen kann.

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (https://chat.stackexchange.com/rooms/98125/discussion-on-question-by-karlo-licudine-how-to-investigate-an-unknown-1-5gb-fil).
Beachten Sie, dass `which sudo` mit der Datei im aktuellen Verzeichnis mit dem Namen` sudo` _ nichts _ macht und dieses Ergebnis aus _any_ Ordner liefert.Es durchsucht nur alle Ihre verschiedenen Positionen Ihres Pfades und sagt Ihnen, welche es verwenden würde, wenn Sie jetzt den Befehl "sudo" ausführen würden.
Öffnen Sie es einfach in einem "visuelleren" Viewer, wie einem in Midnight Commander oder ähnlichem, und scrollen Sie herum.Wahrscheinlich erkennen Sie die Ausgabe des "verpfuschten Befehls" an der Antwort unten.
Sieben antworten:
Conor Mancone
2019-08-29 06:59:33 UTC
view on stackexchange narkive permalink

Sie haben es wahrscheinlich versehentlich mit einem verpfuschten Shell-Befehl geschafft. Ich habe solche Sachen selbst gemacht. Infolgedessen ist es wahrscheinlich mit harmlosen Daten gefüllt. Hier sind einige Gründe, warum ich vermuten würde, dass es nicht bösartig ist:

  1. 1,5 GB wären ein extrem großer Virus. Da Viren normalerweise über ein Netzwerk übertragen werden, ist kleiner besser.
  2. Es ist nicht ausführbar.
  3. Malware versteckt sich normalerweise viel besser als dies.
  4. file glaubt, dass es sich nur um eine Datendatei handelt.
  5. ol>

    Natürlich beweist nichts davon, dass es nicht bösartig ist (auch bekannt als Viren haben keine strong) > klein zu sein, nur weil es nicht ausführbar ist, bedeutet nicht, dass es möglicherweise nicht Teil einer böswilligen Nutzlast ist, und manchmal verstecken sie sich nicht), aber ich vermute, dass dies harmlos ist. Dies ist wahrscheinlich zu alt, aber ich würde sehen, ob Ihr Bash-Verlauf auf den betreffenden Tag / die betreffende Uhrzeit abgestimmt ist.

    Mir ist klar, dass ich Ihnen keine Hinweise zur Analyse der Datei gegeben habe, aber Sie ' Wir haben bereits die wichtigsten Helfer getroffen ( Datei und Strings ), und sie haben nicht geholfen! Eine Datei, die mit zufälligen Daten aus einem fehlerhaften Befehl gefüllt ist, würde erklären, was Sie sehen, und hat wahrscheinlich eine bessere Chance, eine Datei mit dem Namen sudo in Ihrem Home-Verzeichnis zu generieren als Malware, IMO.

Ich stimme größtenteils zu, außer dass "which" nur ausführbare Dateien in Verzeichnissen in "$ PATH" findet - die weder den Home-Ordner noch "." (Das aktuelle Verzeichnis) enthalten sollten.In diesem Fall zeigt `ls -l` jedoch an, dass es nicht als ausführbar markiert ist.
Sie wollten wahrscheinlich einen Befehl ausführensudo tee -a etwas` und endete mit `somecommand> sudo tee -a etwas`
@ThoriumBR das macht Sinn.Ich kann mich nicht erinnern, ob ich so etwas gemacht habe, aber es ist eine Möglichkeit.Ich habe versucht, meinen Bash-Verlauf zu durchsuchen, wie von ConorMancone vorgeschlagen, aber es geht nicht so weit.
@KarloLicudine Sie sollten in der Lage sein, Ihren Befehlsverlauf zu überprüfen, wenn dieser aktuell war.
@GordonDavisson, danke, Sie haben Recht damit, dass `which` hier nicht hilfreich ist.
Es muss nicht einmal deine Schuld sein.Nachdem ich eines der bereitgestellten Skripte ausgeführt habe, enthält mein Überführungsordner die folgenden leeren Verzeichnisse: "2", "Datei", "File_Error", "Nein", "oder" und "solche".
@James Es war anscheinend vor 3 Wochen, schauen Sie sich die Änderungszeit an.
Geschichte |grep "> sudo"
@Jeffrey Nicht zu verwechseln mit der Geschichtegrep> sudo, was das Problem nur verschlimmern würde.
-1
Zum Glück `Geschichte |grep> sudo` würde eigentlich nicht funktionieren, weil `grep` ohne Suchbegriff nicht läuft, aber ich werde damit laufen.Wenn ich das nächste Mal jemanden sehe, der einen Befehl ohne sudo ausführt, für den jedoch Root-Berechtigungen erforderlich sind, schlage ich nur vor, dass er `history | ausführtsudo` als schnelle Lösung ... MUWAHAHA
@Jeffrey: Angenommen, sie verwenden eine Shell, wie Bash, die normal konfiguriert ist, Control-R für die interaktive Rückwärtssuche.Es ist eine einfache Textsuche, mit der Sie eine Zeichenfolge wie `> sudo` verwenden können.Wenn Sie grep verwenden, möchten Sie möglicherweise nach `>. * Sudo` suchen, um variable Mengen an Leerzeichen zu finden.
Nachdem ich alle Vorschläge von allen ausprobiert habe, glaube ich jetzt, dass es wirklich ein verpatzter Befehl gewesen sein könnte.Ich kann mich nicht genau erinnern, was ich getan habe. Angesichts der Aktivitäten, die ich in letzter Zeit mit meiner Maschine durchgeführt habe, ist dies nicht weit hergeholt.
@Ray `Geschichte |grep> sudo` scheint eine schreckliche Idee zu sein.Besser Geschichte machen |grep >> sudo`.Dann löschen Sie zumindest nicht den vorherigen Inhalt der Datei, die Sie analysieren möchten ... :-)
@Alderath Das wird mehr Spaß machen, je mehr Sie es versuchen.
@ConorMancone Die Datei wird jedoch abgeschnitten, sodass sie nicht mehr untersucht werden kann
@Izkata Was schneidet welche Datei ab?
@ConorMancone In Ihrem vorherigen Kommentar zu grep, das nicht ohne Suchbegriff ausgeführt wird, führt die Shell die Ausgabe um und `>` schneidet die Datei ab, unabhängig davon, ob grep-Fehler auftreten oder nicht
@Alderath Ich * habe * gesagt, es würde das Problem verschlimmern.:-)
hft
2019-08-29 08:05:41 UTC
view on stackexchange narkive permalink

Hat jemand Tipps, wie Sie mit der Untersuchung dieser Datei fortfahren können?

Da die -Datei die "Daten" nicht als ausführbare Datei erkennt Es wird schwierig sein, eine dynamische Analyse durchzuführen (indem Sie sie ausführen), es sei denn, Sie finden den richtigen Einstiegspunkt.

Ein weiteres Standard-Linux-Tool, das Sie ausprobieren können, ist:

  stat  

Dadurch erhalten Sie ein wenig mehr Metadateninformationen als was Sie nur mit der Verzeichnisliste sehen können.

Ein weiteres Tool, das Sie ausprobieren können, ist:

  binwalk  

, mit dem Binärdateien wie Firmware-Images analysiert werden können. Wenn die Binärdatei beispielsweise ein Dateisystem enthält, erkennt binwalk dies möglicherweise.

Ein weiteres unter Linux frei verfügbares Tool ist "The Sleuth Kit". Wenn es sich bei der Binärdatei zufällig um ein Rohdatenträger-Image oder um Dateisystemdaten handelt, können Sie versuchen, sie mit "The Sleuth Kit" zu verarbeiten.

Sie können auch versuchen, die Binärdatei in IDA (the " Interaktiver Disassembler "von Hexrays (eine Freeware-Version ist verfügbar), um zu prüfen, ob IDA einen Sinn daraus ziehen kann. Aber wenn die -Datei es nicht erkennt, bin ich nicht zu hoffnungsvoll, dass IDA dies tut.

Ich habe gute Dinge über Ghidra (https://www.nsa.gov/resources/everyone/ghidra/) gehört, einen ziemlich guten (und Open Source) Binäranalysator.
Ghidra ist eine weitere gute Option.Es ist frei verfügbar und kann verschiedene Arten von Binärdateien analysieren.Es ist möglicherweise in der Lage, einige Dinge zu handhaben, die die IDA Free-Version nicht kann.Die beste Option wäre die Verwendung des kommerziellen IDA Pro, aber es ist ziemlich teuer.
Dark Matter
2019-08-29 21:56:19 UTC
view on stackexchange narkive permalink

Ich würde mit history | beginnen grep sudo vom Terminal aus und sehen Sie sich die neuesten sudo-Befehle an, um festzustellen, ob sie fehlerhaft sind.

  • Es ist Ihr Home-Verzeichnis.
  • Sie haben es nicht sagte, es hat einen besonderen Besitz, also gehe ich davon aus, dass Sie es besitzen.
  • Es ist mit ziemlicher Sicherheit ein verpfuschtes Shell-Kommando, also haben Sie es wahrscheinlich vom Terminal aus gemacht.
  • Es könnte etwas sein, das von erstellt wurde ein Skript, aber es ist ziemlich selten, "sudo" -Befehle in ein Skript einzufügen.
  • Es wird offen und offensichtlich angezeigt, sodass Sie es wahrscheinlich bemerkt hätten, wenn Sie es nicht kürzlich erstellt hätten.
`Geschichte |grep sudo |wc -l` -> `8343`: p
@ConorMancone Ich würde "history | grep sudo | tail" vorschlagen, aber ich bezweifle, dass er es braucht.
spyr03
2019-08-29 17:11:28 UTC
view on stackexchange narkive permalink

Ich denke, die anderen Antworten decken fast alles bereits ab (und haben das Rätsel bereits gelöst). Eine weitere Möglichkeit, wenn Sie sich beim Löschen nicht sicher sind, ist ein Schrei-Test. Sie erhalten nicht unbedingt eine Auflösung bezüglich der Quelle der Datei, können jedoch sicher sein, dass das Entfernen sicher ist.

Benennen Sie die Datei in etwas anderes um und prüfen Sie, ob etwas passiert. Einige Dinge, auf die Sie achten sollten, sind

  1. Die Datei wird neu erstellt. Das bedeutet, dass etwas Neues es geschafft hat und es möglicherweise einfacher ist, durch Bash-Verlauf oder Protokolle herauszufinden, was passiert.
  2. Etwas stürzt ab. Abhängig davon, wie oft Programme abstürzen, kann dies ein roter Hering sein, aber es kann auch ein Hinweis auf die Quelle der Datei sein.
  3. ol>

    Andere Methoden, um einen Schreitest durchzuführen, sind das Entfernen aller Zugriffsberechtigungen So kann niemand in die Datei lesen oder schreiben oder die Datei beschädigen.

    BEARBEITEN

    Wie Daniel betont, funktioniert das Umbenennen der Datei nicht Wenn der Prozess die Datei noch geöffnet hat. Wenn die Datei geöffnet ist, können Sie alle geöffneten Dateien mit lsof anzeigen oder die Prozess-IDs der Prozesse finden, bei denen die Datei mit fuser geöffnet ist. ps gibt dann weitere Informationen zu den Prozessen.

      > Fixiereinheit sudo / home / bob / sudo: 3132 7070> ps 3132 7070 PID TTY STAT TIME COMMAND 3132? R 203: 50 pdflatex 7070 & le; Sl 0:45 evince  
Apps mit geöffnetem Dateihandle halten die Datei durch Umbenennen geöffnet, verschieben sich und kümmern sich nicht darum, bis das Handle geschlossen wird.
@DanielHill Guter Punkt.`lsof |grep sudo` zur rettung.Wird lsof den aktuellen Namen der Datei oder den Namen der Datei beim Öffnen melden?
Wenn etwas es kürzlich erstellt hat, warum sollte seine Änderungszeit vor fast 3 Wochen liegen?
@Barmar Ich gehe davon aus, dass dies eine versehentlich erstellte Datei ist, die nicht verwendet wird.Es gibt jedoch keinen Grund, warum der Prozess, der ihn erstellt hat, nicht offen gehalten werden kann, wenn der Prozess langlebig ist und der Computer seitdem nicht mehr heruntergefahren wurde.
Ich habe nur gefragt, ob vor 3 Wochen "vor kurzem" zählt.
Ich denke du verstehst falsch.Wenn eine andere Datei, auch sudo genannt, erstellt wird, nachdem das Original "gelöscht" wurde (was ich unter "neu erstellt" verstehe), ist dies die kürzlich erstellte Datei, die untersucht werden muss.
Das Umbenennen machte nichts Auffälliges.Was bedeutet, dass es nicht besonders wichtig ist?
Das Ändern von Berechtigungen ist nur so effektiv wie das Umbenennen - es wirkt sich nicht auf geöffnete Dateideskriptoren aus, sondern nur auf neue Versuche, die Datei zu öffnen.Sie sollten jedoch in der Lage sein, "lsof" zu verwenden, um diese zu identifizieren.
Sam
2019-08-29 22:44:27 UTC
view on stackexchange narkive permalink

Sie können "hexdump -C -n 512" versuchen, um festzustellen, ob im Binär- oder ASCII-Speicherauszug etwas auf Sie zukommt. Es könnte eine Mischung aus Binärdaten und Textdaten sein. Wie bei einem Skript, das Sie falsch eingegeben haben, können Sie mit dem Hexdump möglicherweise einen Teil des Skripts anzeigen.

d-b
2019-08-29 19:05:04 UTC
view on stackexchange narkive permalink

Sie können auch head ausprobieren und die ersten Zeilen der Datei anzeigen. Die ersten paar Zeichen könnten etwas über den Dateityp verraten. Weitere Informationen finden Sie unter magische Zahl.

Wenn die magische Nummer dieser Datei eine bekannte wäre, hätte die Datei den Dateityp erraten.
Wenn Sie die Ausgabe von "head" in einem bloßen Terminal in einer wahrscheinlich binären Datei ablegen, besteht eine hohe Wahrscheinlichkeit, dass Ihr Terminal kaputt geht.Denken Sie daran, dass `head` nach einer bestimmten Anzahl von" Zeilen "sucht, die voraussichtlich durch Zeilenumbrüche getrennt werden.Wenn es in den ersten hundert MB oder so keine Zeilenumbrüche gibt, ist es `head` egal;Es wird nur die gesamte Ausgabe auf Ihrem Terminal löschen, und wie hoch ist die Wahrscheinlichkeit, dass dort kein Terminal entweicht, das Ihre Eingabeaufforderung durcheinander bringen könnte?Niedrig. Versuchen Sie stattdessen `xxd >weniger`.Schau dir den Hex Dump an.
Sie können head auch mit einer Zeichenanzahl für Binärdateien verwenden.
@guenthmonstr-Terminals wurden in den 90ern erlebt.Holen Sie sich einen besseren Kunden.
@d-b-Befehle an das Terminal werden inline übertragen.Keine Menge "Betterness" wird dies beheben, weil es der Standard ist.Wenn Sie Steuercodes direkt in Ihr Terminal ausgeben, wird Ihr Terminal sie zu Recht interpretieren.
@Score_Under Ich habe mich nicht damit befasst, aber als ich in den 90er Jahren Digital Unix mit CDE verwendete, waren die Terminals ständig durcheinander, während dies im Mac OS X-Terminal nie passiert.
@d-b Das häufigste Problem dieser Art sind Sequenzen, die den Terminalzeichensatz ändern. Daher unterstützt das Mac OS-Terminal möglicherweise das Umschalten des Zeichensatzes nicht.Wenn Sie "printf" \ 033 (0 "verwenden, wird das Terminal angewiesen, den G0-Zeichensatz in Strichzeichnungszeichen zu ändern. Wenn sich diese Sequenz in einer Datei befindet, die Sie mit" cat "versehen, geschieht dasselbe (weshalb die"streng korrekt" ist die Verwendung von "less" oder eines anderen Dienstprogramms zum Anzeigen von Dateien.
@Score_Under printf '\ 033 (0' hat mein Terminal "durcheinander gebracht".
Radu Murzea
2019-08-30 18:26:11 UTC
view on stackexchange narkive permalink

Sie können den einfachen alten Weg gehen: Installieren eines Antivirenprogramms und Scannen der Datei. Es ist keine perfekte Lösung, aber es ist ein Ausgangspunkt, und zumindest würde es Ihnen zumindest ein wenig Ruhe geben.

Ich bin tatsächlich ein bisschen überrascht, dass niemand dies vorgeschlagen hat.

Ich bin mir nicht sicher, auf welcher Distribution Sie sich befinden, aber ich bin mir sicher, dass es viele Antivirenlösungen gibt, die funktionieren würden. Auf den ersten Blick würde ich ClamAV für so etwas ausprobieren, scheint einfach zu installieren.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...