Dúvidas sobre sys.argv [RESOLVIDO]

1. Dúvidas sobre sys.argv [RESOLVIDO]

Guilherme Henrique
Rain

(usa Outra)

Enviado em 16/02/2019 - 14:21h

Estou escrevendo um enumerador geral para o prompt/terminal e estou penando pra usar a função argv do módulo sys. Vou deixar o código pra entenderem melhor o problema mas não precisa ler. Basicamente quero que o usuário passe dois argumentos, um IP INICIAL e um IP FINAL, a tarefa do script é pegar esse bloco de ip e ir checando os serviços. Como faço pra quando esses argumentos forem passados sejam adicionados à lista sys.argv todos os IPS que vão do primeiro ao segundo passados via linha de comando? Como no Nmap
nmap 37.59.174.121 - 37.59.174.220
? Se puderem ajudar, agradeço.

#!/usr/bin/python
import socket
import sys
import re
import os

RED = "\033[1;31m"
BLUE = "\033[1;34m"
CYAN = "\033[1;36m"
GREEN = "\033[0;32m"
RESET = "\033[0;0m"
BOLD = "\033[;1m"
REVERSE = "\033[;7m"

if len(sys.argv)!=2:
print(RED+"\nBem-vindo ao enumerador geral nietzscheano.")
print("A sintaxe utilizada é "+BOLD+"errada."+RED+"Utilize o IP alvo.")
print("Tente : python enumall.py 127.0.0.1")
print("Se você quiser descobrir o ip do site alvo utilize -si\n")
else:
print(GREEN+REVERSE+"\n!-INICIANDO ENUMERADOR GERAL-!\n")
print(RED+BOLD+"---------------------------------------------")
print(RESET+BLUE+"!-VERIFICANDO FTP EM HOST "+sys.argv[1]+"-!\n")
print(RED+BOLD+"---------------------------------------------")
try:
tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp.connect((sys.argv[1],21))
banner = tcp.recv(1024)
banner = banner.decode()
banner = banner.strip("220 ")
print(RED+"!-BANNER CAPTURADO-!\n")
print(REVERSE+banner)
except Exception as e:
print(RED+BOLD+"Não foi possível estabelecer conexão com "+sys.argv[1]+" na porta 21(FTP).")
r1 = input("O serviço FTP está rodando em outra porta? (S/N)")
if r1=="S" or r1=="s":
port = input("Digite a porta : ")
try:
tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp.connect((sys.argv[1],port))
banner = tcp.recv(1024)
banner = banner.decode()
banner = banner.strip("220 ")
print(RED+"!-BANNER CAPTURADO-!\n")
print(REVERSE+banner)
except:
print("Não foi possível estabelecer conexão.")
print("Prosseguindo...")
elif r1=="N" or r1=="n":
print("Prosseguindo...")
print(RED+BOLD+"---------------------------------------------")
print(RESET+BLUE+"!-VERIFICANDO ACESSO REMOTO DE SMB EM HOST "+sys.argv[1]+"-!\n")
print(RED+BOLD+"---------------------------------------------")
try:
tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp.connect((sys.argv[1],21))
banner = tcp.recv(1024)
banner = banner.decode()
banner = banner.strip("220 ")
print(RED+"!-BANNER CAPTURADO-!\n")
print(REVERSE+banner)
except Exception as e:
print(RED+BOLD+"Não foi possível estabelecer conexão com "+sys.argv[1]+" na porta 21(FTP).")
r1 = input("O serviço FTP está rodando em outra porta? (S/N)")
if r1=="S" or r1=="s":
port = input("Digite a porta : ")
try:
tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp.connect((sys.argv[1],port))
banner = tcp.recv(1024)
banner = banner.decode()
banner = banner.strip("220 ")
print(RED+"!-BANNER CAPTURADO-!\n")
print(REVERSE+banner)
except:
print("Não foi possível estabelecer conexão.")
print("Prosseguindo...")



  


2. Re: Dúvidas sobre sys.argv [RESOLVIDO]

Matheus
pylm

(usa Gentoo)

Enviado em 16/02/2019 - 16:38h


ip_i = '37.59.174.121'
ip_f = '37.59.174.220'

for i in range(int(ip_i[-3:]), int(ip_f[-3:])):
print(f'{ip_i[:-3]}{i}')


Ao invés de printar você teria que mandá-los ao sys.argv pra checar.


3. Re: Dúvidas sobre sys.argv [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 17/02/2019 - 22:56h

pesquise os módulos argparse e ipaddress são nativos.

https://docs.python.org/3/library/argparse.html#module-argparse
https://docs.python.org/3/library/ipaddress.html#module-ipaddress






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts