Commit 991e93a7 authored by Raphaël Hertzog's avatar Raphaël Hertzog

Imported Upstream version 2016.01.R1

parent 2dbbb23d
Kismet 2013-03-R1
Kismet 2016-01-R1
Mike Kershaw <dragorn@kismetwireless.net>
http://www.kismetwireless.net
......@@ -38,11 +38,11 @@ http://www.kismetwireless.net
2a. Upgrading from recent versions
2009-06-R1 has changed some basic behavior when using multi-vap capable
2009-06-R1 has changed some basic behavior when using multi-vif capable
devices (ie, modern in-kernel Linux drivers). Whenever possible, it
will create a new VAP and reconfigure it, instead of modifying the
will create a new VIF and reconfigure it, instead of modifying the
existing interface. To preserve the old behavior, specify
'forcevap=false' on the source line.
'forcevif=false' on the source line.
2b. Upgrading from Kismet-old versions
......@@ -286,34 +286,30 @@ http://www.kismetwireless.net
which has encountered an error. This behavior can
be disabled if the user wants the source to remain
closed.
vap=interface Create a secondary named interface for capture
vif=interface Create a secondary named interface for capture
instead of trying to change the mode of the
existing interface. This is primarily only for use
by drivers using the mac80211 interface under
Linux. Users wishing to do Kismet+Managed or
Kismet+Injection should create a vap.
forcevap=t|f True/False. Force creation of a monitor-mode VAP
Kismet+Injection should create a VIF.
forcevif=t|f True/False. Force creation of a monitor-mode VIF
when possible (all Linux mac80211 based drivers
support this). Default is "true", a VAP will be
support this). Default is "true", a VIF will be
made of the name '<interface>mon', ie 'wlan0mon',
'wlan1mon' and capture will be done with this VAP.
'wlan1mon' and capture will be done with this VIF.
This behavior can be forced OFF with
'forcevap=false'.
wpa_scan=time When using a mac80211 VAP, Kismet can use
'forcevif=false'.
wpa_scan=time When using a mac80211 VIF, Kismet can use
wpa_supplicant on a managed interface to trigger
hardware assisted scans, enabling some view of the
rest of the spectrum without significantly
disrupting operation of the managed VAP. Suggested
disrupting operation of the managed VIF. Suggested
time for scan intervals is 15 seconds.
validatefcs=t|f True/False. Kismet normally will not bother trying
to validate the FCS checksum of incoming packets
because most drivers only report valid frames in
the first place. Packet sources which report
invalid frames by default will enable this option
automatically. If the drivers have been manually
configured to report invalid packets, this should
be specified to prevent Kismet from processing
broken packets.
validatefcs=t|f True/False. Kismet will normally attempt to validate
checksums to ensure the frames received are valid.
Many drivers return bogus frames in monitor mode.
If you want to process all packets regardless of
apparent validity, set validatefcs=false.
fcs=true|false Force handling of FCS bytes on a packet source.
Default is "false", which implies "native FCS
handling". Packet sources which include per-packet
......@@ -322,10 +318,10 @@ http://www.kismetwireless.net
sources such as pcapfile, reading raw 802.11 pcap
files with no headers, may need this turned on for
proper behavior.
fcsfail=true Force a mac80211 VAP to report packets with a known
fcsfail=true Force a mac80211 VIF to report packets with a known
bad FCS (packet checksum). This is only available
on Linux and only when using mac80211 drivers.
This MUST come after a 'vap=' option or it will be
This MUST come after a 'vif=' option or it will be
ignored. Enabling 'fcsfail' will enable
'validatefcs' automatically. The 'fcsfail' option
should only be enabled when logging to PPI; Logging
......@@ -336,7 +332,7 @@ http://www.kismetwireless.net
interface will become unresponsive if capture is
stopped and resume. This option is for specific
expert use only, when in doubt, leave it alone.
plcpfail=true Force a mac80211 VAP to report packets which do not
plcpfail=true Force a mac80211 VIF to report packets which do not
pass the PLCP check (if possible on that
interface). The same warnings and conditions as
'fcsfail' apply. This option is for specific,
......@@ -354,10 +350,10 @@ http://www.kismetwireless.net
Capture on wlan0, 802.11b channels only even if it supports 5GHz
ncsource=wlan0:channellist=IEEE80211b
Create a VAP on wlan0 named wlan0mon and use wpa_supplicant to
Create a VIF on wlan0 named wlan0mon and use wpa_supplicant to
give us some view of other channels, while remaining associated to a
network:
ncsource=wlan0:vap=wlan0mon,hop=false,wpa_scan=15
ncsource=wlan0:vif=wlan0mon,hop=false,wpa_scan=15
Read from a pre-recorded pcap file:
ncsource=/home/foo/old.pcap
......@@ -438,22 +434,22 @@ http://www.kismetwireless.net
Madwifi (Linux):
Madwifi-ng has been largely deprecated by ath5k/ath9k for normal
usage. These drivers support multi-vap more cleanly via the mac80211
usage. These drivers support multi-VIF more cleanly via the mac80211
layer and do not, typically, have the same problems historically
present in madwifi.
Madwifi-ng sources can be specified as either the VAP (ath0, mon0,
Madwifi-ng sources can be specified as either the VIF (ath0, mon0,
etc) or as the control interface (wifi0, wifi1). However, IF THE
CONTROL INTERFACE IS SPECIFIED, Kismet cannot extract the list of
supported channels, and will default to IEEE80211b channels.
Madwifi-ng continues to have problems with multi-vap and initial vap
creation. It is recommended that the initial VAP creation be turned off
Madwifi-ng continues to have problems with multi-VIF and initial VIF
creation. It is recommended that the initial VIF creation be turned off
by the module parameter "autocreate=none" when loading ath_pci. If the
madwifi monitor vap stops reporting packets soon after being created,
madwifi monitor VIF stops reporting packets soon after being created,
this is often the cause.
Combining managed and monitor VAPs appears to still not work well.
Combining managed and monitor VIFs appears to still not work well.
RT28xx (Linux)
......@@ -1423,25 +1419,25 @@ http://www.kismetwireless.net
stopping the networking services for your interface ('ifdown
wlan0' for example). In some specific configurations, these
alerts may be spurious (dhcp and wpa_supplicant alerts on a
multi-vap mac80211 interface doing sta+rfmon with a
multi-VIF mac80211 interface doing sta+rfmon with a
wpa_supplicant scanning option, for example).
PROBLEM: Kismet complains about multiple VAPs under madwifi-ng
FIX: Destroy the other VAPs, or ignore this warning if there are no
PROBLEM: Kismet complains about multiple VIFs under madwifi-ng
FIX: Destroy the other VIFs, or ignore this warning if there are no
run-time failures. Madwifi-ng has historically had
significant problems with multi-vap and rfmon (for example, a
STA VAP and a RFMON VAP).
significant problems with multi-VIF and rfmon (for example, a
STA VIF and a RFMON VIF).
PROBLEM: Shortly after starting on madwifi-ng, Kismet stops reporting
packets.
FIX: There appears to be a race condition in madwifi-ng startup
where an autocreated VAP causes errors in future VAPs. A
where an autocreated VIF causes errors in future VIFs. A
temporary fix is to reload the madwifi-ng driver before
starting Kismet, with the 'autocreate=none' modparm ('rmmod
ath_pci; modprobe ath_pci autocreate=none'), a more permanent
fix is to put this in the default module parameters for
ath_pci and make the necessary changes to your startup scripts
to create a managed VAP on startup.
to create a managed VIF on startup.
PROBLEM: './configure' is unable to find libpcap, wext, ncurses, pcre,
or some other library when building from source.
......
......@@ -124,6 +124,9 @@ Alertracker::Alertracker(GlobalRegistry *in_globalreg) {
exit(1);
}
// A reasonable starting number if none is specified
num_backlog = 5;
if (globalreg->kismet_config->FetchOpt("alertbacklog") != "") {
int scantmp;
if (sscanf(globalreg->kismet_config->FetchOpt("alertbacklog").c_str(),
......@@ -284,11 +287,12 @@ int Alertracker::RaiseAlert(int in_ref, kis_packet *in_pack,
arec->total_sent++;
arec->time_last = time(0);
alert_backlog.push_back(info);
if ((int) alert_backlog.size() > num_backlog) {
delete alert_backlog[0];
alert_backlog.erase(alert_backlog.begin());
}
// Send it to the network as an alert
globalreg->kisnetserver->SendToAll(_NPM(PROTO_REF_ALERT), (void *) info);
// Send the text info
globalreg->messagebus->InjectMessage((info->header + " " + info->text),
MSGFLAG_ALERT);
// Try to get the existing alert info
if (in_pack != NULL) {
......@@ -302,15 +306,19 @@ int Alertracker::RaiseAlert(int in_ref, kis_packet *in_pack,
}
// Attach it to the packet
acomp->alert_vec.push_back(info);
acomp->alert_vec.push_back(new kis_alert_info(info));
}
// Send it to the network as an alert
globalreg->kisnetserver->SendToAll(_NPM(PROTO_REF_ALERT), (void *) info);
// Send the text info
globalreg->messagebus->InjectMessage((info->header + " " + info->text),
MSGFLAG_ALERT);
// Queue us into the alert tree (or not)
if (num_backlog == 0) {
delete info;
} else {
alert_backlog.push_back(info);
if ((int) alert_backlog.size() > num_backlog) {
delete alert_backlog[0];
alert_backlog.erase(alert_backlog.begin());
}
}
return 1;
}
......
......@@ -42,11 +42,31 @@ public:
tm.tv_usec = 0;
channel = 0;
// We do NOT self-destruct because we get cached in the alertracker
// for playbacks. It's responsible for discarding us
self_destruct = 0;
// We DO self destruct, because now we're a copy of the info - otherwise the
// alertracker caching us (or not) would create problems. This is a change
// from previous behavior.
self_destruct = 1;
}
kis_alert_info(kis_alert_info *ai) {
this->header = ai->header;
this->tm.tv_sec = ai->tm.tv_sec;
this->tm.tv_usec = ai->tm.tv_usec;
this->bssid = ai->bssid;
this->source = ai->source;
this->dest = ai->dest;
this->other = ai->other;
this->channel = ai->channel;
this->text = ai->text;
this->self_destruct = ai->self_destruct;
}
string header;
struct timeval tm;
mac_addr bssid;
......
/* config.h.in. Generated from configure.in by autoheader. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
......
......@@ -5012,7 +5012,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
......@@ -5058,7 +5058,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
......@@ -5082,7 +5082,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
......@@ -5127,7 +5127,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
......@@ -5151,7 +5151,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
......@@ -8735,7 +8735,7 @@ if test "$havenetlink" = "yes" -a "$pcap" = "yes"; then
echo
echo "*** WARNING ***"
echo "In some situations, libpcap links to libnl. If Kismet finds a newer "
echo "libbl, it can cause an immediate segfault when starting Kismet. "
echo "libnl, it can cause an immediate segfault when starting Kismet. "
echo
echo "It is very hard to test at compile time (and run-time changes can "
echo "cause it to break). If you experience immediate segfaults when "
......@@ -8745,5 +8745,3 @@ if test "$havenetlink" = "yes" -a "$pcap" = "yes"; then
echo "./configure --with-netlink-version=1"
echo
fi
# Process this file with autoconf to produce a configure script.
AC_INIT
m4_include([m4/ax_pthread.m4])
AC_CONFIG_SRCDIR([kismet.h])
AC_PREREQ(2.57)
......@@ -215,8 +218,8 @@ AC_DEFINE_UNQUOTED(DATA_LOC, "$DATA_DIR", system data directory)
AC_C_BIGENDIAN
# Checks for header files.
AC_CHECK_HEADERS([errno.h stdlib.h string.h sys/socket.h sys/time.h sys/wait.h unistd.h sys/types.h netdb.h],
AC_DEFINE(HAVE_SYSHEADERS, 1, System headers are there),
AC_CHECK_HEADERS([errno.h stdlib.h string.h sys/socket.h sys/time.h sys/wait.h unistd.h sys/types.h netdb.h],
AC_DEFINE(HAVE_SYSHEADERS, 1, System headers are there),
AC_MSG_ERROR(Missing required system header))
AC_CHECK_HEADERS([getopt.h])
......@@ -270,7 +273,7 @@ AC_CHECK_HEADER([stdint.h],
if test "$stdint" = "no"; then
inttypes=no
AC_CHECK_HEADER([inttypes.h],
AC_DEFINE(HAVE_INTTYPES_H, 1, inttypes.h is present) inttypes=yes,
AC_DEFINE(HAVE_INTTYPES_H, 1, inttypes.h is present) inttypes=yes,
inttypes=no)
fi
......@@ -311,10 +314,16 @@ AC_SYS_LARGEFILE
# Do we need to use -ldl?
usedl=0
AC_CHECK_LIB([dl], [dlopen],
AC_CHECK_LIB([dl], [dlopen],
usedl=1,
AC_MSG_WARN([libdl doesn't seem to be needed on this system]))
# We need threads
AX_PTHREAD(pthread=1,
AC_MSG_ERROR([pthreads are needed and are not available]))
KSLIBS="$KSLIBS $PTHREAD_LIBS"
CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS"
if test "$usedl" -eq 1; then
LIBS="$LIBS -ldl"
CLIENTCLIBS="$CLIENTCLIBS -ldl"
......@@ -324,12 +333,12 @@ fi
# AC_CHECK_HEADER([sqlite3.h],
# AC_DEFINE(HAVE_SQLITE_H, 1, sqlite3.h is present) sqlite3=yes,
# sqlite3=no)
#
#
# if test "$sqlite3" = yes; then
# AC_CHECK_LIB([sqlite3], [sqlite3_open],
# AC_CHECK_LIB([sqlite3], [sqlite3_open],
# KSLIBS="$KSLIBS -lsqlite3", sqlite3=no)
# fi
#
#
# if test "$sqlite3" != yes; then
# AC_MSG_WARN(Failed to find sqlite3 runtime resuming will be disabled)
# fi
......@@ -350,7 +359,7 @@ CFLAGS="$OCFL"
if test "$needlibm" = "yes"; then
AC_MSG_RESULT([no])
# Do we need to use -lm?
AC_CHECK_LIB([m], [pow],
AC_CHECK_LIB([m], [pow],
LIBS="$LIBS -lm",
AC_MSG_ERROR([libm is needed and is not available]))
else
......@@ -361,12 +370,12 @@ fi
# We need to swap to the g++ compiler here
oCC="$CC"
CC="$CXX"
AC_CHECK_LIB([uClibc++], [main],
AC_CHECK_LIB([uClibc++], [main],
foundcxxl="uclibc" CXXLIBS="$CXXLIBS -luClibc++")
# Do we use uclibc++?
if test "$foundcxxl"x == "x"; then
AC_CHECK_LIB([stdc++], [main],
AC_CHECK_LIB([stdc++], [main],
foundcxxl="stdc++" CXXLIBS="$CXXLIBS -lstdc++")
fi
......@@ -413,7 +422,7 @@ termcontrol="none";
if test "$wantclient" = "yes"; then
OLIBS="$LIBS"
AC_CHECK_LIB([ncurses], [initscr],
AC_CHECK_LIB([ncurses], [initscr],
AC_DEFINE(HAVE_LIBNCURSES, 1, NCurses terminal lib) \
foundlcurses=yes curseaux="-lncurses" termcontrol="ncurses" )
......@@ -439,7 +448,7 @@ if test "$wantclient" = "yes"; then
LIBS="$LIBS $curseaux"
AC_CHECK_LIB([panel], [new_panel],
AC_DEFINE(HAVE_LIBPANEL, 1, Panel terminal lib)
AC_DEFINE(HAVE_LIBPANEL, 1, Panel terminal lib)
curseaux="$curseaux -lpanel",
AC_MSG_ERROR(Failed to find libpanel extension to curses/ncurses. Install it, or disable building the Kismet client with --disable-client. Disabling the client is probably not something you want to do normally.))
......@@ -474,7 +483,7 @@ else
AC_CHECK_HEADERS(sys/pstat.h,have_pstat_h="yes",have_pstat_h="no")
if test "$have_pstat_h" = "yes"; then
AC_CHECK_FUNCS(pstat)
if test "$ac_cv_func_pstat" = "yes"; then
AC_DEFINE(PF_ARGV_TYPE, PF_ARGV_PSTAT, pstat argv type)
else
......@@ -530,7 +539,7 @@ AC_ARG_WITH(linuxheaders,
[ --with-linuxheaders[=DIR] Custom location of the Linux kernel headers if the glibc copies are insufficient ],
[
if test "$withval" != no -a "$withval" != "yes"; then
CPPFLAGS="$CPPFLAGS -I$withval"
CPPFLAGS="$CPPFLAGS -I$withval"
fi
])
......@@ -599,7 +608,7 @@ if test "$wantwext" = "yes"; then
struct iwreq wrq;
wrq.u.freq.flags = IW_FREQ_FIXED;
]])],[iwfreqflag=yes],[iwfreqflag=no])
if test "$iwfreqflag" = "no"; then
AC_MSG_RESULT(no)
else
......@@ -610,13 +619,13 @@ if test "$wantwext" = "yes"; then
fi # want headers
fi # linux
fi # linux
# Look for libgps
# havelgps="yes"
# AC_CHECK_LIB([gps], [gps_open],,havelgps=no)
# AC_CHECK_HEADER([gps.h],,havelgps=no)
#
#
# if test "$havelgps" = "yes"; then
# AC_DEFINE(HAVE_LIBGPS, 1, gpsd libgps client support)
# KSLIBS="$KSLIBS -lgps"
......@@ -632,7 +641,7 @@ if test "$havecap" = "yes"; then
AC_DEFINE(HAVE_CAPABILITY, 1, kernel capability support)
caplibs="-lcap"
AC_SUBST(caplibs)
fi
fi
AC_ARG_WITH(pcreheaders,
[ --with-pcreheaders[=DIR] Custom location of the PCRE library headers ],
......@@ -692,8 +701,8 @@ AC_ARG_ENABLE(airpcap,
if test "$want_airpcap" = "yes"; then
airpcap_devpack="Airpcap_Devpack"
AC_ARG_WITH(airpcap-devpack,
[ --with-airpcap[=DIR] Location of the CACE AirPcap device pack NOTE cygwin appears to have link errors if the path is not within the current directory],
AC_ARG_WITH(airpcap-devpack,
[ --with-airpcap[=DIR] Location of the CACE AirPcap device pack NOTE cygwin appears to have link errors if the path is not within the current directory],
[ airpcap_devpack="$withval" ])
# Set the libs and includes
......@@ -702,8 +711,8 @@ CPPFLAGS="$CPPFLAGS -I$airpcap_devpack/Include"
fi # want_airpcap
winpcap_devpack="Winpcap_Devpack"
AC_ARG_WITH(winpcap-devpack,
[ --with-winpcap[=DIR] Location of the WinPcap device pack NOTE cygwin appears to have link errors if the path is not within the current directory],
AC_ARG_WITH(winpcap-devpack,
[ --with-winpcap[=DIR] Location of the WinPcap device pack NOTE cygwin appears to have link errors if the path is not within the current directory],
[ winpcap_devpack="$withval" ])
# Set the libs and includes
......@@ -739,8 +748,8 @@ if test "$wantpcap" = yes; then
## if we don't have a pcap.h, do a search for pcap/pcap.h
AC_CHECK_HEADER([pcap.h],
AC_DEFINE(HAVE_PCAP_H, 1, libpcap header) foundsyspcaph=yes)
if test "$foundsyspcaph" != yes; then
AC_CHECK_HEADER([pcap/pcap.h],
if test "$foundsyspcaph" != yes; then
AC_CHECK_HEADER([pcap/pcap.h],
AC_DEFINE(HAVE_PCAP_H, 1, libpcap header) AC_DEFINE(HAVE_PCAPPCAP_H, 1, pcap/pcap.h),
AC_MSG_ERROR([found libpcap but unable to find pcap.h]))
fi
......@@ -827,7 +836,7 @@ if test "$bsd" = yes; then
#include <net/if_media.h>
#include <net80211/ieee80211_radiotap.h>
]], [[
]])],radiotap=yes bsdradiotap=yes, bsdradiotap=no radiotap=no)
AC_MSG_RESULT($bsdradiotap)
else
......@@ -847,8 +856,8 @@ fi
# havenetlink=no
if test "$linux" = "yes"; then
# havenetlink=yes
# AC_CHECK_HEADERS([asm/types.h netlink/genl/genl.h netlink/genl/family.h netlink/genl/ctrl.h netlink/msg.h netlink/attr.h linux/nl80211.h linux/if_arp.h linux/wireless.h],
# AC_DEFINE(HAVE_NETLINKHEADERS, 1, Netlink headers are there),
# AC_CHECK_HEADERS([asm/types.h netlink/genl/genl.h netlink/genl/family.h netlink/genl/ctrl.h netlink/msg.h netlink/attr.h linux/nl80211.h linux/if_arp.h linux/wireless.h],
# AC_DEFINE(HAVE_NETLINKHEADERS, 1, Netlink headers are there),
# havenetlink=no,
# [#include <sys/socket.h>])
havenetlink=yes
......@@ -943,7 +952,7 @@ if test "$havenetlink" = "yes"; then
NL80211_CMD_NEW_INTERFACE;
return 0;
]])],[havenetlink=yes KSLIBS="$KSLIBS $NLLIBS"],[havenetlink=no])
LIBS="$OLIBS"
else
AC_MSG_WARN(Missing libnl netlink library will not be able to control mac80211 vaps)
......@@ -952,7 +961,7 @@ fi
if test "$havenetlink" = "yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LINUX_NETLINK, 1, Netlink works)
AC_DEFINE(HAVE_LINUX_NETLINK, 1, Netlink works)
fi
fi
......@@ -976,7 +985,7 @@ if test "$cygwin" = "yes"; then
suid="no"
fi
# gpsmap checks
# We include GPS handling code regardless, for now.
......@@ -1162,7 +1171,7 @@ if test "$havenetlink" = "yes" -a "$pcap" = "yes"; then
echo
echo "*** WARNING ***"
echo "In some situations, libpcap links to libnl. If Kismet finds a newer "
echo "libbl, it can cause an immediate segfault when starting Kismet. "
echo "libnl, it can cause an immediate segfault when starting Kismet. "
echo
echo "It is very hard to test at compile time (and run-time changes can "
echo "cause it to break). If you experience immediate segfaults when "
......@@ -1172,5 +1181,3 @@ if test "$havenetlink" = "yes" -a "$pcap" = "yes"; then
echo "./configure --with-netlink-version=1"
echo
fi
The Debian Package kismet
----------------------------
Comments regarding the Package
-- Mike Kershaw/Dragorn <dragorn@kismetwireless.net> Mon, 31 Dec 2012 19:29:12 +0100
kismet for Debian
-----------------
<possible notes regarding this package - if none, delete this file>
-- Mike Kershaw/Dragorn <dragorn@kismetwireless.net> Mon, 31 Dec 2012 19:29:12 +0100
kismet for Debian
-----------------
<this file describes information about the source package, see Debian policy
manual section 4.14. You WILL either need to modify or delete this file>
kismet (2013.03.1) unstable; urgency=low
* 2013.03.R1 release
-- Kismet Release <kismet-release@kismetwireless.net> Mon, 18 Mar 2013 19:00:00 -0500
kismet (2013.0.0) unstable; urgency=low
* Git build.
-- Kismet Release <kismet-release@kismetwireless.net> Mon, 31 Dec 2012 19:29:12 +0100
Source: kismet
Section: net
Priority: optional
Maintainer: Mike Kershaw/Dragorn <dragorn@kismetwireless.net>
Build-Depends: debhelper (>= 8.0.0), autotools-dev, libncurses5-dev, libpcap0.8-dev (>= 1.0.0), libpcre3-dev, libcap-dev (>= 2.10), libssl-dev, libbluetooth-dev, pkg-config, libnl-3-dev | libnl-dev, libnl-genl-3-dev | libnl-dev
Standards-Version: 3.9.3
Homepage: http://www.kismetwireless.net
Vcs-Git: https://www.kismetwireless.net/kismet.git
Package: kismet
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libcap2-bin
Description: Kismet wireless sniffer and IDS
Kismet is an 802.11 and other wireless sniffer, logger, and IDS.
.
This package provides the most recent version, based on the 'newcore'
code branch.
Package: kismet-plugins-restricted
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Kismet wireless sniffer and IDS, restricted plugins
Kismet is an 802.11 and other wireless sniffer, logger, and IDS.
.
This package contains the 'restricted' plugins, which primarily deal with
breaking WEP and other 'aggressive' actions.
This diff is collapsed.
README
README.appletv
README.win32
RELEASENOTES.txt
/usr/lib/kismet/aircrack-kismet.so
/usr/lib/kismet/autowep-kismet.so
#! /bin/sh -e
. /usr/share/debconf/confmodule
db_input critical kismet/install-setuid || true
db_go
db_get kismet/install-setuid
if [ "$RET" != "false" ]; then
db_input critical kismet/install-users || true
db_go
fi
/usr/bin/kismet
/usr/bin/kismet_capture
/usr/bin/kismet_client
/usr/bin/kismet_drone
/usr/bin/kismet_server
/usr/lib/kismet/btscan.so
/usr/lib/kismet/spectool_net.so
/usr/lib/kismet_client/spectools_ui.so
/usr/lib/kismet_client/btscan_ui.so
/etc/kismet/kismet*.conf
/usr/share/kismet/wav/*.wav
man/kismet.1
man/kismet_drone.1
man/kismet.conf.5
man/kismet_drone.conf.5
#!/bin/sh -e
# Copied from wireshark-common and modified
. /usr/share/debconf/confmodule
db_get kismet/install-setuid
PROGRAM=/usr/bin/kismet_capture
GROUP=kismet
if [ -e "$PROGRAM" ]; then
if [ "$RET" = "false" ] ; then
echo "Not installing Kismet with suid-root capture helper. Kismet "
echo "must be run with 'sudo'. This is not the preferred nor most secure way "
echo "to install Kismet."
if [ -x /usr/sbin/dpkg-statoverride ] && \
! /usr/sbin/dpkg-statoverride --list $PROGRAM >/dev/null; then
chown root:root $PROGRAM
chmod u=rwx,go=rx $PROGRAM
fi
else
if [ -x /usr/sbin/dpkg-statoverride ] && \
! /usr/sbin/dpkg-statoverride --list $PROGRAM >/dev/null; then
addgroup --quiet --system $GROUP
db_get kismet/install-users
if [ "$RET" != "" ]; then
for x in ${RET}; do
usermod -a -G $GROUP $x
done
fi
chown root:$GROUP $PROGRAM
if which setcap > /dev/null ; then
echo "Installing Kismet suid-root capture helper and setting capabilities..."
chmod u=srwx,g=rx,o=r $PROGRAM
if ! setcap cap_net_raw,cap_net_admin=eip $PROGRAM; then
echo "Setting capabilities for kismet_capture using Linux Capabilities failed."
echo "Falling back to setting set-user-id bit."
chmod u=rwxs,g=rx,o=r $PROGRAM
fi
else
echo "Installing Kismet with suid-root capture helper..."
chmod u=rwxs,g=rx,o=r $PROGRAM
fi
fi
fi
fi
#!/bin/sh -e
# Copied from wireshark dpkg & modified
GROUP=kismet
if [ "$1" = "purge" ] ; then
if getent group $GROUP >/dev/null; then
if [ -x /usr/sbin/delgroup ]; then
echo "Removing kismet group..."
delgroup --system $GROUP || echo "Could not remove kismet group."
fi
fi
fi
# Automatically added by dh_installdebconf
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_purge
fi
# End automatically added section
Template: kismet/install-setuid
Type: boolean
Default: true
Description: Should Kismet be installed to run with setuid privs?
Kismet can be installed as setuid (recommended) or as standard (root required).
Running Kismet as setuid is recommended over running it as root, because
most parts of Kismet (such as the UI and the parts that decode packets) will
not run with elevated privileges, reducing the risk of bugs leading to
system-wide harm.
.
For more detailed information, please see the "Suidroot & Security" section
of the Kismet README at:
http://www.kismetwireless.net/README
or
/usr/share/doc/kismet/README
.
Enabling this feature allows users in the 'kismet' group to run Kismet (and
capture packets, change wireless card state, etc). Do NOT enable setuid