├── .gitignore ├── LICENSE.md ├── Makefile ├── README.md ├── db.json ├── generate.js ├── get-backports.sh └── index.tpl /.gitignore: -------------------------------------------------------------------------------- 1 | *.komodoproject 2 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # aircrack-db license 2 | 3 | Copyright (c) 2014, Ștefan Rusu 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 10 | * Neither the name of aircrack-db nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all 2 | .DEFAULT: all 3 | 4 | all: 5 | js-beautify -r db.json 6 | ./generate.js 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aircrack-db 2 | 3 | aircrack-db is a list of wireless cards tested with the dual-card injection test and in the field. 4 | 5 | The driver name is the name of the kernel module used by the card. 6 | 7 | The driver version is: 8 | 9 | * The kernel version or the version of the [compat-wireless / compat-drivers / backports](https://backports.wiki.kernel.org/index.php/Main_Page) drivers if they were installed separately. 10 | * The version of the vendor driver if a kernel supplied driver is unavailable. 11 | 12 | All of the kernel provided drivers are mac80211 drivers. Some vendor supplied drivers may use the legacy ieee80211 stack. 13 | 14 | Aircrack-ng's wiki page about [injection testing](http://www.aircrack-ng.org/doku.php?id=injection_test) states: 15 | 16 | > If you get a failure on attack 5, it may still work in the field if the injection MAC address matches the current card MAC address. With some drivers, it will fail if they are not the same. 17 | 18 | If the wireless interface proves to work in my lab for the fragmentation attack, then it is going to be mentioned in a separate column. I use Kali Linux (up to date for each new test) and Aircrack-ng (trunk build) for gatherting most of this information. Otherwise, it is specified as a note. 19 | 20 | Due to the fact that GitHub uses "toiler paper design", hence I can't fit a table without having a horizontal scroll, even on a FullHD screen, the information about the hardware is [here](http://saltwaterc.github.io/aircrack-db). 21 | 22 | The contributions to this project are accepted. Just send a pull request / patch for db.json. This is the file that contains the details about the hardware. 23 | -------------------------------------------------------------------------------- /db.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | "ASUS WL-120g v2", 4 | "WL1 BCM4318", 5 | "pci:14e4:4318", 6 | "Mini PCI", 7 | "b43 / 3.14.5-1", 8 | "OK", 9 | "OK", 10 | "OK", 11 | "OK", 12 | "OK", 13 | "Yes" 14 | ], 15 | [ 16 | "Unex DNUA-93F; May be known as TET-N150 as I boght it from Tehnoetic.", 17 | "AR9002U / WL1 AR9271", 18 | "usb:0cf3:9271", 19 | "USB 2.0", 20 | "ath9k_htc / 3.14.5-1", 21 | "OK", 22 | "OK", 23 | "OK", 24 | "OK", 25 | "Failed", 26 | "Yes" 27 | ], 28 | [ 29 | "ALFA Network AWUS051NH; The 5GHz frequency band is for IEEE 802.11a mode only. It can read beacons sent by IEEE 802.11n/ac networks, but the packet injection won't work for these modes. Packet injection for IEEE 802.11n works only on 2.4GHz. With the 3.17-rc3-1 driver it can capture WPA handshakes on 5GHz, but it can run only as a completely passive attack.", 30 | "WL1 RT2770 / WL2 RT2750", 31 | "usb:148f:2770", 32 | "USB 2.0", 33 | "rt2800usb / 3.18-rc1-1", 34 | "OK", 35 | "OK", 36 | "OK", 37 | "OK", 38 | "Failed", 39 | "Yes" 40 | ], 41 | [ 42 | "Canyon CNP-WF518N1", 43 | "WL1 RT3070", 44 | "usb:148f:3070", 45 | "USB 2.0", 46 | "rt2800usb / 3.14.5-1", 47 | "OK", 48 | "OK", 49 | "OK", 50 | "OK", 51 | "Failed", 52 | "Yes" 53 | ], 54 | [ 55 | "Naked adapter; The adapter was sold without casing. It is only the board with a soldered USB port. While the OUI indicates B-Link as manufacturer, it is unrelated to 8level WUSB-150A.", 56 | "WL1 RTL8188CUS", 57 | "usb:0bda:8176", 58 | "USB 2.0", 59 | "rtl8192cu / 3.14.5-1", 60 | "OK", 61 | "OK", 62 | "OK", 63 | "Failed", 64 | "Failed", 65 | "Untested" 66 | ], 67 | [ 68 | "TP-LINK TL-WN722N", 69 | "AR9002U / WL1 AR9271", 70 | "usb:0cf3:9271", 71 | "USB 2.0", 72 | "ath9k_htc / 3.14.5-1", 73 | "OK", 74 | "OK", 75 | "OK", 76 | "OK", 77 | "Failed", 78 | "Yes" 79 | ], 80 | [ 81 | "ALFA Network AWUS036H", 82 | "WL1 RTL8187", 83 | "usb:0bda:8187", 84 | "USB 2.0", 85 | "rtl8187 / 3.14.5-1", 86 | "OK", 87 | "OK", 88 | "OK", 89 | "OK", 90 | "OK", 91 | "Yes" 92 | ], 93 | [ 94 | "WiFi Link 5100", 95 | "WL1 WG82541MDE / WL2 WG82541RDE", 96 | "pci:8086:4232", 97 | "Mini PCIe", 98 | "iwlwifi / 3.14.5-1", 99 | "OK", 100 | "OK", 101 | "OK", 102 | "OK", 103 | "Failed", 104 | "No" 105 | ], 106 | [ 107 | "Broadcom BCM94360CD; The monitoring mode on Broadcom STA / wl may be enabled via arcane methods described in this document. The card is installed into a MacBook Air 6,2. I'll test it as soon as the UEFI boot is fixed with Kali as it is broken since the OS X 10.9.5 update.", 108 | "WL1 BCM4360", 109 | "pci:14e4:43a0", 110 | "PCIe (non-standard)", 111 | "wl / 6.30.223.248", 112 | "No", 113 | "No", 114 | "No", 115 | "No", 116 | "No", 117 | "No" 118 | ], 119 | [ 120 | "Netis WF2190; The GPL driver supplied by Realtek doesn't seem to implement the monitor mode.", 121 | "WL1 RTL8812AU", 122 | "usb:0bda:8812", 123 | "USB 3.0", 124 | "8812au / 4.3.8", 125 | "No", 126 | "No", 127 | "No", 128 | "No", 129 | "No", 130 | "No" 131 | ], 132 | [ 133 | "Foxconn T77H167.00", 134 | "WL1 AR9287", 135 | "pci:168c:002e", 136 | "Mini PCIe (half)", 137 | "ath9k / 3.14.5-1", 138 | "OK", 139 | "OK", 140 | "OK", 141 | "OK", 142 | "OK", 143 | "Untested" 144 | ], 145 | [ 146 | "OvisLink AirLive X.USB; Tested under Debian 6 with compat-wireless 2.6.39-1 and the ar9170usb driver. The 5GHz support is the same as AWUS051NH. Some patches needed to build this driver. ar9170usb was dropped from the mainline kernel since 3.0 in favour of carl9170 which badly suports monitor mode and only monitor mode. You don't get packet injection with carl9170.", 147 | "AR9001U-2NX / WL 1 AR9170 / WL2 AR9104", 148 | "usb:1b75:9170", 149 | "USB 2.0", 150 | "ar9170usb / 2.6.39-1", 151 | "OK", 152 | "OK", 153 | "OK", 154 | "OK", 155 | "OK", 156 | "Yes" 157 | ], 158 | [ 159 | "WiFi Pineapple Mark V; Both cards are equally capable for injecting packets. While AR9331 supports 802.11n, the RTL8187L interface has better TX power (27 dBm vs. 18 dBm).", 160 | "AR9331 SoC + WL1 / WL2 RTL8187L", 161 | "WiSoC / USB ID 0bda:8187", 162 | "WiSoC / Internal USB 2.0", 163 | "ath9k / rtl8187 / 3.3.8", 164 | "OK", 165 | "OK", 166 | "OK", 167 | "OK", 168 | "OK", 169 | "Untested" 170 | ], 171 | [ 172 | "ASUS WL-500g Premium V2; Tested against an ALFA AWUS036H connected via USB. Running OpenWrt 14.07 (Brarrier Breaker).", 173 | "BCM5354 SoC + WL1", 174 | "WiSoC", 175 | "WiSoC", 176 | "b43 / 3.10.49", 177 | "OK", 178 | "OK", 179 | "OK", 180 | "OK", 181 | "OK", 182 | "Untested" 183 | ], 184 | [ 185 | "Unex DHXA-225; Tested under Trisquel 6 with a trunk build of aircrack-ng.", 186 | "WL 1 AR9485 / BT AR3012", 187 | "pci:168c:0032", 188 | "Mini PCIe (half)", 189 | "ath9k / 3.5.0-44", 190 | "OK", 191 | "OK", 192 | "OK", 193 | "OK", 194 | "OK", 195 | "Untested" 196 | ], 197 | [ 198 | "Lite-On WCBN606AH", 199 | "AR9002WB-1NGCD / WL 1 AR9285", 200 | "pci:168c:002b", 201 | "Mini PCIe (half)", 202 | "ath9k / 3.14.5-1", 203 | "OK", 204 | "OK", 205 | "OK", 206 | "OK", 207 | "OK", 208 | "Untested" 209 | ] 210 | ] -------------------------------------------------------------------------------- /generate.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var fs = require('fs'); 4 | 5 | var db = require('./db.json'); 6 | var tpl = fs.readFileSync('./index.tpl').toString(); 7 | 8 | var i, j, product, split, row, rows = [], cell, cells, notes = [], notes_html = '', index; 9 | 10 | for (i = 0; i < db.length; i++) { 11 | product = db[i]; 12 | row = '\t\t\t\n'; 13 | cells = ''; 14 | for (j = 0; j < product.length; j++) { 15 | cell = product[j]; 16 | 17 | if (j == 0) { 18 | split = cell.split(/;/); 19 | cell = split[0]; 20 | if (split[1]) { 21 | cell += ' ' + (notes.length + 1) + ''; 22 | notes.push(split[1].trim()); 23 | } 24 | } 25 | 26 | if (cell.match(/(?:pci|usb):[0-9a-f]{4}:[0-9a-f]{4}/)) { 27 | split = cell.split(/:/); 28 | if (split[0] === 'pci') { 29 | cell = '' + split[1] + ':' + split[2] + ''; 30 | } 31 | 32 | if (split[0] === 'usb') { 33 | cell = '' + split[1] + ':' + split[2] + ''; 34 | } 35 | } 36 | 37 | if (cell === 'OK' || cell === 'Yes') { 38 | cell = '' + cell + ''; 39 | } 40 | 41 | if (cell === 'Failed' || cell === 'No') { 42 | cell = '' + cell + ''; 43 | } 44 | 45 | if (cell === 'Untested') { 46 | cell = '' + cell + ''; 47 | } 48 | 49 | cells += '\t\t\t\t' + cell + '\n'; 50 | } 51 | row += cells + '\t\t\t'; 52 | rows.push(row); 53 | } 54 | 55 | index = tpl.replace(/%data%/, rows.join('\n')); 56 | 57 | for (i = 0; i < notes.length; i++) { 58 | notes_html += '\t\t\t
' + (i + 1) + ': ' + notes[i] + '
'; 59 | if (i !== notes.length - 1) { 60 | notes_html += '\n\t\t\t
\n'; 61 | } 62 | } 63 | 64 | index = index.replace(/%notes%/, notes_html); 65 | 66 | fs.writeFileSync('../db/index.html', index); 67 | console.log('Written the data to ../db/index.html'); 68 | -------------------------------------------------------------------------------- /get-backports.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | version_dir=$(curl -s "https://www.kernel.org/pub/linux/kernel/projects/backports/stable/?C=N;O=D" | grep 'a href="v' | head -n 1 | cut -d ">" -f 2 | cut -d "/" -f 1) 4 | file=$(curl -s https://www.kernel.org/pub/linux/kernel/projects/backports/stable/$version_dir/ | grep 'a href="backports-' | head -n 1 | cut -d "-" -f 2-3 | cut -d '"' -f 1) 5 | file="backports-$file" 6 | 7 | echo "Latest: $file" 8 | 9 | if [ ! -f ~/Downloads/$file ] 10 | then 11 | curl -LO https://www.kernel.org/pub/linux/kernel/projects/backports/stable/$version_dir/$file 12 | curl -LO https://www.kernel.org/pub/linux/kernel/projects/backports/stable/$version_dir/sha256sums.asc 13 | fi 14 | 15 | cat sha256sums.asc | grep $file > $file.sha256 16 | sha256sum -c $file.sha256 17 | rm -f $file.sha256 18 | 19 | backports_dir=$(basename $file .tar.gz) 20 | cd ~/Downloads 21 | if [ ! -d $backports_dir ] 22 | then 23 | tar -xvf $file 24 | fi 25 | 26 | cd $backports_dir 27 | make defconfig-wifi 28 | core_count=$(cat /proc/cpuinfo | grep processor | wc -l) 29 | ((core_count++)) 30 | make -j $core_count 31 | sudo make install 32 | sudo update-initramfs -u -k all 33 | 34 | echo "Done, reboot to load the backports drivers" 35 | -------------------------------------------------------------------------------- /index.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | aircrack-db tested hardware 8 | 9 | 10 | 11 | 12 | 13 |
14 | The details about the project are available on GitHub. 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | %data% 35 | 36 |
ProductChipset / WLPCI / USB IDInterfaceDriver / Version-0-1 (open)-1 (psk)-2/-3/-4/-6-5/-7-5 in the field
37 | 38 |
39 |
40 | -0 / -1 / -2 / -3 / -4 / -5 / -6 / -7 - the attack modes of aireplay-ng with the results for the card to card injection test 41 |
42 |
43 | 44 |
45 |

Notes:

46 |
47 | %notes% 48 |
49 |
50 | 51 |
52 |

Chipset vendors:

53 |
54 |
14e4 - Broadcom Corporation
55 |
56 |
0cf3 - Atheros Communications, Inc.
57 |
58 |
148f - Ralink Technology, Corp.
59 |
60 |
0bda - Realtek Semiconductor Corp.
61 |
62 |
8086 - Intel Corporation
63 |
64 |
168c - Atheros Communications Inc.
65 |
66 |
1b75 - Ovislink Corp.
67 |
68 |
69 | 70 | 73 | 74 | 75 | 76 | 77 | --------------------------------------------------------------------------------