web-dev-qa-db-ja.com

Linuxホームディレクトリにある「Sudo」という名前の不明な1.5GBファイルを調査するにはどうすればよいですか?

ホームディレクトリに "Sudo"という名前のファイルが見つかりました。サイズは1.5GBで、どこから来たのかわかりません。

-rw-r--r--  1 foo foo 1598296064 Aug  9 11:22 Sudo

このファイルの調査を進める方法に関するヒントはありますか?コンピュータが危険にさらされるのではないかと心配していますが、自分が何を扱っているのかを知りたいのです。

これまでに行ったことは次のとおりです。

  • file Sudoを実行すると、 `Sudo:data 'が表示されます。
  • strings Sudoを実行すると、大量のランダムデータが表示されました。
  • which Sudoを実行すると、/usr/bin/SudoのSudoファイルが参照されます

実行可能バイナリの場合は実行する予定ですが、実行する前に仮想マシンに転送する可能性があります。 gdbの知識は限られているので、少なくともそれを調べることができます。

67
Karlo Licudine

おそらく、誤ったシェルコマンドを使用して作成しました。そのようなことを自分でやった。その結果、おそらく無害なデータで満たされています。これがnot悪意があると推測する理由はいくつかあります:

  1. 1.5 GBは非常に大きなウイルスです。ウイルスは通常ネットワークを介して送信されるため、小さいほど良いです。
  2. 実行可能ではありません。
  3. マルウェアは通常、これよりもはるかに優れています。
  4. fileは単なるデータファイルであると考えています。

もちろん、それが悪意のないものであることを証明するものはありません(別名、ウイルスは小さくありませんhave実行可能ではないからといって、悪意のあるペイロードの一部ではない可能性があるわけではありません) 、そして時々彼らは隠すことを気にしない)、しかし私はこれが無害であると思う。これはおそらく古すぎるかもしれませんが、あなたのbash履歴が問題の日付/時間に行くかどうかを確認します。

ファイルの分析方法についてのヒントをお伝えしていないことは承知しておりますが、すでにメインヘルパー(fileおよびstrings)を使用しており、それらは支援していません。誤ったコマンドからのランダムなデータで満たされたファイルは、何が表示されているかを説明し、ホームディレクトリにSudoという名前のファイルを生成する可能性がマルウェアIMOよりも高い可能性があります。

144
Conor Mancone

このファイルの調査を進める方法に関するヒントはありますか?

fileは「データ」を実行可能ファイルとして認識しないため、適切なエントリポイントが見つからない限り、(実行して)動的に分析するのは困難です。

試すことができる別の標準Linuxツールは次のとおりです。

stat

これにより、ディレクトリリストだけで表示できるものよりも少し多くのメタデータ情報が得られます。

あなたが試すことができる別のツールは次のとおりです:

binwalk

ファームウェアイメージのようなバイナリファイルの分析を提供できます。たとえば、バイナリファイルにファイルシステムが含まれている場合、binwalkはそれを認識します。

Linuxで無料で入手できるもう1つのツールは「The Sleuth Kit」です。バイナリファイルが未加工のディスクイメージまたはファイルシステムデータである場合は、「The Sleuth Kit」で処理してみてください。

また、IDAにバイナリをドロップして(Hexraysの " Interactive Disassembler "からフリーウェアバージョンを入手できます)、IDAがそれを理解できるかどうかを確認することもできます。しかし、fileがそれを認識しない場合、私はIDAがそうすることを望んでいません。

25
hft

ターミナルからhistory | grep Sudoから始めて、最新のSudoコマンドを調べて、不正な形式があるかどうかを確認します。

  • それはあなたのホームディレクトリです。
  • あなたはそれが特別な所有権を持っているとは言っていないので、あなたがそれを所有していると仮定します。
  • それはほぼ間違いなく失敗したシェルコマンドであるため、おそらくターミナルから作成しました。
  • スクリプトによって作成されたものかもしれませんが、「Sudo」コマンドをスクリプトに含めることは非常にまれです。
  • それはそれ自体をオープンに、そして明らかに表示しているので、最近作成していなかったとしたらおそらく気付くでしょう。
25
Dark Matter

他の回答はすでにほぼすべてをカバーしていると思います(そして、謎はすでに解決しています)。それを削除するかどうかわからない場合に試すもう1つのことは、悲鳴テストを行うことです。必ずしもファイルのソースに関する解決策が得られるわけではありませんが、削除しても安全であると確信できます。

ファイルの名前を別の名前に変更し、何かが発生するかどうかを確認します。気をつけるべきことは

  1. ファイルが再作成されます。つまり、最近何かがそれを作ったということであり、bashの履歴やログを通して何を見つけるのがより簡単かもしれません。
  2. 何かがクラッシュします。プログラムがクラッシュする頻度に応じて、これは赤いニシンかもしれませんが、ファイルのソースに関するヒントになるかもしれません。

悲鳴テストを行う他の方法は、すべてのアクセス許可を削除して、誰もファイルを読み書きできないようにするか、ファイルを破損させることです。

[〜#〜]編集[〜#〜]

Danielが指摘するように、プロセスがまだファイルを開いている場合、ファイルの名前を変更しても機能しません。ファイルが開いている場合は、lsofで開いているすべてのファイルを確認できます。または、fuserを使用してファイルを開いているプロセスのプロセスIDを確認できます。 psは、プロセスに関する詳細情報を提供します。

> fuser Sudo
/home/bob/Sudo:  3132  7070
> ps 3132 7070
  PID TTY      STAT   TIME COMMAND
 3132 ?        R    203:50 pdflatex
 7070 ?        Sl     0:45 evince
11
spyr03

「hexdump -C -n 512」を試して、バイナリダンプまたはASCIIダンプのいずれかで何かが飛び出していないかどうかを確認できます。バイナリデータとテキストデータが混在している可能性があります。誤って入力したスクリプトのwgetのように、hexdumpを使用すると、スクリプトの一部を表示できる場合があります。

5
Sam

headを試して、ファイルの最初の数行を確認することもできます。最初の数文字は、ファイルタイプについて何かを明らかにする可能性があります。詳細は マジックナンバー を参照してください。

1
d-b

ウイルス対策のインストールとファイルのスキャンという単純で古い方法を使用できます。それは完璧な解決策ではありませんが、それは開始する場所であり、少なくともそれについてあなたに少なくとも少しの安心を与えるでしょう。

私は実際にこれを提案した人がいないことに少し驚いています。

どのディストリビューションを使用しているかはわかりませんが、機能するウイルス対策ソリューションはたくさんあります。私の頭の上のところで、私はClamAVにこのようなものを試してみると思いますが、インストールは簡単に思えます。

0
Radu Murzea