Skip to content

Commit

Permalink
Feat: 2FA added + some bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Xeroxxhah committed Feb 26, 2023
1 parent df61247 commit 01cf189
Show file tree
Hide file tree
Showing 19 changed files with 165 additions and 103 deletions.
15 changes: 11 additions & 4 deletions 6u4rd.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import getpass
from core.auth import Auth
from core.mail import Mailer
from core.mail import EmailSender
from core.misc import Misc
from core.version import Version
from pyngrok import ngrok
Expand All @@ -11,7 +11,7 @@
helper = Misc()
dummy_password = 'pass'
auth = Auth(dummy_password)
mailer = Mailer()
mailer = EmailSender()
version = Version()
app_auth = None
email= ''
Expand Down Expand Up @@ -44,7 +44,7 @@
""")
print("Sender's email info: \n")
if ch.lower() == "y":
email = input("Enter your email address: ")
email = input("Enter your dummy email address: ")
password = getpass.getpass("Enter your password: ")
receiver_mail = input("Enter receiver email address: ")
else:
Expand All @@ -64,7 +64,14 @@
integ_path = helper.config["integ_path"] if len(integ_path) == 0 else integ_path
app_sk = secrets.token_hex(16)
print(f"FLASK SECRET KEY: {app_sk}")
helper.config_write(host=host,port=port,code_name=code_name,auth_path=auth_path,integ_path=integ_path,sender_mail=email,sender_password=password,receiver_mail=receiver_mail,app_sk=app_sk)
print('='*20+'2FA Settings'+'='*20)
mfa = input('Do you want to enable 2FA? \n2FA code will be sent to oyu on your receiver email address. (Y/N):')
if mfa.lower() == 'y':
mfa = "True"
else:
mfa = "False"

helper.config_write(host=host,port=port,code_name=code_name,auth_path=auth_path,integ_path=integ_path,sender_mail=email,sender_password=password,receiver_mail=receiver_mail,app_sk=app_sk, mfa_enabled=mfa)
except PermissionError:
print("Run as administrator")
sys.exit(1)
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Don't ask me why i did it (._.).
- check the properties check box.
- in properties check to run with highiest privs and also check the hidden check box.
- Under condition tab uncheck only AC power check box.
- Create another task for run_mailer.vbs with same settings.
- Create another task for mailer.pyw with same settings.



Expand All @@ -66,6 +66,7 @@ Don't ask me why i did it (._.).
- webshell
- geo information
- Take picture from front cam
- 2FA option availabe
- More features coming

### Bug report
Expand Down
46 changes: 46 additions & 0 deletions core/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import pyAesCrypt
import os
from .misc import Misc
import random
from .mail import EmailSender

helper = Misc()

Expand All @@ -10,6 +12,7 @@ class Auth():
def __init__(self,authkey,code_name = helper.gethost()):
self.authkey = authkey
self.isAuthenticated = False
self.is_2fa_enabled = bool(helper.config_parser('2fa_enabled'))
self.code_name = code_name
self.auth_path = helper.config_parser('auth_path')
self.integ_path = helper.config_parser('integ_path')
Expand Down Expand Up @@ -75,3 +78,46 @@ def revoke_authentication(self):
def getcodename(self):
return helper.config_parser('code_name')


class TwoFactorAuth:

def __init__(self):

self.key_size = 6
self.only_nums = False
self.__key = None
self.mailer = EmailSender()

@property
def key(self):
return self.__key


@key.setter
def key(self):
raise ValueError("Cannot set `key`")


def key_gen(self):

if self.only_nums:
key_list = ["".join([str(random.randint(0,9)) for _ in range(self.key_size) ]) for _ in range(self.key_size)]
key = "".join(["".join(key_list[i][random.randint(0,self.key_size - 1)]) for i in range(6)])
self.__key = key
else:
key_list = ["".join([str(random.randint(0,9)) for _ in range(self.key_size) ]) for _ in range(self.key_size)]
key_phase1 = "".join(["".join(key_list[i]) for i in range(6)])
key = hashlib.sha256(key_phase1.encode()).hexdigest()[0:self.key_size]
self.__key = key

def verify_key(self, key):
return (True if hashlib.sha256(key.encode()).hexdigest() == hashlib.sha256(self.__key.encode()).hexdigest() else False)

def send_key(self):
self.mailer.send_email('6u4rd OTP', f'6u4rd OTP: {self.__key}')






69 changes: 20 additions & 49 deletions core/mail.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,56 +4,27 @@


helper = Misc()
class Mailer():


def __init__(self):
self.email = None
self.password = None
self.context = ssl.create_default_context()
self.receiver = None
self.server = "smtp.gmail.com"
self.port = 465
self.ngrok_link = None
self.email_content = EmailMessage()


def sendmail(self):
try:
with smtplib.SMTP_SSL(self.server, self.port, context=self.context) as server:
server.login(self.email, self.password)
self.email_content['To'] = self.receiver
self.email_content['From'] = self.email
self.email_content['Subject'] = self.ngrok_link
self.email_content.set_content = self.ngrok_link
server.sendmail(self.email, self.receiver, self.email_content.as_string())
except Exception as e:
print(e)

import smtplib
from email.message import EmailMessage

def get_values(self):
try:
self.email = helper.config_parser('sender_mail')
self.password = helper.config_parser('sender_password')
self.receiver = helper.config_parser('receiver_mail')
except Exception as e:
print(e)
class EmailSender:
def __init__(self):
self.smtp_server = 'smtp.gmail.com'
self.port = 587
self.username = helper.config_parser('sender_mail')
self.password = helper.config_parser('sender_password')

def send_email(self, subject, body):
msg = EmailMessage()
msg.set_content(body)
msg['Subject'] = subject
msg['From'] = self.username
msg['To'] = helper.config_parser('receiver_mail')

with smtplib.SMTP(self.smtp_server, self.port) as smtp:
smtp.starttls()
smtp.login(self.username, self.password)
smtp.send_message(msg)


def get_ngrok_link(self, link):
self.ngrok_link = link


"""
def set_values(self, email, password, receiver):
try:
with open(self.config, 'w') as mail_config:
mail_config.write(email + "\n")
mail_config.write(password + "\n")
mail_config.write(receiver + "\n")
except Exception as e:
print(e)
"""


7 changes: 5 additions & 2 deletions core/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ def __init__(self) -> None:
"sender_mail":"",
"sender_password":"",
"receiver_mail":"",
"app_sk": secrets.token_hex(16)
"app_sk": secrets.token_hex(16),
"2fa_enabled": "False"
}

def getip(self):
Expand Down Expand Up @@ -52,7 +53,8 @@ def config_write(self,host="0.0.0.0",
,sender_mail='',
sender_password='',
receiver_mail='',
app_sk = secrets.token_hex(16)
app_sk = secrets.token_hex(16),
mfa_enabled = "False"
):
self.config["host"]=host
self.config["port"]=port
Expand All @@ -63,6 +65,7 @@ def config_write(self,host="0.0.0.0",
self.config["sender_password"]=sender_password
self.config["receiver_mail"]=receiver_mail
self.config["app_sk"]=app_sk
self.config["2fa_enabled"]=mfa_enabled

json_object = json.dumps(self.config, indent=4)

Expand Down
34 changes: 34 additions & 0 deletions core/templates/2factor.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!doctype html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>2 Factor Authentication</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
</head>

<body>

<div class="container" style="padding-left: 300px; padding-top: 250px;">
<form class="row g-3" action="{{url_for('twofactorauth')}}" method="POST">
<div class="col-auto">
<label for="staticEmail2" class="visually-hidden">2FA Code</label>
<input type="text" readonly class="form-control-plaintext" id="staticEmail2" value="2FA Code">
</div>
<div class="col-auto">
<label for="inputPassword2" class="visually-hidden">2FA Code</label>
<input type="text" class="form-control" id="inputPassword2" placeholder="2FA code" name="2facode" required>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3">Submit</button>
</div>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
crossorigin="anonymous"></script>
</body>

</html>
2 changes: 1 addition & 1 deletion core/templates/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<body>
<div class="d-flex align-items-center justify-content-center vh-100 bg-primary">
<h1 class="display-1 fw-bold text-white">404</h1>
<h1 class="display-1 fw-bold text-white" style="text-align: center; padding-top: 250px;">Page not found: 404</h1>
</div>
</body>

Expand Down
2 changes: 1 addition & 1 deletion core/templates/500.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<body>
<div class="d-flex align-items-center justify-content-center vh-100 bg-primary">
<h1 class="display-1 fw-bold text-white">500</h1>
<h1 class="display-1 fw-bold text-white" style="text-align: center; padding-top: 250px;">Server Side Error: 500</h1>
</div>
</body>

Expand Down
2 changes: 1 addition & 1 deletion core/templates/console.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('login')}}">6u4rd</a>
<a class="navbar-brand" href="{{url_for('dashboard')}}">6u4rd</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
Expand Down
5 changes: 1 addition & 4 deletions core/templates/geostuff.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@

<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('consolee')}}">6u4rd</a>
<a class="navbar-brand" href="{{url_for('dashboard')}}">6u4rd</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
Expand Down
11 changes: 0 additions & 11 deletions core/templates/index.html

This file was deleted.

5 changes: 1 addition & 4 deletions core/templates/result.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@

<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('consolee')}}">6u4rd</a>
<a class="navbar-brand" href="{{url_for('dashboard')}}">6u4rd</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
Expand Down
5 changes: 1 addition & 4 deletions core/templates/showfcam.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@

<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('consolee')}}">6u4rd</a>
<a class="navbar-brand" href="{{url_for('dashboard')}}">6u4rd</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
Expand Down
5 changes: 1 addition & 4 deletions core/templates/showss.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@

<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('consolee')}}">6u4rd</a>
<a class="navbar-brand" href="{{url_for('dashboard')}}">6u4rd</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
Expand Down
5 changes: 1 addition & 4 deletions core/templates/webshell.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@

<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('consolee')}}">6u4rd</a>
<a class="navbar-brand" href="{{url_for('dashboard')}}">6u4rd</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
Expand Down
Loading

0 comments on commit 01cf189

Please sign in to comment.