bluespam.py

Per l’uscita di windows vista la microsoft aveva sparso per le grandi citta’ dei cartelloni pubblicitari al cui interno c’era anche un dispositivo bluetooth che inviava dei file. Sul cartellone c’era proprio scritto di accere il bluetooth del proprio cellulare per ricevere la pubblicita’.

Al MI AMI festival dell’anno scorso, a milano, c’erano un paio di cartelloni pubblicitari su cui era scritto che attivando il bluetooth del proprio cellulare si sarebbe ricevuto un mp3 in omaggio.

Visti questi esempi ho avuto una doppia illuminazione per lo spammaggio di mp3, ma la cosa bella e’ che posso farlo in bicicletta o ai concerti usando il mio openmoko.

Ho scritto questo semplice software che non fa altro che fare una scansione continua degli altri device bluetooth che ci sono in giro, poi indaga se i device che trova sono abilitati a ricevere i file, e quindi manda i file.

Il codice non e’ che sia tanto difficile da comprendere, l’unico punto piu’ o meno complesso e quando usa sdptool per capire o meno se ha abilitato il servizio obex push che, insieme a obex ftp, serve per traferire i file. Io ho usato obex push perche’, a quanto pare, per openmoko non esiste compilato il pacchetto obexftp. obex push sta dentro il pacchetto obextool che va ricercato nei repository angstrom.

Inoltre ci ho messo un controllo per vedere se di un certo device, oltre ai servizi, trova anche il canale abbinato a obex push, perche’ altrimenti credo che non funzioni. Perche’ per inviare il file c’e’ bisogno del macaddress del device e del canale, altrimenti credo che non sia capace di distinguire il servizio obex push da un altro… boh… non ho indagato a riguardo anche perche’ non e’ che son pieno di roba bluetooth…

comuqnue ecco il codice:

#!/usr/bin/python

import os
import string
import time

start_bluetooth="echo 1 > /sys/bus/platform/devices/neo1973-pm-bt.0/power_on; echo 0 > /sys/bus/platform/devices/neo1973-pm-bt.0/reset; /etc/init.d/bluetooth start"
os.system(start_bluetooth)

while 1>0:
	dev_scan = "hcitool scan"
	list_dev=os.popen(dev_scan)
	tot= list_dev.read()
	tot= tot.split("n")
	tot.pop(0)
	tot.reverse()
	tot.pop(0)
	for dev in tot:
		dev=dev.split("t")
		get_channel = "sdptool search --bdaddr " + dev[1] + " OPUSH | sed 's/ //g' | grep Channel | cut -d: -f 2"
		channel_scan=os.popen(get_channel)
		channel=channel_scan.read()
		print dev[1] + " " + channel[:-1] + " " dev[2]
		if channel != "":
			send_file="obextool push file.txt " + dev[1] +  " " + channel
			print "sending file to "" + dev[2] + """
			print send_file
			send=os.system(send_file)
	time.sleep(5)

6 Responses to “bluespam.py”

  1. ahimé, alla stazione di roma termini, sotto i cartelloni, c’erano altri bluetooth spammers. Attraversando per andare a prendere la metro ho beccato tre pubblicità sul cellulare.

    La microsoft, almeno, era stata onesta..

  2. Questo succede se si imposta il cellulare per accettare automaticamente i files o sbaglio?

  3. si, altrimenti compare il messaggio sul cellulare se accettare o meno il file.

    sto cercando di capire se c’e’ un modo per vedere se il file e’ stato inviato oppure no

  4. Eh infatti… con tutto il rispetto alfamar, ma mi sembra un po’ incosciente andare in giro col BT acceso e l’accettazione automatica dei file.

  5. lui ha detto che ha beccato e basta, questo potrebbe voler dire che ha ricevuto solo la notifica del tentativo di trasferimento del file :)

  6. Avevo avuto la stessa idea :D Bravo!

Leave a Reply