Actualiser DHCP2.py
This commit is contained in:
@@ -41,12 +41,34 @@ def generate_dhcp_offer(pkt):
|
|||||||
("end")
|
("end")
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
|
|
||||||
sendp(dhcp_offer, iface='eth0', verbose=False) # Remplacez 'eth0' par votre interface
|
sendp(dhcp_offer, iface='eth0', verbose=False) # Remplacez 'eth0' par votre interface
|
||||||
|
|
||||||
|
def generate_dhcp_ack(pkt):
|
||||||
|
if pkt.haslayer(DHCP) and pkt[DHCP].options[0][1] == 3: # Request
|
||||||
|
client_mac = pkt[Ether].src
|
||||||
|
requested_ip = pkt[DHCP].options[2][1] # Adresse IP demandée
|
||||||
|
|
||||||
|
# Construction de la réponse DHCP ACK
|
||||||
|
dhcp_ack = (
|
||||||
|
Ether(dst=client_mac, src=RandMAC()) /
|
||||||
|
IP(src=DHCP_SERVER_IP, dst='255.255.255.255') /
|
||||||
|
UDP(sport=67, dport=68) /
|
||||||
|
BOOTP(op=2, yiaddr=requested_ip, siaddr=DHCP_SERVER_IP, chaddr=client_mac) /
|
||||||
|
DHCP(options=[
|
||||||
|
("message-type", "ack"),
|
||||||
|
("server_id", DHCP_SERVER_IP),
|
||||||
|
("lease_time", LEASE_TIME),
|
||||||
|
("subnet_mask", SUBNET_MASK),
|
||||||
|
("router", ROUTER_IP),
|
||||||
|
("dns", DNS_IP),
|
||||||
|
("end")
|
||||||
|
])
|
||||||
|
)
|
||||||
|
sendp(dhcp_ack, iface='eth0', verbose=False) # Remplacez 'eth0' par votre interface
|
||||||
|
|
||||||
def start_dhcp_server():
|
def start_dhcp_server():
|
||||||
print("Démarrage du serveur DHCP...")
|
print("Démarrage du serveur DHCP...")
|
||||||
sniff(filter="udp and (port 67 or port 68)", prn=generate_dhcp_offer, store=0)
|
sniff(filter="udp and (port 67 or port 68)", prn=lambda x: generate_dhcp_offer(x) if x.haslayer(DHCP) and x[DHCP].options[0][1] == 1 else generate_dhcp_ack(x), store=0)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
start_dhcp_server()
|
start_dhcp_server()
|
||||||
|
|||||||
Reference in New Issue
Block a user