mirror of
https://github.com/Justuser3310/jetwork.git
synced 2025-02-08 09:47:36 +00:00
Защита от подмены версии.
This commit is contained in:
parent
ea25db1c3e
commit
e850abfc60
28
network.py
28
network.py
@ -5,7 +5,7 @@ from requests import get
|
|||||||
import os
|
import os
|
||||||
from random import randint
|
from random import randint
|
||||||
# Работа с архивами
|
# Работа с архивами
|
||||||
from shutil import unpack_archive
|
from shutil import unpack_archive, copytree, rmtree
|
||||||
# Убираем ненужное (../some => some)
|
# Убираем ненужное (../some => some)
|
||||||
from re import compile, sub
|
from re import compile, sub
|
||||||
# Работа с БД и json
|
# Работа с БД и json
|
||||||
@ -165,19 +165,39 @@ def client(port, op = "ping"):
|
|||||||
else:
|
else:
|
||||||
okay = verify(f"verify/{site}.zip", f"verify/{site}.pem", f"verify/{site}.sig")
|
okay = verify(f"verify/{site}.zip", f"verify/{site}.pem", f"verify/{site}.sig")
|
||||||
|
|
||||||
|
# Распаковываем архив с сайтом
|
||||||
|
unpack_archive(f"verify/{site}.zip", f"verify/{site}")
|
||||||
|
|
||||||
|
# Вторичная проверка версии если сайт в кэше
|
||||||
|
# (мало ли какие гении нехорошие появятся)
|
||||||
|
if os.path.exists(f'cached/{site}'):
|
||||||
|
# Версия полученного
|
||||||
|
dest_conf = read(f"verify/{site}/config.json")
|
||||||
|
dest_ver = dest_conf["ver"]
|
||||||
|
# Версия нашего сайта
|
||||||
|
our_conf = read(f"cached/{site}/config.json")
|
||||||
|
our_ver = our_conf["ver"]
|
||||||
|
# Если версия не новее - злоумышленник
|
||||||
|
if our_ver >= dest_ver:
|
||||||
|
print("[!] Обнаружена подмена версии сайта.")
|
||||||
|
# Сохраняем ключ злоумышленника
|
||||||
|
os.replace(f"verify/{site}.pem", f"verify/{site}.pem.FAKE")
|
||||||
|
print(f"[!] Порт злоумышленника: {port}")
|
||||||
|
|
||||||
if okay:
|
if okay:
|
||||||
# Перемещаем файлы, т.к. всё хорошо
|
# Перемещаем файлы, т.к. всё хорошо
|
||||||
os.replace(f"verify/{site}.zip", f"cached/{site}.zip")
|
os.replace(f"verify/{site}.zip", f"cached/{site}.zip")
|
||||||
os.replace(f"verify/{site}.sig", f"cached/{site}.sig")
|
os.replace(f"verify/{site}.sig", f"cached/{site}.sig")
|
||||||
os.replace(f"verify/{site}.pem", f"cached/{site}.pem")
|
os.replace(f"verify/{site}.pem", f"cached/{site}.pem")
|
||||||
# Распаковываем архив с сайтом
|
# Переносим папку с файлами
|
||||||
unpack_archive(f"cached/{site}.zip", f"cached/{site}")
|
copytree(f"verify/{site}", f"cached/{site}")
|
||||||
|
rmtree(f"verify/{site}")
|
||||||
else:
|
else:
|
||||||
print("[!] Обнаружена подмена сайта.")
|
print("[!] Обнаружена подмена сайта.")
|
||||||
# Сохраняем ключ злоумышленника
|
# Сохраняем ключ злоумышленника
|
||||||
os.replace(f"verify/{site}.pem", f"verify/{site}.pem.FAKE")
|
os.replace(f"verify/{site}.pem", f"verify/{site}.pem.FAKE")
|
||||||
print(f"[!] Порт злоумышленника: {port}")
|
print(f"[!] Порт злоумышленника: {port}")
|
||||||
print(f"[!] Ключ злоумышленника сохранён в verify/{site}.pem.FAKE\n")
|
print(f"[!] Ключ (вероятно) злоумышленника сохранён в verify/{site}.pem.FAKE\n")
|
||||||
# Удаляем фальшивые файлы
|
# Удаляем фальшивые файлы
|
||||||
os.remove(f"verify/{site}.zip")
|
os.remove(f"verify/{site}.zip")
|
||||||
os.remove(f"verify/{site}.sig")
|
os.remove(f"verify/{site}.sig")
|
||||||
|
Loading…
Reference in New Issue
Block a user