send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Python] IPTools 1.0

  • 4 Respuestas
  • 2103 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Subzer

  • *
  • Underc0der
  • Mensajes: 34
  • Actividad:
    0%
  • Reputación 0
  • Python is my weapon and you are my target.
    • Ver Perfil
« en: Septiembre 12, 2016, 12:45:14 am »
Bueno como tenia mas de 2 o 3 años sin programar y estoy volviendo a esto, trabajé en un par de librerias y he llegado a hacer esto.
Tuve un par de complicaciones pero las logre resolver.
Apartando todo eso, veamos el programa:



IPTools.py
Le coloque el nombre de IP Tools debido a que las herramientas que se encuentran en el programa utilizan la IP [target] que el usuario le indique.
El programa tiene 2 herramientas sencillas que son las siguientes: IP Geo Localization e IP - Port Scanner

IP GeoLocalization:
+ Localizar de donde proviene la IP que se indique
   { País, ciudad, region, zona, zona horaria, zip code, etc.}
   { Crear un log llamado 'ip_log.txt' en el cual queda grabado toda la informacion que se consiga}
   { El log que se crea siempre va a estar actualizandose al final del archivo, manteniendo un formato y colocando la hora en que se escriba}
+ Consigue datos como latitud y longitud del IP proveniente
+ Puede abrirse google maps con el default browser y colocar la ubicacion exacta del IP proveniente, según el usuario lo indique

IP - Port Scanner:
+ Escanear puertos de una IP según un rango establecido por el usuario: {start} {end}
+ Escanear puertos vulnerables de una IP
   { Como puertos vulnerables incluye: Telnet, FTP, SMTP relay, HTTP, Netbios, VPN (PPTP), Firewall, etc.}

Bueno sin más que decir les dejo mi codigo y unas imagenes para que vean el funcionamiento.

Aqui coloque la IP de una proxy de Argentina pero como ven igual indica todos los datos.


