日立ソリューションズのセキュリティアナリストが独自の視点でセキュリティ情報をお届けします!

  • facebook
  • twitter
  • bookmark
セキュリティアナリストのつぶやき

日立ソリューションズのセキュリティアナリストが独自の視点でセキュリティ情報をお届けします!

  • ホーム
  • カテゴリ
    • 技術検証
    • Windows
    • インシデントハンドリング
    • 近況報告
    • Write-up
    • CTF
    • トレーニング
    • カンファレンス
    • セキュリティ人材
  • 作者
  • このサイトについて
  • お問合せ
  • ホーム
  • カテゴリ
    • 技術検証
    • Windows
    • インシデントハンドリング
    • 近況報告
    • Write-up
    • CTF
    • トレーニング
    • カンファレンス
    • セキュリティ人材
  • 作者
  • このサイトについて
  • お問合せ
  1. ホーム
  2.  
  3. 技術検証
  4. C2フレームワークSliverについて

技術検証

2020.09.29

C2フレームワークSliverについて

C2フレームワークSliverについて

はじめに

C2フレームワークの1つであるSliverの機能についてすこし検証してみましたので、その結果について報告します。

※本記事に記載の内容や手法を用いることで生じたいかなる問題につきましても、当社は一切の責任を負いかねます。あらかじめご了承ください。

Sliverとは

Sliverは、Go言語で開発されているオープンソースのC2フレームワークの1つです。

Sliverの特徴としては、クライアントとサーバー間の通信チャンネルとしてHTTP、HTTPS、DNSやmTLSが使えることのほか、任意の.NETアセンブリーやDLLをクライアント上で実行可能なことなどがあります。 私は先日受講したHack In The Boxの「- In & Out - Network Exfiltration and Post-Exploitation Techniques [RED Edition]」というトレーニングで初めてSliverを使ったのですが、これらの特徴が面白そうだったので検証してみることにしました。

検証環境

今回の検証は、下記のようなドメイン環境で行いました。

  • ドメイン名:mars.solar.local(MARS)
  • サーバー(OSはすべてMicrosoft Windows Server 2019):
    • mars-dc:ドメインコントローラー
    • phobos
    • deimos
  • ユーザー:
    • Administrator:ドメイン管理者
    • kepler:phobosのローカル管理者
    • phobosadmin:phobosとdeimosのローカル管理者
    • deimosadmin:deimosのローカル管理者。Domain Adminsグループに所属
  • C2サーバー:
    • c2srv(Ubuntu 18.04)

検証のおおまかな手順は下記のとおりです。

  1. Sliverセットアップ
  2. Sliverサーバー起動、初期インプラント生成
  3. 標的情報の取得
  4. .NETアセンブリー実行
  5. SYSTEM権限への昇格
  6. プロセスメモリのダンプ
  7. 他ユーザーのプロセスへの移行
  8. 横展開用インプラント生成

検証結果

Sliverセットアップ

SliverのGitHubからLinux用のサーバーファイル(sliver-server_linux.zip)をc2srvにダウンロードし、展開します。

ubuntu@c2srv:~$ wget https://github.com/BishopFox/sliver/releases/download/v1.0.7-beta/sliver-server_linux.zip
ubuntu@c2srv:~$ unzip sliver-server_linux.zip

また、Windows用実行ファイルを生成するためのMingw-w64が未導入の場合は追加で導入しておきます。

Sliverサーバー起動、初期インプラント生成

c2srv上でSliverサーバー(sliver-server)を起動し、c2srvと標的が通信するためのクライアントモジュール(以下、インプラント)をgenerateコマンドで生成します。 ここでは通信チャンネルとしてmTLSを指定します。 また、オプションとして--skip-symbols(シンボル情報を難読化しない)も指定しています。

Sliverサーバー起動、インプラント生成

mtlsコマンドを実行し、インプラントからのmTLS通信を待ち受けます。

mTLS通信を待ち受け

標的情報の取得

標的(ここではphobos)上でインプラントを実行し、c2srvとの通信を確立します。

c2srvとphobosとの通信を確立

通信を確立後、info、ifconfigコマンドなどを実行してphobosの情報を取得します。

phobosの情報を取得

.NETアセンブリー実行

Sliverでは、外部の.NETアセンブリーをインプラント経由で実行できます。 ここではexecute-assemblyコマンドによってSeatbeltをインプラント経由で実行し、phobosの詳細な情報を取得します。

Seatbeltを実行

SYSTEM権限への昇格

getsystemコマンドを実行し、SYSTEM権限に昇格します。 当該コマンドの実行前に、UACバイパスなどによって管理者権限を取得しておきます。 権限昇格に成功すると、phobosとの新たなセッションが生成されます。

SYSTEM権限への昇格

プロセスメモリのダンプ

procdumpコマンドを実行し、指定したプロセスのメモリをダンプします。 ここでは一例として、Windowsのシステムプロセスの1つであるlsass.exeプロセスのメモリをダンプしています。

プロセスメモリのダンプ

他ユーザーのプロセスへの移行

