SlideShare a Scribd company logo
SSH力を使おう

掘ったトンネルは潜れ!!




    2012/12/07 #ssmjp @togakushi   1 / 31
おさらい
► 詳しくは前の資料で。
  SSH力をつけよう
  [ http://www.slideshare.net/tohakushi/ssh-
  13118950 ]




                                               2 / 31
ダイナミックフォワード
► サーバをsocksのプロキシにする
  ssh -D 1080 ssh-gateway

別のホスト    クライアント               サーバ     別のホスト

                     Client    sshd    httpd
 ブラウザ     TCP/1080

                                      別のホスト
                 ブラウザ                  httpd



              ブラウザが指定したホスト
                                               3 / 31
ローカルポートフォワード
► クライアントからサーバに対してのトンネル
► リモートデスクトップしたい!!
    ssh –L 3389:windows:3389 ssh-gateway
    rdesktop localhost

               インター             踏み台
  作業端末                                       Windowsサーバ
                ネット          SSH-GATEWAY




                                           リモートデスクトップ
tsclient    TCP/3389   ssh        sshd
                                             (TCP/3389)
                                                        4 / 31
SOCKS PROXY
► ダイナミックフォワードはSOCKSのPROXYにな
  る
► SOCKS対応のクライアントならトンネルを潜れ
  る
  ひとつ掘ればみんなで共有
  対応していないならローカルポートフォワードで必
  要なだけ掘る



                         5 / 31
SOCKS対応化してしまえ
► tsocks
► proxychains


 プログラムが指定したProxyを必ず通るように
   ネットワークライブラリを割り込ませる
       ラッパープログラム


                       6 / 31
tsocks(導入)
► yum(EPEL)/apt/Mac   Portsで入れれる
   パッケージを持っていてもよし
   ソースを持っていってもよし
   別システムでビルドしてバイナリとライブラリを持っ
   ていってもよし




                                   7 / 31
tsocks(設定)
► /etc/tsocks.confを読む(決め打ち)
   接続先によってproxyを切り替えたり出来る
   以下の3行が設定されていればOK
   server = 127.0.0.1
   server_type = 5
   server_port = 1080




                              8 / 31
tsocks(ハマリ)
► CentOSで使った時にProxy   ENDで名前解決し
 てくれなかった
  コンパイルオプション変えてもダメ
  原因不明
► 設定ファイルが/etcにしか置けないのでroot権
  限ないと設定できない
► ライブラリも決め打ちのパスしか読まない
► SELinuxは適切にね

                             9 / 31
tsocks(使い方)
► SOCKSのPROXYを指定して、

    > tsocks 「PROXYを通したいプログラム」

► tsocksだけ実行すると対話モードのシェルが立
 ち上がり、全部PROXYを通るようになる(らし
 い)



                                 10 / 31
proxychains(導入)
► aptで入るけどVer3
  GithubにVer4がある
  機能差分は知らない
► RPMは探してない
  Baseとepelにはない




                         11 / 31
proxychains(設定)
► proxychains.conf
   実行時にオプションで渡す
    proxy_dns

    [ProxyList]
    socks5 127.0.0.1 1080




                             12 / 31
proxychains(使い方)
► Proxyの設定をして、

 > proxychains4 -f proxychains.conf 「PROXYを~」
                                          を

► ライブラリはバイナリがあるカレントディレクトリ
 も探してくれる
   root権限なくても導入できちゃう!




                                           13 / 31
実践




     14 / 31
使い方1


                                           HOST
        外から:Hostへのsshのみ許可
        内から:ESTABLISHEDは許可
            RELATEDは許可               HostOnly
            他はすべて遮断
                             sshd


           Windows ゲスト              VM01   VM02
ssh




      簡単にリモートデスクトップで繋ぎたい!! 15 / 31
      簡単にリモートデスクトップで ぎたい!!
使い方1(従来型)


                                           HOST

                                    HostOnly

                           sshd


                                  VM01    VM02
ssh


      Local> ssh –L13389:VM01:3389 HOST
                        :
      Local> ssh –L23389:VM02:3389 HOST   16 / 31
使い方1(従来型)


      Local> rdesktop localhost:13389           HOST

      Local> rdesktop localhost:23389
                                         HostOnly

                                 sshd


                                        VM01   VM02
ssh

TCP:127.0.0.1:13389

TCP:127.0.0.1:23389
                                               17 / 31
使い方1


                                         HOST

                                  HostOnly

                          sshd


                                 VM01   VM02
ssh

      Local> ssh –D1080 HOST

                                        18 / 31
使い方1


                                                   HOST
      Local> tsocks rdesktop VM01
      Local> tsocks rdesktop VM02           HostOnly

                                    sshd


                                           VM01   VM02