Código: Python
  1. #!/usr/bin/env python
  2. # -*- coding utf-8 -*-
  3. # IPTools ver. 1.0
  4. #Coded by Subzer
  5. #For Underc0de.org forum!
  6. #Free use - don't forget to give credits!
  7. import urllib, json
  8. import socket, sys
  9. from datetime import datetime
  10. import os, time
  11.  
  12. def port_scan():
  13.         print '1. Scan ports in range [start]:[end]'
  14.         print '2. Scan vulnerability ports from an IP'
  15.         print '[*] Port Scanner executed, now enter 1 or 2 depending on your choice'
  16.         choice = raw_input('Select option:  ')
  17.        
  18.         if choice == '1':
  19.                 IP = raw_input('{+} Target IP: ')
  20.                 start = input ('{+} Port start range: ')
  21.                 end = input ('{+} Port end range: ')
  22.                 print '\n'+'Connecting to: '+(IP)+' from: '+str(start)+' to: '+str(end)+'\n'
  23.                 s = socket.socket()
  24.                 for p in range (start, end+1):
  25.                         try:
  26.                                 s.connect((IP, p))
  27.                                 print 'Port: '+str(p)+' is [OPEN]'
  28.                         except:
  29.                                 print 'Port: '+str(p)+' is [CLOSED]'
  30.                 s.close()
  31.         elif choice == '2':
  32.                 IP = raw_input('{+} Target IP: ')
  33.                 vulns = {'FTP/File server':21, 'SMTP relay':25, 'HTTP/Web server':80, 'NETBIOS susceptibility':139, 'Microsoft Remote desktop':3389, 'VPN (PPTP) service':1723, 'ORACLE Database':1521, 'Telnet service':23, 'POP3 / Email':110, 'Windows file sharing susceptibility':445, 'Firewall remote login':8080, 'VNC Remote desktop':5900, 'Microsoft SQL server':1433, 'MySQL database':3306}
  34.                 s = socket.socket()
  35.                 for k, v in vulns.items():
  36.                         try:
  37.                                 s.connect((IP, v))
  38.                                 print '\n *** %s' % str(k) + ' on Port: %s is [OPEN] ***' % str(v) + '\n'
  39.                         except:
  40.                                 print '%s' % str(k) + ' on Port: %s is [CLOSED]' % str(v)
  41.                 s.close()
  42.                
  43. def ip_scan():
  44.         url = 'http://freegeoip.net/json/'
  45.         print '\n' + '{+} if IP or Host name value = N/A {Default: localhost}' + '\n'
  46.         button = raw_input('{+}IP or Host name: ')
  47.         r = urllib.urlopen(url+str(button)).read()
  48.         location = json.loads(r)
  49.         location_ip = location['ip']
  50.         print 'Scanning data for: '+str(location_ip)+'\n'
  51.         location_CN = location['country_name']
  52.         print 'Country name: '+str(location_CN)
  53.         location_CC = location['country_code']
  54.         print 'Country code: '+str(location_CC)
  55.         location_city = location['city']
  56.         print 'City: '+str(location_city)
  57.         location_rc = location['region_code']
  58.         print 'Region code: '+location_rc
  59.         location_rn = location['region_name']
  60.         print 'Region name: '+str(location_rn)
  61.         location_tz = location ['time_zone']
  62.         print 'Time zone: '+str(location_tz)
  63.         global location_long
  64.         global location_lati
  65.         location_long = location['longitude']
  66.         print 'Longitude: '+str(location_long)
  67.         location_lati = location['latitude']
  68.         print 'Latitude: '+str(location_lati)
  69.         location_zip = location['zip_code']
  70.         print 'Zip code: '+str(location_zip)
  71.        
  72.         date = datetime.now()
  73.        
  74.         print '\n [+] Creating a log file named {ip_log.txt} - dir: where your iptools is.'
  75.        
  76.         f = open('ip_log.txt', 'a')
  77.         f.write('------ NEW LOG ------\n')
  78.         f.write('DATE: '+str(date)+'\n')
  79.         f.write('IP Log Register for: '+str(location_ip)+'\n')
  80.         f.write('Country name: '+location_CN+'\n')
  81.         f.write('Country code: '+location_CC+'\n')
  82.         f.write('City: '+location_city+'\n')
  83.         f.write('Region code: '+location_rc+'\n')
  84.         f.write('Region name: '+location_rn+'\n')
  85.         f.write('Time zone: '+location_tz+'\n')
  86.         f.write('Longitude: '+str(location_long)+'\n')
  87.         f.write('Latitude: '+str(location_lati)+'\n')
  88.         f.write('Zip code: '+location_zip+'\n')
  89.         f.close()
  90.        
  91.         time.sleep(2)
  92.         print '[+] Successfully created the log file \n'
  93.        
  94.         time.sleep(1)
  95.         print '--- MENU OPTIONS ---'
  96.         print '::: else will exit the program ::: type number.'
  97.         print 'This will open GOOGLE MAPS'
  98.         map = raw_input('[+] Do you want to open where the IP Host locates? Y/n ')
  99.         if map == 'Y':
  100.                 maps()
  101.         elif map == 'y':
  102.                 maps()
  103.         else:
  104.                 sys.exit(0)
  105.  
  106. def maps():
  107.         print 'Opening {default browser}'
  108.         os.system('start https://www.google.co.ve/maps/search/googlemaps/@%s,-%s,15z' % (location_lati, location_long))
  109.        
  110.        
  111.        
  112. def menu():
  113.         print '''
  114.  _____ _____ _______          _    
  115. |_   _|  __ \__   __|        | |    
  116.   | | | |__) | | | ___   ___ | |___
  117.   | | |  ___/  | |/ _ \ / _ \| / __|
  118.  _| |_| |      | | (_) | (_) | \__ \
  119.  IP Geo Localization | Port Scanner
  120. |_____|_|      |_|\___/ \___/|_|___/
  121.  
  122. by Subzer -ver. 1.0  
  123. '''
  124.         print '''usage:
  125.         -g GEO Localization {start IP Geo Localization program}
  126.         -p PORT Scanner {start Port scanner program}
  127.        
  128.         e.g | iptools.py -g / ip.tools.py -p''' + '\n'
  129.  
  130.         if len(sys.argv) != 2:
  131.                 print '[+] Use: {command}'
  132.                 print 'eg. -g or -p'
  133.                 option = raw_input('Type command: ')
  134.                 if option == '-g':
  135.                         ip_scan()
  136.                 elif option == '-p':
  137.                         port_scan()
  138.                 else:
  139.                         sys.exit(2)
  140.         elif sys.argv[1] == '-g':
  141.                 ip_scan()
  142.         elif sys.argv[1] == '-p':
  143.                 port_scan()
  144.         else:
  145.                 print '\n' + '{*} Use a valid command | type -h for help'
  146.                 sys.exit(1)
  147.  
  148. if __name__ == '__main__':
  149.         menu()
  150. else:
  151.         sys.exit(0)



