Kismet Wireless

Kismet Forums


Posted by:NF6X
Subject:Setuid installation fails to work from regular user account under Snow Leopard
Date:00:08:20 04/02/2010

Hi. I'm trying to make a setuid installation of kismet-2010-01-R1 under Snow Leopard on my MacBook Pro. It compiles and installs OK, as far as I can tell. It appears to work if I run it as root, but when I run it under my regular user account it fails at the point where it tries to enable promiscuous mode, with the following error message:

FATAL: Darwin source en1: Failed to set interface en1 Up+Promisc:
SetIFFlags: interface en1: Operation not permitted

After adding a few debugging printfs, I've determined that PacketSource_Darwin::EnableMonitor() appears to get called by the kismet_server process rather than the kismet_capture process, and thus it fails to set promiscuous mode because it's not running with root privileges. As I would expect, the kismet_capture process runs with euid=0 and the kismet_server process runs with my regular user ID. My regular user account is in the staff group, and kismet_capture's permissions look right to me:

-r-sr-x--- 1 root staff 736768 Feb 3 15:35 /usr/local/bin/kismet_capture*

As far as I can tell, this appears to be a bug. I don't know enough about Kismet's innards to suggest a fix just yet, though. I also don't know whether this is specific to Snow Leopard. I'll be happy to try more experiments and post the results if that will help. I searched the forum briefly, and didn't find anything that appeared to be related to the problem I'm experiencing. At the moment, I don't have Linux or Cygwin build environments handy in which to see whether I have the same problem there.

Thanks in advance for any help or suggestions!

Reply to this message