Форум сайта python.su
Всем доброго дня. Пытаюсь разобрать с авторизацией на vnc сервере.
Вот код который имеется.
Код писался согласно порядку отснифаных пакетов через “Акулу”
def check(ip, port): vnc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) vnc.connect((ip, int(port))) vnc_ver = vnc.recv(12) # Тут мы получаем версию vnc vnc.send(vnc_ver) # Тут мы шлем ее обратно vncres = vnc.recv(1024) # Тут получаем методы авторизации, которые поддерживает сервер print(vncres) vnc.send(b'\x02') # Шлем выбранный нами метод vncres = vnc.recv(1024) # тут я получаю такой вот шлак (b'\x0cB*\xe8\xf0c\x11ad\xb7\xe9\xf5\xafp\xd8\xd7'), каждый раз он разный. Вот только снифер мне на этом моменте показывает, как оказалось, это не MD5, а слитно-написанный hex print(vncres) vnc.send(b'1234') #А тут я должен отправить пароль. print(vnc.recv(1024)) check("181.220.204.10", "5900")
Отредактировано Mr.Anderson (Июль 18, 2017 18:20:41)
Офлайн
Mr.Anderson
Как из этого (b'\x0cB*\xe8\xf0c\x11ad\xb7\xe9\xf5\xafp\xd8\xd7') получается MD5 хеш, и что это такое вообще?
>>> import hashlib >>> >>> hashlib.md5(b'abc').hexdigest() '900150983cd24fb0d6963f7d28e17f72' >>> >>> hashlib.md5(b'abc').digest() b'\x90\x01P\x98<\xd2O\xb0\xd6\x96?}(\xe1\x7fr' >>>
Mr.AndersonПароли в открытом виде не отправляются сейчас. На сервер отправляется хеш пароля, сервер берёт хранящийся у него пароль, делает из него хеш и потом сравнивает пришедший хеш с получившимся.
За тем, как мне правильно отправить пароль?
Отредактировано py.user.next (Июль 18, 2017 16:22:12)
Офлайн
py.user.nextЭто где так?
Пароли в открытом виде не отправляются сейчас. На сервер отправляется хеш пароля, сервер берёт хранящийся у него пароль, делает из него хеш и потом сравнивает пришедший хеш с получившимся.
Отредактировано FishHook (Июль 18, 2017 18:02:47)
Офлайн
FishHookВы видимо не много, не внимательно тему прочли. Тут разговор про VNC аутентификацию.
Офлайн