#!/usr/bin/python # # A raw broadcast system for low level hackers. # # We just send a message to all ip addresses within # a specific network range, using icmp echo packs. # # Needed libs: # # impacket: http://oss.coresecurity.com/projects/impacket.html # ip calc: http://tehmaze.com/code/python/ipcalc/ # import socket from impacket import ImpactPacket from ipcalc import Network message = 'APOIS!__________http://www.apois.mobi/________APOIS!' src = '172.16.22.129' ips = [ '172.16.22.0/22', '172.16.44.0/24' ] class App: ip = None icmp = None s = None iplst = [] def __init__( self ): self.prepare() seq_id = 0 while 1: for ipaddr in self.iplst: ip = self.ip icmp = self.icmp s = self.s seq_id = seq_id + 1 icmp.set_icmp_id( seq_id ) icmp.set_icmp_cksum( 0 ) icmp.auto_checksum = 1 #ip.set_ip_dst( "85.247.250.91" ) ip.set_ip_dst( ipaddr ) s.sendto( ip.get_packet(), ( ipaddr, 0 ) ) print "sent ICMP ECHO to %s" % ( ipaddr ) def prepare( self ): # fill up ip list for entry in ips: for i in Network(entry): self.iplst.append( str( i ) ) ip = self.ip icmp = self.icmp s = self.s ip = ImpactPacket.IP() ip.set_ip_src( src ) ip.set_ip_dst( "127.0.0.1" ) icmp = ImpactPacket.ICMP() icmp.set_icmp_type( icmp.ICMP_ECHO ) icmp.contains( ImpactPacket.Data( message + ( " "*( 156 - len( message ) ) ) ) ) ip.contains( icmp ) s = socket.socket( socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP ) s.setsockopt( socket.IPPROTO_IP, socket.IP_HDRINCL, 1 ) self.ip = ip self.icmp = icmp self.s = s def main(): # start app App() if __name__ == '__main__': main()