SORA.SEC WIRED ARCHIVE 网络安全
467 字
2 分钟
wifi安全以及IoT传输杂谈

最近进度

wifi安全以及IoT传输杂谈#

做了一些实验,现在常见的家用WiFi还在大量使用wpa2

几乎没有遇到3的。以下会阐述一些实验性结论和研究

因为自身的设备是支持802.11a协议,在wpa扫描的情况发现是存在一些丢包的

同时,私有地址以及轮替的mac地址追踪是在跨路由的设备追踪的,而不是一直轮替

所以还是可以抓到4次握手的管理帧,并且其实aireplay 的 deauth也是非常方便进行攻击的

在有密码后其实有很多的攻击思路,http是直接明文传输的,

https的话走tls,当然,如果针对个人的话,如果可以拿到tls更好

再者为Iot,这边用的设备只能收点BLS广播

比如说如下示例

#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>
#include <zephyr/bluetooth/bluetooth.h>
#include <zephyr/bluetooth/conn.h>
#include <zephyr/bluetooth/gatt.h>
#include <zephyr/bluetooth/uuid.h>
#define BT_UUID_LAB_SERVICE \
BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(0x12345678, 0x1234, 0x5678, \
0x1234, 0x1234567890ab))
#define BT_UUID_LAB_STATUS \
BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(0x12345679, 0x1234, 0x5678, \
0x1234, 0x1234567890ab))
#define BT_UUID_LAB_COMMAND \
BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(0x1234567a, 0x1234, 0x5678, \
0x1234, 0x1234567890ab))
static uint8_t status;
static ssize_t read_status(struct bt_conn *conn,
const struct bt_gatt_attr *attr,
void *buf, uint16_t len, uint16_t offset)
{
return bt_gatt_attr_read(conn, attr, buf, len, offset,
&status, sizeof(status));
}
static ssize_t write_command(struct bt_conn *conn,
const struct bt_gatt_attr *attr,
const void *buf, uint16_t len,
uint16_t offset, uint8_t flags)
{
if (offset != 0 || len != 1) {
return BT_GATT_ERR(BT_ATT_ERR_INVALID_ATTRIBUTE_LEN);
}
uint8_t command = ((const uint8_t *)buf)[0];
if (command == 0x00 || command == 0x01) {
status = command;
printk("status = %d\n", status);
return len;
}
return BT_GATT_ERR(BT_ATT_ERR_VALUE_NOT_ALLOWED);
}
BT_GATT_SERVICE_DEFINE(lab_service,
BT_GATT_PRIMARY_SERVICE(BT_UUID_LAB_SERVICE),
BT_GATT_CHARACTERISTIC(BT_UUID_LAB_STATUS,
BT_GATT_CHRC_READ,
BT_GATT_PERM_READ, /* 故意:不要求验证 */
read_status, NULL, NULL),
BT_GATT_CHARACTERISTIC(BT_UUID_LAB_COMMAND,
BT_GATT_CHRC_WRITE,
BT_GATT_PERM_WRITE, /* 故意:不要求验证 */
NULL, write_command, NULL)
);
static const struct bt_data ad[] = {
BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR),
BT_DATA_BYTES(BT_DATA_UUID128_ALL,
BT_UUID_128_ENCODE(0x12345678, 0x1234, 0x5678,
0x1234, 0x1234567890ab)),
BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME,
sizeof(CONFIG_BT_DEVICE_NAME) - 1),
};
int main(void)
{
int err = bt_enable(NULL);
if (err) {
printk("Bluetooth init failed: %d\n", err);
return 0;
}
err = bt_le_adv_start(BT_LE_ADV_CONN_FAST_1,
ad, ARRAY_SIZE(ad), NULL, 0);
if (err) {
printk("Advertising failed: %d\n", err);
return 0;
}
printk("BLE-LAB advertising\n");
return 0;
}

对于 nRF Connect 。其实没什么设备可以研究,所以比较局限吧

wifi安全以及IoT传输杂谈
https://ymsora.com/posts/杂谈/
作者
YMsora~X
发布于
2026-07-18
许可协议
Unlicensed
LAST UPDATE / 最后更新