ssh

TCP:127.0.0.1:1080


                                                  19 / 31
使い方2


                                           HOST
       外から:Hostへのsshのみ許可
       内から:ESTABLISHEDは許可
           RELATEDは許可               HostOnly
           他はすべて遮断
                            sshd


           Linux ゲスト               VM01   VM02
ssh

sshd

ゲストをインターネットに いでアップデートしたい!!
ゲストをインターネットに繋いでアップデートしたい!!
               アップデートしたい
                                          20 / 31
使い方2


                                          HOST

                                   HostOnly

                           sshd


                                  VM01   VM02
ssh

sshd   Local> ssh –D1080 HOST

                                         21 / 31
使い方2

Local> ssh –R10022:localhost:22 –
oProxyCommand=’nc –x localhost:1080 %h %p’
VM01                                           HOST

                                        HostOnly

                                sshd


                                       VM01   VM02
 ssh

 TCP:127.0.0.1:1080    ※VM01に直接ログインできればなんでもいいよ!
                            に直接ログインできればなんでもいいよ!
                               ログインできればなんでもいいよ

 sshd
                                              22 / 31
使い方2


                                              HOST

                                        HostOnly

                               sshd


                                      VM01   VM02
ssh

sshd

       VM01> ssh –D1080 –p10022 localhost    23 / 31
使い方2


                                            HOST

                                     HostOnly

                           sshd


                                    VM01   VM02
ssh

sshd

       VM01> tsocks yum –y update          24 / 31
使い方3


                                            HOST
        外から:Hostへのsshのみ許可
        内から:ESTABLISHEDは許可
            RELATEDは許可               HostOnly
            他はすべて遮断
                             sshd


           Windows ゲスト              VM01   VM02
ssh

sshd


       Windowsだってアップデートしたい!!
              だってアップデートしたい!!
              だってアップデートしたい                 25 / 31
使い方3


                                         HOST

                                  HostOnly

                         sshd


                                VM01   VM02
ssh

sshd
       Local> ssh –R10022:localhost:22
                                       26 / 31
使い方3


                                        HOST

                                  HostOnly

                         sshd


                                VM01   VM02
ssh

sshd
       HOST> ssh –gD1080 –p10022 localhost
                                       27 / 31
使い方3


                                       HOST

           PROXYの設定             HostOnly

                       sshd


                               VM01   VM02
ssh

sshd     tsocksとか関係なかった!!
               とか関係なかった!!
               とか関係なかった
       おまけにVM01で名前解決できない!!
       おまけに     で名前解決できない
                      できない!!
               これは失敗
                  失敗。
               これは失敗。                 28 / 31
すべてのプログラムで利用可能
► curl / wget / w3m / firefox / …
► git / hg / svn / …
► yum / apt / … / ssh / rsync / …
► シェルスクリプト / …




              なんでもOK!
              なんでも !
                                    29 / 31
まとめ
► ssh(トンネルが掘れる)ができると何でも出来
 ちゃうよ




                        30 / 31
ネットワークは用法容量を守って
     お使い下さい




              31 / 31

More Related Content

PDF
SSH力をつけよう
ODP
sshdのお話
PDF
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
PDF
SQL Server エンジニアのためのコンテナ入門
PDF
flaws.cloudに挑戦しよう!
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
PDF
認証の課題とID連携の実装 〜ハンズオン〜
PDF
HTTP/2, QUIC入門
SSH力をつけよう
sshdのお話
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
SQL Server エンジニアのためのコンテナ入門
flaws.cloudに挑戦しよう!
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
認証の課題とID連携の実装 〜ハンズオン〜
HTTP/2, QUIC入門

What's hot (20)

PDF
PWNの超入門 大和セキュリティ神戸 2018-03-25
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
PDF
Visual Studio Code 快速上手指南
PPTX
OpenSSHの認証に証明書を使う
PDF
containerdの概要と最近の機能
PDF
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
PDF
TLS, HTTP/2演習
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
PPTX
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
PPTX
このPHP QAツールがすごい!2019
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
PDF
Flutterでscroll viewとexpandedを併用してsign in sign up画面 などの レイアウトを作成する
PDF
20分でわかるgVisor入門
PDF
Linux女子部 systemd徹底入門
PDF
噛み砕いてKafka Streams #kafkajp
PDF
DPDKによる高速コンテナネットワーキング
PDF
今だからこそ知りたい Docker Compose/Swarm 入門
PDF
Vivado hls勉強会1(基礎編)
PWNの超入門 大和セキュリティ神戸 2018-03-25
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)
マイクロサービスバックエンドAPIのためのRESTとgRPC
Visual Studio Code 快速上手指南
OpenSSHの認証に証明書を使う
containerdの概要と最近の機能
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
TLS, HTTP/2演習
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
このPHP QAツールがすごい!2019
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
Flutterでscroll viewとexpandedを併用してsign in sign up画面 などの レイアウトを作成する
20分でわかるgVisor入門
Linux女子部 systemd徹底入門
噛み砕いてKafka Streams #kafkajp
DPDKによる高速コンテナネットワーキング
今だからこそ知りたい Docker Compose/Swarm 入門
Vivado hls勉強会1(基礎編)
Ad

