Advertisement
Guest User

Untitled

a guest
Sep 4th, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from twisted.conch.telnet import TelnetTransport, TelnetProtocol, ECHO
  4. from twisted.internet.protocol import ServerFactory
  5. from twisted.application.internet import TCPServer
  6. from twisted.application.service import Application
  7. from twisted.internet import reactor
  8.  
  9. import logging
  10.  
  11. class TelnetEcho(TelnetProtocol):
  12.  
  13. ip = ''
  14. user = ''
  15. state = ''
  16. line = ''
  17.  
  18. def connectionMade(self):
  19. self.ip = self.transport.getPeer().host
  20. self.transport.write('Username: ')
  21. self.transport.will(ECHO)
  22. self.state = 'User'
  23.  
  24. def dataReceived(self, data):
  25. if self.state != 'Password':
  26. self.transport.write(data)
  27. self.line += data
  28. if data == 'n':
  29. self.processLine()
  30. self.line = ''
  31. return
  32.  
  33. def processLine(self):
  34. if self.state == 'User':
  35. self.user = self.line.strip()
  36. self.transport.write('Password: ')
  37. self.state = 'Password'
  38. elif self.state == 'Password':
  39. print 'IP: ' + self.ip + ', user:' + self.user + ', pass:' + self.line.strip()
  40. logging.info(self.ip + ',' + self.user + ',' + self.line.strip())
  41. self.transport.write('rnIncorrect password or username.rn')
  42. self.transport.write('Username: ')
  43. self.state = 'User'
  44.  
  45. def CreateMyFactory():
  46. factory = ServerFactory()
  47. factory.protocol = lambda: TelnetTransport(TelnetEcho)
  48. return factory
  49.  
  50. if __name__ == "__main__":
  51. logging.basicConfig(filename='telnet.log', format='%(message)s', level=logging.DEBUG)
  52. logging.info('Tmestamp,IP,Username,Password')
  53. for handler in logging.root.handlers[:]:
  54. logging.root.removeHandler(handler)
  55. logging.basicConfig(filename='telnet.log', format='%(asctime)s,%(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=logging.DEBUG)
  56. MyFactory = CreateMyFactory()
  57. reactor.listenTCP(23, MyFactory)
  58. reactor.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement