連載
» 2018年04月17日 05時00分 公開

OSS脆弱性ウォッチ(5):ADドメインコントローラーとして動作しているSamba 4.xに関する脆弱性とは (1/3)

連載「OSS脆弱性ウォッチ」では、さまざまなオープンソースソフトウェアの脆弱性に関する情報を取り上げ、解説していく。今回は2018年3月13日に公開されたSambaの脆弱性情報(CVE-2018-1050、CVE-2018-1057)のうち、特にCVE-2018-1057について解説する。

[面和毅,OSSセキュリティ技術の会]

 「OSSセキュリティ技術の会」の面和毅です。本連載「OSS脆弱性ウォッチ」では、さまざまなオープンソースソフトウェア(OSS)の脆弱(ぜいじゃく)性に関する情報を取り上げ、解説しています。

 今回は2018年3月13日に公開されたSambaの脆弱性情報(CVE-2018-1050、CVE-2018-1057)のうち、特にCVE-2018-1057について解説します。今回はPoCを行ったり攻撃コードを作ったりするのではなく、情報の整理を提供しています。そのため、今回の記事を元にして攻撃のシミュレーションを行うなどを期待している方には、あまり参考にならない情報かもしれません。

脆弱性概要

 脆弱性の概要は、「Samba - Security Announcement Archive」(英語)に詳しく載っているので省略します。日本語では、「Sambaに複数の脆弱性(CVE-2018-1050、CVE-2018-1057)」にも情報が載っています。

 手短に言ってしまうと、CVE-2018-1057は『Active Directory(AD)ドメインコントローラーとして動作しているSamba 4.xで、認証されているユーザーにより、(システム管理者を含む)任意のユーザーのパスワードを変更される可能性がある脆弱性』です。

 本稿では、「Samba - Security Announcement Archive」(英語)の内容に従って説明しましょう。実際に検証環境をセットアップします。

検証環境準備

 検証環境として、以下のものを使用します。

  • OS:CentOS 7.4(centos74.jsosug.jp: 172.16.148.142:VMware環境)
  • Samba:samba-4.7.5(https://download.samba.org/pub/samba/stable/からダウンロード)
  • Guest:Windows 7 on VMware Guest

Sambaのインストール

 CentOS 7.4を準備し、OSをインストール後、固定IPにします。/etc/resolv.confのDNSを自分自身に設定する。テストのためにfirewalldは止めておきます(SELinuxは有効のまま)。

 SambaをADのドメインコントローラーとしてセットアップします。ダウンロードしたsambaをコンパイルして使用します。基本的な流れは「Samba AD DC HOWTO」(日本語)を参考にしました。

 ドメインを指定する際の「大文字」「小文字」に気を付けてください(筆者の場合は、kinitの際に間違えてエラーが出ました)。インストール後に表示される情報を参考にしましょう。

 インストールディレクトリは/usr/local/samba以下です(デフォルト)。今回の設定は、図1、2のようになります。

Realm [JSOSUG.JP]: 
 Domain [JSOSUG]: 
 Server Role (dc, member, standalone) [dc]: 
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: 
 DNS forwarder IP address (write 'none' to disable forwarding) [172.16.148.142]: 
Administrator password: 
Retype password: 
--省略--
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=jsosug,DC=jp
Creating CN=MicrosoftDNS,CN=System,DC=jsosug,DC=jp
--省略--
Once the above files are installed, your Samba AD server will be ready to use
Server Role:           active directory domain controller
Hostname:              centos74
NetBIOS Domain:        JSOSUG
DNS Domain:            jsosug.jp
DOMAIN SID:            S-1-5-21-2365253480-2418751724-2227126598
図1 今回のSambaの設定
[root@centos74 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@JSOSUG.JP
Valid starting       Expires              Service principal
2018-03-20T09:02:15  2018-03-20T19:02:15  krbtgt/JSOSUG.JP@JSOSUG.JP
	renew until 2018-03-21T09:02:11
[root@centos74 ~]# /usr/local/samba/bin/samba-tool domain level show
Domain and forest function level for domain 'DC=jsosug,DC=jp'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
図2 klist、domain levelの情報

 テスト用のユーザーを幾つか作ります。/usr/local/samba/bin/samba-toolを用いてユーザーを作成します(図3)。

[root@centos74 ~]# /usr/local/samba/bin/samba-tool user create test1
図3 samba-toolを用いてユーザー「test1」を作成

 スタートアップスクリプト「samba-ad-dc」を作成してsystemd経由で起動・停止・再起動ができるようにします(図4)。

[Unit]
Description=Samba Active Directory Domain Controller
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/samba -D
PIDFile=/usr/local/samba/var/run/samba.pid
ExecReload=/bin/kill -HUP $MAINPID
 
[Install]
WantedBy=multi-user.target
図4 /etc/systemd/system/samba-ad-dc.service を作成
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。