Name (mDNS) Poisoning Attacks inside the LAN
How easy is it for attackers to compromise a LAN?
Answer: Very easy! With a few simple tricks, attackers can easily poison the local name resolution system for the machines inside a given LAN. Network Devices and Apple products are most vulnerable.

It is all due to mDNS. From Wikipedia’s article:
Multicast DNS (mDNS) is a protocol that uses similar APIs to the unicast DNS system but implemented differently. Each computer on the LAN stores its own list of DNS records (e.g. A, MX, PTR, SRV, etc) and when an mDNS client wants to know the IP address of a PC given its name, the PC with the corresponding A record replies with its IP address. Wikipedia
The problem with mDNS is that it is spoof-able. Here is how it works. mDNS enabled client will perform a mDNS query on a multicast address. All clients that listen on that address will respond back with their names. Who ever is the first, wins the race. So for example, if your word processing application decides to print a document by looking for printer.local, attackers can easily send a respond to that DNS query with a forged answer which instructs to look for the printer on a different IP address. Therefore, successfully hijacking/poisoning the local name for a duration of time.
On WiFi networks this type of attack might not be as useful as just picking up the DNS packets from the air and injecting forged DNS responses, but there are many cases where it does prove to be very, very useful. One such case is enumeration. Due to the fact that most devices support mDNS to one degree or another, with a single multicast packet, attackers can learn plethora of useful things such as the available devices’ versions and types, administrative URLs, email addresses of the owners, support information, etc, etc, etc.
I found out that not that many people know about mDNS or even if they have heard of it they have never played with it to realize how insecure it really is. Therefore, I’ve developed a simple mDNS testing tool written in Python. In order to run the tool, you need to install pyBonjour and Bonjour. The tool has a discovery mode which can locate devices in a matter of seconds and also very good spoofing capabilities which can be used for testing how mDNS spoofing attacks work. This tool can also be used for debugging and administrating mDNS. Enjoy!
http://www.gnucitizen.org/blog/mdns_py/mDNS.py

comments
For additional fun and games grab a copy of unicornscan (http://unicornscan.org/) and have a play around with various payloads on port 5353. Strange things often happen ;)
i install pyBonjour and ctypes. i’m running python 2.4 on a mac (leopard). i get this error:
any suggestions?
darcy, I think that you need Python 2.5
i am interested in playing with mDNS, however too bad, i am quite restricted in terms of using tools
hackathology, what do u mean… all you need is Python, byBonjour and Bonjour.