ismaelvc

banner_printer.py

Sep 19th, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.02 KB | None | 0 0
  1. #!/usr/bin/env python33
  2.  
  3.  
  4. '''
  5. Banner printer.
  6.  
  7. >>> help(banner_printer.main)
  8. '''
  9.  
  10.  
  11. import socket
  12.  
  13. from textwrap import dedent as dd
  14.  
  15.  
  16. __author__ = 'Ismael Venegas Castelló'
  17. __license__ = 'GPL'
  18. __email__ = '[email protected]'
  19.  
  20.  
  21. def _return_banner(ip:'str', port:'int'=21):
  22.     try:
  23.         socket.setdefaulttimeout(2)
  24.         with socket.socket() as s:
  25.             s.connect((ip, port))
  26.             banner = s.recv(1024).decode().rstrip()
  27.  
  28.         return banner
  29.  
  30.     except Exception as e:
  31.         print('[-] ERROR: {0}'.format(e))
  32.  
  33.  
  34. def _print_banner(*args):
  35.     for index, ip in enumerate(args):
  36.         banner = _return_banner(ip)
  37.  
  38.         if banner:
  39.             print(dd(
  40.                  '''
  41.                 [+] SUCCESS:
  42.                 {3}Banner => "{0}"
  43.                 {3}ip #{1} => {2}
  44.                 '''.format(banner, index, ip, '\t')))
  45.         else:
  46.             print('\tip #{0} => {1}'.format(index, ip))
  47.  
  48.  
  49. def main(*args):
  50.     '''
  51.    Prints the banner of the provided ips.
  52.  
  53.    Usage:
  54.        banner_printer.main([args])
  55.  
  56.    Examples:
  57.  
  58.        >>> banner_printer.main()    # Runs default test.
  59.  
  60.        >>> banner_printer.main('150.65.7.130')
  61.  
  62.        >>> banner_printer.main('150.65.7.130', '192.168.95.149')
  63.  
  64.        >>> ip_list = ['192.168.95.148',
  65.                       '150.65.7.130',
  66.                       '192.168.95.149',
  67.                       '72.26.195.64']
  68.  
  69.        >>> banner_printer.main(*ip_list)
  70.        [-] ERROR: timed out
  71.                ip #0 => 192.168.95.148
  72.  
  73.        [+] SUCCESS:
  74.                Banner => "220 (vsFTPd 3.0.2)"
  75.                ip #1 => 150.65.7.130
  76.  
  77.        [-] ERROR: timed out
  78.                ip #2 => 192.168.95.149
  79.        [-] ERROR: timed out
  80.                ip #3 => 72.26.195.64
  81.    '''
  82.     if not args:
  83.         args = ['192.168.95.148',
  84.                 '150.65.7.130',
  85.                 '192.168.95.149',
  86.                 '72.26.195.64']
  87.  
  88.     _print_banner(*args)
  89.  
  90.  
  91. if __name__ == '__main__':
  92.     main()
Advertisement
Add Comment
Please, Sign In to add comment