Avisenme que les parece y comenten si ven algun o error o algo que puedo arreglar.
Saludos, Subzer!

PABLO ESCOBAR.

Desconectado cnfs

  • *
  • Underc0der
  • Mensajes: 103
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
    • shad0whack
    • Email
  • Twitter: https://twitter.com/cmind33
« Respuesta #1 en: Septiembre 12, 2016, 02:07:42 am »
Esta bien, sencillo pero util en lo que intenta hacer. Lo unico que haria como comentario es que intentes buscar una alternativa a la web de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ya que si esa web se cae, el 50% de la funcionalidad del programa pierde sentido. Deberias tener una de backup alternativa.

Saludos.
Security Researcher / Reverse Engineer
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Desconectado Zentraedi

  • *
  • Underc0der
  • Mensajes: 26
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Septiembre 12, 2016, 10:39:35 am »
Muy bueno, estaba queriendo hacer algo igual, gracias por compartir. Saludos.

Desconectado Subzer

  • *
  • Underc0der
  • Mensajes: 34
  • Actividad:
    0%
  • Reputación 0
  • Python is my weapon and you are my target.
    • Ver Perfil
« Respuesta #3 en: Septiembre 12, 2016, 06:56:27 pm »
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Esta bien, sencillo pero util en lo que intenta hacer. Lo unico que haria como comentario es que intentes buscar una alternativa a la web de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ya que si esa web se cae, el 50% de la funcionalidad del programa pierde sentido. Deberias tener una de backup alternativa.

Saludos.

Gracias bro, lo tengo en cuenta para la proxima version si es que la llego a hacer.
Estoy tratando de hacer diferentes cosas pero ya hay muchas herramientas que existen en python y crear una desde cero y que sea algo innovador me es dificil pero buee, ando aprendiendo y poco a poco ire haciendo cosas!
Saludos,
Subzer.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Muy bueno, estaba queriendo hacer algo igual, gracias por compartir. Saludos.

Gracias, me alegra que te haya gustado. Si tienes ideas o algo que podamos desarrollar estoy a la orden!
Saludos,
Subzer.

PABLO ESCOBAR.

Desconectado stegic

  • *
  • Underc0der
  • Mensajes: 10
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Septiembre 13, 2016, 11:04:03 am »
Excelente herramienta! Muy util y sencilla.

Congratz!!

 

¿Te gustó el post? COMPARTILO!



[Código] Yardas a metros - Metros a yardas [Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1205
Último mensaje Mayo 29, 2011, 01:27:34 am
por LucaSthefano
Python keylogger - by "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 0
Vistas: 1807
Último mensaje Abril 07, 2010, 03:30:22 am
por d33k40
[Código] Entero / No Entero [Ejercicio - Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1172
Último mensaje Mayo 29, 2011, 01:24:09 am
por LucaSthefano
Python phpmyadmin "BruteForce"

Iniciado por linkgl

Respuestas: 2
Vistas: 2264
Último mensaje Agosto 19, 2011, 12:14:37 pm
por linkgl
Python Trojan - By "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 1
Vistas: 1828
Último mensaje Abril 03, 2010, 11:01:59 pm
por Dharok