2
我是新來的python,我試圖使用python庫pyrad (https://github.com/wichert/pyrad) 來實現一個非常簡單的Radius服務器來測試一個應用程序。 它唯一要做的就是檢查密碼是否等於123. 我能夠獲得密碼,但它是混淆的。我需要Unobfuscate它。 在pyrad - > packet - > AuthPacket中有一種叫做PwDecrypt的方法。 用於完成此任務。 我的問題是,我不知道如何在我的代碼上調用此方法,正如我所說的,我是Python的新手。在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(分組)'的一個實例。檢查項目'tests'文件夾,特別是'testPacket.py':這個單元測試包含一個'PwDecrypt'的例子,它可能會讓你走上正確的道路。 – sal
感謝您的回覆,我看到它,它不工作。該特定行中有一個錯誤。 – Reckio