12th LAB

👩🏿‍💻リバースシェルとはなにか

ペンテストの学習をしていると リバースシェル という言葉がでてきます。最初はなかなか理解できなくて苦労した記憶があります。ここではリバースシェルとはなんなのか、なぜこれが必要なのかを解説していきます。

リバースシェルとは

攻撃対象となるコンピュータから攻撃者のコンピュータへ接続し、シェルを提供する仕組みです。

一般的にはリバースシェルを使うことはありませんが、ペンテストなどで攻撃対象のコンピュータに侵入する際に使用されることが多いです。

なぜリバースシェルが必要なのか

通常のシェルだとセキュリティ機能でブロックされている可能性が高いため、です。

通常、SSHなどでサーバにリモート接続するときは、サーバでポートをオープンにしてリクエストを待ち受けます。そしてクライアント(PC)からサーバへ接続します。

SSHでのリモート接続をイメージするとわかりやすいかと思います。

image block

ここであなたは攻撃者で侵入するという目的でリモート接続することを考えてみます。このとき、ネットワーク上にファイアウォールが設置されていることが一般的です。よって、許可されているポート以外はファイアウォールでブロックされてしまいます。

image block

そこでリバースシェルという手法が使われます。ファイアウォールというのは外から内の通信に対して、許可する通信を細かく設定します。逆に内から外の通信はすべて許可となっていることが多いです。

よって攻撃対象となるコンピュータから攻撃者のPCへ接続して、シェルを起動するという手法をとります。これがリバースシェルです。

image block

ではどうやって攻撃対象のサーバから攻撃者のPCに接続させるのでしょうか?マルウェアを感染させる、サーバでリバースシェルのコードを実行させるなどの方法でリバースシェルを行います。