Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.84 KB | None | 0 0
  1. class tyFTP(ftplib.FTP_TLS):
  2. def __init__(self,
  3. host='',
  4. user='',
  5. passwd='',
  6. acct='',
  7. keyfile=None,
  8. certfile=None,
  9. timeout=60):
  10.  
  11. ftplib.FTP_TLS.__init__(self,
  12. host=host,
  13. user=user,
  14. passwd=passwd,
  15. acct=acct,
  16. keyfile=keyfile,
  17. certfile=certfile,
  18. timeout=timeout)
  19.  
  20. def connect(self, host='', port=0, timeout=-999):
  21. """Connect to host. Arguments are:
  22. - host: hostname to connect to (string, default previous host)
  23. - port: port to connect to (integer, default previous port)
  24. """
  25. if host != '':
  26. self.host = host
  27. if port > 0:
  28. self.port = port
  29. if timeout != -999:
  30. self.timeout = timeout
  31. try:
  32. self.sock = socket.create_connection((self.host, self.port), self.timeout)
  33. self.af = self.sock.family
  34. # add this line!!!
  35. self.sock = ssl.wrap_socket(self.sock,
  36. self.keyfile,
  37. self.certfile,
  38. ssl_version=ssl.PROTOCOL_TLSv1)
  39. # add end
  40. self.file = self.sock.makefile('rb')
  41. self.welcome = self.getresp()
  42. except Exception as e:
  43. print(e)
  44. return self.welcome
  45.  
  46. from ftplib import FTP_TLS
  47. import socket
  48. import ssl
  49.  
  50. class tyFTP(FTP_TLS):
  51. def __init__(self, host='', user='', passwd='', acct='', keyfile=None, certfile=None, timeout=60):
  52. FTP_TLS.__init__(self, host, user, passwd, acct, keyfile, certfile, timeout)
  53. def connect(self, host='', port=0, timeout=-999):
  54. if host != '':
  55. self.host = host
  56. if port > 0:
  57. self.port = port
  58. if timeout != -999:
  59. self.timeout = timeout
  60.  
  61. try:
  62. self.sock = socket.create_connection((self.host, self.port), self.timeout)
  63. self.af = self.sock.family
  64. self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, ssl_version=ssl.PROTOCOL_TLSv1)
  65. self.file = self.sock.makefile('rb')
  66. self.welcome = self.getresp()
  67. except Exception as e:
  68. print e
  69. return self.welcome
  70.  
  71. from ImplicityTLS import tyFTP
  72. server = tyFTP()
  73. server.connect(host="xxxxx", port=990)
  74. server.login(user="yyyy", passwd="fffff")
  75. server.prot_p()
  76.  
  77. from ftplib import FTP_TLS, FTP
  78. import socket
  79. import ssl
  80.  
  81. class IMPLICIT_FTP_TLS(FTP_TLS):
  82. def __init__(self, host='', user='', passwd='', acct='', keyfile=None,
  83. certfile=None, timeout=60):
  84. FTP_TLS.__init__(self, host, user, passwd, acct, keyfile, certfile, timeout)
  85.  
  86. def connect(self, host='', port=0, timeout=-999):
  87. '''Connect to host. Arguments are:
  88. - host: hostname to connect to (string, default previous host)
  89. - port: port to connect to (integer, default previous port)
  90. '''
  91. if host != '':
  92. self.host = host
  93. if port > 0:
  94. self.port = port
  95. if timeout != -999:
  96. self.timeout = timeout
  97. try:
  98. self.sock = socket.create_connection((self.host, self.port), self.timeout)
  99. self.af = self.sock.family
  100. self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile)
  101. self.file = self.sock.makefile('rb')
  102. self.welcome = self.getresp()
  103. except Exception as e:
  104. print (e)
  105. return self.welcome
  106.  
  107. def ntransfercmd(self, cmd, rest=None):
  108. conn, size = FTP.ntransfercmd(self, cmd, rest)
  109. if self._prot_p:
  110. conn = ssl.wrap_socket(conn, self.keyfile, self.certfile)
  111. return conn, size
  112.  
  113. >>> ftps = IMPLICIT_FTP_TLS()
  114. >>> ftps.connect(host='your.ftp.host', port=990)
  115. >>> ftps.login(user="your_user", passwd="your_passwd")
  116. >>> ftps.prot_p()
  117. >>> ftps.retrlines('LIST')
  118.  
  119. import ftplib, os, sys
  120. import socket
  121. import ssl
  122. FTPS_OBJ = ftplib.FTP_TLS
  123.  
  124.  
  125.  
  126. def conn_i_ftps(FTP_Site, Login_Name, Login_Password):
  127. print "Starting IMPLICIT ftp_tls..."
  128. ftps = tyFTP()
  129. print ftps.connect(host=FTP_Site, port=990, timeout=120)
  130. ftps.prot_p()
  131. ftps.login(user=Login_Name, passwd=Login_Password)
  132. print "Logged In"
  133. ftps.retrlines('LIST')
  134. # return ftps
  135.  
  136.  
  137. class tyFTP(FTPS_OBJ):
  138. def __init__(self, host='', user='', passwd='', acct='', keyfile=None, certfile=None, timeout=60):
  139. FTPS_OBJ.__init__(self, host, user, passwd, acct, keyfile, certfile, timeout)
  140.  
  141. def connect(self, host='', port=0, timeout=-999):
  142. if host != '':
  143. self.host = host
  144. if port > 0:
  145. self.port = port
  146. if timeout != -999:
  147. self.timeout = timeout
  148.  
  149. try:
  150. self.sock = socket.create_connection((self.host, self.port), self.timeout)
  151. self.af = self.sock.family
  152. self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile)
  153. self.file = self.sock.makefile('rb')
  154. self.welcome = self.getresp()
  155. except Exception as e:
  156. print e
  157. return self.welcome
  158.  
  159. def makepasv(self):
  160. print port #<---Show passively assigned port
  161. print host #<---Show the non-routable, passively assigned IP
  162. host, port = FTPS_OBJ.makepasv(self)
  163. host = socket.gethostbyname(self.host) #<---- This changes the host back to the original IP that was used for the connection
  164. print 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  165. print host #<----Showing the original IP
  166. return host, port
  167.  
  168. FTP_Site = "ftp.someserver.com"
  169. Login_Name = "some_name"
  170. Login_Password = "some_passwd"
  171.  
  172. conn_i_ftps(FTP_Site, Login_Name, Login_Password)
  173.  
  174. if host.split(".")[0] in (10, 192, 172):
  175. host = socket.gethostbyname(self.host)
  176. .
  177. .
  178. .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement