Exemplo n.º 1
0
	def getselfip( self):
		
		pak = DhcpPacket()
		pak.SetOption("op", [1] )
		#pak.SetOption("time_server", [100,100,100,7,6,4,2,1])
		pak.SetOption("yiaddr", [0,0,0,0])
		pak.SetOption("giaddr", [0,0,0,0])
		pak.SetOption("ciaddr", [0,0,0,0])
		pak.SetOption("dhcp_message_type",[1])
		pak.SetOption("hlen",[6])
		pak.SetOption("flags",[1<<7,0] )
#		pak.SetOption("chaddr",[1,2,3,4,5,6,0,0,0,0,0,0,0,0,0,0] )
		pak.SetOption("chaddr",[0, 0x24, 0x2c, 0xf2, 0x01, 0xe2 ] + [ 0 for x in range(10)] )
		pak.SetOption("xid",genxid( ))
		pak.SetOption("htype",[1])
		pak.SetOption("host_name",[ 0x28, 0x27,0x29])
		
		pak.SetOption("request_ip_address", [1,1,1,111] )
		pak.SetOption("parameter_request_list",[1,28,2,3,15,6,12,40,41,42])
		
		#d = dpkt.dhcp.DHCP( chaddr = selfmac, xid=00332,op=dpkt.dhcp.DHCPDISCOVER, opts=( (dpkt.dhcp.DHCP_OPT_REQ_IP,""),) )
		d = pak.EncodePacket()
	
		i = 300  - len(d)
		u = dpkt.udp.UDP( dport=67, sport=68, data=d + "\x00" * i)
		u.ulen = len(u)
		i = dpkt.ip.IP( dst="\xff"*4, src="\x00"*4, data = u, p=dpkt.ip.IP_PROTO_UDP, ttl=128, tos = 0x10 )
		i.len = len(i)
		e = dpkt.ethernet.Ethernet( dst="\xff" * 6, src=macaddr, data = i )
		print `e`
		cap = getcap( lanid )
		p = "ffffffffffff00242ce7f885080045100148000000001011a99600000000ffffffff0044004301343cda0101060087ee9dc00000800000000000000000000000000000000000000c29f201e2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006382536332040101016f350101370a011c02030f060c28292aff0000000000000000000000000000000000000000000000000000000000000000000000000000"
		ps = ""
		for s in range( len(p)/ 2 ):
			ps += eval("'\\x"+p[s*2]+p[s*2+1]+"'") 
		ps = e
		cap.send( str(ps) )
Exemplo n.º 2
0
    1,
    02,
    3,
    4,
    5,
    6,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
])
packet.SetOption("htype", [1])

print packet.str()
p = packet.EncodePacket()

import socket as S
s = S.socket(S.AF_INET, S.SOCK_DGRAM, 0)
s.setsockopt(S.SOL_SOCKET, S.SO_BROADCAST, 1)
s.setsockopt(S.SOL_SOCKET, S.SO_REUSEADDR, 1)

s.bind(('1.1.1.106', 68))

s.sendto(p, ("255.255.255.255", 67))
Exemplo n.º 3
0
 def send_packet(self, packet: DhcpPacket, dest_ip: str, dest_port: int) -> None:
     data = packet.EncodePacket()
     self.socket.sendto(data, (dest_ip, dest_port))