侵入テスト中に、ローカルファイルインクルードの脆弱性を発見しました。実際、この脆弱性はmailwatch <= 1.0.4に存在し、そのエクスプロイトはExploit-DBに存在しました。
ファイル/proc/self/environ
に応じて、この脆弱性を介してオペレーティングシステム(CentOS 6)を悪用しようとしましたが、/proc/self/environ
ファイルのコンテンツを表示しようとすると空白ページが返されるため、失敗しました。
OSをハッキングする方法はありますか?
ログファイルインジェクションによって悪用される可能性があります。 Apacheログファイルを挿入することは可能かもしれませんが、これらのファイルを開くにはrootアクセスが必要であるため、LFI経由で開くことはできません。この問題を解決するために、次のパスに存在する一時的なApacheログファイルを挿入します。
proc/self/fd/12
または
proc/self/fd/14
または
proc/<apachi pid>/fd/12
または
proc/<Apache pid>/fd/14
ログファイルにPHPコードを挿入すると、好きなことを何でもできます。
私のセットアップを投稿するだけです:
/ var/log/httpd:
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20120805
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 error_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 error_log-20120930
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 error_log-20121007
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 error_log-20121014
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 error_log-20121021
-rw-r-----. root root system_u:object_r:httpd_log_t:s0 modsec_audit.log
-rw-r-----. root root system_u:object_r:httpd_log_t:s0 modsec_audit.log-20120930
-rw-r-----. root root system_u:object_r:httpd_log_t:s0 modsec_audit.log-20121007
-rw-r-----. root root system_u:object_r:httpd_log_t:s0 modsec_audit.log-20121014
-rw-r-----. root root system_u:object_r:httpd_log_t:s0 modsec_audit.log-20121021
-rw-r-----. root root system_u:object_r:httpd_log_t:s0 modsec_debug.log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_access_log-20120805
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_access_log-20120812
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_error_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_error_log-20120930
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_error_log-20121007
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_error_log-20121014
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_error_log-20121021
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_request_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_request_log-20120805
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 ssl_request_log-20120812
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 suexec.log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 suexec.log-20120930
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 suexec.log-20121007
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 suexec.log-20121014
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 suexec.log-20121021
PHPはsuexecで実行されます:
unconfined_u:system_r:httpd_suexec_t:s0 502 17648 0.0 4.7 314004 23624 ? Sl Oct21 0:07 /usr/bin/php-cgi
仮想ホストのログファイル:
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 1008958 Oct 24 00:19 blackhatconsulting.co.uk_access_log
-rw-rw----. 1 unconfined_u:object_r:var_log_t:s0 502 48 11592222 Aug 5 03:41 blackhatconsulting.co.uk_access_log-20120805
-rw-rw----. 1 unconfined_u:object_r:var_log_t:s0 502 48 9418101 Aug 12 03:15 blackhatconsulting.co.uk_access_log-20120812
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 207759 Sep 23 03:21 blackhatconsulting.co.uk_access_log-20120923.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 176072 Sep 30 03:36 blackhatconsulting.co.uk_access_log-20120930.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 158753 Oct 7 03:23 blackhatconsulting.co.uk_access_log-20121007.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 170740 Oct 14 03:49 blackhatconsulting.co.uk_access_log-20121014.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 199233 Oct 21 03:43 blackhatconsulting.co.uk_access_log-20121021.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 3972681 Oct 24 00:19 blackhatconsulting.co.uk_error_log
-rw-rw----. 1 unconfined_u:object_r:var_log_t:s0 502 48 715308 Aug 5 03:41 blackhatconsulting.co.uk_error_log-20120805
-rw-rw----. 1 unconfined_u:object_r:var_log_t:s0 502 48 10871995 Aug 12 03:15 blackhatconsulting.co.uk_error_log-20120812
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 21122 Sep 23 03:21 blackhatconsulting.co.uk_error_log-20120923.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 18896 Sep 30 03:36 blackhatconsulting.co.uk_error_log-20120930.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 18423 Oct 7 03:23 blackhatconsulting.co.uk_error_log-20121007.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 18458 Oct 14 03:49 blackhatconsulting.co.uk_error_log-20121014.gz
-rw-rw----. 1 system_u:object_r:var_log_t:s0 502 48 30181 Oct 21 03:43 blackhatconsulting.co.uk_error_log-20121021.gz
そして最後に、PHPプロセス:
lrwx------. 1 unconfined_u:system_r:httpd_suexec_t:s0 502 502 64 Oct 24 00:17 0 -> socket:[331211]
l-wx------. 1 unconfined_u:system_r:httpd_suexec_t:s0 502 502 64 Oct 24 00:17 1 -> /var/log/httpd/error_log
lr-x------. 1 unconfined_u:system_r:httpd_suexec_t:s0 502 502 64 Oct 24 00:17 18 -> pipe:[302590]
l-wx------. 1 unconfined_u:system_r:httpd_suexec_t:s0 502 502 64 Oct 24 00:17 2 -> /var/log/httpd/error_log
l-wx------. 1 unconfined_u:system_r:httpd_suexec_t:s0 502 502 64 Oct 24 00:17 21 -> pipe:[302591]
lrwx------. 1 unconfined_u:system_r:httpd_suexec_t:s0 502 502 64 Oct 24 00:17 4 -> socket:[331227]
そしてhttpd:
r-x------. 1 root root 64 Oct 24 00:26 0 -> /dev/null
l-wx------. 1 root root 64 Oct 24 00:26 1 -> /dev/null
l-wx------. 1 root root 64 Oct 24 00:26 10 -> pipe:[302583]
l-wx------. 1 root root 64 Oct 24 00:26 11 -> /var/log/virtualmin/blackhatconsulting.co.uk_error_log
l-wx------. 1 root root 64 Oct 24 00:26 12 -> /var/log/httpd/ssl_error_log
l-wx------. 1 root root 64 Oct 24 00:26 13 -> /var/log/httpd/access_log
l-wx------. 1 root root 64 Oct 24 00:26 14 -> /var/log/virtualmin/blackhatconsulting.co.uk_access_log
l-wx------. 1 root root 64 Oct 24 00:26 15 -> /var/log/virtualmin/blackhatconsulting.co.uk_access_log
l-wx------. 1 root root 64 Oct 24 00:26 16 -> /var/log/httpd/ssl_access_log
l-wx------. 1 root root 64 Oct 24 00:26 17 -> /var/log/httpd/ssl_request_log
lr-x------. 1 root root 64 Oct 24 00:26 18 -> pipe:[302590]
l-wx------. 1 root root 64 Oct 24 00:26 19 -> pipe:[302590]
l-wx------. 1 root root 64 Oct 24 00:26 2 -> /var/log/httpd/error_log
lr-x------. 1 root root 64 Oct 24 00:26 20 -> pipe:[302591]
l-wx------. 1 root root 64 Oct 24 00:26 21 -> pipe:[302591]
lr-x------. 1 root root 64 Oct 24 00:26 3 -> /dev/urandom
lrwx------. 1 root root 64 Oct 24 00:26 4 -> socket:[271909]
lrwx------. 1 root root 64 Oct 24 00:26 5 -> socket:[271911]
l-wx------. 1 root root 64 Oct 24 00:26 6 -> /var/log/httpd/modsec_debug.log
l-wx------. 1 root root 64 Oct 24 00:26 7 -> /var/log/httpd/modsec_audit.log
lrwx------. 1 root root 64 Oct 24 00:26 8 -> socket:[271913]
lr-x------. 1 root root 64 Oct 24 00:26 9 -> pipe:[302583]
したがって、SELinuxがない場合、CentosでVirtualminを使用すると、同じuidで実行されるため、PHP問題なしからログファイルにアクセスできます。ただし、SELinuxを使用すると、/var/logはネットワークから呼び出されたプロセスを使用します。また、mod_securityはそれを行うこともできません(PHPコードを渡すため)。