How does a wireless router send a packet in a way only the requested computer will receive it?

As far as I know, a wireless router communicates with computers on a certain radio channel, and when a computer wants to join a network, it searches all of its channels to find a wireless router transmission, then sets this channel as the default and communicates with the wireless router on that channel.

Now, if we are talking about a wireless network with several computers on it,
I know (based on what I saw on Wireshark on my computer) that any computer can see any packet sent from any of the computers to the wireless router (is this because they are all transmitting at the same channel?),
but I could not see what the wireless router transmitted to the other computers.

How can the wireless router do this?

It's supposed to transmit on the same radio channel, so every computer should be able to catch it (and then decide to keep it or to drop it based on the target IP address), right?


Solution 1:

Maybe your computer is only seeing packets sent to broadcast and multicast addresses. Most PC operating systems are quite noisy, so you'll see frequent broadcasts from them. What you wouldn't see is "unicast" traffic, including all traffic from TCP, e.g. web-browsing.

If you want to intercept non-broadcast traffic on a modern wired switch, you actually need to run an arp-spoof attack. C.f. ettercap.

If you want to intercept non-broadcast traffic on a wireless network, I believe you need to look at configuring a monitor-mode interface. I believe this should work for networks protected by a single password ("PSK", as in WPA2-PSK). It's a bit involved, not supported by all hardware or drivers, and I don't know how difficult it is on Windows.