migrateコマンドを実行し、他ユーザーのプロセスに移行します。 ここでは元々のログインユーザーであるkeplerからphobosadminのプロセスに移行しています。 他ユーザーのプロセスに移行することで、移行先ユーザーの権限で以降のコマンドを実行できます。 プロセス移行に成功すると、phobosとの新たなセッションが生成されます。

他ユーザーのプロセスへの移行

横展開用インプラント生成

1つのホストを軸にして横展開(Pivot)するためのインプラントを生成します。 ここでは名前付きパイプ(named-pipe)経由で、phobosからdeimosへ横展開するためのインプラントを生成します。

まずはnamed-pipeコマンドを実行し、phobos上で名前付きパイプ(ここではhogepipe)を作成します。

名前付きパイプの作成

次にgenerateコマンドを実行し、hogepipeを利用するインプラントを生成します。

名前付きパイプを利用するインプラントの生成

このインプラントを実行したdeimosは、phobosを軸にしてc2srvとの以降の通信を行います。

名前付きパイプでdeimosへPivot

おわりに

本記事では、C2フレームワークの1つであるSliverの主な機能について検証しました。 C2フレームワークの基本的な機能に加え、外部の.NETアセンブリーを実行できる機能がSliverの特色の1つだといえます。

実際のペネトレーションテストでは、標的へのインプラントの転送や、管理者権限への昇格、横展開法など工夫すべき点が多く存在しますが、Sliverはテストの補助ツールとして有効に機能してくれるのではないかと思います。

池内 丈人 池内 丈人

記事の著者

池内 丈人

セキュリティ診断業務に10年間従事後、2016年よりシニアセキュリティアナリストとしてペネトレーションテスト業務に従事。 診断業務開始当初は社内イントラサイトの脆弱性に対する過激な指摘により物議を醸したが、 現在はだいぶおとなしくなっている。好きな周波数は13.56MHz。
GXPN、GAWN、GREM、GPEN、GDAT、GCPN、GCFA、GCFE、CRTE、CARTP、CEH

池内丈人さんの記事をもっと読む

関連記事

RELATED ARTICLE

  • SECCON CTF 2022 予選に参加しました。

    近況報告

    2022.12.26

    SECCON CTF 2022 予選に参加しました。

    池内 丈人

    池内 丈人

  • Azure AD導入環境に対するペネトレーションテストの資格「Certified Az Red Team Professional(CARTP)」を取得しました

    近況報告

    2022.03.09

    Azure AD導入環境に対するペネトレーションテストの資格「Certified Az Red Te...

    池内 丈人

    池内 丈人

  • GIAC Cloud Penetration Tester (GCPN)を取得しました

    近況報告

    2021.08.19

    GIAC Cloud Penetration Tester (GCPN)を取得しました

    池内 丈人

    池内 丈人

  • DHCPv6 spoofingについて

    技術検証

    2021.01.15

    DHCPv6 spoofingについて

    池内 丈人

    池内 丈人

  • セキュリティコンテストを開催しました。

    CTF

    2020.12.09

    セキュリティコンテストを開催しました。

    池内 丈人

    池内 丈人

  • C2フレームワークSliverについて

    技術検証

    2020.09.29

    C2フレームワークSliverについて

    池内 丈人

    池内 丈人

株式会社日立ソリューションズ トータルセキュリティ

カテゴリ

  • 技術検証
  • Windows
  • インシデントハンドリング
  • 近況報告
  • Write-up
  • CTF
  • トレーニング
  • カンファレンス
  • セキュリティ人材

よく読まれている記事

  • C2フレームワークSliverについて
    2020.09.29

    C2フレームワークSliverについて

  • Azure AD導入環境に対するペネトレーションテストの資格「Certified Az Red Team Professional(CARTP)」を取得しました
    2022.03.09

    Azure AD導入環境に対するペネトレーションテストの資格「Certified Az Red Te...

  • GIAC Cloud Penetration Tester (GCPN)を取得しました
    2021.08.19

    GIAC Cloud Penetration Tester (GCPN)を取得しました

  • Certified Red Team Expert(CRTE)を取得しました
    2020.06.29

    Certified Red Team Expert(CRTE)を取得しました

  • SECCON CTF 2021参加報告
    2021.12.20

    SECCON CTF 2021参加報告

新着記事

  • SECCON CTF 2022 予選に参加しました。
    2022.12.26

    SECCON CTF 2022 予選に参加しました。

  • Azure AD導入環境に対するペネトレーションテストの資格「Certified Az Red Team Professional(CARTP)」を取得しました
    2022.03.09

    Azure AD導入環境に対するペネトレーションテストの資格「Certified Az Red Te...

  • SECCON CTF 2021(Case-insensitive)
    2022.01.11

    SECCON CTF 2021(Case-insensitive)

  • SECCON CTF 2021参加報告
    2021.12.20

    SECCON CTF 2021参加報告

  • GIAC Cloud Penetration Tester (GCPN)を取得しました
    2021.08.19

    GIAC Cloud Penetration Tester (GCPN)を取得しました

デジタルトレンドメディア
トップにもどる

© Hitachi Solutions, Ltd. 2020. All rights reserved.

  • 個人情報保護に関して

© Hitachi Solutions, Ltd. 2020. All rights reserved.