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通道是否開發並是否處於監聽狀態。如果函數拋出異常,說明無法建立連接。
運行結果

