前言

  • 昨晚在朋友圈看到国外一篇文章利用U盘锁笔记本电脑,刚好有一个坏的金士顿U盘,所以就折腾了一下。

准备

  • USB设备*1
  • Arch系统*1

走过的坑

  • 因为systemd-udevd带起来的进程是root权限的,环境里各种变量也不是当前桌面用户的,所以在Arch的Wiki里找到了调用外部脚本来通知用户桌面。

  • 最后的解决方案是在udev规则里导入xpub获取桌面环境变量,再执行命令锁屏。

  • 执行udevadm monitor --environment --udev监听USB事件,拔掉U盘,找到MODALIAS,原文里是找ID_MODEL,我为什么要找呢?因为ID_MODEL是不唯一的,别人的U盘可能也是一样的,你也不想其他U盘可以触发事件吧。所以找了一个看起来很复杂的字符串,在网上也搜索不到,应该就是唯一的了。

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_规则事件的桌面提示

Introducing BusKill: A Kill Cord for your Laptop

xdotool

xpub

A Kill Cord for your Laptop的更多相关文章

  1. ORACLE快速彻底Kill掉的会话

    在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源 ...

  2. SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析

    今天遇到一个很奇怪的情况,发现一个会话异常,这个会话只是在执行一个简单的存储过程,里面使用了链接服务器(Linked Server)查询另外一台服务器数据(存储过程里面没有任何显性事务.UPDATE. ...

  3. Linux 信号(一)—— kill 函数

    世事并无好坏之分,全看我们怎么去想.—— 哈姆雷特·第二幕第二景 ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 #include <signal.h ...

  4. kill命令

    *杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志.   首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:   # kill -pid   注释:标准的kill命令通 ...

  5. Linux学习笔记(11)-kill函数

    明天开始学习kill函数的用法. ---------------------------------------------- kill函数可以用来向指定的进程发送一个指定的信号,在我的理解的来看,就 ...

  6. sql server 查看表的死锁和Kill 死锁进程

    查询出来 select        request_session_id spid,       OBJECT_NAME(resource_associated_entity_id) tableNa ...

  7. 如何保证Service在后台不被kill

    如何保证Service在后台不被kill 相信很多Android开发者在面试过程中会经常被问到“如何保证Service在后台不被kill”这个问题,总结了下一些大神给的答案. 引用知乎Android ...

  8. Linux常用系统管理命令(top、free、kill、df)

    top   -c    #任务管理器 free  -m    #查看内存使用情况 kill  -9   2312 (说明:强制杀死进程 kill  -9  pid ) df   -h    #查看磁盘 ...

  9. linux 批量kill进程

    ps -ef | grep module- | grep -v module-mxm | cut -c 9-15 | xargs kill -9 ps -ef | grep module- 查找关键字 ...

随机推荐

  1. jQuery的主要使用方法

    一.在html中添加jquery,可以使用cdn加载jquery 1.网址:https://www.bootcdn.cn/jquery/ 2.推荐使用3.4左右版本的,建议使用min.js后缀的,mi ...

  2. ES6常用语法,面试应急专用!

    常用的ES6语法 注:该文章为转载,原地址为https://www.jianshu.com/p/fb019d7e8b15   什么是ES6? ECMAScript 6(以下简称ES6)是JavaScr ...

  3. 当用命令导入csv文件时提示错误[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

        安装之后没有my.ini配置文件怎么办,因为自己安装的是zip压缩版的mysql,所以再5.7之后就没有my.ini配置文件,所以有时候需要去自己创建一个叫my.ini的配置文件,但是特别 要 ...

  4. SSG (slow global), TTG (typical global) and FFG (fast global)

    https://semiwiki.com/x-subscriber/clk-design-automation/4481-variation-alphabet-soup/ n response, fo ...

  5. 计算几何-poj2451-HPI

    This article is made by Jason-Cow.Welcome to reprint.But please post the article's address. 题意,求半平面交 ...

  6. Bugku-CTF之求getshell

    Day31 求getshell   http://123.206.87.240:8002/web9/      

  7. 2019 徐州网络赛 center

    题意:n个点,求最小加上几个点让所有点关于一个点(不需要是点集里面的点)中心对称 题解:双重循环枚举,把中点记录一下,结果是n-最大的中点 #include <bits/stdc++.h> ...

  8. next路由跳转监听

    next的路由跳转监听事件 { “routeChangeStart”, "beforeHisroryChange" "routeChangeComplete", ...

  9. 【Python】猜数小游戏

    有点沙雕 temp=input("猜猜我心里想的是哪个数字?") guess=int (temp) if guess==8: print("你是我肚里的蛔虫么?" ...

  10. pwnable.kr-random-Writeup

    MarkdownPad Document *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...