Viewers also liked (10)

PDF
ssh-agentのすすめ
ODP
Cocproxy
PDF
無線LANデンパゆんゆん観察
PDF
電波な話
PDF
20140704 cassandra introduction
PPTX
ハニーポットで見る攻撃手法(特に結論はありません)
PDF
Proxy War
PDF
Pythonで簡単ネットワーク分析
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
ssh-agentのすすめ
Cocproxy
無線LANデンパゆんゆん観察
電波な話
20140704 cassandra introduction
ハニーポットで見る攻撃手法(特に結論はありません)
Proxy War
Pythonで簡単ネットワーク分析
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Ad

More from (^-^) togakushi (14)

PPTX
成績管理の話 (続き)
PDF
ささみ麻雀部の紹介
PDF
ファイナル・ファンタジー2のデータを解析してみる
PDF
手順書の話 Ver.0.3.0
PDF
仕事の捉え方の話 #ssmjp
ODP
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
PDF
Janog33.5
ODP
現場で役に立たないsudoの使い方
ODP
tcpdumpとtcpreplayとtcprewriteと他。
PDF
KVM+cgroup
PDF
jenkinsで遊ぶ
PDF
Pakena #9
PDF
Sfstudy #2
PPT
ひとりsphinx
成績管理の話 (続き)
ささみ麻雀部の紹介
ファイナル・ファンタジー2のデータを解析してみる
手順書の話 Ver.0.3.0
仕事の捉え方の話 #ssmjp
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
Janog33.5
現場で役に立たないsudoの使い方
tcpdumpとtcpreplayとtcprewriteと他。
KVM+cgroup
jenkinsで遊ぶ
Pakena #9
Sfstudy #2
ひとりsphinx

