Add mac changer
This commit is contained in:
parent
7dddcfaa28
commit
7f601e84a7
100
python-ofensivo/13_cambiar_mac_address/macchanger.py
Normal file
100
python-ofensivo/13_cambiar_mac_address/macchanger.py
Normal file
@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Cambiar la dirección mac
|
||||
|
||||
"""
|
||||
|
||||
|
||||
import argparse
|
||||
import re
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
from termcolor import colored
|
||||
|
||||
|
||||
def def_handler(sig, frame):
|
||||
|
||||
print(colored(
|
||||
f'\n[!] Saliendo del programa...', 'red'
|
||||
))
|
||||
|
||||
sys.exit(1)
|
||||
|
||||
signal.signal(signal.SIGINT, def_handler)
|
||||
|
||||
def get_arguments():
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Herramienta para cambiar la dirección mac'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-i', '--interface',
|
||||
dest='interface',
|
||||
help='Nombre de la interfaz de red',
|
||||
required=True
|
||||
)
|
||||
parser.add_argument(
|
||||
'-m', '--mac',
|
||||
dest='new_mac',
|
||||
help='Nueva dirección mac',
|
||||
required=True
|
||||
)
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def is_valid_input(interface, new_mac):
|
||||
|
||||
is_valid_interface = re.match(
|
||||
r'^[w|e][n|l][o]\d{1,2}$', interface
|
||||
)
|
||||
|
||||
is_valid_mac = re.match(
|
||||
r'^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$', new_mac
|
||||
)
|
||||
|
||||
if not is_valid_interface:
|
||||
|
||||
print(colored(
|
||||
f'\n[!] El nombre de la interfaz de red no es válida', 'red'
|
||||
))
|
||||
|
||||
|
||||
if not is_valid_mac:
|
||||
|
||||
print(colored(
|
||||
f'\n[!] La dirección mac no es válida', 'red'
|
||||
))
|
||||
|
||||
|
||||
return is_valid_interface and is_valid_mac
|
||||
|
||||
|
||||
def change_mac_address(interface, new_mac):
|
||||
|
||||
if is_valid_input(interface, new_mac):
|
||||
|
||||
print(colored(
|
||||
f'\n[+] Cambiando la dirección mac de {interface} a {new_mac}', 'blue'
|
||||
))
|
||||
|
||||
subprocess.run(["sudo", "ifconfig", interface, "down"])
|
||||
subprocess.run(["sudo", "ifconfig", interface, "hw", "ether", new_mac])
|
||||
subprocess.run(["sudo", "ifconfig", interface, "up"])
|
||||
|
||||
print(colored(
|
||||
f'\n[+] Dirección mac cambiada correctamente', 'green'
|
||||
))
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
args = get_arguments()
|
||||
change_mac_address(args.interface, args.new_mac)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
main()
|
Loading…
Reference in New Issue
Block a user