Update setup.py
This commit is contained in:
parent
f63495093e
commit
2ac6be7b73
1 changed files with 120 additions and 120 deletions
240
setup.py
240
setup.py
|
@ -1,120 +1,120 @@
|
|||
import sqlite3
|
||||
import os
|
||||
import paramiko
|
||||
from typing import Callable
|
||||
|
||||
|
||||
def create_database():
|
||||
conn = sqlite3.connect("config.db")
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS config (
|
||||
tg_bot_token TEXT NOT NULL,
|
||||
chat_id TEXT NOT NULL,
|
||||
cb TEXT NOT NULL,
|
||||
ma INTEGER NOT NULL,
|
||||
delay INTEGER NOT NULL,
|
||||
port INTEGER NOT NULL
|
||||
)
|
||||
""")
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
kf = "server_key.pem"
|
||||
|
||||
|
||||
def generate_rsa_key(key_filename=kf, key_size=2048):
|
||||
key = paramiko.RSAKey.generate(key_size)
|
||||
key.write_private_key_file(key_filename)
|
||||
print(f"Key generated: {key_filename}")
|
||||
print("Goodbye!")
|
||||
|
||||
|
||||
def delete_existing_key():
|
||||
delete_input = input(
|
||||
f"Key {kf} exists. Delete it? (y/n): ").strip().lower()
|
||||
if delete_input == 'y':
|
||||
os.remove(kf)
|
||||
print(f"Key {kf} deleted.")
|
||||
generate_rsa_key()
|
||||
else:
|
||||
print('Okay, goodbye!')
|
||||
|
||||
|
||||
def prompt_for_key_generation():
|
||||
if os.path.exists(kf):
|
||||
delete_existing_key()
|
||||
else:
|
||||
generate_rsa_key()
|
||||
|
||||
|
||||
def handle_user_input():
|
||||
user_input = input("Enter 1 to generate the key or 0 to exit: ").strip()
|
||||
if user_input == "1":
|
||||
prompt_for_key_generation()
|
||||
elif user_input == "0":
|
||||
print("Bye")
|
||||
else:
|
||||
print("Invalid input. Please try again.")
|
||||
|
||||
|
||||
def main1():
|
||||
handle_user_input()
|
||||
|
||||
|
||||
def save_config(tg_bot_token, chat_id, cb, ma, delay, port):
|
||||
conn = sqlite3.connect("config.db")
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("DELETE FROM config")
|
||||
cursor.execute("""
|
||||
INSERT INTO config (tg_bot_token, chat_id, cb, ma, delay, port)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
""", (tg_bot_token, chat_id, cb, ma, delay, port))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
def check(prompt: str, condition: Callable[[int], bool], default=None) -> int:
|
||||
while True:
|
||||
try:
|
||||
raw = input(prompt + ": ").strip()
|
||||
|
||||
if not raw and default is not None:
|
||||
return default
|
||||
|
||||
value = int(raw)
|
||||
if condition(value):
|
||||
return value
|
||||
print("Incorrect value, please try again..")
|
||||
except ValueError:
|
||||
print("You must enter an integer value.")
|
||||
|
||||
|
||||
def main():
|
||||
print("Сonfigure honeypot for yourself:")
|
||||
|
||||
while True:
|
||||
tg_bot_token = input("Telegram Bot Token: ").strip()
|
||||
if not tg_bot_token:
|
||||
print("Token can't be blank")
|
||||
else:
|
||||
break
|
||||
|
||||
chat_id = check("Telegram Chat ID (botapi) ", lambda x: x < 0)
|
||||
cb = "SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10"
|
||||
ma = check("Max Attempts (leave blank for default value of 3)",
|
||||
lambda x: x > 0, default=3)
|
||||
delay = check("Delay (in ms(leave blank for default value of 929)) ",
|
||||
lambda x: x >= 0, default=929)
|
||||
port = check("Port (leave blank for default value of 22)",
|
||||
lambda x: 0 < x < 65536, default=22)
|
||||
|
||||
save_config(tg_bot_token, chat_id, cb, ma, delay, port)
|
||||
print("The configuration is saved, now you can run honeypot")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_database()
|
||||
main()
|
||||
main1()
|
||||
import sqlite3
|
||||
import os
|
||||
import paramiko
|
||||
from typing import Callable
|
||||
|
||||
|
||||
def create_database():
|
||||
conn = sqlite3.connect("config.db")
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS config (
|
||||
tg_bot_token TEXT NOT NULL,
|
||||
chat_id TEXT NOT NULL,
|
||||
cb TEXT NOT NULL,
|
||||
ma INTEGER NOT NULL,
|
||||
delay INTEGER NOT NULL,
|
||||
port INTEGER NOT NULL
|
||||
)
|
||||
""")
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
kf = "server_key.pem"
|
||||
|
||||
|
||||
def generate_rsa_key(key_filename=kf, key_size=2048):
|
||||
key = paramiko.RSAKey.generate(key_size)
|
||||
key.write_private_key_file(key_filename)
|
||||
print(f"Key generated: {key_filename}")
|
||||
print("Goodbye!")
|
||||
|
||||
|
||||
def delete_existing_key():
|
||||
delete_input = input(
|
||||
f"Key {kf} exists. Delete it? (y/n): ").strip().lower()
|
||||
if delete_input == 'y':
|
||||
os.remove(kf)
|
||||
print(f"Key {kf} deleted.")
|
||||
generate_rsa_key()
|
||||
else:
|
||||
print('Okay, goodbye!')
|
||||
|
||||
|
||||
def prompt_for_key_generation():
|
||||
if os.path.exists(kf):
|
||||
delete_existing_key()
|
||||
else:
|
||||
generate_rsa_key()
|
||||
|
||||
|
||||
def handle_user_input():
|
||||
user_input = input("Enter 1 to generate the key or 0 to exit: ").strip()
|
||||
if user_input == "1":
|
||||
prompt_for_key_generation()
|
||||
elif user_input == "0":
|
||||
print("Bye")
|
||||
else:
|
||||
print("Invalid input. Please try again.")
|
||||
|
||||
|
||||
def main1():
|
||||
handle_user_input()
|
||||
|
||||
|
||||
def save_config(tg_bot_token, chat_id, cb, ma, delay, port):
|
||||
conn = sqlite3.connect("config.db")
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("DELETE FROM config")
|
||||
cursor.execute("""
|
||||
INSERT INTO config (tg_bot_token, chat_id, cb, ma, delay, port)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
""", (tg_bot_token, chat_id, cb, ma, delay, port))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
def check(prompt: str, condition: Callable[[int], bool], default=None) -> int:
|
||||
while True:
|
||||
try:
|
||||
raw = input(prompt + ": ").strip()
|
||||
|
||||
if not raw and default is not None:
|
||||
return default
|
||||
|
||||
value = int(raw)
|
||||
if condition(value):
|
||||
return value
|
||||
print("Incorrect value, please try again..")
|
||||
except ValueError:
|
||||
print("You must enter an integer value.")
|
||||
|
||||
|
||||
def main():
|
||||
print("Configure honeypot for yourself:")
|
||||
|
||||
while True:
|
||||
tg_bot_token = input("Telegram Bot Token: ").strip()
|
||||
if not tg_bot_token:
|
||||
print("Token can't be blank")
|
||||
else:
|
||||
break
|
||||
|
||||
chat_id = check("Telegram Chat ID (botapi) ", lambda x: x < 0)
|
||||
cb = "SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10"
|
||||
ma = check("Max Attempts (leave blank for default value of 3)",
|
||||
lambda x: x > 0, default=3)
|
||||
delay = check("Delay (in ms(leave blank for default value of 929)) ",
|
||||
lambda x: x >= 0, default=929)
|
||||
port = check("Port (leave blank for default value of 22)",
|
||||
lambda x: 0 < x < 65536, default=22)
|
||||
|
||||
save_config(tg_bot_token, chat_id, cb, ma, delay, port)
|
||||
print("The configuration is saved, now you can run honeypot")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_database()
|
||||
main()
|
||||
main1()
|
||||
|
|
Loading…
Reference in a new issue