comment
IRC Chat
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
  • 2285 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 No tienes permisos para ver links. Registrate o Entra con tu cuenta 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
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado Zentraedi

  • *
  • Underc0der
  • Mensajes: 33
  • Actividad:
    1.67%
  • 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 »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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 No tienes permisos para ver links. Registrate o Entra con tu cuenta 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.

No tienes permisos para ver links. Registrate o Entra con tu cuenta
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: 1366
Último mensaje Mayo 29, 2011, 01:27:34 am
por LucaSthefano
Python phpmyadmin "BruteForce"

Iniciado por linkgl

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

Iniciado por d33k40

Respuestas: 1
Vistas: 2016
Último mensaje Abril 03, 2010, 11:01:59 pm
por Dharok
Python keylogger - by "bLiNdFiR3"

Iniciado por d33k40

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

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1328
Último mensaje Mayo 29, 2011, 01:24:09 am
por LucaSthefano