RFCOMM協議
RFCOMM通過藍牙L2CAP協議模擬了RS232串口。這會與另一台設備建立一個藍牙連接,模擬一條普通的串行線纜,使用戶能夠用其他設備控制這一台設備,通過藍牙打電話,發短信,讀取手機通訊錄,以及轉接或上網等功能。
我們編寫一個掃描器,找出允許未經認證建立RFCOMM通道的設備。
代碼
#!/usr/bin/env python #--*--coding=utf-8--*-- #P191 #sudo pip install pybluez import time from bluetooth import * def rfcommCon(addr,port): sock = BluetoothSocket(RFCOMM) try: sock.connect((addr,port)) print "[+] RFCOMM port : " +str(port)+' open' sock.close() except Exception,e: print '[-] RFCOMM port :' +str(port)+' closed' for port in range(1,30): rfcommCon('FE:XX:XX:XX:XX:57',port)
思路:我們創建一個RFCOMM類型的藍牙套接字(BluetoothSocket),接下來我們向 connect() 函數傳遞一個含有MAC地址和目標端口的元組。如果連接成功,即可知道目標RFCOMM通道是否開發並是否處於監聽狀態。如果函數拋出異常,說明無法建立連接。
運行結果