Я новичок в python, и я пытаюсь использовать библиотеку python pyrad (https://github.com/wichert/pyrad) , чтобы реализовать очень простой сервер Radius для тестирования одного приложения. Единственное, что нужно сделать, это проверить, равен ли пароль 123. Я могу получить пароль, но он запутан. Мне нужно разморозить его. Существует метод PwDecrypt внутри pyrad -> packet -> AuthPacket. Это используется для выполнения этой задачи. Моя проблема заключается в том, что я не знаю, как назвать этот метод для моего кода, как я уже сказал, я новичок в Python.Простой сервер Radius на Python
Это код, я использую, чтобы проверить и получить обфусцированный пароль:
#!/usr/bin/python
from __future__ import print_function
from pyrad import dictionary, packet, server
import logging
logging.basicConfig(filename="pyrad.log", level="DEBUG",
format="%(asctime)s [%(levelname)-8s] %(message)s")
class FakeServer(server.Server):
def _HandleAuthPacket(self, pkt):
server.Server._HandleAuthPacket(self, pkt)
print("")
print("Received an authentication request")
print("Attributes: ")
for attr in pkt.keys():
print("%s: %s" % (attr, pkt[attr]))
###########################################
###########################################
###########################################
###########################################
#HERE I GET THE OBFUSCATED PASSWORD
print("%s" % pkt['Password'])
###########################################
###########################################
###########################################
###########################################
reply = self.CreateReplyPacket(pkt, **{
"Service-Type": "Framed-User",
"Framed-IP-Address": '10.10.10.10',
"Framed-IPv6-Prefix": "fc66::1/64"
})
#reply.code = packet.AccessAccept
reply.code = packet.AccessChallenge
#reply.code = packet.AccessReject
self.SendReplyPacket(pkt.fd, reply)
if __name__ == '__main__':
# create server and read dictionary
srv = FakeServer(dict=dictionary.Dictionary("dictionary"))
# add clients (address, secret, name)
srv.hosts["192.168.0.110"] = server.RemoteHost("192.168.0.110", b"secret", "192.168.0.110")
srv.BindToAddress("")
# start server
srv.Run()
Благодаря
Вероятно, вам придется создать экземпляр класса 'AuthPacket (Packet)'. Проверьте папку 'tests' проекта, в частности' testPacket.py': этот модульный тест содержит пример 'PwDecrypt', который может привести вас к правильному пути. – sal
Спасибо за ваш ответ, я видел его, и он не работает. В этой конкретной строке есть ошибка. – Reckio