kali on raspberry piが2つになったので、片方を攻撃監査する目的でWEBサーバーに仕立てました。
今回はその記録です。
左がラズパイ5、右がラズパイ4B。今回は右の4BをWEBサーバーに仕立てます。
将来的に左の5から右の4Bに攻撃監査を行うので、その準備です。
設定
下記の設定とします。
ラズパイ4Bにサーバーを立て、それをラズパイ5のブラウザからhttp接続を目指します。
ローカル(クライアント) | ラズパイ5 | 192.168.11.15 |
リモート(サーバー) | ラズパイ4B | 192.168.11.21 |
まずは普通に5のWEBブラウザ(FireFox)で、4BのIPアドレスを開いてみます。
当たり前ですが開けません。
事前調査
まずは5側から、4Bの空いているポートの調査をします。
以下はクライアント側(ラズパイ5側)からの操作です。
nmapでポートスキャンした結果。
ポートスキャンは自分の管理下のサーバーに対して行いましょう。迷惑行為になるので。
nmap 192.168.11.21 -Pn -p- –open
22番ポート(ssh接続用)のみが開いています。
sudo nmap 192.168.11.21 -O -sV -p- –open
少し詳しいスキャン。OSの情報(Linuxのカーネル 4.Xもしくは5.X)もあります。
開いているポートはやはり1つ(22番のみ)です。
WEBサーバーの稼働
それではWEBサーバーを稼働させてみます。
以下はサーバー側(ラズパイ4B側)の操作です。
まずはWEBサーバーのサービスである ” apache2 ” の存在を調べます。
which apache2
” /usr/abin/apache2 ” に存在しているのが分かります。次に、
sudo systemctl start apache2
これでWEBサーバーサービスの ” apache2 ” が稼働します。
検証
それではWEBブラウザでラズパイ5からラズパイ4Bに接続してみます。
クライアント側からの検証
以下はクライアント側(ラズパイ5側)の操作です。
ブラウザのURLにIPアドレスを入れると、FireFoxではこのようになり接続できません。
しかしURL欄をよく見ると、” https:// ” とオートコンプリートされています。
これを手動で ” http:// ” に修正すると、このようにWEBページが表示されました。
ブラウザを使用せずにコマンドラインからhtmlを読み込む ” curl ” コマンドを使用しての検証もできます。
curl 192.168.11.21
” curl ” は、サイト内容を文字で読み込んで来るコマンドです。
ブラウザと違ってキャッシュを使用しないので、本当に稼働しているかどうかがより正確に分かります。
ブラウザでは「本当はサーバーが止まっていても、キャッシュが表示されて(以前のページがキャッシュから表示されて)稼働しているように見える場合」もありました。
ポートの状態
ポートスキャンでは80番ポートも追加で開いてい流のが分かります。
サーバー側からの検証
以下はサーバー側(ラズパイ4B側)の操作です。
まずは ” apache2 ” が稼働しているかどうかの検証。
systemctl status apache2
5行目に ” active ” となっています。
自分自身のサイトを ” curl ” コマンドを用いてテキスト表示させることも可能です。
curl localhost
ドキュメントルートの位置
ドキュメントルートとはWEBサイトのルート(=ドメイン直下)のディレクトリです。
” /var/www/html/ ” に存在します。
” index.html ” を開くと、ブラウザが立ち上がり、WEB越しにクライアントのブラウザから見るページと同じページが立ち上がります。
ポートの確認
ssコマンドで見ると元々の22番に加えて、80番ポートも開いています。
ss -atn
- ssコマンドはネットワークのソケットを表示するコマンド。(旧netstatに相当)
- ” オプション -a ” は、all { 接続待ち(LISTEN)の有無に関わらず全て表示 }
- ” オプション -t ” は、TCPソケットを表示( ” -u ” ならUDPソケット)
- ” オプション -n ” は、ポート番号で表示
起動時からサーバー稼働させる設定
さて、サーバーを一度止めてしまうとWEBサーバーサービスもそこまでで落ちます。
再起動直後のapache2の状態を調べます。
systemctl status apache2
apache2はもはや起動していません。
この時80番ポートも閉じています。
起動時設定の変更
そこで起動時から ” apache2 ” を稼働させるためのコマンドが、下記の通り。
sudo systemctl enable apache2
追補)systemctlコマンドまとめ
sudo systemctl start サービス名 | サービス開始(起動時は設定しない) |
sudo systemctl stop サービス名 | サービス停止 |
sudo systemctl restart サービス名 | サービス再起動 |
sudo systemctl enable サービス名 | 起動時にサービス開始(今はしない) |
sudo systemctl disable サービス名 | 起動時にサービス開始しない |
systemctl status サービス名 | サービスの現状表示 |
まとめ
色々とゴチャゴチャ書いてしまいましたが、結論としては、
sudo systemctl start apache2
でWEBサーバーが稼働しますし、
sudo systemctl enable apache2
で起動時に自動稼働します。
普通はkali上にわざわざWEBサーバー立てたりしませんけどね。普通じゃなくてすみません。
コメント