A Kill Cord for your Laptop

前言

  • 昨晚在朋友圈看到國外一篇文章利用U盤鎖筆記本電腦,恰好有一個壞的金士頓U盤,因此就折騰了一下。

準備

  • USB設備*1
  • Arch系統*1

走過的坑

  • 由於systemd-udevd帶起來的進程是root權限的,環境裏各類變量也不是當前桌面用戶的,因此在Arch的Wiki裏找到了調用外部腳原本通知用戶桌面。php

  • 最後的解決方案是在udev規則裏導入xpub獲取桌面環境變量,再執行命令鎖屏。linux

  • 執行udevadm monitor --environment --udev監聽USB事件,拔掉U盤,找到MODALIAS,原文裏是找ID_MODEL,我爲何要找呢?由於ID_MODEL是不惟一的,別人的U盤可能也是同樣的,你也不想其餘U盤能夠觸發事件吧。因此找了一個看起來很複雜的字符串,在網上也搜索不到,應該就是惟一的了。git

UDEV  [4042.754116] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0 (usb)
ACTION=remove                                                                       
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0                           
SUBSYSTEM=usb                                                                       
DEVTYPE=usb_interface                                                               
PRODUCT=13fe/5100/110                                                               
TYPE=0/0/0                                                                          
INTERFACE=8/6/80                                                                    
MODALIAS=usb:v13FEp5100d0110dc00dsc00dp00ic08isc06ip50in00                          
SEQNUM=3709                                                                         
USEC_INITIALIZED=2346820353                                                         
adb_user=yes                                                                        
ID_PATH=pci-0000:00:14.0-usb-0:3:1.0                                                
ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_1_0                                            
ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_3_1_0
  • 拿到MODALIAS的值爲usb:v13FEp5100d0110dc00dsc00dp00ic08isc06ip50in00 ,開始寫udev規則
ACTION=="remove", SUBSYSTEM=="usb", ENV{MODALIAS}=="usb:v13FEp5100d0110dc00dsc00dp00ic08isc06ip50in00",IMPORT{program}="/usr/bin/xpub", RUN+="/usr/bin/sudo -u kali-team /usr/bin/xdotool key Super_L+l"
  • 保存爲/etc/udev/rules.d/busKill.rules
  • 執行sudo udevadm control --reload 從新載入規則

測試

reference:

觸發_udev_規則事件的桌面提示github

Introducing BusKill: A Kill Cord for your Laptopide

xdotool測試

xpub.net

相關文章
相關標籤/搜索