任意のファイル名文字列に一致する正規表現

任意のファイル名文字列に一致する正規表現

WordPressのインストールがApacheユーザーとして任意のファイルを生成する可能性がある脆弱性の犠牲になった共有ホスティングユーザーがあります。生成されたファイルは明らかにランダムジェネレータを使用して生成されますが、特定のパターンに属します。私もそのグループだけをマッチングすることを考えていましたが、このような性格の発見により合法的なファイルがあまりにも多く見つかりました。これらのサンプル悪意のあるファイルをすべて一致させるには?

8twcoasx.php
hjoeksdp.php
nzpsmujc.php
oiczdqkp.php
wpebruwi.php
wuclgsvz.php
tie9txh5.php
vza6pn12.php
nwfthzli.php
1wovcnq6.php
1fwevaol.php
zscy86d8.php
ikz45skj.php
n70x0aul.php
nwk34bs0.php
ugdnncmz.php
wdcq2zzi.php
8f4w3dmt1z.php
uqv4e2cm2a.php
55zf4u1dp7.php
szfc8v129e.php
oihfoe09fposf.php (occured more often)
Jwlsjd_baaqifg.php (occured more often)

明らかに、私はWordPressのインストールとプラグインを更新するためにユーザーと協力しますが、クエリに入れて問題がまだ存在するかどうかをすばやく確認できる正規表現を使いたいと思います。

私が見ることができるパターンは次のとおりです。

  1. 常に8、10、または13文字です。
  2. 常に*.php

ベストアンサー1

まず、「パターン」が正確に何であるかを決定する必要があります(正規表現の生成)。私は何も明確に見ることができません。常に.php大文字または小文字、数字、または8、10、または13文字で終わり、その前に来ます_。それ以外は明確ではありません。たとえば、常に数字があるとは限りません。この一般的な「パターン」を一致させるには、^[a-zA-Z0-9_]{8}\.php$10文字または13文字を一致させるには、おそらく多くの誤検出を取得します。

代わりに、現在の変更日に新しいファイルが作成されますか?その場合は、新しい設定の後に修正された新しい疑わしいファイルを検索できます。

find /path/to/directory -newer /path/to/new_config -regextype egrep -regex '.*/([a-zA-Z0-9_]{8}|[a-zA-Z0-9_]{10}|([a-zA-Z0-9_]{13})\.php'

変更日はを使用して変更できますtouch。マルウェアがこれを行うと、アクセス時間-anewer、状態変更時間、-cnewerまたはフィルタリングに基づいてフィルタリングされる可能性があります-newerXY

すべてのファイルが特定のユーザーに属している場合は、その情報を使用してフィルタリングすることもできます。つまり、オプションを追加します-user apache

おすすめ記事