SSH力をつかおう

  • 1. SSH力を使おう 掘ったトンネルは潜れ!! 2012/12/07 #ssmjp @togakushi 1 / 31
  • 2. おさらい ► 詳しくは前の資料で。 SSH力をつけよう [ http://www.slideshare.net/tohakushi/ssh- 13118950 ] 2 / 31
  • 3. ダイナミックフォワード ► サーバをsocksのプロキシにする ssh -D 1080 ssh-gateway 別のホスト クライアント サーバ 別のホスト Client sshd httpd ブラウザ TCP/1080 別のホスト ブラウザ httpd ブラウザが指定したホスト 3 / 31
  • 4. ローカルポートフォワード ► クライアントからサーバに対してのトンネル ► リモートデスクトップしたい!! ssh –L 3389:windows:3389 ssh-gateway rdesktop localhost インター 踏み台 作業端末 Windowsサーバ ネット SSH-GATEWAY リモートデスクトップ tsclient TCP/3389 ssh sshd (TCP/3389) 4 / 31
  • 5. SOCKS PROXY ► ダイナミックフォワードはSOCKSのPROXYにな る ► SOCKS対応のクライアントならトンネルを潜れ る ひとつ掘ればみんなで共有 対応していないならローカルポートフォワードで必 要なだけ掘る 5 / 31
  • 6. SOCKS対応化してしまえ ► tsocks ► proxychains プログラムが指定したProxyを必ず通るように ネットワークライブラリを割り込ませる ラッパープログラム 6 / 31
  • 7. tsocks(導入) ► yum(EPEL)/apt/Mac Portsで入れれる パッケージを持っていてもよし ソースを持っていってもよし 別システムでビルドしてバイナリとライブラリを持っ ていってもよし 7 / 31
  • 8. tsocks(設定) ► /etc/tsocks.confを読む(決め打ち) 接続先によってproxyを切り替えたり出来る 以下の3行が設定されていればOK server = 127.0.0.1 server_type = 5 server_port = 1080 8 / 31
  • 9. tsocks(ハマリ) ► CentOSで使った時にProxy ENDで名前解決し てくれなかった コンパイルオプション変えてもダメ 原因不明 ► 設定ファイルが/etcにしか置けないのでroot権 限ないと設定できない ► ライブラリも決め打ちのパスしか読まない ► SELinuxは適切にね 9 / 31
  • 10. tsocks(使い方) ► SOCKSのPROXYを指定して、 > tsocks 「PROXYを通したいプログラム」 ► tsocksだけ実行すると対話モードのシェルが立 ち上がり、全部PROXYを通るようになる(らし い) 10 / 31
  • 11. proxychains(導入) ► aptで入るけどVer3 GithubにVer4がある 機能差分は知らない ► RPMは探してない Baseとepelにはない 11 / 31
  • 12. proxychains(設定) ► proxychains.conf 実行時にオプションで渡す proxy_dns [ProxyList] socks5 127.0.0.1 1080 12 / 31
  • 13. proxychains(使い方) ► Proxyの設定をして、 > proxychains4 -f proxychains.conf 「PROXYを~」 を ► ライブラリはバイナリがあるカレントディレクトリ も探してくれる root権限なくても導入できちゃう! 13 / 31
  • 14. 実践 14 / 31
  • 15. 使い方1 HOST 外から:Hostへのsshのみ許可 内から:ESTABLISHEDは許可 RELATEDは許可 HostOnly 他はすべて遮断 sshd Windows ゲスト VM01 VM02 ssh 簡単にリモートデスクトップで繋ぎたい!! 15 / 31 簡単にリモートデスクトップで ぎたい!!
  • 16. 使い方1(従来型) HOST HostOnly sshd VM01 VM02 ssh Local> ssh –L13389:VM01:3389 HOST : Local> ssh –L23389:VM02:3389 HOST 16 / 31
  • 17. 使い方1(従来型) Local> rdesktop localhost:13389 HOST Local> rdesktop localhost:23389 HostOnly sshd VM01 VM02 ssh TCP:127.0.0.1:13389 TCP:127.0.0.1:23389 17 / 31
  • 18. 使い方1 HOST HostOnly sshd VM01 VM02 ssh Local> ssh –D1080 HOST 18 / 31
  • 19. 使い方1 HOST Local> tsocks rdesktop VM01 Local> tsocks rdesktop VM02 HostOnly sshd VM01 VM02 ssh TCP:127.0.0.1:1080 19 / 31
  • 20. 使い方2 HOST 外から:Hostへのsshのみ許可 内から:ESTABLISHEDは許可 RELATEDは許可 HostOnly 他はすべて遮断 sshd Linux ゲスト VM01 VM02 ssh sshd ゲストをインターネットに いでアップデートしたい!! ゲストをインターネットに繋いでアップデートしたい!! アップデートしたい 20 / 31
  • 21. 使い方2 HOST HostOnly sshd VM01 VM02 ssh sshd Local> ssh –D1080 HOST 21 / 31
  • 22. 使い方2 Local> ssh –R10022:localhost:22 – oProxyCommand=’nc –x localhost:1080 %h %p’ VM01 HOST HostOnly sshd VM01 VM02 ssh TCP:127.0.0.1:1080 ※VM01に直接ログインできればなんでもいいよ! に直接ログインできればなんでもいいよ! ログインできればなんでもいいよ sshd 22 / 31
  • 23. 使い方2 HOST HostOnly sshd VM01 VM02 ssh sshd VM01> ssh –D1080 –p10022 localhost 23 / 31
  • 24. 使い方2 HOST HostOnly sshd VM01 VM02 ssh sshd VM01> tsocks yum –y update 24 / 31
  • 25. 使い方3 HOST 外から:Hostへのsshのみ許可 内から:ESTABLISHEDは許可 RELATEDは許可 HostOnly 他はすべて遮断 sshd Windows ゲスト VM01 VM02 ssh sshd Windowsだってアップデートしたい!! だってアップデートしたい!! だってアップデートしたい 25 / 31
  • 26. 使い方3 HOST HostOnly sshd VM01 VM02 ssh sshd Local> ssh –R10022:localhost:22 26 / 31
  • 27. 使い方3 HOST HostOnly sshd VM01 VM02 ssh sshd HOST> ssh –gD1080 –p10022 localhost 27 / 31
  • 28. 使い方3 HOST PROXYの設定 HostOnly sshd VM01 VM02 ssh sshd tsocksとか関係なかった!! とか関係なかった!! とか関係なかった おまけにVM01で名前解決できない!! おまけに で名前解決できない できない!! これは失敗 失敗。 これは失敗。 28 / 31
  • 29. すべてのプログラムで利用可能 ► curl / wget / w3m / firefox / … ► git / hg / svn / … ► yum / apt / … / ssh / rsync / … ► シェルスクリプト / … なんでもOK! なんでも ! 29 / 31
  • 31. ネットワークは用法容量を守って お使い下さい 31 / 31