lsat-0.9.7.1/ 0000755 0001750 0000144 00000000000 11012104333 012115 5 ustar number9 users lsat-0.9.7.1/.DS_Store 0000644 0001750 0000144 00000052004 11007333550 013612 0 ustar number9 users Bud1 0 0 [ e c k m o d c h e c k m o d u l e s . oIlocblob Z q b p a s s . cIlocblob ! c h e c k @ @ @ @ 6
c h e c k n e t . cIlocblob q
c h e c k n e t . oIlocblob q c h e c k n e t f o r w a r d . cIlocblob Z c h e c k n e t f o r w a r d . oIlocblob c h e c k n e t p . cIlocblob c h e c k n e t p . oIlocblob Z ) c h e c k o p e n f i l e s . cIlocblob ) c h e c k o p e n f i l e s . oIlocblob )
c h e c k p a s s w d . cIlocblob Z
c h e c k p a s s w d . oIlocblob c h e c k p k g s . cIlocblob c h e c k p k g s . oIlocblob Z c h e c k r c . cIlocblob c h e c k r c . oIlocblob c h e c k r c p e r m s . cIlocblob Z = c h e c k r c p e r m s . oIlocblob =
c h e c k r p m . cIlocblob =
c h e c k r p m . oIlocblob Z c h e c k s e c u r e t t y . cIlocblob c h e c k s e c u r e t t y . oIlocblob
c h e c k s e t . cIlocblob Z
c h e c k s e t . oIlocblob
c h e c k s s h . cIlocblob
c h e c k s s h . oIlocblob Z Q c h e c k u m a s k . cIlocblob Q c h e c k u m a s k . oIlocblob Q c h e c k w r i t e . cIlocblob Z c h e c k w r i t e . oIlocblob
c h e c k w w w . cIlocblob
c h e c k w w w . oIlocblob Z c h e c k x . cIlocblob c h e c k x . oIlocblob c o n f i g . c a c h eIlocblob Z e
c o n f i g . l o gIlocblob e
c o n f i g . s t a t u sIlocblob e c o n f i g u r eIlocblob Z d o s t u f f . cIlocblob d o s t u f f . oIlocblob I N S T A L LIlocblob Z l s a tIlocblob l s a t . o u tIlocblob l s a t . p o dIlocblob Z y l s a t h e a d e r . hIlocblob y
l s a t m a i n . cIlocblob y
l s a t m a i n . oIlocblob Z M a k e f i l eIlocblob M a k e f i l e . i nIlocblob m o d u l e s . h t m lIlocblob Z
1 R E A D M EIlocblob
1 R E A D M E . c h e c k r p mIlocblob
1 R E A D M E . e x c l u d eIlocblob Z
R E A D M E . m o d u l e sIlocblob
s a m p l e _ e x c l u d e . t x tIlocblob
s e c u r i t y l i n k s . t x tIlocblob Z
$ c h a n g e l o gIlocblob Z ! c h e c k b p a s s . cIlocblob ! c h e c k b p a s s . oIlocblob !
c h e c k c f g . cIlocblob Z }
c h e c k c f g . oIlocblob } c h e c k d i s k . cIlocblob } c h e c k d i s k . oIlocblob Z c h e c k d o t f i l e s . cIlocblob c h e c k d o t f i l e s . oIlocblob c h e c k f i l e s . cIlocblob Z 5 c h e c k f i l e s . oIlocblob 5
c h e c k f t p . cIlocblob 5
c h e c k f t p . oIlocblob Z c h e c k f t p u s e r s . cIlocblob c h e c k f t p u s e r s . oIlocblob c h e c k h o s t s f i l e s . cIlocblob Z c h e c k h o s t s f i l e s . oIlocblob c h e c k i n e t d . cIlocblob c h e c k i n e t d . oIlocblob Z I c h e c k i n i t t a b . cIlocblob I c h e c k i n i t t a b . oIlocblob I c h e c k i p v 4 . cIlocblob Z c h e c k i p v 4 . oIlocblob c h e c k i s s u e . cIlocblob c h e c k i s s u e . oIlocblob Z
c h e c k k b d . cIlocblob
c h e c k k b d . oIlocblob
c h e c k l i m i t s . cIlocblob Z ]
c h e c k l i m i t s . oIlocblob ] c h e c k l i s t e n i n g . cIlocblob ] c h e c k l i s t e n i n g . oIlocblob Z c h e c k l o g g i n g . cIlocblob c h e c k l o g g i n g . oIlocblob
c h e c k m d 5 . cIlocblob Z
c h e c k m d 5 . oIlocblob c h e c k m o d u l e s . cIlocblob s t u f f . oIlocblob I N S T A L LIlocblob Z l s a tIlocblob l s a t . o u tIlocblob l s a t . p o dIlocblob Z y l s a t h e a d e r . hIlocblob y
l s a t m a i n . cIlocblob y
l s a t m a i n . oIlocblob Z M a k e f i l eIlocblob M a k e f i l e . i nIlocblob m o d u l e s . h t m lIlocblob Z
1 R E A D M EIlocblob
1 R E A D M E . c h e c k r p mIlocblob
1 R E A D M E . e x c l u d eIlocblob Z
R E A D M E . m o d u l e sIlocblob
s a m p l e _ e x c l u d e . t x tIlocblob
s e c u r i t y l i n k s . t x tIlocblob Z
0 E DSDB ` 8 @ @ @ c h e c k i p v 4 . oIlocblob c h e c k i s s u e . cIlocblob c h e c k i s s u e . oIlocblob Z
c h e c k k b d . cIlocblob
c h e c k k b d . oIlocblob
c h e c k l i m i t s . cIlocblob Z ]
c h e c k l i m i t s . oIlocblob ] c h e c k l i s t e n i n g . cIlocblob ] c h e c k l i s t e n i n g . oIlocblob Z c h e c k l o g g i n g . cIlocblob c h e c k l o g g i n g . oIlocblob
c h e c k m d 5 . cIlocblob Z
c h e c k m d 5 . oIlocblob c h e c k m o d u l e s . cIlocblob lsat-0.9.7.1/changelog/ 0000755 0001750 0000144 00000000000 11010401335 014044 5 ustar number9 users lsat-0.9.7.1/changelog/changelog.html 0000644 0001750 0000144 00000042125 11010401335 016665 0 ustar number9 users
LSAT changelog
Changelog for LSAT
-0.9.7.5- 05/07/2008
- on RH/Fedora checklimits going to stdout, not a file, fixed
-
-0.9.7 - 05/04/2008
- Added another limits check for resource limits.
- Added another check in checkcfg (redhat specific).
- Added check for strict mode (should be on) in checkssh.
- Fixed an output error in checkcfg.
-0.9.6 - 05/20/2007
- removed dependancy on popt library
- added extra passwd and group checks under linux
- added check for failed logins under linux/solaris
- modified the kernel module check under linux
- added check for kernel modules under Solaris
- added network interface stats and routing checks
- problem in checknetforward giving false positives, fixed
- verbose output was not very consistent, fixed.
-0.9.5 - 04/26/2007
- added check for listing current arp table.
- proper headers missing from a number of modules, fixed.
- checkrc was not working under linux kernel 2.6 and gentoo, fixed.
- fixed possible symlink attack in various check modules
- changed readme and modules howto to reflect sylink fix noted above
- fixed checkinit module returning false positive under gentoo
- changed checknet to reflect network promisc change under 2.6 kernel
- various typos and formatting fixed
-0.9.4 - 09/14/2006
- lsat: added explicit CentOS, CaOS and Fedora Core check (unspawn)
- umask: don't pick up /etc/fstab and /etc/bash_completion (unspawn)
- md5: find should also exclude kernel-2.6 /sys (unspawn)
- openfiles: "-n" (no resolving) should make it slightly faster (unspawn)
- listening: checks for applications listening (unspawn)
-0.9.3 - 10/06/2005
- Fixed error in checkwww under slackware (znc)
- Fixed error in checkhostfiles under Solaris (znc)
- Fixed typos in checkinittab.c (Triode)
- General code cleanup (Triode)
-0.9.2 - 10/25/2004
- Fixed error in checkwww under redhat9.x/fedora
-0.9.1 - 03/12/2004
- Changes checkx module to check the running processes, in case the user put in options on the CLI.
- Close files/filepointers left open in checkfiles, checkhostfiles (Nordi)
- 0.9.0 - 01/09/2004
- Tested on Fedora Core 1, Suse 9 (AMD64)
- Should run fine on slackware now, thanks to JTO.
- Changed checkbpass to not print out boot loader password, just warn.
- Changed checkx to check fs under X11
- 0.8.9 - 12/20/2003
- Added checkftp to check basic settings (proftpd, pure-ftpd), mostly gentoo).
- checkmd5 also excluding proc, dev, var and tmp. (thanks unspwan)
- checkx module should now be able to be excluded. (thanks unspawn)
- Typo fixes all over the place. (thanks also to unspawn)
- 0.8.8 - 10/22/2003
- Fixed typo in checkx, would not check for gdm.conf file.
(thanks to Rozman)
- 0.8.7 - 10/20/2003
- Fixed problem with checkpasswd, can now handle any length passwd file.
- Added protcol check for ssh checks
- Fixed makefile errors
- Added checkx module to check for X tcp listening
- Added check to checkwww for nobody running apache/httpd
- Kludged checkmd5 module, skips dev and proc for now until we
fix md5sum. See module for more details.
- 0.8.6 - 10/10/2003
- Added checkbpass module to check for password in boot loader
(grub/lilo only)
- Added checkipv4 package to check more defualt network "stuff".
- fixed some typos/errors in the advanced help.
- manpage updated.
- README updated and dependencies listed.
- 0.8.5 - 10/03/2003
- Changed command line argument list, and added option to
exclude an arbitrary number of modules from being run.
- README.exclude file gives more info on -x option
- Cleanups in lsatmain, it was not closing some open files. :O
- Advanced help now available via the -a option; standard help
is available via -h, -?, --help. --usage gives condensed
usage options.
- Code cleanups, should compile under cc and not just gcc now
- checknetp was checking under all OSs, did not work with Solaris, etc
so checknetp is no longer run unless the OS is linux.
- 0.8.1 - 08/09/2003
- Fixed checkumask module, spitting out wrong entries on some systems.
- Fixed checkset module on systems with/dev/(watchdog,MAKEDEV,ibcs,etc)
- Fixed checkmodules on systems running module enable kernel+lcap.
(Above fixes by unspawn)
- Added checknetp module to check if network interface is in PROMISC.
- modules.html and README.modules files updated
- 0.8.0 - 08/01/2003
- Fixed problem in checkwww module, newline char out of place.
- Added chkrootkit to LSAT. Run this with the -c option.
(see http://www.chkrootkit.org, or thank
Nelson Murilo: nelson (at) pangeia (dot) com (dot) br )
- Raised release level to 0.8.0, should be closer to one. :)
- 0.7.3 - 07/30/2003
- fixed problem in checkpasswd under solaris.
- fixed problem in checkmd5 under solaris.
- checkmd5 should now do diffs.
- 0.7.2 - 06/27/2003
- fixed a problem in checkpasswd module.
- Added checks for + entries in checkpasswd module.
- Added checks for empty passwords in checkpasswd module.
- 0.7.1 - 06/18/2003
- cleaned and fixed checkinetd module, problems with xinetd checking.
- checkumask module cleaned up. A lot.
- Fixed problem in checknet module under gentoo
- Fixed problem in checkmd5 under all distros. Possible error with filenames that contain spaces
- 0.7.0 - 06/06/2003
- Fixed up the md5sum module call from main. It was confusing and incorrect.
- Added nmap run to checknet module. (Checks to see if nmap is installed
and if so, runs it and outputs the scan.)
- Cleaned up some spelling and whitespace in a few modules and lsatmain
- Added checklogging module to check for auth and authpriv facilities.
- Added checkinittab module. Cheks to see that default runlevel is not 5.
- Added check for /etc/banners to checkissue module
- Added extra check for xinetd.conf file in checkinetd module
- 0.6.9 - 05/29/2003
- LSAT ported to Mac OSX. Many modules modified for this. (Triode)
- checkumask had problems in RedHat 9.0, fixed (Ting Meng Yean)
- checkwrite split into two outpus (suggested by Eric Gerbier)
- 0.6.8 - 05/14/2003
- Added checkrcperms module to check files in init.d
- Added to securitylinks.txt file
- 0.6.7 - 03/20/2003
- checkpasswd was reporting that the sys account needed
to be removed. This has been changed, and more accounts
that are not needed have been added.
- 0.6.6 - 03/18/2003
- Added -w option, output file in html
- Added a check for /etc/hosts.equiv to checkhostsfiles
- Added a check for /etc/hosts.lpd to checkhostsfiles
- 0.6.5 - 02/14/2003
- major logical errors in checkinetd fixed.
- lsatmain was not detecting Solaris/SunOS, fixed.
- forcing the distro to be gentoo was not working, fixed.
- Solaris failing in checkpkgs, checkinetd, checkssh, checkwww,
checkopenfiles, fixed.
- checkwww not checking for httpd, just apache.
- 0.6.4 - 01/31/2003
- Fixed bug in lsatmain (if statement for checkmd5)
- Added check to checkissue to check /etc/motd
- Added checksecuretty to check for ttys other than tty[1-6]
- 0.6.3 - 01/28/2003
- Added checkmodules file which checks for loadable kernel
modules being enabled
- A make cleanall will do the same as make clean + rm Makefile and
config cache, log, status, lsat.out/old, lsatmd5.out/old
- Added checkmd5 module which will generate a list of md5 sums of
all regular files on the system. This list will not be in lsat.out,
but in lsatmd5.out instead.
- checkmd5 runs only when -m switch is used.
- Small output error in checkwww fixed.
- 0.6.2 - 01/23/2003
- Added checkwww module to check apache conf files.
- Checkwww also checks that root is not running apache.
- Some errors in regards to -v switch fixed.
- Fixed error in checkpkgs for debian.
- Added more links to securitylinks.txt file.
- Updated the man page.
- Updated modules.html.
- README.modules updated/in sync with modules.html.
- Added an INSTALL file to the distribution.
- 0.6.1 - 01/21/2003
- Added some items to checkrc.c
- Added checkissue which checks /etc/issue(.net)
- Added checkopenfiles which checks open files
- Added -l switch to not check open files :)
- Minor code cleanups, spelling fixes, etc.
- 0.6.0 - 10/23/2002
- Fixed some multi-line string literals in checkssh.c
- Modified some checks to work under gentoo linux
- 0.5.9 - 07/11/2002
- Added -x option -- skip local SUID/GUID and world/group read/write.
The above will speed things up if the user does not want to check
the local files again.
- Added checkcfg module (RedHat and derivative specific).
checkcfg prints output of chkconfig --list and is the last module run
in lsat. This gives the user a visual inspection of all services run
in each runlevel.
- 0.5.8 - 06/29/2002
- various buffer and index checks added (Nordi)
- some basic sshd config checks added. (Triodeo, Nordi)
- 0.5.7 - 05/30/2002
- checkinetd should really work now, verified on RedHat 7.x (Nordi & Triode, mostly Nordi)
- checkftpusers fixed. It was saying ftpusers did not exist when it did. (Triode)
- fixed more symlink attacks, in checkfiles (Nordi)
- all tempfiles conform to lsat standard now (Nordi)
- 0.5.6 - 05/17/2002
- fixed more output typos
- fixed tempfile problem in checkset module (Triode)
- checkinetd did not always find inetd.conf and xinetd.d
- fixed possible false negatives in checkinetd
- fixed logical error in check for sticky dirs
- some small stuff
Nordi
- 0.5.5 - 05/08/2002
- Fixed error in checkpkgs, not reporting bad packages.
- Fixed error in dostuff module, failure on some shellcode.
- Added checkrpm module and README.checkrpm for checkrpm module. Checkrpm
checks and reports rpm integrity on RedHat based systems.
- Checkrpm is enabled by the -r switch, it doe not run if lsat is given with no args.
- 0.5.4 - 05/06/2002
- Fixed some incorrect variable defs. (Nordi)
- unused variables removed from modules. (Nordi)
- checkrc module had problem with large amounts of services, fixed. (Nordi)
- verbose output cleaned up, out of alignment. (Nordi)
- lsat now prints module name it is running during execution.
- -s option added for silent mode, lsat only reports starting and ending in this mode.
- checkfiles module now checks for files with no owner and no group.
- 0.5.2 - 05/03/2002
- checknetforward module was not in lsatmain. :O
- fixed output in checknetforward, should be better.
- added checklimits module to check limits.conf file.
- 0.5.1 - 05/02/2002
- checkinetd was still segfaulting under linux kernel 2.4. FIXED.
- 0.5.0 - 05/02/2002
- Added large section in README.modules on writing modules with the new dostuff module.
- Added modules that were missing in README.modules.
- Added function in lsatmain to clean up mess if a module bombs out.
- Output format has been changed slightly in appearance.
- Modified all modules to use module dostuff for creating, writing, deleting tempfiles
and for writing out to outfile. This should make module creation easier as one can
concentrate on module content and not opening/writing/etc files.
- checkinetd broken under redhat 7.x (or those that use xinetd.d) Should be FIXED.
- Cleaned up verbose msgs.
- 0.4.5 - 04/26/2002
- Added checknetforward module which checks for IPV4 forwarding on the system.
- Since all files written are now chmod 600, umask is no longer changed in any lsat program.
A note is given to the user to check their umask settings.
- Fixed output typo in checkwrite (it checks suid/sgid files/directories).
- Header typo in checkpkgs.
- Added more packages to check in checkpkgs module.
- checkpkgs module was not checking all pkgs. Fixed.
- Added check that vmlinuz is chmod 644 in checkfiles.
- Added check for syslog.pid (syslogd.pid) to make sure it is chmod 644 in
checkfiles.
- Fixed error in checkumask module. Was not working properly on Mandrake.
- 0.4.4 - 04/19/2002
- Fixed possible buffer overrun in lsatmain.c
- Fixed possible buffer overrun/symlink attack in checkftpusers and
checkrc modules.
- More typos fixed.
- Thanks to Nordi for the tipoff on the buffer/symlink attacks I missed while trying to fix them in 0.4.3.
- 0.4.3 - 04/19/2002 -
- Added checkkbd function to check for ctrl-alt-del or STOP-A disable.
- Fixed file perms. LSAT was not making the output file chmod 0600.
- Fixed module tempfiles. These were not being created chmod 0600 either.
- The two above require include fcntl.h. I hope this does not break things.
- Added more docs to lsatmain.c
- 0.4.2 - 04/18/2002 -
- Again, more docs/cleanups in lsatmain.c
- added securitylinks.txt file which has links to security related webpages.
- Added checkrc module. Checks rc scripts in /etc/rc.d/init.d or
/etc/rcn.d depending on which system it is on.
- Added checkftpusers module. This checks to see that all users
in /etc/passwd are in /etc/ftpusers.
- Set umask before writing any files.
- Set umask back to sensible value, regardless of previous value...
(done so if user modifies files after running lsat the user will have a sensible umask)
- lsat bails if it can not set umask.
- Fixed error msg typos in lsatmain.c, checknet.c and checkfiles.c
- 0.4.0 - 04/15/2002 -
- Unused vars in checkpkg removed.
- Fixed bug in checkpasswd. (open file problem)
- Now using mkstemp in lsatmain.c instead of just making a file.
(this should be a little more secure in case of a tempfile exploit)
- Many typos in checkdotfiles fixed.
- Error msgs in all modules will (should) report module name on error.
- Now using mkstemp in all modules.
- In lsatmain.c default value for distribution variable is now
redhat (1), since it errors out if not set at all. - Thanks: nordi
- Fixed buffer overflow vulnerability in checknet. - Thanks: nordi
- Fixed possible buffer overrun vulnerability in all modules.
- Typo in checknet error msg, fixed.
- more documentation added to lsatmain.c
- 0.3.3 - 04/12/2002 -
- checkfiles now checks the following:
That utmp, wtmp, mtab, mtod are chmod 644
That /etc, /usr/etc, /bin, /usr/bin, /sbin, /usr/sbin, /tmp
and /var/tmp are owned by root.
- Various minor bugfixes
- 0.3.2 - 04/10/2002 -
- Minor bugfixes in checkumask file
- lsatmain.c now checks for redhat or debian distro
- checkrpms is now checkpkgs and will check rpms if sys is
redhat or debs if sys is debian
- Various small bugfixes
- 0.3.0 - 04/08/2002 -
- Major bug fixes. After 0.2.0 release it was noted that
several check files were still not correct. These have
been fixed and tested (RedHat 6.2/sparc).
- Added checkumask module to check default umasks on system.
- Updated INSTALL file
- Updated README.modules
- Updated README
- 0.2.0 - 04/07/2002 -
- Major bug fixed. Prior releases have modules which do
not fully check for what they are supposed to.
- Added autoconf feature (thanks Fred Ollinger)
- Added prelimenary manpage (thanks Fred Ollinger)
- 0.1.9 - 04/07/2002 -
- Fixed passwd check. Also includes check for uid=0 on other users.
- 0.1.8 - 04/06/2002 -
- Check /dev for non block/char files.
- xinetd.d check broken on RedHat 7.2 FIXED
- Added module for checking /etc/passwd. BROKEN.
- 0.1.7 - 04/05/2002 -
- Added check for .rhosts/.netrc files to checkdotfiles module.
- Added check for non block/char files in /dev to checkset module.
- xinetd.d checking is functional in checkinetd module.
- verbose parameter added to all functions, -v now works.
- release and kernel checking changed to be more generic.
- 0.1.6 - 04/03/2002 -
- Added checkdotfiles module which checks for .exrc and .forward files.
- Added checkwrite module which checks for world writable files/dirs.
- Added INSTALL file.
- 0.1.5 - 04/03/2002 -
- Did not change version number, but did the following:
- tarball/zipfile now untars/zips into lsat- directory.
- Added README file to the package.
- Added this changelog to the package.
- Added md5 checksums for the tar/zipfile. They are on the homepage.
- 0.1.5 - 04/02/2002 -
- Fixed checkinetd.c, added checks for hosts.allow and deny files.
- lsatmain.c now reports finishing.
- Added checkset module to check setuid/setgid files.
- Added more documentation throughout.
- 0.1.1 - 04/01/2002 -
- Fixed typo in checkinetd.c (zinet.d -> xinetd.d).
- Thanks: Eerik Kiskonen
- 0.1 - 04/01/2002 -
- Initial release
lsat-0.9.7.1/checkbpass.c 0000644 0001750 0000144 00000004606 11007333550 014406 0 ustar number9 users /****************************************/
/* This is the checkbpass module ...it */
/* checks for the presence of the */
/* password line in the grub or lilo */
/* configuration file. */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkbpass(distribution, filename, verbose, html)
int distribution;
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkbpass module...\n");
}
/*first off, if we are on gentoo, /boot is not mounted...*/
if (distribution == 4)
{
/*gentoo, warn user*/
header = "You are on Gentoo, /boot is not mounted, \ncan not check for presence of a bootloader password";
}
else
{
/* lets check grub first, look in the usual location */
if ((system("test -r /boot/grub/grub.conf")) == 0)
{
/* it exists, check it */
if ((system("grep -i -q password /boot/grub/grub.conf 2>/dev/null")) == 0)
{
header = "Password keyword is in grub.conf, good.\n";
}
/* one more location to check */
if ((system("test -r /boot/grub.conf")) == 0)
{
if ((system("grep -i -q password /boot/grub/grub.conf 2>/dev/null")) == 0)
{
header = "Password keyword is in grub.conf, good.\n";
}
}
else
{
header = "Password keyword is not in grub.conf, please check.\n";
}
}
else
{
if ((system("test -r /etc/lilo.conf")) == 0)
{
if ((system("grep -i -q password /etc/lilo.conf 2>/dev/null")) == 0)
{
header = "Password keyword found in lilo.conf, good.\n";
}
else
{
header = "Password keyword is not in lilo.conf, please check.\n";
}
}
else
{
header = "Can not locate grub or lilo conf files.\nPlease check that the password keyword is being used in them.\n";
}
}
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Finished in checkbpass module.\n");
}
return(0);
}
lsat-0.9.7.1/checkdisk.c 0000644 0001750 0000144 00000003222 11007333550 014221 0 ustar number9 users /****************************************/
/* This is the checkdisk.c module for */
/* lsat program. This module checks */
/* disk space usage and mount points. */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkdisk(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkdisk module...\n");
}
if (verbose > 0)
{
printf(" Creating list of mount points...\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode= "/bin/mount 2>/dev/null >/tmp/lsat1.lsat";
header = "This is a list of mount points currently mounted.\nMake sure the permissions are reasonable (rw, ro, etc).";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Creating list of disk usages...\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode= "/bin/df -k 2>/dev/null >/tmp/lsat1.lsat";
header = "This is a list of disk utilizations on the system, in kilobytes.\nChcek to see that filesystems are not near capacity, etc.";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Finished in checkdisk module.\n");
}
return(0);
}
lsat-0.9.7.1/checkdotfiles.c 0000644 0001750 0000144 00000006473 11007333550 015113 0 ustar number9 users /****************************************/
/* This is the checkdotfiles module for */
/* lsat program. This module checks for */
/* .forward and .exrc files and prints */
/* them to the outfile. */
/* 4/5/2002 Added checks for .rhost(s) */
/* and .netrc files. */
/* */
/* NOTE: this will miss some files if */
/* run as a non-root user. Not sure if */
/* you should run as root. :) */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkdotfiles(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkdotfiles module...\n");
}
if (verbose > 0)
{
printf(" Creating list of .exrc files...\n");
}
/* generate list of all files called .exrc on */
/* system */
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -mount -name \'.exrc\' 2>/dev/null | tee > /tmp/lsat1.lsat";
header = "This is a list of .exrc files found\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of .exrc list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Creating list of .forward files...\n");
}
/* generate list of .forward files... */
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -mount -find \'.forward\' 2>/dev/null |tee > /tmp/lsat1.lsat";
header = "This is a list of .forward files found on the system:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of .forward list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Creating list of .rhosts files...\n");
}
/* generate list of .rhosts files */
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -mount -name .rhosts 2>/dev/null | tee >/tmp/lsat1.lsat";
header = "This is a list of .rhosts files found on the system:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of .rhosts list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Creating list of .netrc files...\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -mount -name .netrc 2>/dev/null | tee >/tmp/lsat1.lsat";
header = "This is a list of .netrc files found on the system\n";
/* get a list of .netrc files */
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of .netrc list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Creating list of dotfiles...\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -mount -name \" \" -print 2>/dev/null | tee >/tmp/lsat1.lsat";
header = "This is a list of dotfiles found on the system\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/*something went wrong */
perror(" Creation of dot list failed.");
return(-1);
}
if (verbose >0)
{
printf(" Finished in checkdotfiles module.\n");
}
return(0);
}
lsat-0.9.7.1/checkfiles.c 0000644 0001750 0000144 00000034312 11007333550 014375 0 ustar number9 users /**************************************/
/* This is the checkfiles module for */
/* the lsatmain.c program. It checks */
/* that /tmp and /var/tmp have the */
/* sticky bit set. Checks utmp, wtmp, */
/* motd, mtab for chmod 644. */
/* checks /usr, /var for root */
/* ownership. */
/* It also checks for files on the */
/* system that have no owner or group */
/* */
/* Future tests on dirs should be put */
/* in this file. I am working on it */
/**************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#include
int checkfiles(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
/* some local vars... */
const char * in_file = "/tmp/lsat1.lsat";
const char * secondtf = "/tmp/lsat2.lsat";
FILE *infile; /* infile/outfile pointers */
FILE *fileptr;
char line[128]; /* temp storage for reading a line */
char chmod[12]="-rw-r--r--"; /* chmod 644 comparison string */
char rooted[2]="0"; /* uid=0 comparison string */
char *ptr; /* char ptr for strtok */
int count = 0; /* general counter */
int Linecount = 0; /* line counter for file */
int found = 0; /* var set if match found */
int fileval = 0; /* return val */
/* note we make tempstring the same as line. */
/* this _should_ thwart most buffer overruns, */
/* as we are doing a sizeof in fgets... */
char tempstring[128]; /* temp string for sscanf */
/* things needed for "dostuff" */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkfiles module...\n");
}
/* make a list of the files */
tempfile = "/tmp/lsat1.lsat";
shellcode = "ls -l / /var 2>/dev/null |grep tmp 2>/dev/null |tee >/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* open input file for read... */
infile = fopen("/tmp/lsat1.lsat", "r");
if (infile == NULL)
{
/* rhut-rho */
printf(" at first fopen...");
perror(" Can't open the file we just made!?!\n");
perror(" Giving up, check perms or something...\n");
return(-1);
}
/* open another temp file, to write out files */
/* chmod 600 to that one... */
/* create a temp file for storage */
if ((fileptr = fopen(secondtf, "a")) == NULL)
{
perror(" Could not make temp file...\n");
perror(" Possible link attack while creating/opening file!\n");
perror(" Bailing in checkfiles...\n");
exit(-1);
}
if (verbose > 0)
{
printf(" Checking for sticky bits...\n");
}
/* get a line from the file... */
while (fgets(line, sizeof(line), infile) != NULL)
{
ptr = strtok(line, ", \n");
while (ptr != NULL)
{
if (sscanf(ptr, "%127s", tempstring) < 1)
{
perror(" sscanf bit the dust");
return(-1);
}
if ((count == 0) && (Linecount == 0))
{
/* 1st line in file... */
/* note this is ls of / |grep tmp */
if ((tempstring[9] != 't') && (tempstring[9] != 'T'))
{
/* sticky bit NOT set ! */
found = 1;
fprintf(fileptr, "Sticky bit not set on /tmp.\n");
fprintf(fileptr, "Please set sticky bit on /tmp.\n");
}
}
if ((count == 0) && (Linecount == 1))
{
/* 2nd line in file */
/* this is ls of /var |grep tmp */
if ((tempstring[9] != 't') && (tempstring[9] != 'T'))
{
/* sticky bit NOT set! */
found = 1;
fprintf(fileptr, "Sticky bit not set on /var/tmp.\n");
fprintf(fileptr, "Please set sticky bit on /var/tmp.\n");
}
}
/* grab another token */
ptr = strtok(NULL, ", \"\n");
if (ptr == NULL)
{
;
}
/* inc counter...*/
count++;
} /* end of while(ptr != NULL), reset the counter */
count=0;
Linecount++;
} /* end of while(fgets...) */
/* close files */
close(fileval);
fclose(infile);
fclose(fileptr);
/* ok, we want to write that out to the outfile, */
/* and we want to delete the orig tempfile, as */
/* dostuff will del the new tempfile... */
header = "Checks for sticky bits on tmp files\n";
if ((dostuff(secondtf, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing temp file failed.");
return(-1);
}
/* since dostuff will not do this... */
remove(in_file);
/* second part... check utmp, wtmp, motd, mtab */
/* for chmod 644. */
/* the following will be cecked to see if they are */
/* chmod 644... */
/* if the system has any acceptable amount of */
/* ram subsequent calls to find should be fast */
tempfile = "/tmp/lsat1.lsat";
shellcode = "find /var -name utmp 2>/dev/null |grep -v find |xargs ls -ln 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
shellcode = "find /var -name wtmp 2>/dev/null |grep -v find |xargs ls -ln 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(0, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
shellcode = "find /etc -name motd 2>/dev/null |grep -v find |xargs ls -ln 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(0, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
shellcode = "find /etc -name mtab 2>/dev/null |grep -v find |xargs ls -ln 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(0, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
shellcode = "find /var -name syslog\\*.pid 2>/dev/null |grep -v find |xargs ls -ln 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(0, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
shellcode = "find /boot -name vmlinuz\\* 2>/dev/null |grep -v find |xargs ls -ln 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(0, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* open input file for read... */
infile = fopen("/tmp/lsat1.lsat", "r");
if (infile == NULL)
{
/* rhut-rho */
perror(" Can't open the file we just made!?!\n");
perror(" Giving up, check perms or something...\n");
perror(" Problem was in module: checkfiles\n");
return(-1);
}
if (verbose > 0)
{
printf(" Checking files that should be chmod 644...\n");
}
/* create a temp file for storage */
if ((fileptr = fopen(secondtf, "a"))==NULL)
{
perror(" Could not make file w/perms 0600...\n");
perror(" Possible link attack while creating/opening file!\n");
perror(" Bailing in checkfiles...\n");
exit(-1);
}
/* get a line from the file... */
/* reset counters/flags 1st */
found = 0;
count = 0;
while (fgets(line, sizeof(line), infile) != NULL)
{
ptr = strtok(line, ", \n");
while (ptr != NULL)
{
if (sscanf(ptr, "%127s", tempstring) < 1)
{
perror(" sscanf bit the dust");
perror(" Dust biting was in checkfiles.\n");
return(-1);
}
/* this counts the fields we are on */
count++;
/* now check for chmod 644 */
/* recall 644 is -rw-r--r-- :) */
/* if count == 1 we should be at */
/* the 1st field... */
if (count == 1)
{
if ((strcmp(tempstring, chmod)) != 0)
{
/* not chmod 644 */
/* grab the filename, which should be */
/* the 9th field on the line and print it */
/* set flag to do this... */
found = 1;
}
}
if ((found == 1) && (count == 9))
{
/* we have a non-chmod 644 and we should */
/* be at the filename in the sscanf... */
fprintf(fileptr, "%s is not chmod 644.\n", tempstring);
/* reset counters */
found = 0;
count = 0;
}
/* grab another token */
ptr = strtok(NULL, ", \"\n");
if (ptr == NULL)
{
;
}
} /* end while (ptr != NULL) */
/* reset counters just to be sure... */
found = 0;
count = 0;
} /* end while (fgets...) */
/* print footer */
fprintf(fileptr, "Check above files for chmod 644.\n");
/* close input file before rm */
close(fileval);
/* close and rm the first tempfile */
fclose(infile);
fclose(fileptr);
remove(in_file);
/* tell dostuff to print that out to the output file */
/* I put the header in the secondtmpfile... */
if ((dostuff(secondtf, filename, 0, 0, html)) < 0)
{
/* something went wrong */
perror(" Writing of tempfile failed.");
return(-1);
}
/* finally, all dirs in the / should be owned by root */
/* additionally, all files in /usr should be owned by root, and */
/* /var/tmp should be owned by root. */
tempfile = "/tmp/lsat1.lsat";
shellcode = "ls -ln / |grep -v total 2>/dev/null |tee > /tmp/lsat1.lsat";
header = "Dirs that should be owned by root\n";
if ((dostuff(tempfile, 0, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Writing of tempfile failed.");
return(-1);
}
shellcode = "ls -ln /usr |grep -v total 2>/dev/null | tee >> /tmp/lsat1.lsat";
if (system(shellcode) < 0)
{
perror(" Writing to tempfile failed.\n");
return(-1);
}
shellcode = "ls -ln /var |grep -v total 2>/dev/null |tee >> /tmp/lsat1.lsat";
if (system(shellcode) < 0)
{
perror(" Writing to tempfile failed.\n");
return(-1);
}
/* open input file for read... */
infile = fopen("/tmp/lsat1.lsat", "r");
if (infile == NULL)
{
/* rhut-rho */
perror("Can't open the file we just made!?!\n");
perror("Giving up, check perms or something...\n");
perror("Error was in module: checkfiles.\n");
return(-1);
}
if (verbose > 0)
{
printf(" Checking files that should be owned by root...\n");
}
/* create a temp file for storage */
if ((fileptr = fopen(secondtf, "a"))==NULL)
{
perror(" Could not make file w/perms 0600...\n");
perror(" Possible link attack while creating/opening file!\n");
perror(" Bailing in checkfiles...\n");
exit(-1);
}
/* get a line from the file... */
/* reset counters/flags 1st */
found = 0;
count = 0;
while (fgets(line, sizeof(line), infile) != NULL)
{
ptr = strtok(line, ", \n");
while (ptr != NULL)
{
if (sscanf(ptr, "%127s", tempstring) < 1)
{
perror(" sscanf bit the dust");
perror(" Dust biting was in checkfiles.\n");
return(-1);
}
/* this counts the fields we are on */
count++;
if (count == 3)
{
if ((strcmp(tempstring, rooted)) != 0)
{
/* file/dir not owned by root! */
/* grab the filename, which should be */
/* the 9th field on the line and print it */
/* set flag to do this... */
found = 1;
}
}
if ((found == 1) && (count == 9))
{
/* we have a non-rooted file...we should */
/* be at the filename in the sscanf... */
fprintf(fileptr, "%s is not owned by root.\n", tempstring);
/* reset counters */
found = 0;
count = 0;
}
/* grab another token */
ptr = strtok(NULL, ", \"\n");
if (ptr == NULL)
{
;
}
} /* end while (ptr != NULL) */
/* reset counters just to be sure... */
found = 0;
count = 0;
} /* end while (fgets...) */
/* footer */
fprintf(fileptr, "Check above dirs to ensure root ownership.\n");
fprintf(fileptr, "****************************************\n");
/* clean up */
fclose(infile);
close(fileval);
fclose(fileptr);
/* rm 1st tempfile since dostuff will not do this */
remove(in_file);
/* tell dostuff to print that out to the output file */
/* I put the header in the secondtmpfile... */
if ((dostuff(secondtf, filename, 0, 0, html)) < 0)
{
/* something went wrong */
perror(" Writing of tempfile failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Finding files with no owner or no group.\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -nouser -o -nogroup 2>/dev/null |grep -v find |tee 2>/dev/null >>/tmp/lsat1.lsat";
header = "List of files with no user or group:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkfiles.\n");
}
return(0);
}
lsat-0.9.7.1/checkftp.c 0000644 0001750 0000144 00000017543 11007333550 014073 0 ustar number9 users /****************************************/
/* This is the checkftp module for lsat */
/* It will check common ftp servers cfgs*/
/* in the usual locations, for errors...*/
/* */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checkftp(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkftp module...\n");
}
if (verbose > 0)
{
printf(" Checking ftp configs...\n");
}
/* note if distribution = 4, we are on gentoo... */
/* check pure-ftpd on gentoo */
/* note, pure-ftpd compiled by hand typically has*/
/* no "real" config file, you just do cmd line */
/* switches... so we really don't check that yet */
if (distribution == 4)
{
/* we are on gentoo... */
if ((system("test -r /etc/conf.d/pure-ftpd")) == 0)
{
if ((system("grep \"AUTH=-lpuredb:\" /etc/conf.d/pure-ftpd")) == 0)
{
/* found it, they have the auth file */
header = "Found auth file in pro-ftpd config, good.\n";
}
else
{
/* they have the conf file, but no auth line */
header = "Did not find AUTH line in pro-ftpd conf file.\nCheck the manpage for more info and add one\n.";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* check proftpd on gentoo */
/* other distros typical install location of cfg file */
/* is /usr/local/etc/proftpd.conf or /etc/proftpd.conf */
if (distribution == 4)
{
/* we are on gentoo */
/* first test to see if the proftpd is even there... */
if ((system("test -r /etc/proftpd/proftpd.conf")) == 0)
{
if ((system("grep \"ServerIdent on\" /etc/proftpd/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is checking Ident, good.\n";
}
else
{
/* not there */
header = "Looks like you have proftpd, but it is not checking Ident.\n";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* check some more proftpd on gentoo */
if (distribution == 4)
{
/* we are on gentoo */
/* again, test to see if it is there first */
if ((system("test -r /etc/proftpd/proftpd.conf")) == 0)
{
if ((system("grep \"RequireValidShell off\" /etc/proftpd/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is setup for virtual users.\nThis is good, double check it, though.\n";
}
else
{
header = "Looks like proftpd requires a valid shell.\nThis is bad. Set RequireValidShell to off and then use Virtual Users.\n";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* check some more proftpd on gentoo */
if (distribution == 4)
{
/* we are on gentoo */
/* again, test to see if it exists */
if ((system("test -r /etc/proftpd/proftpd.conf")) == 0)
{
if ((system("grep \"Umask 077\" /etc/proftpd/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is set Umask 077. Good.\n";
}
else
{
header = "Looks like proftpd is not creating files umask 077.\nThis is bad. Check proftpd config and change it.\n";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* check more proftpd stuffs */
if (distribution != 4)
{
/* we are not on gentoo */
if ((system("test -r /etc/proftpd.conf")) == 0)
{
if ((system("grep \"ServerIdent on\" /etc/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is checking Ident, good.\n";
}
else
{
header = "Looks like you have proftpd, but it is not checking Ident. \nOr I could not find the config file.\n";
}
}
if ((system("test -r /usr/local/etc/proftpd.conf")) == 0)
{
if ((system("grep \"ServerIdent on\" /etc/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is checking Ident, good.\n";
}
else
{
header = "Looks like you have proftpd, but it is not checking Ident. \nOr I could not find the config file.\n";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* check some more proftpd */
if (distribution != 4)
{
/* we are not on gentoo */
if ((system("test -r /etc/proftpd.conf")) == 0)
{
if ((system("grep \"RequireValidShell off\" /etc/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is setup for virtual users.\nThis is good, double check it, though.\n";
}
else
{
header = "Looks like proftpd requires a valid shell.\nThis is bad. Set RequireValidShell to off and then use Virtual Users.\n";
}
}
if ((system("test -r /usr/local/etc/proftpd.conf")) == 0)
{
if ((system("grep \"RequireValidShell off\" /usr/local/etc/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is setup for virtual users.\nThis is good, double check it, though.\n";
}
else
{
header = "Looks like proftpd requires a valid shell.\nThis is bad. Set RequireValidShell to off and then use Virtual Users.\n";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* check some more proftpd */
if (distribution != 4)
{
/* we are not on gentoo */
if ((system("test -r /etc/proftpd.conf")) == 0)
{
if ((system("grep \"Umask 077\" /etc/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is set Umask 077. Good.\n";
}
else
{
header = "Looks like proftpd is not creating files umask 077.\nThis is bad. Check proftpd config and change it.\n";
}
}
if ((system("test -r /usr/local/etc/proftpd.conf")) == 0)
{
if ((system("grep \"Umask 077\" /usr/local/etc/proftpd.conf 2>/dev/null >/dev/null")) == 0)
{
/* found it */
header = "Looks like proftpd is set Umask 077. Good.\n";
}
else
{
header = "Looks like proftpd is not creating files umask 077.\nThis is bad. Check proftpd config and change it.\n";
}
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checkftp module.\n");
}
return(0);
}
lsat-0.9.7.1/checkftpusers.c 0000644 0001750 0000144 00000021035 11007333550 015144 0 ustar number9 users /****************************************/
/* This is the chekftpusers module for */
/* the lsat program. It check the */
/* /etc/ftpusers file and sees what */
/* entries are NOT there that are in */
/* /etc/passwd. */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#include
int checkftpusers(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
char *passptr; /* ptr to passwd line */
char *ftpptr; /* ptr to ftpusers line */
/* note we use awk to get only the first entry in */
/* the passwd list... we ass|u|me that a username */
/* will be < 120 chars. :O => line[120] */
char line[120]; /* array for a line */
char temparray[100][120]; /*temparray. */
char tempstring[100][120]; /* string to hold ftpusername */
int i=0; /* counter variable */
int j=0; /* counter variable */
int k=0; /* counter variable */
int inlist=0; /* flag for strcmp checks */
int linecount=0; /* line counter */
const char * tmp_file = "/tmp/lsat2.lsat";
FILE *outfile; /* output file pointer */
FILE *passfile; /* file pointer to templist file */
FILE *ftpfile; /* file pointer to ftpusers file */
FILE *fileptr;
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
/* init temparray */
for (i=0; i<100; i++)
{
for (j=0; j<120; j++)
{
temparray[i][j]=0;
}
}
/* "you may ask yourself, how do I work this?" */
/* Talking Heads */
/* This program will read the /etc/passwd file */
/* and store the username in an array... */
/* It will then read the /etc/ftpusers file */
/* and see what entries are NOT in ftpusers. */
if (verbose >= 0)
{
printf(" Running checkftpusers module...\n");
}
if (verbose > 0)
{
printf(" Checking ftpusers file...\n");
}
/* check that /etc/ftpusers exists and is readable first */
if (system("test -r /etc/ftpusers")!=0)
{
/* we leave this part in even though we might */
/* be able to get it into the dostuff module..*/
outfile=fopen(filename, "a");
if (outfile == NULL)
{
perror(" Can't open outfile!\n");
perror(" Check perms or something...\n");
perror(" Error was in module: checkftpusers.\n");
return(-1);
}
/* ftpusers does not exist. */
/* this _could_ be ok for the user */
/* give a msg and leave the area. */
fprintf(outfile, "\n****************************************\n");
fprintf(outfile, "While checking ftpusers...\n");
fprintf(outfile, "/etc/ftpusers does not exist or is not readable.\n");
fprintf(outfile, "This is ok if you are not root, not\n");
fprintf(outfile, "running ftp or your ftp daemon\n");
fprintf(outfile, "does not use /etc/ftpusers.\n");
fprintf(outfile, "Please triple check your configuration\n");
fprintf(outfile, "and ensure you do not need /etc/ftpusers.\n\n");
fprintf(outfile, "*****************************************\n");
/* close up */
fclose(outfile);
/* leave */
return(0);
}
/* ok, lets make one pass through the passwd */
/* note here we only pull the 1st field, which */
/* is the "account" name in /etc/passwd. */
tempfile = "/tmp/lsat1.lsat";
shellcode = "cat /etc/passwd |awk -F\":\" 'length($1) > 0 {print $1}' 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* open the newly created file */
passfile=fopen("/tmp/lsat1.lsat", "r");
if (passfile == NULL)
{
perror(" Can't open templist...\n");
perror(" Strange, we just created that file...\n");
perror(" Giving up in checkftpusers...\n");
return(-1);
}
/* create another temp file so that we can */
/* run through that list and put it in there*/
/* we will then pass that list to dostuff */
if ((fileptr = fopen(tmp_file, "a")) == NULL)
{
perror(" Could not create temporary file...\n");
perror(" Possible link attack while creating/opening file!\n");
exit(-1);
}
/* Note: IIRC, strtok can not be nested if you */
/* are going to take another token on each one */
/* i.e. in checkrpms.c it works since we only */
/* strtok once on the outside loop since we */
/* are guarenteed there is only one line in the*/
/* file since that is how we created it. That */
/* is not the case here.... */
/* we therefore only grab one filed from the */
/* passwd file at a time and print that out. */
/* here we are checking accounts on the system */
/* reset counter */
i = 0;
while (fgets(line, sizeof(line), passfile) != NULL)
{
passptr = strtok(line, ", \n");
/* if not while. we guarentee not more than */
/* one entry per line with the cat - awk */
if (passptr != NULL)
{
if (sscanf(passptr, "%119s", temparray[i]) < 1)
{
perror(" sscanf failed.\n");
perror(" Failure was in module: checkftpusers.\n");
return(-1);
}
passptr = strtok(NULL, ", \n");
if (passptr == NULL)
{
;
}
} /* end if (passptr != NULL) */
/* inc the counter */
i++;
if (i>100)
{
perror("Error in module checkftpusers: Too much data.\n");
return(-1);
}
} /* end while (fgets...) */
/* close the passfile */
fclose(passfile);
/* rm it, no longer needed */
remove(tempfile);
/* ok, we have all (we hope) entries from */
/* /etc/passwd. Now read in /etc/ftpusers */
/* and compare... I think just one at a */
/* time, 'non? */
/* open /etc/ftpusers for read-only */
ftpfile = fopen("/etc/ftpusers", "r");
if (ftpfile == NULL)
{
perror(" Can't open ftpusers!\n");
perror(" Check perms or check if file exists.\n");
perror(" Recall this file should exist. :)\n");
perror(" Giving up in checkftpusers...\n");
return(-1);
}
/* in the temparray. we just need */
/* to compare that to the entries.. */
/* reset counter */
j = 0;
/* get a line from the ftpusers file */
while (fgets(line, sizeof(line), ftpfile) != NULL)
{
ftpptr = strtok(line, ", \n");
/* if not while. ftpusers = 1 entry per line */
if (ftpptr != NULL)
{
if (sscanf(ftpptr, "%119s", tempstring[linecount]) < 1)
{
perror(" sscanf failed.\n");
perror(" Failure was in module: checkftpusers.\n");
return(-1);
}
ftpptr = strtok(NULL, ", \n");
if (ftpptr == NULL)
{
;
}
} /* end if (ftpptr != NULL) */
/* inc the linec ounter */
linecount++;
if (linecount>100)
{
perror("Error in checkftpusers: Too much data.");
return(-1);
}
} /* end while (fgets...) */
/* ok, now compare an entry in the userlist */
/* we have against the entries in ftpusers */
i = 100;
for (j = 0; j < i; j++)
{
for (k=0; k < linecount; k++)
{
if ((strcmp(temparray[j], tempstring[k])) == 0)
{
/* match */
/* set flag that it is in list */
inlist = 1;
}
}
/* flag was set on run? */
/* no? then that entry was not in ftpusers list */
if (inlist == 0)
{
fprintf(fileptr, "%s\n", temparray[j]);
}
/* reset flag */
inlist = 0;
}
/* close the tmpfile */
fclose(fileptr);
header = "These accounts are NOT in /etc/ftpusers.\nEnsure that these accounts are in /etc/ftpusers\nor that they _really_ do not need to be restricted.\n";
if ((dostuff(tmp_file, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* clean up... */
fclose(ftpfile);
if (verbose > 0)
{
printf(" Finished in checkftpusers module.\n");
}
return(0);
}
lsat-0.9.7.1/checkhostsfiles.c 0000644 0001750 0000144 00000022264 11007333550 015461 0 ustar number9 users /****************************************/
/* This is the checkhostsfiles.c module */
/* for the lsat program. This module */
/* reads the /etc/hosts.allow and */
/* /etc/hosts.deny files. */
/* It checks for the existance of a */
/* ALL:ALL line in deny, since we think */
/* that a good security policy would be */
/* only admit services we want and deny */
/* all others. */
/* It also checks for the existance of */
/* /etc/hosts.equiv... which is bad */
/* Also checks for hosts.lpd, and again */
/* we (generally) consider this bad... */
/* */
/* See lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checkhostsfiles(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
int firstall=0; /* counter for target matches */
int found=0; /* found for target ALL:ALL */
int found2=0; /* found for target ALL */
int field; /* which field in a line we are on */
int linecount; /* line counter */
char *ptr; /* plain ol' char pointer */
char line[128]; /* for reading in a line from a file */
char tempstring[128]; /* temp char string */
char target[4]="ALL"; /* what we are looking for */
FILE *fileptr=NULL; /* file pointer for input file(s) */
char *strptr = target;
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkhostsfiles module...\n");
}
if (verbose > 0)
{
printf(" Checking list of entries in hosts.allow...\n");
}
/* don't grep if its not there... we don't want to */
/* return an error if its not there, just continue */
if ((system("cat /etc/hosts.allow 1>/dev/null 2>/dev/null")) > 0)
{
/* hosts.allow is not there... */
header = "hosts.allow not present on this system";
dostuff(0, filename, 0, header, html);
}
else /* hosts.allow exists, do all this stuffs */
{
/* first off, get the entries in /etc/hosts.allow */
/* that are not comments... */
/* note: grep returns
* 0 on match
* 1 on no match
* 2 on system/file/read/other failure
* HOWEVER, -v inverts the sense of 0,1.
*/
tempfile = "/tmp/lsat1.lsat";
shellcode = "grep -v \\# /etc/hosts.allow 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.\n");
return(-1);
}
/* there should be no "ALL:ALL" in here! */
/* check for it... */
/* open the file... */
fileptr = fopen("/tmp/lsat1.lsat", "r");
if (fileptr == NULL)
{
perror(" Error opening tmp file.\n");
perror(" Error was in checkhostsfiles module.\n");
return(-1);
}
/* start getting lines from it */
while (fgets(line, sizeof(line), fileptr) != NULL)
{
field=0;
firstall=0;
ptr = strtok(line, ", :\n");
while (ptr != NULL)
{
/* note we want to check for: */
/* a) any lines at all */
/* b) ALL:ALL */
/* c) :ALL */
/* d) ALL : ALL */
if (sscanf(ptr, "%127s", tempstring) < 1)
{
perror(" sscanf bit the dust.\n");
perror(" Dust biting was in checkhostsfiles.\n");
return(-1);
}
if (field == 0)
{
if ((strstr(tempstring, strptr)) != NULL)
{
/* found match, 1st field */
firstall = 1;
}
}
if ((field == 1) || (field == 2))
{
if (((strstr(tempstring, strptr)) != NULL) && (firstall ==1))
{
/* found match, 2nd filed */
/* there is an ALL:ALL in hosts.allow */
found = 1;
}
if (strstr(tempstring, target) != NULL)
{
/* found match, 2nd filed, but not 1st. */
/* there is an allow all in hosts.allow */
found2 = 1;
}
}
ptr = strtok(NULL, ", :\n");
if (ptr == NULL)
{
/* freak out */
break;
}
field++;
} /* end while(ptr!=NULL) */
} /* end while(fgets...) */
/* we have checked hosts.allow. Close open files */
fclose(fileptr);
fileptr=NULL;
/* note dostuff will rm the tempfile */
header = "Lines found in hosts.allow\nMake sure you wish to allow the following:\n";
if ((dostuff(tempfile, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
} /* end the else of if the hosts.allow exists */
if (verbose > 0)
{
printf(" Checking entries in hosts.deny...\n");
}
/* don't grep if its not there... we don't want to */
/* return an error if its not there, just continue */
if ((system("cat /etc/hosts.deny 1>/dev/null 2>/dev/null")) > 0)
{
/* hosts.allow is not there... */
header = "hosts.deny not present on this system";
dostuff(0, filename, 0, header, html);
}
else /* hosts.deny exists, do all this stuffs */
{
/* now then, get the entries in /etc/hosts.deny */
/* that are not comments... */
/* note: grep returns
* 0 on match
* 1 on no match
* 2 on system/file/read/other failure
* HOWEVER, -v inverts the sense of 0,1.
*/
shellcode = "grep -v \\# /etc/hosts.deny 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* two things to check for: */
/* a) this file should not be empty */
/* b) it should contain ALL:ALL, or ALL : ALL or the like*/
/* open the tempfile... */
fileptr = fopen("/tmp/lsat1.lsat", "r");
if (fileptr == NULL)
{
perror(" Error opening tmp file.\n");
perror(" Error was in checkhostsfiles module.\n");
return(-1);
}
/* reset flags... */
field = 0;
found = 0;
found2 = 0;
/* start getting lines from this file */
linecount=0;
while (fgets(line, sizeof(line), fileptr) != NULL)
{
ptr = strtok(line, ", \n");
while (ptr != NULL)
{
if (sscanf(line, "%127s", tempstring) < 1)
{
perror(" sscanf bit the dust.\n");
perror(" Dust biting was in checkhostsfiles.\n");
return(-1);
}
if (field == 0)
{
if ((strstr(tempstring, strptr)) != NULL)
{
/* found match, 1st field */
firstall = 1;
}
}
if ((field == 1) || (field == 2))
{
if (((strstr(tempstring, strptr)) != NULL) && (firstall ==1))
{
/* found match, 2nd filed */
/* there is an ALL:ALL in hosts.allow */
found = 1;
}
if (strstr(tempstring, target) != NULL)
{
/* found match, 2nd filed, but not 1st. */
/* there is an allow all in hosts.allow */
found2 = 1;
}
}
ptr = strtok(NULL, ", \n");
if (ptr == NULL)
{
break;
}
field++;
} /* end while (ptr != NULL) */
linecount++;
} /* end while(fgets...) */
/* if found = 0, there is _no_ ALL:ALL */
if (found == 0)
{
header = "Did not find ALL:ALL in hosts.deny.\nLines found in hosts.deny:\n";
}
if (found == 1)
{
header = "ALL:ALL present in hosts.deny. Good.\nHere are the lines in hosts.deny:\n";
}
if ((dostuff(tempfile, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
} /* end of else, for if hosts.deny exists */
/* this is bad unless you really use the "r" commands */
/* which you shouldn't.. :) */
if ((system("cat /etc/hosts.equiv 1>/dev/null 2>/dev/null")) == 0)
{
/* hosts.equiv is there... */
/* we consider this a bad thing. */
header = "/etc/hosts.equiv found on this system.\nUnless you really need it, remove it.";
dostuff(0, filename, 0, header, html);
}
if ((system("cat /etc/hosts.lpd 1>/dev/null 2>/dev/null")) == 0)
{
/* hosts.lpd is there... */
/* we consider this a bad thing. */
header = "/etc/hosts.lpd found on this system.\nConsider preventing lpd from listening to the network.\nAt least make sure it contains fully qualified hostnames.";
dostuff(0, filename, 0, header, html);
}
/* clean up */
if(fileptr) fclose(fileptr);
if (verbose > 0)
{
printf(" Finished module checkhostsfiles.\n");
}
return(0);
}
lsat-0.9.7.1/checkinetd.c 0000644 0001750 0000144 00000021302 11007333550 014371 0 ustar number9 users /************************************************/
/* This checks inetd.conf for baddies... */
/* This function checks inetd.conf or xinetd.d */
/* for unwanted services. It outputs the list */
/* of all servies running (all are unwanted, */
/* right?) to the outfile. */
/* If inetd.conf exists or if xinetd.d is */
/* present it also returns a 1 to main to tell */
/* main to run a check of /etc/hosts.deny. */
/* */
/* See lsatmain.c for more details... */
/************************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#include
int checkinetd(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
char *ptr;
char line[128]; /* temp line for reading */
char tempstring[128]; /* tempstring for inet */
int inetd = 0; /* do we use inetd? */
int xinetd = 0; /* do we use xinetd? */
int linecount, field; /* some vars... */
int emptyflag=1; /* is inet an empty file? */
FILE *infile; /* tempfile file pointer */
FILE *fileptr;
const char * tmp_file = "/tmp/lsat2.lsat"; /* temp file */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkinetd module...\n");
}
/* really check if /etc/inetd.conf or /etc/xinetd.conf exist */
/* instead of guessing */
if (distribution != 3)
/* we are not on Solaris... */
{
/* check for /etc/inetd.conf */
if (system("test -e /etc/inetd.conf")==0)
{
inetd=1;
}
/* check for /etc/xinetd.d/ */
if (system("test -e /etc/xinetd.d")==0)
{
xinetd=1;
}
}
if (distribution == 3)
/* we are on Solaris, test -e does not work under sh */
{
/* check for /etc/inetd.conf */
if (system("test -f /etc/inetd.conf")==0)
{
inetd=1;
}
/* check for /etc/xinetd.d/ */
if (system("test -f /etc/xinetd.d")==0)
{
xinetd=1;
}
}
/* now we start to check */
if (inetd == 1)
{
if (verbose > 0)
{
printf(" Checking entries in /etc/inetd.conf...\n");
}
/* note: grep returns
* 0 on match
* 1 on no match
* 2 on system/file/read/other failure
* HOWEVER, -v inverts the sense of 0,1.
*/
header = "inetd.conf entries:\n";
tempfile = "/tmp/lsat1.lsat";
/* use different shellcodes as linux grep is */
/* mo-betta than standard Solaris grep :) */
if (distribution != 3)
{
/* find all lines that do not _start_ with a "#" */
shellcode = "grep -Ev ^\\[:space:\\]*\\# /etc/inetd.conf >/tmp/lsat1.lsat";
}
if (distribution == 3)
{
/* find all lines that do not _start_ with a "#" */
/* Note, either I suck with grep, or Solaris grep*/
/* is drain bramaged... have to just check for # */
shellcode = "grep -v \\# /etc/inetd.conf >/tmp/lsat1.lsat";
}
if ((dostuff(tempfile, 0, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* now instead of reading the whole file and */
/* say looking for baddie servies, I consider */
/* that all in there are evil. Merely tell the */
/* user what we have found that is open. */
/* perhaps also tell them to close them. :) */
/* note that if the file is empty, thats great. */
/* it _should_ mean that they have commented */
/* out everything in /etc/inetd.conf */
infile = fopen("/tmp/lsat1.lsat", "r");
if (infile == NULL)
{
perror(" Error opening tmp file.\n");
return(-1);
}
/* create another tmp file for entries... */
if ((fileptr = fopen(tmp_file, "a")) == NULL)
{
perror(" Could not create temporary file...\n");
perror(" Possible link attack while creating/opening file!\n");
exit(-1);
}
/* init linecount */
linecount = 0;
/* init emptyflag */
emptyflag = 0;
while (fgets(line, sizeof(line), infile) != NULL)
{
field=0;
ptr = strtok(line, ", \"\n");
if (ptr == NULL)
{
if (linecount == 0)
{
/* 1st line was empty, must have been */
/* an empty file. This _should_ be a */
/* "good thing".... */
/* set flag, then break. */
emptyflag = 1;
}
}
linecount++;
while (ptr != NULL)
{
if (sscanf(ptr, "%127s", tempstring) < 1)
{
perror(" sscanf bit the dust");
perror(" Dust biting was in checkinetd.\n");
return(-1);
}
/* note: we just need the 1st field... */
if (field == 0)
{
fprintf(fileptr, "%s\n", tempstring);
}
ptr = strtok(NULL, ", \"\n");
if (ptr == NULL)
{
;
}
field++;
}
} /* end while(fgets...) */
/* close files in use */
fclose(infile);
/* close the tmp file, do not rm it */
fclose(fileptr);
/* rm tempfile since dostuff will be called */
/* with the new tmpfile we created */
remove(tempfile);
/* call dostuff to append the new tmpfile */
/* to the outfile. */
if (emptyflag == 1)
{
/* no baddies in inetd.conf */
header = "No non-essential items found in inetd.conf. Good.\n";
}
if (emptyflag == 0)
{
/* found some lines not commented out... */
header = "Please comment out all of these from inetd.conf.\n";
}
if ((dostuff(tmp_file, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
} /* end of if(inetexists==1) */
/* end of RedHat 5.x, 6.x check portion */
/* note that in the above dostuff it should */
/* have removed the tempfile, so we will */
/* reuse it below for xinetd.d entries... */
/* if we are on RedHat 7.x we use xinetd.d/ files */
if (xinetd == 1)
{
if (verbose > 0)
{
printf(" Checking entries in /etc/xinetd.d/...\n");
}
/* init the linecount here */
linecount = 0;
/* assume RedHat 7.x box */
/* read through the files in /etc/xinetd.c and */
/* check for ones that are not disabled. */
tempfile = "/tmp/lsat1.lsat";
shellcode = "grep disable /etc/xinetd.d/* 2>/dev/null |grep no 2>/dev/null |awk -F\" \" 'length($1 $4) > 0 {print($1 $4)}' >/tmp/lsat1.lsat";
header = "Entries below shall be services in xinetd.d that\nare not disabled.\nPlease verify that you do not want these disabled.\nIf nothing is listed below, all services in xinetd.d are disabled.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
} /* end of RedHat 7.x check portion */
/* the xinetd.conf file may not exist on some systems (aka gentoo) */
if ((system("test -r /etc/xinetd.conf"))==0)
{
if ((system("grep only_from /etc/xinetd.conf 1>/dev/null 2>/dev/null >/dev/null") == 0))
{
/* found only_from in xinetd.conf, tell user to check it */
/* later on I will check against the ifconfig output or */
/* something *smile* */
header = "Found only_from line in xinetd.conf.\nMake sure this matches what you want to allow\n";
}
else
{
/* did not find only_from in xinetd.conf... user should */
/* add this to xinetd.conf... */
header = "Did not find only_from= in /etc/xinetd.conf.\nPlease add this to allow subnets that you want to give access to.\n";
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished module checkinetd.\n");
}
/* instead of just returning 0 here */
/* we return (inetd or xinetd)... */
/* 0 for no existance, 1 if either exists */
return(inetd || xinetd);
}
lsat-0.9.7.1/checkinittab.c 0000644 0001750 0000144 00000004302 11007333550 014721 0 ustar number9 users /****************************************/
/* This is the checkinittab module for */
/* LSAT. It merely checks to see which */
/* runlevel is running, or actually, it */
/* just checks to see if we are running */
/* in 5 (Xwindows)... note this is not */
/* for Mac OSX. */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkinittab(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header = NULL;
if (verbose >= 0)
{
printf(" Running checkinittab module...\n");
}
/* if we are not on redhat or derivative, do not do this... */
if (distribution != 5)
{
/* we are not on Mac OSX */
if ((system("grep id:5:initdefault /etc/inittab 1>/dev/null 2>/dev/null >/dev/null") == 0))
{
/* we have a match, they are running X as default init */
header = "default init level set to 5.\nUnless there is a reason to run a GUI full time on this system,\nconsider setting to runlevel 3.\n";
}
else
{
/* we (hope) the runlevel is 3 and not 6 *smile* */
header = "default init level is not set to 5. Good.\n";
}
}
/* slackware check */
if (distribution == 6) /* JTO */
{
/* we are on slackware */
if ((system("grep id:4:initdefault /etc/inittab 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* we have a match, they are running X as default init */
header = "default init level set to 4.\nUnless there is a reason to run a GUI full time on this system,\nconsider setting to runlevel 3.\n";
}
else
{
/* we (hope) the runlevel is 3 and not 6 *smile* */
header = "default init level is not set to 4. Good.\n";
}
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Finished in checkinittab module.\n");
}
return(0);
}
lsat-0.9.7.1/checkipv4.c 0000644 0001750 0000144 00000015350 11007333550 014156 0 ustar number9 users /****************************************/
/* This is the checkipv4 module ...it */
/* it checks for various proc entries */
/* that aid in a more secure system... */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkipv4(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkipv4 module...\n");
}
/* check to see if we ignore pings... */
if ((system("test -r /proc/sys/net/ipv4/icmp_echo_ignore_all 1>/dev/null")) == 0)
{
/* file is there, check it */
if ((system("grep 0 /proc/sys/net/ipv4/icmp_echo_ignore_all 1>/dev/null")) == 0)
{
/* it has a zero, we want a one in it. */
header = "/proc/sys/net/ipv4/icmp_echo_ignore_all exists, but is off.\nConsider placing a one in it to turn on.\n";
}
else
{
/* its there and has a one. good. */
header = "You ignore all ICMP Echo requests, good.\n";
}
}
else
{
/* file is not there at all... */
header = "Consider ignoring icmp_echo...\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* check to see if we ignore broadcasts... */
if ((system("test -r /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 1>/dev/null")) == 0)
{
/* file is there, check it */
if ((system("grep 0 /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 1>/dev/null")) == 0)
{
/* it has a zero, we want a one in it. */
header = "/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts exists but it is off\nConsider turning it on by placing a one in it.\n";
}
else
{
/* its there and has a one. good. */
header = "You ignore all ICMP Echo broadcasts, good.\n";
}
}
else
{
/* file is not there at all... */
header = "Consider turning on icmp_echo_ignore_broadcasts.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* check to see if we disable source routed packets */
if ((system("test -r /proc/sys/net/ipv4/conf/all/accept_source_route 1>/dev/null")) == 0)
{
/* it exists, check it */
if ((system("grep 1 /proc/sys/net/ipv4/conf/all/accept_source_route 1>/dev/null")) == 0)
{
/* its there and has a one, we want a zero */
header = "/proc/sys/net/ipv4/conf/all/accept_source_route exists, but it is off.\nConsider turning it on by putting a zero in it.\n";
}
else
{
/* its there and its on */
header = "You are denying source routed packets. Good.\n";
}
}
else
{
/* file is not there at all... */
header = "Consider denying source routed packets.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* check to see if we disable redirect acceptance */
if ((system("test -r /proc/sys/net/ipv4/conf/all/accept_redirects 1>/dev/null")) == 0)
{
/* its there check it */
if ((system("grep 1 /proc/sys/net/ipv4/conf/all/accept_redirects 1>/dev/null")) == 0)
{
/* its off */
header = "/proc/sys/net/ipv4/conf/all/accept_redirects exists, but its off.\n";
}
else
{
/* its there and it has a one */
header = "You are not accepting ipv4 redirects. Good\n";
}
}
else
{
/* that file does not even exist */
header = "Consider not accepting ipv4 redirects.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* check to see if we are protecting against bad err msgs */
if ((system("test -r /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses")) == 0)
{
/* its there, check it */
if ((system("grep 0 /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 1>/dev/null")) == 0)
{
/* its has a zero, we want a one */
header = "IPV4 protection against bad err msgs is there, but it is off.\n";
}
else
{
/* its there and on */
header = "You are ignoring bad err msgs in ipv4. Good.\n";
}
}
else
{
/* file was not there at all */
header = "You are not ignoring bad error msgs in ipv4.\nConsider turning this on.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* I am considering checking for reverse path filtering, but hesitate */
/* to add it just yet... */
/* check for logging of spoofed, source routed and redirected pkts */
if ((system("test -r /proc/sys/net/ipv4/conf/all/log_martians 1>/dev/null")) == 0)
{
/* it exists, check it */
if ((system("grep 0 /proc/sys/net/ipv4/conf/all/log_martians 1>/dev/null")) == 0)
{
/* its there but off */
header = "Logging of spoofed, etc packets is off.\nConsider turning on.\n";
}
else
{
/* its on already. */
header = "You are logging spoofed, etc packets. Good.\n";
}
}
else
{
/* that file does not exist... */
header = "Consider turning on the logging of spoofed, source routed\nand redirected ipv4 packets.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Finished in checkipv4 module.\n");
}
return(0);
}
lsat-0.9.7.1/checkissue.c 0000644 0001750 0000144 00000007103 11007333550 014421 0 ustar number9 users /********************************************/
/* this module checks for existance of */
/* /etc/issue and /etc/issue.net files... */
/* If they exist, this is not really bad, */
/* but by default they give out system */
/* specific information which could be */
/* useful to an attacker. */
/* */
/* See lsatmain.c for more details. */
/********************************************/
#include "lsatheader.h"
#include
#include
#include
int checkissue(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkissue module...\n");
}
if ((system("cat /etc/issue 1>/dev/null 2>/dev/null >/dev/null")) == 0)
/* its there, This is a "bad thing", perhaps. */
{
header = "/etc/issue exists. Make sure it does not have any \n system specific information in it.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
else /* /etc/issue does not exist */
{
header = "/etc/issue does not exist. Good.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if ((system("cat /etc/issue.net 1>/dev/null 2>/dev/null >/dev/null")) == 0)
/* its there, This is a "bad thing", perhaps. */
{
header = "/etc/issue.net exists. Make sure it does not have any \n system specific information in it.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
else /* /etc/issue.net does not exist */
{
header = "/etc/issue.net does not exist. Good.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if ((system("cat /etc/motd 1>/dev/null 2>/dev/null >/dev/null")) == 0)
/* its there, This is a "bad thing", perhaps. */
{
header = "/etc/motd exists. Make sure it does not have any \n system specific information in it.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
else /* /etc/motd does not exist */
{
header = "/etc/motd does not exist.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if ((system("ls /etc/banners 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* it should be there then */
header = "/etc/banners exists... Check it to make sure its ok.\n";
}
else
{
/* it is not there... */
header = "/etc/banners dir not found. \nCheck securitylinks.txt for more info.\n";
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkissue module.\n");
}
return(0);
}
lsat-0.9.7.1/checkkbd.c 0000644 0001750 0000144 00000004642 11007333550 014036 0 ustar number9 users /************************************************/
/* This checks to see if the ctrlaltdel, or the */
/* STOP-A sequences are disabled in linux or */
/* Solaris, respectively. These should be */
/* disabled for security reasons. */
/* Where? */
/* Linux: /etc/inittab */
/* Solaris: /etc/default/kbd */
/* */
/* See lsatmain.c for more details... */
/************************************************/
#include "lsatheader.h"
#include
#include
#include
int checkkbd(release, filename, verbose, html)
char release[50];
const char *const filename;
int verbose;
int html;
{
char Sunos[4]="Sun"; /* for comparison */
char Linux[4]="Lin"; /* for comparison */
char *sunptr=Sunos; /* char pointer */
char *lptr=Linux; /* char pointer */
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkkbd module...\n");
}
/* ok, we also check here if we are on a Solaris */
/* machine. */
if (strstr(release, sunptr) != NULL)
{
if (verbose > 0)
{
printf(" Checking KEYBOARD_ABORT...\n");
}
/* note, I am checking the existance of the line */
/* and that it is commented out, which is what */
/* we DO NOT want. */
if ((system("grep KEYBOARD_ABORT=disable /etc/default/kbd 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null"))== 0)
{
header = "Make sure keyboard abort is disabled.\nIt is in /etc/default/kbd\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Write to outfile failed.");
return(-1);
}
}
}
/* if not Solaris... must be linux. */
if (strstr(release, lptr) != NULL)
{
if (verbose > 0)
{
printf(" Checking ctrlaltdel...\n");
}
/* note here, it is the opposite of SunOS */
/* in that the line _should_ be commented out */
if ((system("grep ctrlaltdel /etc/inittab 1>/dev/null 2>/dev/null | grep -v \\# 1>/dev/null 2>/dev/null")) == 0)
{
header = "Make sure the ctrlaltdel is commented out.\nIt is in /etc/inittab.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
}
if (verbose > 0)
{
printf(" Finished module checkkbd.\n");
}
return(0);
}
lsat-0.9.7.1/checklimits.c 0000644 0001750 0000144 00000005162 11007403114 014567 0 ustar number9 users /****************************************/
/* This is the checklimits.c module for */
/* lsat program. This module checks for */
/* the default setting in limits.conf */
/* This is not a complete check by far, */
/* but a good place to start. */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checklimits(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
const char * tempfile =NULL;
const char * shellcode =NULL;
if (verbose >= 0)
{
printf(" Running checklimits module...\n");
}
/* first check for the limits.conf file */
/* in the usual place. if its not there */
/* tell the user we cant find it. */
if ((system("test -r /etc/security/limits.conf")) == 0)
{
/* it exists, check it */
/* -v inverts sense of return value */
/* if == 1 there was a match (it is hashed out). */
/* if so, then we warn user. */
if ((system("grep \"\\*\" /etc/security/limits.conf 2>/dev/null |grep -v \\# 2>/dev/null")) != 0)
{
header = "Default limits hashed out in limits.conf.\nCheck /etc/security/limits.conf for the default entry.\nMake sure to set hard and soft limits for default \"*\",\nor for individual users.\n";
}
else
{
header = "/etc/security/limits.conf looks ok.\nDouble check the limits just to be sure.\n";
}
}
else
{
header = "Can't seem to find limits.conf file.\nCheck to make sure you are using limits and,\nthat the default (hard/soft) limits are set.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* ok, we looked for the system limits in */
/* the limits file, but lets see what the */
/* current limits are... */
/* we think this works on all distros. :O */
shellcode = "ulimit -a 2>/dev/null >>/tmp/lsat1.lsat";
header = "Output from ulimit, check to see if these are reasonable limits.\nResource limits can help prevent DOS attacks,\nread up on them if you need to.\n";
tempfile = "/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) <0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checklimits module.\n");
}
return(0);
}
lsat-0.9.7.1/checklistening.c 0000600 0001750 0000144 00000005711 11007333550 015260 0 ustar number9 users /**********************************************/
/* This will check for applications listening */
/* on the system using /proc/net/packet and */
/* lsof because ifconfig and ip don't pick */
/* up everything. */
/* */
/* False positives like dhcpcd, dhclient and */
/* wpa_supplicant are expected but it is */
/* always "better" to know what =is= running. */
/* */
/* */
/* See lsatmain.c for more details. */
/**********************************************/
#include "lsatheader.h"
#include
#include
#include
int checklistening(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
const char * tempfile =NULL;
const char * shellcode=NULL;
int lsof_installed = 0;
if (verbose >= 0)
{
printf(" Running checklistening module...\n");
}
/* it was noted that some distros do not install lsof by */
/* default, mainly gentoo... we therefore check here. */
if (distribution != 3)
{
if ((system("lsof 1>/dev/null 2>/dev/null >/dev/null")) != 0 )
{
/* perhaps lsof is not installed */
header = "lsof is not installed on this system,\nor it is not in the path,\nor I just can not find it.\ncheckopenfiles was not run.\n";
lsof_installed = 1;
}
}
if ((system("readlink 1>/dev/null 2>/dev/null >/dev/null")) != 0 )
{
/* readlink aint there */
header = "readlink is not installed on this system,\nor it is not in the path,\nor I just can not find it.\nchecklistening was not run.\n";
/* we'll just use the other var since it makes no differency because we need both */
lsof_installed = 1;
}
/* Solaris */
if (distribution == 3)
{
header = "checklistening not supported on Solaris.\n";
lsof_installed = 1;
}
if (lsof_installed == 0)
{
header = "These applications are listening (processname, pid):\n";
tempfile = "/tmp/lsat1.lsat";
shellcode = "grep /proc/net/packet -ve ^sk|awk '{print $9}'|while read inode; do lsof -lMnP | grep '$inode' | awk '{print $2}'|while read pid; do name=$(readlink -f /proc/$pid/exe); echo '${name} $pid'; done 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (lsof_installed == 1)
{
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checklistening module.\n");
}
return(0);
}
lsat-0.9.7.1/checklogging.c 0000644 0001750 0000144 00000006302 11007333550 014717 0 ustar number9 users /****************************************/
/* This is the cheklogging module for */
/* LSAT. It merely checks that log auth */
/* and log authpriv facilities are being*/
/* used. */
/* it now also checks the faillog */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checklogging(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header = NULL;
const char * shellcode = NULL;
const char * tmp_file = "/tmp/lsat1.lsat";
if (verbose >= 0)
{
printf(" Running checklogging module...\n");
}
/* if we are not on redhat or derivative, do not do this... */
/* we shall append to this later for Solaris and Mac OSX */
/* check for the auth facility... */
if (distribution != 5)
{
/* we are not on Mac OSX */
if ((system("grep auth\\. /etc/syslog.conf 1>/dev/null 2>/dev/null >/dev/null") == 0))
{
/* match, they are logging auth */
header = "_Looks_ like you are using the auth log facility\nin syslog. Good.";
}
else
{
/* no match. they are not logging auth */
header = "Consider placing: auth.*\t\t\t\t/var/log/secure\n in your /etc/syslog.conf file.\n";
}
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* now check for authpriv facility... */
if (distribution != 5)
{
/* we are not on Mac OSX */
if ((system("grep authpriv\\. /etc/syslog.conf 1>/dev/null 2>/dev/null >/dev/null") == 0))
{
/* match, they are logging authpriv */
header = "_Looks_ like you are using the authpriv log facility\nin syslog. Good.";
}
else
{
/* no match. they are not logging authpriv */
header = "Consider placing: authpriv.*\t\t\t\t/var/log/secure\n in your /etc/syslog.conf file.\n";
}
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* Solaris and Linux should have this... I think OSX has it too */
if ((system("test -r /usr/bin/faillog")) == 0)
{
/* run failllog */
/* ops, we have to shorten the output of faillog */
/* e.g. what if we are on a big system w/1000s of*/
/* users? The faillog output could be huge... */
/* we cut it back to say 100... */
shellcode = "/usr/bin/faillog -a |head -100 2>/dev/null >/tmp/lsat1.lsat";
header = "The last 100 (or less) failed login attempts on the system\n";
if ((dostuff(tmp_file, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checklogging module.\n");
}
return(0);
}
lsat-0.9.7.1/checkmd5.c 0000644 0001750 0000144 00000014415 11007333550 013762 0 ustar number9 users /********************************************/
/* This module will find all files on the */
/* system and print an md5sum for each one */
/* out to a file...not the lsat.out file. */
/* In this way the output can be diffed */
/* against an older one. If this module was */
/* already run, the old outfile will be */
/* renamed to .old. I may put in a switch */
/* to automagically diff the output.... */
/* */
/* See lsatmain.c for more details. */
/********************************************/
/********************************************/
/* Special note for md5sum (GNU/Linux) */
/* 10/20/2003: */
/* */
/* md5sum is "sortof" broken... who is at */
/* fault is really a matter of perspective, */
/* but nevertheless, if one tries to md5sum */
/* an "unreadable" file (say /proc/kmsg), */
/* md5sum will hang. This is due to the fact*/
/* that you can not really read the file, */
/* or better yet, the first few characters. */
/* e.g. if you cat /proc/kmsg (redhat 9.0) */
/* and strace it, you will receive a read */
/* error on the first two bytes. This causes*/
/* md5sum to hang. Even though they are */
/* checking to make sure the line pointer is*/
/* good in md5sum.c, they do not check if */
/* the first few bytes are actually readable*/
/* For this reason, until I can come up with*/
/* a good solution, (and then convincing the*/
/* md5sum maintainer is another thing) or */
/* think of a good test in here, I will be */
/* ignoring the /proc and /dev directories */
/* during the find for md5summing files... */
/* yuk. */
/* */
/* I will try to work on this and fix it as */
/* soon as I can. */
/********************************************/
#include "lsatheader.h"
#include
#include
#include
int checkmd5(filename, distribution, verbose, html, diff)
const char *const filename;
int verbose;
int distribution;
int html;
int diff;
{
int outexists = 0;
const char * header =NULL;
const char * tempfile =NULL;
const char * outfile2 =NULL;
const char * shellcode=NULL;
const char *outputfile = "lsatmd5.out";
char *newname = NULL;
FILE *tempptr;
if (verbose >= 0)
{
printf(" Running checkmd5 module...\n");
}
header = "Check lsatmd5.out for output of checkmd5.\nIf this is a subsequent run, old one is called lsatmd5.out.old\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.\n");
return(-1);
}
/* ok, make a temp file for holding the output */
tempfile="/tmp/lsat1.lsat";
/* lets get a list of files and md5(sum) them... */
/* denote again... under Mac OSX its md5 and not md5sum... */
if (distribution == 5)
{
shellcode = "find / -type f -print0 2>/dev/null |xargs -0 md5 2>/dev/null >> /tmp/lsat1.lsat";
}
else
{
/* ugh, that is silly. */
/* yes, let's make it ((silly--)) */
/* this one really avoids proc dev and also var and tmp and /sys */
/* if thats too much for you, rip out the repective " -o -path -prune" parts */
shellcode = "find / -path /dev -prune -o -path /proc -prune -o -path /home -prune -o -path /var -prune -o -path /tmp -prune -o -path /sys -prune -o -type f -exec md5sum \\{\\} \\; 2>/dev/null >> /tmp/lsat1.lsat";
}
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.\n");
return(-1);
}
/* ok, now all of these find outputs are in the tempfile */
/* now we print that out to another .out file... */
outfile2 = "lsatmd5.out";
/* check if output exists, if it does, make a */
/* backup and rm the orig. named one. */
tempptr = fopen(outputfile, "r");
if (tempptr != 0)
{
/* output file exists */
/* make note of this in case we wish to diff... */
outexists = 1;
if ((newname = (char *) calloc(2, sizeof(outputfile))) == NULL)
{
perror("Can not allocate temp memory in checkmd5.\n");
perror("Strange. Bailing...\n");
exit(-1);
}
fclose(tempptr);
/* add .old onto the old outfile name */
sprintf(newname, "%s.old", outputfile);
/* gnu, but should be ok... */
/* no failure check? eh, its ok... */
rename(outputfile, newname);
/* free up calloc'd mem */
free(newname);
}
/* now that we have a backup, remove the outfile */
/* don't care about failure here... */
remove(outputfile);
/* ok, now that we have a backup of the orig file*/
/* write the new one out to disk... */
if ((dostuff(tempfile, outfile2, 0, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.\n");
return(-1);
}
/* if the user wants a diff, do it here... */
/* do they want a diff? */
if (diff == 1)
{
/* make sure the old outfile exists */
if (outexists == 1)
{
/* note we just overwrite the old diff... */
/* this could be improved :) */
if (system("diff lsatmd5.out lsatmd5.out.old > lsatmd5.diff") < 0 )
{
/* something went wrong */
perror(" diff failed in checkmd5 module.\n");
}
header = "md5 diff completed, check lsatmd5.diff for output\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.\n");
return(-1);
}
}
else
{
/* old md5sum output file does not exist... */
/* user must have del it or not run lsat before. */
/* give warning, but don't bomb out... */
header = "Cound not find lsatmd5.out.old,\nno md5diff run was done; re-run lsat to generate one.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.\n");
return(-1);
}
}
}
if (verbose > 0)
{
printf(" Finished in checkmd5 module.\n");
}
return(0);
}
lsat-0.9.7.1/checkmodules.c 0000644 0001750 0000144 00000006213 11007333550 014742 0 ustar number9 users /********************************************/
/* This module will (hopefully) check to see*/
/* if loadable modules are enabled in the */
/* kernel...for a really secure system, this*/
/* should be disabled and they should be */
/* static in the kernel. */
/* */
/* This will (obviously) not work under */
/* Solaris or AIX... */
/* Note I will check in lsatmain.c to see */
/* if we are on a linux distro before we */
/* run this. I think this will save some */
/* cpu cycles instead of coming here to do */
/* this check... */
/* */
/* See lsatmain.c for more details. */
/********************************************/
#include "lsatheader.h"
#include
#include
#include
int checkmodules(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
const char * tempfile =NULL;
const char * shellcode=NULL;
if (verbose >= 0)
{
printf(" Running checkmodules module...\n");
}
if ((system("cat /proc/modules 1>/dev/null 2>/dev/null >/dev/null")) == 0 )
{
if ((system("grep module /proc/ksyms 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
if (system("/sbin/lsmod 2>&1|grep -e QM_MODULES") == 0)
{
tempfile = "/tmp/lsat1.lsat";
header = "Modules appear to be enabled in the kernel.\nList of modules loaded:\n";
shellcode = "/usr/bin/strings -an1 /proc/modules 2>&1>/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
} else {
tempfile = "/tmp/lsat1.lsat";
header = "Modules appear to be enabled in the kernel.\nList of modules loaded:\n";
shellcode = "/sbin/lsmod 2>&1>/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
}
}
if ((system("test -r /sbin/modprobe")) == 0)
{
shellcode = "/sbin/modprobe -c -l 2>/dev/null >/tmp/lsat1.lsat";
header = "These are the kernel modules that are loaded on the system\nas given by the output of modprobe -c -l\nCheck to see if they are really needed.\n";
tempfile = "/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
/* I should just test for solaris here */
if ((system("test -r /usr/sbin/modinfo")) == 0)
{
shellcode = "/usr/sbin/modinfo 2>/dev/null >/tmp/lsat1.lsat";
header = "These are kernel modules that are loaded on the system\nas given by the output of modinfo.\nCheck to see if they are really needed.\n";
tempfile = "/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checkmodules module.\n");
}
return(0);
}
lsat-0.9.7.1/checknet.c 0000644 0001750 0000144 00000020506 11007333550 014061 0 ustar number9 users /************************************************/
/* This checks open network ports. */
/* This module checks for open network ports on */
/* the system by means of a netstat -an. */
/* the output is stripped for LISTEN lines and */
/* that is checked against /etc/services in */
/* order to print out a "guess" at what is */
/* running on that port. I could have used nmap */
/* or something else, but I wanted to just have */
/* a quick check without having to install */
/* yet another program (YAP). */
/* */
/* See lsatmain.c for more details... */
/************************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#include
int checknet(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
char *ptr; /* char ptr for strtok */
char line[192]; /* temp line for reading */
char tempstring[192]; /* tempstring for entries */
int field; /* some vars... */
int i; /* counter */
FILE *infile; /* tempfile file pointer */
FILE *fileptr;
const char * tmp_file = "/tmp/lsat2.lsat";
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checknet module...\n");
}
if (verbose > 0)
{
printf(" Checking for open/running network services...\n");
}
if (distribution != 3)
/* not on Solaris, go for it */
{
tempfile = "/tmp/lsat1.lsat";
shellcode = "netstat -an |grep LISTEN |grep 0.0.0.0 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* create another temp file for storage */
if ((fileptr = fopen(tmp_file, "a")) == NULL)
{
perror("Could not make file w/perms 0600...");
perror("Possible link attack while creating/opening file!");
perror("Bailing in checknet...");
exit(-1);
}
/* ok, open the file dostuff just made for read */
infile = fopen("/tmp/lsat1.lsat", "r");
if (infile == NULL)
{
perror("Error opening tmp file.");
perror("Error was in module: checknet.");
return(-1);
}
/* ok, the file should look something like: */
/* protocol n n : : LISTEN */
/* so we want the port on the 1st : pair. */
/* we then want to look that port up in /etc/services */
/* and print out that line to the outfile... */
i = 0; /* counter for our array */
while (fgets(line, sizeof(line), infile) != NULL)
{
field=0;
/* if we say a token is a ' ' or :, then we need to */
/* grab the 5th field of each line of the file. */
/* note here we will also print out the 1st field, */
/* although AFAIK they will all be tcp. */
ptr = strtok(line, ", :\n");
/* do not read in past field 5, buffer overflow can */
/* exist, thanks nordi. */
while ((ptr != NULL) && (field < 5))
{
if (sscanf(ptr, "%191s", tempstring) < 1)
{
perror("sscanf bit the dust");
perror("Dust biting was in checknet.\n");
return(-1);
}
/* get the 1st field...*/
if (field == 0)
{
fprintf(fileptr, "%s\t\t", tempstring);
}
/* get the 5th field... */
if (field == 4)
{
fprintf(fileptr, "%s\n", tempstring);
}
ptr = strtok(NULL, ", :\n");
if (ptr == NULL)
{
/* freak out */
break;
}
field++;
} /* end while (ptr!=NULL) */
} /* end while(fgets...) */
/* close infile */
fclose(infile);
/* rm infile as dostuff is going to read in tmpfile */
remove(tempfile);
/* dont forget to close tmpfile or dostuff will crash */
fclose(fileptr);
header = "Check these ports in /etc/services to see what they are.\nClose all ports you do not need.\n\nPorts listening on this system:\nProtocol\tPort\n";
if ((dostuff(tmp_file, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* this ends the if (distribution != 3) function */
}
if (distribution == 3)
/* we are on Solaris, begin getting funky */
{
tempfile = "/tmp/lsat1.lsat";
shellcode = "netstat -a -f inet |grep LISTEN |awk -F\" \" 'length($1) > 0 {print $1}' 2>/dev/null >> /tmp/lsat1.lsat";
header = "These ports were found to be listening on the system.\nClose all ports or services you do not need.";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
/* we shall attempt to do a check with nmap just for fun */
/* nmap has nice output, and is a very good program... */
if ((system("which nmap 1>/dev/null 2>/dev/null >/dev/null") == 0))
{
/* it should be installed and in the PATH */
/* TODO */
/* we need to check if there is more than */
/* one interface on the box and then nmap */
/* each interface, except for loopback */
/* also note, some distrios outputs are different */
if (distribution == 5)
{
/* we are on Mac OSX */
shellcode = "nmap -v -T insane `ifconfig | grep inet | grep -v inet6 | awk -F\" \" 'length($2) > 0 {print $2}' |grep -v 127.0.0.1 |xargs` 2>/dev/null >>/tmp/lsat1.lsat";
}
if (distribution == 4)
{
/* we are on gentoo */
shellcode = "nmap -v -T insane `/sbin/ifconfig |grep inet |awk -F\" \" 'length($2) > 0 {print $2}' |awk -F \":\" 'length($2) > 0 {print $2}' |grep -v 127.0.0.1 |xargs` 2>/dev/null >>/tmp/lsat1.lsat";
}
if (distribution == 3)
{
/* we are on solaris */
/* hrm, is this going to work? */
shellcode = "nmap -v -T insane `grep loghost /etc/hosts |awk -F\" \" 'length($1) > 0 {print $1}' |xargs` 2>/dev/null >>/tmp/lsat1.lsat";
}
if ((distribution == 1) || (distribution == 2))
{
/* we assume a redhat deriviative */
/* I shove Debian in here too... */
/* untested on Debian thus far. */
shellcode = "nmap -v -T insane `/sbin/ifconfig |grep inet |grep -v 127.0.0.1 |awk -F\" \" 'length($2) > 0 {print $2}' |awk -F\":\" 'length($2) >0 {print $2}' |xargs` 2>/dev/null >>/tmp/lsat1.lsat";
}
header = "Output from nmap run on local IP(s)\nCheck these services to see if they are critical.\nDisable services you do not need.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* run arp to see if we have some arp poisen going on */
if ((system("which arp 1>/dev/null 2>/dev/null > /dev/null")) == 0)
{
shellcode = "arp -an 2>/dev/null >>/tmp/lsat1.lsat";
header = "Output from arp -a. \nIf you have arp poisoning, it should show up here.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) <0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
/* check for kernel interface statistics */
if ((system("which netstat 1>/dev/null 2>/dev/null > /dev/null")) == 0)
{
shellcode = "netstat -i 2>/dev/null >/tmp/lsat1.lsat";
header = "Output from netstat -i showing Kernel interface statistics\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) <0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
/*check for routing*/
if ((system("which netstat 1>/dev/null 2>/dev/null > /dev/null")) == 0)
{
shellcode = "netstat -rn 2>/dev/null >/tmp/lsat1.lsat";
header = "Output from netstat -rn showing current routing\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) <0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
}
if (verbose > 0)
{
printf(" Finished module checknet.\n");
}
return(0);
}
lsat-0.9.7.1/checknetforward.c 0000644 0001750 0000144 00000012573 11007333550 015453 0 ustar number9 users /************************************************/
/* This module checks to see that we are not */
/* doing IP forwarding on the local machine. */
/* It basically just checks the ip_forward and */
/* ip_dynaddr files for 0 and also the network */
/* file in /etc/sysconfig should contain the */
/* line: FORWARD_IPV4=FALSE.... */
/* */
/* See lsatmain.c for more details... */
/************************************************/
#include "lsatheader.h"
#include
#include
#include
int checknetforward(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checknetforward module...\n");
}
if (verbose > 0)
{
printf(" Checking for existance of forwards...\n");
}
/* on redhat/mandrake/slack check /proc/sys/net/ipv4/ip_forward */
/* & ip_dynaddr also check /etc/sysconfig/network */
if ((distribution != 3) && (distribution != 5))
{
if (verbose > 0)
{
printf(" Checking ip_forward...\n");
}
if ((system("grep 0 /proc/sys/net/ipv4/ip_forward 1>/dev/null 2>/dev/null")) != 0)
{
/* no 0 in ip_forward */
header = "\nLooks like ip_forward is enabled on this system\nensure /proc/sys/net/ipv4/ip_forward\ncontains a 0 only as its entry.\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Checking network file...\n");
}
/* first see if /etc/sysconfig/network exists... */
if ((system("test -r /etc/sysconfig/network 1>/dev/null 2>/dev/null")) == 0)
{
if ((system("grep FORWARD_IPV4=FALSE /etc/sysconfig/network 1>/dev/null 2>/dev/null")) !=0)
{
/* no FALSE for IPforwarding */
header = "Hrm, do not see FORWARD_IPV4=FALSE in network.\nMake sure that /etc/sysconfig/network\ncontains the line FORWARD_IPV4=FALSE\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
}
}
/* Assume Solaris/SunOS */
if ((distribution == 3))
{
if (verbose > 0)
{
printf(" Checking ip_forwarding.\n");
}
if ((system("grep \'ip_forwarding 0\' /etc/rc2.d/S69inet 1>/dev/null 2>/dev/null")) != 0)
{
header = "Make sure that ip_forwarding is disabled\nin /etc/rc2.d/S69inet\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Checking ip_forwarding_src_routed.\n");
}
if ((system("grep \'ip_forwarding_src_routed 0\' /etc/rc2.d/S69inet 1>/dev/null 2>/dev/null")) != 0)
{
header = "Make sure that ip_forwarding_src_routed is disabled\nin /etc/rc2.d/S69inet\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Checking ip_forwarding_directed_broadcast\n");
}
if ((system("grep \'ip_forwarding_directed_broadcast 0\' /etc/rc2.d/S69inet 1>/dev/null 2>/dev/null")) != 0)
{
header = "Make sure that ip_forwarding_directed_broadcast is disabled\nin /etc/rc2.d/S69inet\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Checking norouter file.\n");
}
if ((system("cat /etc/norouter 1>/dev/null 2>/dev/null")) != 0)
{
header = "Please touch /etc/norouter\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Checking defaultrouter file.\n");
}
if ((system("cat /etc/defaultrouter 1>/dev/null 2>/dev/null")) != 0)
{
header = "Please touch (at least) /etc/defaultrouter\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
}
if (distribution == 5)
{
/* Mac OSX */
if ((system("grep IPFORWARDING /etc/hostconfig | grep YES 1>/dev/null 2>/dev/null")) != 0)
{
/* it should be no in that case... good*/
header = "IPFORWARDING not enabled...good.\n";
}
else
{
header = "IPFORWARDING is enabled!\nEdit /etc/hostconfig to disable.\n";
}
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to output failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished module checknetforward.\n");
}
return(0);
}
lsat-0.9.7.1/checknetp.c 0000644 0001750 0000144 00000005117 11007333550 014242 0 ustar number9 users /****************************************/
/* This is the checknetpromis module for*/
/* lsat. It checks to see if the ethX */
/* is in promisuous mode... */
/* */
/* See lsatmain.c for calling function. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checknetp(kernel, filename, distribution, verbose, html)
char kernel[];
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
const char * tempfile =NULL;
char kernver[3][4]={"2.2", "2.4", "2.6"};
if (verbose >= 0)
{
printf(" Running checknetpromisc module...\n");
}
if (verbose > 0)
{
printf(" Checking for promiscuous mode...\n");
}
if ((distribution != 3) && (distribution != 5))
{
/* we are on linux... */
/* note we need to check how to do this on */
/* solaris and the like so it should not */
/* be run at all from lsatmain... */
/* ... therefore the above check is redundant */
/* if we are on a 2.6 or greater kernel, */
/* this does not work. Check that first... */
if ((strcmp(kernel,kernver[2]))== 0)
{
/*we are on 2.6, uhoh */
header = "You are on a 2.6 kernel, you must check syslog\n to see if you are in promisc mode\n";
}
else
{ /* we are on something else */
if ((system("test -x /sbin/ip")) == 0)
{
if ((system("/sbin/ip link show|grep -e PROMISC|cut -d':' -f 2 2>/dev/null >> /tmp/lsat1.lsat")) == 0)
{
header = "These network interfaces found to be in promisc mode using /sbin/ip.\n";
}
else
{
header = "No interfaces found in promiscuous mode. Good.\n";
}
}
else
{
if ((system("/sbin/ifconfig |grep -B 2 PROMISC 2>/dev/null |grep Link 2>/dev/null |awk -F" " 'length($1) > 0 {print $1}' 2>/dev/null >> /tmp/lsat1.lsat")) == 0)
{
header = "No interfaces found in promisc mode. Good.\n";
}
}
tempfile = "/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, 0, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
} /* end of else...*/
/* now we write out our heder with no tempfile */
if ((dostuff(0, filename, 0, header, html)) <0)
{
perror("Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checkpromisc module.\n");
}
return(0);
}
lsat-0.9.7.1/checkopenfiles.c 0000644 0001750 0000144 00000006026 11007333550 015260 0 ustar number9 users /********************************************/
/* This will check open files on the */
/* system using lsof. This is a little */
/* out of control, but doing this and */
/* comparing to a previous output could */
/* prove to be useful. */
/* */
/* this module will later be expanded to */
/* write a temp file in the CWD, and then */
/* upon subsequent runs, it will diff them */
/* and print that output. That would prove */
/* much more useful. */
/* */
/* See lsatmain.c for more details. */
/********************************************/
#include "lsatheader.h"
#include
#include
#include
int checkopenfiles(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
const char * tempfile =NULL;
const char * shellcode=NULL;
int lsof_installed = 0;
if (verbose >= 0)
{
printf(" Running checkopenfiles module...\n");
}
/* it was noted that some distros do not install lsof by */
/* default, mainly gentoo... we therefore check here. */
if (distribution != 3)
{
if ((system("lsof -i 1>/dev/null 2>/dev/null >/dev/null")) != 0 )
{
/* perhaps lsof is not installed */
header = "lsof is not installed on this system,\nor it is not in the path,\nor I just can not find it.\ncheckopenfiles was not run.\n";
lsof_installed = 1;
}
}
/* this is rediculous. If Solaris, we don't know if lsof is */
/* installed, however, which does not seem to return a value*/
/* and the shell does not seem to want to either on calling */
/* a command that is not there... we therefore do this. */
/* QOTD: we ran find already, so it should be fast... */
if (distribution == 3)
{
if ((system("find / -name lsof 1>/dev/null 2>/dev/null >/dev/null")) != 0)
/* then we think lsof is not installed or not in the path */
{
header = "lsof is not installed on this system,\nor it is not in the path,\nor I just can not find it.\ncheckopenfiles was not run.\n";
lsof_installed = 1;
}
}
if (lsof_installed == 0)
{
header = "This is the lsof output, diff this against a previous run.\n";
tempfile = "/tmp/lsat1.lsat";
shellcode = "lsof -i 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (lsof_installed == 1)
{
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checkopenfiles module.\n");
}
return(0);
}
lsat-0.9.7.1/checkpasswd.c 0000644 0001750 0000144 00000017277 11007333550 014607 0 ustar number9 users /****************************************/
/* This is the checkpasswd module for */
/* the lsatmain.c program. It checks */
/* the /etc/passwd file for entries... */
/* makes sure only root is setuid 0 */
/* checks for accounts that should be */
/* terminated. */
/* */
/* under linux also runs pwck and grpck */
/* to check passwd and groups for */
/* entries that can be deleted... */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#include
#include
#include
int checkpasswd(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
char *passptr; /* ptr to passwd file */
/* note we use awk to get only the first entry in */
/* the passwd list... we ass|u|me that a username */
/* will be < 40 chars. :O => line[40] */
char line[40]; /* array for a line */
char temparray[2][128]; /*temparray. */
int j=0; /* counter variable */
int field; /* field counter */
int fileval; /* return val */
const char * tmp_file = "/tmp/lsat2.lsat"; /* temp file for storage */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
/* NOT a comprehensive list yet. */
/* just making sure this works... */
char acctlist[13][10] = {"cyrus", "lp", "uucp", "nuucp", "smtp", "listen", "man", "news", "noacces", "nobody4", "nut", "sync", "vpopmail"};
/* num of entries in above list */
int acctlistnum = 13;
FILE *passfile; /* file pointer to templist file */
FILE *fileptr;
if (verbose >= 0)
{
printf(" Running checkpasswd module...\n");
}
if (verbose > 0)
{
printf(" Checking passwd file...\n");
}
/* ok, lets make one pass through the passwd */
/* note here we only pull the 1st field, which */
/* is the "account" name in /etc/passwd. */
shellcode = "cat /etc/passwd |awk -F\":\" 'length($1) > 0 {print $1}' |grep -v \\# 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
tempfile = "/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
perror(" Creation of list failed.");
return(-1);
}
/* open the newly created file */
passfile=fopen("/tmp/lsat1.lsat", "r");
if (passfile == NULL)
{
perror(" Can't open templist...\n");
perror(" Strange, we just created that file...\n");
perror(" Giving up in checkpasswd...\n");
return(-1);
}
/* create a temp file for storage */
if ((fileptr = fopen(tmp_file, "a")) == NULL)
{
perror(" Could not open temp file...\n");
perror(" Possible link attack while creating/opening file!\n");
perror(" Bailing in checkpasswd...\n");
exit(-1);
}
/* Note: IIRC, strtok can not be nested if you */
/* are going to take another token on each one */
/* i.e. in checkrpms.c it works since we only */
/* strtok once on the outside loop since we */
/* are guarenteed there is only one line in the*/
/* file since that is how we created it. That */
/* is not the case here.... */
/* we therefore only grab one filed from the */
/* passwd file at a time and print that out. */
/* here we are checking accounts on the system */
if (verbose > 0)
{
printf(" Parsing passwd entries.\n");
}
while (fgets(line, sizeof(line), passfile) != NULL)
{
field = 0;
passptr = strtok(line, ", \n");
/* if not while. we guarentee not more than */
/* one entry per line with the cat - awk */
/* denote also we assume that an account */
/* name is no more than 127 chars... */
if (passptr != NULL)
{
if (sscanf(passptr, "%127s", temparray[1]) < 1)
{
perror(" sscanf failed.\n");
perror(" Failure was in module: checkpasswd.\n");
return(-1);
}
/* check that field against the account list */
for (j = 0; j < acctlistnum; j++)
{
if ((strcmp(temparray[1], acctlist[j])) == 0)
{
/* match */
fprintf(fileptr,"%s\n", temparray[1]);
}
}
passptr = strtok(NULL, ", \n");
if (passptr == NULL)
{
;
}
} /* end while (passptr != NULL) */
} /* end while (fgets...) */
/* close input file */
fclose(passfile);
/* rm the tempfile, dostuff will use other one */
remove(tempfile);
/* close the tmpfile */
fclose(fileptr);
close(fileval);
/* note dostuff below will rm tmpfile */
header = "Please consider removing these system accounts.\nCheck to see if you need them for your system applications before removing.\nAlso, consult the securitylinks.txt file for more information.\n";
if ((dostuff(tmp_file, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Write to outfile failed.");
return(-1);
}
/* check UID field of passwd file... */
if (verbose > 0)
{
printf(" Checking UIDs in passwd file...\n");
}
/* Don't forget to change tmpfile back... */
tempfile = "/tmp/lsat1.lsat";
header = "The following accounts are SUID 0 in /etc/passwd.\nRemove if needed.\n";
shellcode = "awk -F: '($3 == 0) {print $1}' /etc/passwd | grep -v root 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
/* now we will check for legacy "+" entries */
header = "Remove the following entries (if any) from the\n respective passwd/group file(s)\n";
if (distribution != 3)
{
/* we are not on solaris... go for it */
shellcode = "grep ^+: /etc/passwd /etc/shadow /etc/group 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
}
else
{
/* we are on solaris... */
shellcode = "/usr/xpg4/bin/egrep \\^\\[+:\\] /etc/passwd /etc/shadow /etc/group 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
}
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Write to outfile failed.");
return(-1);
}
/* now we check for accounts with empty passwords */
header = "The following accounts have no/empty passwords\n";
shellcode = "awk -F: '($2 == \"\") {print $1}' /etc/shadow 1>/dev/null 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Write to outfile failed.");
return(-1);
}
if ((system("test -r /usr/sbin/pwck")) == 0)
{
header = "Output of pwck, note non existent directories, etc\n";
shellcode = "/usr/sbin/pwck -r 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Write to outfile failed.");
return(-1);
}
}
if ((system("test -r /usr/sbin/grpck")) == 0)
{
header = "Output of grpck, note groups it think should be deleted.\n";
shellcode = "/usr/sbin/grpck -r 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Write to outfile failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checkpasswd module.\n");
}
return(0);
}
lsat-0.9.7.1/checkpkgs.c 0000644 0001750 0000144 00000015117 11007333550 014241 0 ustar number9 users /****************************************/
/* This is the checkpkgs module for the */
/* lsatmain.c program. It checks the */
/* currently installed pkgs against a */
/* (somewhat small) list of unwanted */
/* rpms. It then prints out this list */
/* to the outfile. */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#include
int checkpkgs(distribution, filename, verbose, html)
int distribution;
const char *const filename;
int verbose;
int html;
{
/* note if distribution = 1, redhat */
/* if distribution = 2, debian */
/* if distribution = 4, gentoo */
/* if distribution = 3, solaris, not implemented yet */
char *templistptr; /* ptr to templist file */
char line[80]; /* array for a line */
char temp1[80]; /* temp char */
int i=0; /* counter variable */
int submatch=0; /* match flag */
/* list of rpms to check? */
/* NOT a comprehensive list yet. */
/* just making sure this works... */
char rpmlist[17][15] = {"bind", "identd", "lpd", "linuxconf", "netfs", "nfs", "portmap", "routed", "rstatd", "rusersd", "rwalld", "rwhod", "sendmail", "webmin", "ypbind", "yppasswdd", "ypserv"};
FILE *templist; /* file pointer to templist file */
FILE *fileptr;
const char * tmp_file = "/tmp/lsat2.lsat"; /* tmp file for output */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkpkgs module...\n");
}
/* ok, if we are on Mac OSX, we (as of yet) have no
* cool built in for this, so we basically bail out */
if (distribution == 5)
{
/* we are on Darwin */
;
}
else
{
/* tempfile for either case */
/* note carefully, the above tmp_file is for the second tempfile */
tempfile = "/tmp/lsat1.lsat";
/* if distro = redhat, use rpm */
if (distribution == 1)
{
if (verbose > 0)
{
printf(" Generating list of rpms on system.\n");
}
shellcode = "rpm -qa >> /tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* if distro = debian, use dpkg */
if (distribution == 2)
{
if (verbose > 0)
{
printf(" Generating list of pkgs on system.\n");
}
shellcode = "dpkg -l |awk -F\" \" 'length($2) > 0 {print $2}' 1>/dev/null 2>/dev/null >> /tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* if distro = solaris, use pkginfo */
if (distribution == 3)
{
if (verbose > 0)
{
printf(" Generating list of pkgs on system.\n");
}
shellcode = "pkginfo -x |awk -F" " 'length($1) > 0 {print $1}' 1>/dev/null 2>/dev/null >> /tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* if distro = gentoo, use pkglist */
if (distribution == 4)
{
if (verbose > 0)
{
printf(" Generating list of pkgs on system.\n");
}
shellcode = "/usr/lib/portage/bin/pkglist 2>/dev/null >>/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* if distro = slackware, use ls */
if (distribution == 6) /* JTO */
{
if (verbose > 0)
{
printf(" Generating list of pkgs on system.\n"); /* JTO - changed 'rpms' to 'pkgs' */
}
shellcode = "ls /var/log/packages >>/tmp/lsat1.lsat";
if ((dostuff(tempfile, 0, shellcode, 0, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
}
/* open the file we just made for read */
templist=fopen("/tmp/lsat1.lsat", "r");
if (templist == NULL)
{
perror(" Can't open /tmp/templist.txt!!\n");
perror(" Check perms or something...\n");
perror(" Error was in module: checkpkgs.\n");
return(-1);
}
/* create another tmp file for putting items in */
if ((fileptr = fopen(tmp_file, "a")) == NULL)
{
perror(" Could not create temporary file...\n");
perror(" Possible link attack while creating/opening file!\n");
exit(-1);
}
if (verbose > 0)
{
printf(" Checking rpm list...\n");
}
/* ok, for each entry in rpmlist we want to */
/* check if that exitst in templist... */
/* to speed things up, we only read through */
/* templist once, for each line in it */
/* we compare to all in the rpmlist... */
while (fgets(line, sizeof(line), templist) != NULL)
{
templistptr = strtok(line, ", \n");
if (templistptr != NULL)
{
if (sscanf(templistptr, "%79s", temp1) < 1)
{
perror(" sscanf failed.\n");
perror(" Failure in module: checkpkgs.\n");
return(-1);
}
for (i=0; i<16; i++)
{
if (strstr(temp1, rpmlist[i]) != NULL)
{
/* substring matched */
/* set flag */
submatch = 1;
/* print match out */
fprintf(fileptr, "%s\n", temp1);
}
}
}
}
/* close the templist */
fclose(templist);
/* rm it since dostuff will work with the second one */
remove(tempfile);
/* close the second temp file */
fclose(fileptr);
if (submatch == 1)
{
header = "Please consider removing these packages.\n";
}
if (submatch == 0)
{
header = "No installed rpms matched my list of non-essentials. Good.\n";
}
if ((dostuff(tmp_file, filename, 0, header, html)) < 0)
{
perror(" Write to outfile failed.");
return(-1);
}
/* this curly ends the else from the start where we see if this is Mac OSX */
}
if (verbose > 0)
{
printf(" Finished in checkpkgs module.\n");
}
return(0);
}
lsat-0.9.7.1/checkrc.c 0000644 0001750 0000144 00000021451 11007333550 013677 0 ustar number9 users /****************************************/
/* This is the checkrc module for */
/* the lsatmain.c program. */
/* It checks /etc/rcn.d or */
/* /etc/rc.d/init.d depending on sys. */
/* It scans the startup scripts and */
/* compares them to a known list of */
/* scripts that one should not have. */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checkrc(release, kernel, distribution, filename, verbose, html)
char release[]; /* 1st field of uname -a */
char kernel[]; /* 3rd field of uname -a */
int distribution; /* see lsatmain.c for details on this one */
const char *const filename; /* output file name */
int verbose; /* should we be verbose? */
int html;
{
char *rcptr; /* ptr to passwd file */
char line[30]; /* array for a line */
const int maxlist = 350; /* how many filenames we can handle*/
const int maxlength= 30; /* how long a filename may be*/
char temparray[maxlist][maxlength+1]; /*temparray. */
char kernver[4][6]={"2.2", "2.4", "SunOS", "2.6"}; /* kernel versions */
int i=0; /* counter variable */
int j=0; /* counter variable */
int osflag=1; /* what OS/kern are we at/on? */
/* 1= lnx2.2, 2=lnx2.4, 3=Solaris */
/* NOT a comprehensive list yet. */
/* Need to go over these to make sure...*/
/* Linux 2.x-2 kernel */
char lnx2list[14][14] = {"lpd", "inetd", "nfs", "nfslock", "nmb", "portmap", "rwalld", "rwhod", "rstatd", "sendmail", "smb", "ypbind", "ypasswd", "named"};
int lnx2listnum=14; /* how many items in above list? */
/* Linux 2.4 kernel */
char lnx4list[18][14] = {"S05kudzu", "S13portmap", "S14nfslock", "S20nfs", "S20rstatd", "S20rwalld", "S20rwhod", "S25netfs", "S34yppasswdd", "S50snmpd", "S60lpd", "S65identd", "S74ntpd", "S74ypserv", "S74ypxfrd", "S80sendmail", "S95anacron"};
int lnx4listnum=17;
char sollist[9][12] = {"S71rpc", "S76smpdx", "S77dmi", "S99dtlogin", "S74autofs", "S88sendmail", "nfs.server", "nfs.client"};
int sollistnum=8;
const char * header;
const char * shellcode;
const char * tempfile;
FILE *outfile; /* output file pointer */
FILE *rcfile; /* file pointer to templist file */
if (verbose >= 0)
{
printf(" Running checkrc module...\n");
}
/* since there is a location difference between */
/* kernel 2.2 and 2.4, we check the kernel */
/* release we are on. Also chekc for SunOS, */
/* which has a different naming convention */
if ((strcmp(kernel, kernver[0])) == 0)
{
/* kernel 2.2 */
osflag=1;
}
if ((strcmp(kernel, kernver[1])) == 0)
{
/* kernel 2.4 */
osflag=2;
}
if ((strcmp(release, kernver[2])) == 0)
{
/* SunOS */
osflag=3;
}
if ((strcmp(kernel, kernver[3])) == 0)
{
/* kernel 2.6, treat as 2.4 */
osflag=2;
}
/* note default is assume 2.2 style... */
if (verbose > 0)
{
printf(" Checking rc scripts...\n");
}
header="Checking rc startup scripts:\n";
dostuff (NULL, filename, NULL, header, html);
tempfile="/tmp/lsat1.lsat";
/* perform ls based on which sys we are on */
/* check for gentoo 1st, then check osflag on others */
if (distribution == 4)
{
shellcode="ls /etc/init.d/ 2>/dev/null >/tmp/lsat1.lsat";
}
else
{
/* 2.2 sys... */
if (osflag == 1)
{ /*works for SuSE, but is supposed to be /init.d/ */
shellcode="ls /etc/rc.d/ 2>/dev/null >/tmp/lsat1.lsat";
/* do some double escapes so C will ignore them */
/* shellcode="find /etc/rc.d/ -exec basename \{\\} \\; 2>/dev/null >/tmp/lsat1.lsat; echo finished"; */
}
/* 2.4 sys... */
/* note here we do same for Solaris. */
/* Sunos rc dirs are the same structure as 2.4, */
/* however, we need to know if it is Solaris */
/* due to the naming convention of the files */
/* in the rc directories on Solaris. */
if ((osflag == 2) || (osflag == 3) )
{
/* we peform as two ls's here for ease of reading in */
/* the file since for example an ls / /usr will put */
/* extra blank lines and the directory name in to the */
/* output file... */
if (distribution == 6) /* JTO */
{
shellcode = "ls /etc/rc.d 2>/dev/null >/tmp/lsat1.lsat";
}
else
{
shellcode="ls /etc/rc2.d/ 2>/dev/null >/tmp/lsat1.lsat || ls /etc/rc3.d/ 2>/dev/null >/tmp/lsat1.lsat";
}
}
} /* end of else */
/* now we actually do something! */
dostuff(tempfile, NULL, shellcode, NULL, html);
/* open the newly created file */
if ((rcfile=fopen("/tmp/lsat1.lsat", "r"))==NULL)
{
perror(" Can't open templist...\n");
perror(" Strange, we just created that file...\n");
perror(" Giving up in checkrc...\n");
return(-1);
}
/* open the outfile */
outfile=fopen(filename, "a");
if (outfile == NULL)
{
perror(" Can't open outfile!\n");
perror(" Check perms or something...\n");
perror(" Problem was in module checkrc.\n");
return(-1);
}
/* grab a line from the lsat1.lsat */
/* store it in the temparray */
while (fgets(line, sizeof(line), rcfile) != NULL)
{
rcptr = strtok(line, ", \n");
/* if not while. we guarentee not more than */
/* one entry per line */
if (rcptr != NULL)
{
/* increased %s from 30 to 60, */
/* as the names are large w/gentoo */
if (sscanf(rcptr, "%60s", temparray[i]) < 1)
{
perror(" sscanf failed.\n");
perror(" Failure was in module: checkrc.\n");
return(-1);
}
i++;
if (i>maxlist) /* too much for the static list? */
{
perror (" Error in checkrc: Too many files.\n");
return -1;
}
rcptr = strtok(NULL, ", \n");
if (rcptr == NULL)
{
;
}
} /* end while (rcptr != NULL) */
} /* end while (fgets...) */
/* now we compare the entries in the temparray */
/* to the rc scripts that are problematic. */
/* note that we have three lists, one for 2.2 */
/* based kernels, one for 2.4 based kernels */
/* and one for SunOS/Solaris systems. */
/* linux 2.2 based system */
if (osflag==1)
{
for (i = 0; i < maxlist; i++)
{
for (j = 0; j < lnx2listnum; j++)
{
if ((strcmp(temparray[i], lnx2list[j])) == 0)
{
/* match */
fprintf(outfile, "%s\n", temparray[i]);
}
}
}
}
/* linux 2.4 based system */
if (osflag == 2)
{
for (i = 0; i < maxlist; i++)
{
for (j = 0; j < lnx4listnum; j++)
{
if ((strcmp(temparray[i], lnx4list[j])) == 0)
{
/* match */
fprintf(outfile, "%s\n", temparray[i]);
}
}
}
}
/* SunOS/Solaris based system */
if (osflag == 3)
{
for (i = 0; i < maxlist; i++)
{
for (j = 0; j < sollistnum; j++)
{
if ((strcmp(temparray[i], sollist[j])) == 0)
{
/* match */
fprintf(outfile, "%s\n", temparray[i]);
}
}
}
}
/* print some footer information */
fprintf(outfile, "\n");
if (osflag == 1)
{
fprintf(outfile, "These services were found in /etc/rc.d/init.d\n");
}
if ((osflag == 2) || (osflag == 3))
{
if (distribution == 6) /* JTO */
{
fprintf(outfile, "These services were found in /etc/rc.d\n");
}
if (distribution == 4) /*gentoo*/
{
fprintf(outfile, "These services were found in /etc/init.d/\n");
}
else
{
fprintf(outfile, "These services were found in /etc/rc(2/3).d\n");
}
}
fprintf(outfile, "Consider removing or disabling unneeded services.\n");
fprintf(outfile, "****************************************\n");
/* clean up */
fclose(outfile);
/* close input file */
fclose(rcfile);
/* rm the input file */
if (system("rm -f /tmp/lsat1.lsat") < 0)
{
perror(" Can't rm tempfile??\n");
perror(" Strange, we made the file...\n");
perror(" Giving up in checkrc...\n");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkrc module.\n");
}
return(0);
}
lsat-0.9.7.1/checkrcperms.c 0000644 0001750 0000144 00000004750 11007333550 014751 0 ustar number9 users /*****************************************/
/* This is the checkrcperms.c module for */
/* lsat program. This module checks for */
/* files in /etc/rc.d/init.d without the */
/* permission 700. */
/* This module by Jose Morelli Neto, */
/* with added support for Solaris, gentoo*/
/* by Triode... */
/* */
/* See lsatmain.c for more details. */
/*****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkrcperms(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char *const tempfile="/tmp/lsat1.lsat";
const char * shellcode;
const char * header;
/* Generate a list of files in /etc/rc.d/init.d */
/* That have permission equal 700 */
if (verbose >= 0)
{
printf(" Running checkrcperms module...\n");
}
if (verbose > 0)
{
printf(" Checking files in init.d for perms...\n");
}
if ((distribution == 1) || (distribution == 2))
{
shellcode="find /etc/rc.d/init.d/ -type f ! \\( -perm 700 \\) -exec ls {} \\; | tee >/tmp/lsat1.lsat";
header ="This is a list of files in /etc/rc.d/init.d without permission 700\nWe recommend that you change the permission of this files to 700\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Error in module checkrcperms. Aborting.");
return (-1);
}
}
if ((distribution == 3) || (distribution == 4))
{
/* we are on Solaris or gentoo */
shellcode="find /etc/init.d/ -type f ! \\( -perm 700 \\) -exec ls {} \\; | tee >/tmp/lsat1.lsat";
header = "This is a list of files in /etc/init.d that are not permission 700\nWe recommend that you change permissions to 700.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Error in module checkrcperms. Aborting.");
return (-1);
}
}
if ((distribution == 5))
{
/* we are on Mac OS X */
; /* smile */
}
if ((distribution == 6)) /* JTO */
{
/* slack */
; /* there is no init.d, we will check later on for states */
}
if (verbose > 0)
{
printf(" Finished in checkrcperms module.\n");
}
return(0);
}
lsat-0.9.7.1/checkrpm.c 0000644 0001750 0000144 00000002375 11007333550 014075 0 ustar number9 users /****************************************/
/* This is the checkrpm module for the */
/* LSAT program. It performs a rpm -Va */
/* on the system. Please read the */
/* README.checkrpm file for details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checkrpm(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
/* note if distribution = 1, redhat */
/* if distribution = 2, debian */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkrpm module...\n");
}
if (verbose > 0)
{
printf(" Checking rpm integrity...\n");
}
tempfile = "/tmp/lsat1.lsat";
header = "Integrity check of rpm packages.\nPlease read README.redhat for more info.\n";
shellcode = "rpm -Va 2>/dev/null >/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* rhut-rho...something bad happened */
perror(" Creation of list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkrpm module.\n");
}
return(0);
}
lsat-0.9.7.1/checksecuretty.c 0000644 0001750 0000144 00000003537 11007333550 015327 0 ustar number9 users /********************************************/
/* this module does a (simple) check to see */
/* if ttys above 6 are on the system. */
/* In general, its a bad idea to have above */
/* 6, since root can log into them. root */
/* should only have console access... */
/* so also check for anything other than */
/* "tty" in the file... */
/* */
/* See lsatmain.c for more details. */
/********************************************/
#include "lsatheader.h"
#include
#include
#include
int checksecuretty(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checksecuretty module...\n");
}
if ((system("grep tty7 /etc/securetty 1>/dev/null 2>/dev/null >/dev/null")) == 0)
/* its in there. Keep in mind this is a simple check... */
{
header = "/etc/securetty has tty's over 6.\nConsider disabeling all ttys over tty6 (console).\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if ((system("grep -v tty /etc/securetty 1>/dev/null 2>/dev/null >/dev/null")) ==0 )
/* some console other than tty is there, probably vty/n */
{
header = "/etc/securetty has ttys other than the console.\nConsider removing any lines in /etc/securetty other than tty[1-6].\n";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return(-1);
}
}
if (verbose > 0)
{
printf(" Finished in checksecuretty module.\n");
}
return(0);
}
lsat-0.9.7.1/checkset.c 0000644 0001750 0000144 00000005172 11007333550 014070 0 ustar number9 users /****************************************/
/* This is the checkset.c module for */
/* lsat program. This module checks for */
/* setuid and setgid files/dirs on the */
/* local system and prints them to the */
/* outfile. */
/* */
/* 4/5/2002, added code to check for */
/* files in /dev that do not belong */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkset(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char *const tempfile="/tmp/lsat1.lsat";
const char * shellcode;
const char * header;
/* Generate a list of SUID/SGID files/dirs. */
/* This should be done from /, but use -xdev so */
/* that we don't traverse other filesystems. */
/* Note, we use -mount for compatibility with */
/* other versions of find. */
if (verbose >= 0)
{
printf(" Running checkset module...\n");
}
if (verbose > 0)
{
printf(" Creating list of SUID files...\n");
printf(" Note: we are not traversing \"other\" filesystems.\n");
}
shellcode="find / -mount -perm +4000 2>/dev/null | tee >/tmp/lsat1.lsat";
header ="This is a list of SUID files on the system:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Error in module checkset. Aborting.");
return (-1);
}
if (verbose > 0)
{
printf(" Creating list of SGID files and directories...\n");
printf(" Note: we are not traversing \"other\" filesystems.\n");
}
shellcode="find / -mount -perm -2000 2>/dev/null | tee >/tmp/lsat1.lsat";
header ="This is a list of SGID files/directories on the system:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Error in module checkset. Aborting");
return (-1);
}
if (verbose > 0)
{
printf(" Creating list of normal files in /dev...\n");
}
/* Pass by /dev/{watchdog,MAKEDEV.ibcs,X0R} */
shellcode="find /dev -mount -type f 2>/dev/null|grep -v X0R 2>/dev/null|grep -v watchdog 2>/dev/null|grep -v MAKEDEV.ibcs 2>/dev/null| tee > /tmp/lsat1.lsat";
header ="List of normal files in /dev. MAKEDEV is ok, but there\nshould be no other files:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Error in module checkset. Aborting");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkset module.\n");
}
return(0);
}
lsat-0.9.7.1/checkssh.c 0000644 0001750 0000144 00000023052 11007335224 014067 0 ustar number9 users /****************************************/
/* This is the chekssh module for */
/* the lsat program. It checks the */
/* /etc/ssh/sshd_config file for some */
/* entries... note this is hard coded */
/* for RedHat x.x... */
/* should be fine on Solaris 8,9, less */
/* the grep [:space:] stuffs... :O */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checkssh(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkssh module...\n");
}
if (verbose > 0)
{
printf(" Checking ssh config file...\n");
}
header = "sshd config file entries\nMake sure these are commented out.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
/* Mac OS X is a little different. I should make lsat look */
/* for the file instead of hardcoding it... hrmph */
/* note that on MacOSX the actual file is readable by all. */
/* this is a bad thing. Not sure why that is the default. */
if (distribution == 5)
{
/* we are on Darwin */
if (system("grep \"PermitRootLogin yes\" /etc/sshd_config 2>/dev/null |grep -Ev ^\\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0 )
{
header = "PermitRootLogin yes found in sshd config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"X11Forwarding yes\" /etc/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "X11 Forwarding is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"RhostsAuthentication yes\" /etc/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "RhostsAuthentication is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"PermitEmptyPasswords yes\" /etc/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "PermitEmptyPasswords is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"IgnoreRhosts yes\" /etc/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "IgnoreRhosts is not enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) > 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"StrictModes yes\" /etc/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "StrictModes is disabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) > 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
/* end of if (distro != 5) */
}
/* once again, I must check distro, as Solaris standard */
/* grep does not accept [:space:] as a regex... */
if ((distribution != 3) && (distribution != 5))
/* we are not on Solaris, go for it... */
{
if (system("grep \"Protocol 2\" /etc/ssh/sshd_config 2>/dev/null |grep -Ev ^\\[:space:\\]*\\# 1>/dev/null 2>/dev/null") != 0)
{
header = "Protcol 2 not found in sshd config, or you are doing 1,2.\nChange to protcol 2 only.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */ perror(" Writing to outfile failed."); return(-1);
}
}
if (system("grep \"PermitRootLogin yes\" /etc/ssh/sshd_config 2>/dev/null |grep -Ev ^\\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0 )
{
header = "PermitRootLogin yes found in sshd config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"X11Forwarding yes\" /etc/ssh/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "X11 Forwarding is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"RhostsAuthentication yes\" /etc/ssh/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "RhostsAuthentication is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"PermitEmptyPasswords yes\" /etc/ssh/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "PermitEmptyPasswords is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"IgnoreRhosts yes\" /etc/ssh/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "IgnoreRhosts is not enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) > 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"StrictModes yes\" /etc/sshd_config 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
header = "StrictModes is disabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) > 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
/* end of if (distro != 3) */
}
if (distribution == 3)
/* again, either I suck, or Solaris grep sucks, */
/* but I can not get Solaris grep or egrep to */
/* do [:space:]... hope for the best here... */
{
if (system("grep \"Protcol 2\" /etc/ssh/sshd_config 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") != 0)
{
header = "Protcol 2 not found in sshd config, or you are doing 1,2.\nChange to protcol 2 only.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"PermitRootLogin yes\" /etc/ssh/sshd_config 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0 )
{
header = "PermitRootLogin yes found in sshd config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"X11Forwarding yes\" /etc/ssh/sshd_config 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0)
{
header = "X11 Forwarding is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"RhostsAuthentication yes\" /etc/ssh/sshd_config 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0)
{
header = "RhostsAuthentication is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"PermitEmptyPasswords yes\" /etc/ssh/sshd_config 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0)
{
header = "PermitEmptyPasswords is enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"IgnoreRhosts yes\" /etc/ssh/sshd_config 2>/dev/null |grep \\# 1>/dev/null 2>/dev/null") == 0)
{
header = "IgnoreRhosts is not enabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) > 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("grep \"StrictModes yes\" /etc/sshd_config 2>/dev/null |grep \\# 1>/dev/null 2>/dev/null") == 0)
{
header = "StrictModes is disabled in ssh config.";
if ((dostuff(0, filename, 0, header, html)) > 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
/* end of if (distro == 3) */
}
if (verbose > 0)
{
printf(" Finished in checkssh module.\n");
}
return(0);
}
lsat-0.9.7.1/checkumask.c 0000644 0001750 0000144 00000003667 11007333550 014424 0 ustar number9 users /* This is the checkumask module for */
/* the lsatmain.c program. It checks */
/* It checks /etc/csh.login and profile */
/* for the umask setting. It makes sure */
/* that is it set at 022, 027 or 077. */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
#define utempi 200 /* added tingmy */
int checkumask(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * tempfile;
const char * shellcode;
const char * header;
if (verbose >= 0)
{
printf(" Running checkumask module...\n");
}
/* Note:
After looking around at gentoo/redhat/etc I have decided
to forego the check I used to be performing which was quite
freakish, and just do a grep of all files in /etc and print
out only the file and the matching umask found in it. The
output will tell the user to check that file and umask setting.
*/
/* - I REALLY wanted to have "^[^#]\{1,\}.*umask[ ]\+.\{3,\}.*" ...
- using "grep -he umask|grep -v ^#" isn't good either, no filenames...
*/
tempfile="/tmp/lsat1.lsat";
shellcode="grep -e umask /etc/* 2>/dev/null|grep -v bash_completion |grep -v fstab |grep -v :# 2>/dev/null |grep -v directory 2>/dev/null |grep -v if 2>/dev/null|awk -F\"umask\" 'length($1 $2) > 0 {print($1 $2)}' |grep -v octal >/tmp/lsat1.lsat";
header="Checking default umask on system:\n\nDefault umask should be 022, 027 or 077. 002 is ok for RedHat.\nHere are the filenames, and the umask number\nfound in each. Please read through the file and ensure that is what you want.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Could not write to outfile.");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkumask module.\n");
}
return(0);
}
lsat-0.9.7.1/checkwrite.c 0000644 0001750 0000144 00000007644 11007333550 014435 0 ustar number9 users /****************************************/
/* This is the checkwrite.c module for */
/* lsat program. This module checks for */
/* world/group writable files and dirs */
/* and prints them to the outfile. */
/* */
/* NOTE: this will miss some files if */
/* run as a non-root user. Not sure if */
/* you should run as root. :) */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkwrite(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkwrite module...\n");
}
if (verbose > 0)
{
printf(" Creating list of world writable files...\n");
if (distribution != 5)
{
printf(" Note: we are not traversing \"other\" filesystems.\n");
}
}
/*
Generate a list of world/group writables from / .
-mount is used so that we don't traverse other
filesystems. We use -mount instead of -xdev for
compatibility with other versions of find.
Note that Mac OSX does not have -mount, and the man
claims that -x is the old -xdev... I am not so sure
about that... WTF were they smoking?
*/
tempfile = "/tmp/lsat1.lsat";
if (distribution == 5)
{
/* OSX */
shellcode = "find / -type f -perm -o+w 2>/dev/null |tee >/tmp/lsat1.lsat";
}
else
{
shellcode= "find / -mount -type f -perm -2 2>/dev/null | tee >/tmp/lsat1.lsat";
}
header = "This is a list of world writable files\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Creating list of world writable directories...\n");
printf(" Note: we are not traversing \"other\" filesystems.\n");
}
tempfile = "/tmp/lsat1.lsat";
if (distribution == 5)
{
/* OSX */
shellcode = "find / -type f -perm -g+w 2>/dev/null |tee >/tmp/lsat1.lsat";
}
else
{
shellcode= "find / -mount -type f -perm -20 2>/dev/null | tee > /tmp/lsat1.lsat";
}
header = "This is a list of group writable files\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Creating list of group writable directories...\n");
printf(" Note: we are not traversing \"other\" filesystems.\n");
}
/* and now the directories */
tempfile ="/tmp/lsat1.lsat";
if (distribution == 5)
{
/* OSX */
shellcode = "find / -type d -perm -o+w 2>/dev/null |tee >/tmp/lsat1.lsat";
}
else
{
shellcode="find / -mount -type d -perm -2 2>/dev/null | tee >/tmp/lsat1.lsat";
}
header ="List of group writable directories:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
tempfile ="/tmp/lsat1.lsat";
if (distribution == 5)
{
/* OSX */
shellcode = "find / -type d -perm -o+w 2>/dev/null |tee >/tmp/lsat1.lsat";
}
else
{
shellcode = "find / -mount -type d -perm -20 2>/dev/null | tee >/tmp/lsat1.lsat";
}
header ="List of world writable directories:\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
if (verbose > 0)
{
printf(" Finished in checkwrite module.\n");
}
return(0);
}
lsat-0.9.7.1/checkwww.c 0000644 0001750 0000144 00000016257 11007333550 014127 0 ustar number9 users /****************************************/
/* This is the checkwww module for lsat */
/* It is not totally complete at the */
/* moment, but should check for SSIs and*/
/* CGI bins in the web server... */
/* also checks that root is not running */
/* the web server */
/* */
/* see lsatmain.c for more details */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
#include
int checkwww(filename, distribution, verbose, html)
const char *const filename;
int distribution;
int verbose;
int html;
{
const char * header =NULL;
int execfound = 0;
if (verbose >= 0)
{
printf(" Running checkwww module...\n");
}
if (verbose > 0)
{
printf(" Checking www config files...\n");
}
/* since apache is _mostly_ installed in /etc or /usr */
/* we will look there for the conf files. I suppose on*/
/* Solaris it could be in /opt. OTOH, it could be in */
/* any location, but then a find / would take time */
/* once again, Solaris std location grep can't hang */
/* with kewl regexes, so we make exceptions... */
if (distribution != 3)
/* we are not on Solaris, go for it... */
{
if (system("find /etc /usr -name commonapache.conf 2>/dev/null |xargs grep \"Options ExecCGI\" 2>/dev/null |grep -Ev ^\\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0 )
{
execfound = 1;
header = "ExecCGIs were found in commonapache.conf.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("find /etc /usr -name apache.conf 2>/dev/null |xargs grep \"Options ExecCGI\" >/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
execfound = 1;
header = "ExecCGIs were found in apache.conf.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("find /etc /usr -name httpd.conf 2>/dev/null |xargs grep \"Options ExecCGI\" 2>/dev/null |grep -Ev \\[:space:\\]*\\# 1>/dev/null 2>/dev/null") == 0)
{
execfound = 1;
header = "ExecCGIs were found in httpd.conf.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
/* end of if (distro != 3) */
}
if (distribution == 3)
/* once again, Solaris does not like [:space:] */
/* hope for the best here... */
{
if (system("find /etc /usr -name commonapache.conf 2>/dev/null |xargs grep \"Options ExecCGI\" 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0 )
{
execfound = 1;
header = "ExecCGIs were found in commonapache.conf.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("find /etc /usr -name apache.conf 2>/dev/null |xargs grep \"Options ExecCGI\" >/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0)
{
execfound = 1;
header = "ExecCGIs were found in apache.conf.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("find /etc /usr -name httpd.conf 2>/dev/null |xargs grep \"Options ExecCGI\" 2>/dev/null |grep -v \\# 1>/dev/null 2>/dev/null") == 0)
{
execfound = 1;
header = "ExecCGIs were found in httpd.conf.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
/* end of if (distro == 3) */
}
if (execfound == 1)
{
header = "Please ensure that the ExecCGIs in the apache \nconf files are needed.\nConsider the Options IncludeNoExec directive, or \ngetting rid of all ExecCGI directives.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (execfound == 0)
{
header = "No ExecCGIs found. Good.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
/* check that root/nobody is not running the */
/* web server. Note that we will have to look */
/* for apache and httpd... note also that this*/
/* is not going to work under Solaris. I will */
/* fix that later on... */
/* recall grep -v changes return code... */
/* Solaris ps not the same.... */
/* Hrm, for some reason this no workie on OSX */
/* will have to check this out later... */
if (distribution == 3)
/* on Solaris */
{
if (system("ps -ef |grep apache |awk -F\" \" 'length($1) > 0 {print $1}' |grep -v root |grep -v nobody 1>/dev/null 2>/dev/null") != 0)
{
header = "apache is being run as root or nobody. Look into this.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
if (system("ps -ef |grep httpd |awk -F\" \" 'length($1) > 0 {print $1}' |grep -v root |grep -v nobody 1>/dev/null 2>/dev/null") != 0)
{
header = "httpd is being run as root or nobody. Look into this.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
}
else if (distribution == 6)
{
/* slackware */
if ((system("pgrep -u root httpd||apache 1>/dev/null 2>/dev/null") == 0) || (system("pgrep -u nobody httpd||apache 1>/dev/null 2>/dev/null") == 0))
{
header = "apache is being run as root or nobody. Change this.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
}
else
{
/* assume Linux grep */
if (system("ps aux |grep -E \"apache|httpd\" |awk -F\" \" 'length($1) > 0 {print $1}' |grep root |grep nobody 1>/dev/null 2>/dev/null") == 0)
{
header = "apache is being run as root or nobody. Change this.";
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Writing to outfile failed.");
return(-1);
}
}
}
if (verbose > 0)
{
printf(" Finished in checkwww module.\n");
}
return(0);
}
lsat-0.9.7.1/checkx.c 0000644 0001750 0000144 00000007371 11007333550 013547 0 ustar number9 users /****************************************/
/* This is the checkx module for LSAT */
/* It will check for the nolisten option*/
/* in the X startup files */
/* */
/* See lsatmain.c for more details. */
/****************************************/
/* */
/* note: the user could put some command*/
/* options to startx on the command line*/
/* and therefore, we should check the */
/* ps output as well as xinitd and */
/* other places to make sure we at least*/
/* check most configs... */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkx(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * header =NULL;
const char * tempfile =NULL;
const char * shellcode=NULL;
int listen; /* are we listening? :) */
listen = 1;
if (verbose >= 0)
{
printf(" Running checkx module...\n");
}
/* Check for X startup locations */
/* don't forget the user could be doing gdm or xdm */
if ((system("test -r /usr/X11R6/bin/startx")) == 0)
{
/* it exists, check it */
if ((system("grep -i defaultserverargs /usr/X11R6/bin/startx 2>/dev/null |grep \"nolisten tcp\" 1>/dev/null 2>/dev/null")) == 0)
{
listen = 0;
header = "X is not listening for tcp, good.\n";
}
}
/* check gdm... */
if ((system("test -r /etc/X11/gdm/gdm.conf")) == 0)
{
if ((system("grep -i \"command=/usr/X11R6\" /etc/X11/gdm/gdm.conf 2>/dev/null |grep \"nolisten tcp\" 1>/dev/null 2>/dev/null")) == 0)
{
listen = 0;
header = "X is not listening for tcp, good.\n";
}
}
/* check xdm and kdm... */
if ((system("test -r /etc/X11/xdm/Xservers")) == 0)
{
if ((system("grep -i \"command=/usr/X11R6\" /etc/X11/xdm/Xservers 2>/dev/null |grep \"nolisten tcp\" 1>/dev/null 2>/dev/null")) == 0)
{
listen = 0;
header = "X is not listening for tcp, good.\n";
}
}
/* check fs... */
if ((system("test -r /etc/X11/fs/config")) == 0)
{
if ((system("grep -qi \"^no-listen = tcp\" /etc/X11/fs/config 1>/dev/null 2>/dev/null")) == 0)
{
listen = 0;
header = "X is not listening for tcp, good.\n";
}
}
if (listen == 1)
{
/* found xconfig, but no -nolisten tcp */
header = "X seems to be listening for tcp connections.\nConsider turning this off with\n-nolisten tcp in your X startup file.\n";
}
/* ok, call dostuff to print out the header */
/* to the output file... */
if ((dostuff(0, filename, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
/* ok, check and see if startx is running, */
/* and print that out... this way we catch */
/* if the user started it from the CLI with */
/* some listen options. */
if ((system("ps -afl |grep startx 2>/dev/null |grep -v grep 1>/dev/null 2>/dev/null") == 0))
{
/* we have found a startx in ps listing, print it out */
shellcode = "ps -afl |grep startx 2>/dev/null |grep -v grep 2>/dev/null >/tmp/lsat1.lsat";
header = "This is the actual startx command, with info.\nIf it contains a listen or vty or pty, etc,\nconsider changing command line options.\n";
tempfile = "/tmp/lsat1.lsat";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
}
if (verbose > 0)
{
printf(" Finished in checkx module.\n");
}
return(0);
}
lsat-0.9.7.1/configure 0000755 0001750 0000144 00000104452 11007333550 014043 0 ustar number9 users #! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
# Defaults:
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
# Initialize some variables set by options.
# The variables have the same names as the options, with
# dashes changed to underlines.
build=NONE
cache_file=./config.cache
exec_prefix=NONE
host=NONE
no_create=
nonopt=NONE
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
target=NONE
verbose=
x_includes=NONE
x_libraries=NONE
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datadir='${prefix}/share'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
libdir='${exec_prefix}/lib'
includedir='${prefix}/include'
oldincludedir='/usr/include'
infodir='${prefix}/info'
mandir='${prefix}/man'
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12
ac_prev=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval "$ac_prev=\$ac_option"
ac_prev=
continue
fi
case "$ac_option" in
-*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) ac_optarg= ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
case "$ac_option" in
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir="$ac_optarg" ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build="$ac_optarg" ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file="$ac_optarg" ;;
-datadir | --datadir | --datadi | --datad | --data | --dat | --da)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
| --da=*)
datadir="$ac_optarg" ;;
-disable-* | --disable-*)
ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
fi
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
eval "enable_${ac_feature}=no" ;;
-enable-* | --enable-*)
ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
fi
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
case "$ac_option" in
*=*) ;;
*) ac_optarg=yes ;;
esac
eval "enable_${ac_feature}='$ac_optarg'" ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix="$ac_optarg" ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he)
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat << EOF
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR
[PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR
[PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM
run sed PROGRAM on installed program names
EOF
cat << EOF
Host type:
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
EOF
if test -n "$ac_help"; then
echo "--enable and --with options recognized:$ac_help"
fi
exit 0 ;;
-host | --host | --hos | --ho)
ac_prev=host ;;
-host=* | --host=* | --hos=* | --ho=*)
host="$ac_optarg" ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir="$ac_optarg" ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir="$ac_optarg" ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir="$ac_optarg" ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir="$ac_optarg" ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst \
| --locals | --local | --loca | --loc | --lo)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* \
| --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
localstatedir="$ac_optarg" ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir="$ac_optarg" ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir="$ac_optarg" ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix="$ac_optarg" ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix="$ac_optarg" ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix="$ac_optarg" ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name="$ac_optarg" ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir="$ac_optarg" ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir="$ac_optarg" ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir="$ac_optarg" ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir="$ac_optarg" ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target="$ac_optarg" ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
echo "configure generated by autoconf version 2.13"
exit 0 ;;
-with-* | --with-*)
ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
fi
ac_package=`echo $ac_package| sed 's/-/_/g'`
case "$ac_option" in
*=*) ;;
*) ac_optarg=yes ;;
esac
eval "with_${ac_package}='$ac_optarg'" ;;
-without-* | --without-*)
ac_package=`echo $ac_option|sed -e 's/-*without-//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
fi
ac_package=`echo $ac_package| sed 's/-/_/g'`
eval "with_${ac_package}=no" ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes="$ac_optarg" ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries="$ac_optarg" ;;
-*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
;;
*)
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
echo "configure: warning: $ac_option: invalid host type" 1>&2
fi
if test "x$nonopt" != xNONE; then
{ echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
fi
nonopt="$ac_option"
;;
esac
done
if test -n "$ac_prev"; then
{ echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
fi
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 6 checking for... messages and results
# 5 compiler messages saved in config.log
if test "$silent" = yes; then
exec 6>/dev/null
else
exec 6>&1
fi
exec 5>./config.log
echo "\
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
" 1>&5
# Strip out --no-create and --no-recursion so they do not pile up.
# Also quote any args containing shell metacharacters.
ac_configure_args=
for ac_arg
do
case "$ac_arg" in
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c) ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
ac_configure_args="$ac_configure_args '$ac_arg'" ;;
*) ac_configure_args="$ac_configure_args $ac_arg" ;;
esac
done
# NLS nuisances.
# Only set these to C if already set. These must not be set unconditionally
# because not all systems understand e.g. LANG=C (notably SCO).
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
# Non-C LC_CTYPE values break the ctype check.
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -rf conftest* confdefs.h
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
echo > confdefs.h
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
ac_unique_file=checkhostsfiles.c
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then its parent.
ac_prog=$0
ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
srcdir=$ac_confdir
if test ! -r $srcdir/$ac_unique_file; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r $srcdir/$ac_unique_file; then
if test "$ac_srcdir_defaulted" = yes; then
{ echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
else
{ echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
fi
fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
if test -z "$CONFIG_SITE"; then
if test "x$prefix" != xNONE; then
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
else
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
echo "loading site script $ac_site_file"
. "$ac_site_file"
fi
done
if test -r "$cache_file"; then
echo "loading cache $cache_file"
. $cache_file
else
echo "creating cache $cache_file"
> $cache_file
fi
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
ac_exeext=
ac_objext=o
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
ac_n= ac_c='
' ac_t=' '
else
ac_n=-n ac_c= ac_t=
fi
else
ac_n= ac_c='\c' ac_t=
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:529: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# This must be in double quotes, not single quotes, because CPP may get
# substituted into the Makefile and "${CC-cc}" will confuse make.
CPP="${CC-cc} -E"
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
CPP=/lib/cpp
fi
rm -f conftest*
fi
rm -f conftest*
fi
rm -f conftest*
ac_cv_prog_CPP="$CPP"
fi
CPP="$ac_cv_prog_CPP"
else
ac_cv_prog_CPP="$CPP"
fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
echo "configure:609: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
#include
#include
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:622: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
ac_cv_header_stdc=yes
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
ac_cv_header_stdc=no
fi
rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "memchr" >/dev/null 2>&1; then
:
else
rm -rf conftest*
ac_cv_header_stdc=no
fi
rm -f conftest*
fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "free" >/dev/null 2>&1; then
:
else
rm -rf conftest*
ac_cv_header_stdc=no
fi
rm -f conftest*
fi
if test $ac_cv_header_stdc = yes; then
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int main () { int i; for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
if { (eval echo configure:689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -fr conftest*
ac_cv_header_stdc=no
fi
rm -fr conftest*
fi
fi
fi
echo "$ac_t""$ac_cv_header_stdc" 1>&6
if test $ac_cv_header_stdc = yes; then
cat >> confdefs.h <<\EOF
#define STDC_HEADERS 1
EOF
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
echo "configure:714: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
}
; return 0; }
EOF
if { (eval echo configure:768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
ac_cv_c_const=no
fi
rm -f conftest*
fi
echo "$ac_t""$ac_cv_c_const" 1>&6
if test $ac_cv_c_const = no; then
cat >> confdefs.h <<\EOF
#define const
EOF
fi
for ac_func in strstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:792: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func();
int main() {
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
$ac_func();
#endif
; return 0; }
EOF
if { (eval echo configure:820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
cat >> confdefs.h <&6
fi
done
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs. It is not useful on other systems.
# If it contains results you don't want to keep, you may remove or edit it.
#
# By default, configure uses ./config.cache as the cache file,
# creating it if it does not exist already. You can give configure
# the --cache-file=FILE option to use a different cache file; that is
# what configure does when it calls configure scripts in
# subdirectories, so they share the cache.
# Giving --cache-file=/dev/null disables caching, for debugging configure.
# config.status only pays attention to the cache file if you give it the
# --recheck option to rerun configure.
#
EOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, don't put newlines in cache variables' values.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
case `(ac_space=' '; set | grep ac_space) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
sed -n \
-e "s/'/'\\\\''/g" \
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
;;
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
;;
esac >> confcache
if cmp -s $cache_file confcache; then
:
else
if test -w $cache_file; then
echo "updating cache $cache_file"
cat confcache > $cache_file
else
echo "not updating unwritable cache $cache_file"
fi
fi
rm -f confcache
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
# Any assignment to VPATH causes Sun make to only execute
# the first set of double-colon rules, so remove it if not needed.
# If there is a colon in the path, we need to keep it.
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
fi
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
cat > conftest.defs <<\EOF
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
s%\[%\\&%g
s%\]%\\&%g
s%\$%$$%g
EOF
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
rm -f conftest.defs
# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}
echo creating $CONFIG_STATUS
rm -f $CONFIG_STATUS
cat > $CONFIG_STATUS </dev/null | sed 1q`:
#
# $0 $ac_configure_args
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.
ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
for ac_option
do
case "\$ac_option" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "$CONFIG_STATUS generated by autoconf version 2.13"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
*) echo "\$ac_cs_usage"; exit 1 ;;
esac
done
ac_given_srcdir=$srcdir
trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
s%@exec_prefix@%$exec_prefix%g
s%@prefix@%$prefix%g
s%@program_transform_name@%$program_transform_name%g
s%@bindir@%$bindir%g
s%@sbindir@%$sbindir%g
s%@libexecdir@%$libexecdir%g
s%@datadir@%$datadir%g
s%@sysconfdir@%$sysconfdir%g
s%@sharedstatedir@%$sharedstatedir%g
s%@localstatedir@%$localstatedir%g
s%@libdir@%$libdir%g
s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
s%@CPP@%$CPP%g
CEOF
EOF
cat >> $CONFIG_STATUS <<\EOF
# Split the substitutions into bite-sized pieces for seds with
# small command number limits, like on Digital OSF/1 and HP-UX.
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
ac_file=1 # Number of current file.
ac_beg=1 # First line for current file.
ac_end=$ac_max_sed_cmds # Line after last line for current file.
ac_more_lines=:
ac_sed_cmds=""
while $ac_more_lines; do
if test $ac_beg -gt 1; then
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
else
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
fi
if test ! -s conftest.s$ac_file; then
ac_more_lines=false
rm -f conftest.s$ac_file
else
if test -z "$ac_sed_cmds"; then
ac_sed_cmds="sed -f conftest.s$ac_file"
else
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
fi
ac_file=`expr $ac_file + 1`
ac_beg=$ac_end
ac_end=`expr $ac_end + $ac_max_sed_cmds`
fi
done
if test -z "$ac_sed_cmds"; then
ac_sed_cmds=cat
fi
EOF
cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
*) ac_file_in="${ac_file}.in" ;;
esac
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
# The file is in a subdirectory.
test ! -d "$ac_dir" && mkdir "$ac_dir"
ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
else
ac_dir_suffix= ac_dots=
fi
case "$ac_given_srcdir" in
.) srcdir=.
if test -z "$ac_dots"; then top_srcdir=.
else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
*) # Relative path.
srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
echo creating "$ac_file"
rm -f "$ac_file"
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
case "$ac_file" in
*Makefile*) ac_comsub="1i\\
# $configure_input" ;;
*) ac_comsub= ;;
esac
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
sed -e "$ac_comsub
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*
EOF
cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
exit 0
EOF
chmod +x $CONFIG_STATUS
rm -fr confdefs* $ac_clean_files
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
lsat-0.9.7.1/dostuff.c 0000644 0001750 0000144 00000011633 11007333550 013750 0 ustar number9 users /*
This is a function that does all the filehandling stuff for the lsat modules so that
you don't have to reinvent the wheel every time you want to do something. After all
we have to get rid off, eradicate and stamp out all kinds of redundancies.
As arguments it takes four pointers to strings: tempfile, outfile, shellcode and
header. Additionally, it takes one other argument, html, which is an int. Header can be NULL, then it simply will not be printed. One of the other
pointers can be NULL as well. In this case refer to the following list:
no NULL pointer default behaviour
create tempfile
run shellcode
append header to outfile
append tempfile to outfile
delete tempfile
outfile == NULL if you want to keep working with tempfile
create tempfile
run shellcode
tempfile == NULL if you already have a tempfile and want to keep it
run shellcode
shellcode == NULL if you already got a tempfile but now you're finished
append header to outfile
append tempfile to outfile
delete tempfile
Special Case: just print the header to the outfile
tempfile==shellcode==NULL
append header to outfile
html = 0 Output is normal
html = 1 Output is in html format
html = 2 First time we ran dostuff, print html header
html = 3 Final part, print html footer
Will return 0 on success and negative value on failure.
*/
#include
#include
#include
#include "lsatheader.h"
int dostuff (tempfile, outfile, shellcode, header, html)
const char *const tempfile;
const char *const outfile;
const char *const shellcode;
const char *const header;
int html;
{
int fileval=0; /* return val */
char line[512]; /* for reading lines */
FILE *out; /* file pointer for outfile */
FILE *tmp; /* file pointer for tempfile */
/* create a temp file for storage */
if ((tempfile!=NULL)&&(shellcode!=NULL))
{
if ((fileval = open(tempfile, O_RDWR | O_CREAT | O_EXCL, 0600)) < 0)
{
perror(" Could not create temporary file...\n");
perror(" Possible link attack while creating/opening file!\n");
exit(-1);
}
}
/* run the shellcode */
if (shellcode!=NULL)
{
if ((system(shellcode)) < 0 )
{
perror(" Problem running the shellcode or writing to tempfile\n");
/* sanity check */
printf(" This was shellcode: %s\n",shellcode);
return(-1);
}
}
/* output the header (if given) and append tempfile to outfile and remove tempfile*/
if (outfile!=NULL) /* &&(tempfile!=NULL)) */
{
/* open outfile for append */
out = fopen(outfile, "a");
if (out == NULL)
{
perror(" Error opening outfile!\n");
return(-1);
}
/* print header to outfile if given */
/* Check to see if html = 1; if it is, do html. */
if (!(header==NULL))
{
/* if html = 2, this is the first time we print anything */
/* so we want to print the html headers... */
if (html == 2)
{
fprintf(out, "\n");
fprintf(out, "\n");
fprintf(out, "\n");
fprintf(out, "LSAT output page\n");
fprintf(out, "\n");
fprintf(out, "\n");
fprintf(out, "\n");
fprintf(out, "LSAT output page
\n");
fprintf(out, "
\n\n");
}
/* if html == 1 the user wants all parts in html */
if (html == 1)
{
fprintf(out, "
\n");
fprintf(out, "\n");
fprintf(out, "%s\n", header);
fprintf(out, "\n");
}
/* no html, please */
if (html == 0)
{
fprintf(out, "\n****************************************\n");
fprintf(out, "%s\n", header);
}
/* if html == 3 this is the last one, but we still */
/* need to print the last header... */
if (html == 3)
{
fprintf(out, "
\n");
fprintf(out, "\n");
fprintf(out, "%s\n", header);
fprintf(out, "\n");
fprintf(out, "
\n\n\n");
}
}
/* do tempfile stuff if given */
if (tempfile!=NULL)
{
/* open tempfile for reading */
tmp = fopen(tempfile, "r");
if (tmp == NULL)
{
perror(" Error opening tempfile for read!\n");
fclose(out);
return(-1);
}
/* append everything in tempfile to outfile */
/* note to self, mod this to use getline in the future. */
/* note2, fgets can crash here if sizeof(line) > 512. */
/* this is really bad, causes segfault... need fix. lazy. */
while (fgets(line, sizeof(line), tmp) != NULL)
{
fprintf(out, "%s", line);
}
/* close the tempfile and rm it */
fclose(tmp);
remove(tempfile);
}
/* close up */
fclose(out);
}
return(0);
}
lsat-0.9.7.1/INSTALL 0000644 0001750 0000144 00000004737 11007333550 013172 0 ustar number9 users ------------------------------------------------------
-INSTALL file for LSAT (Linux Security Auditing Tool)-
------------------------------------------------------
We assume that you have not even unpacked LSAT yet...
kindof strange as this is the first set of instructions,
but nevertheless, here we go...
Dowload lsat-.tgz or .zip, depending on your
preference and place it in any good looking directory.
I prefer to put it in my home dir. You can use the built
in "install" feature to install it where you want later.
For the .tgz file:
tar -xvzf lsat-.tgz
For the .zip file:
unzip lsat-.tgz
cd lsat-
./configure
make
If configure complains, please send me an email. If you
don't have configure, you probably need it. You could do
a manual build by reading through the make file. Being as
you are paranoid (you are using this right?) you have
probably already checked the Makefile.in just to make
sure I was not doing anything clever. :O
To install lsat in /usr/local/bin do a
make install
To build the manpage do a
make manpage
To install the manpage do a
make installman
If you are modifying or building your own modules,
you will find that
make clean
can come in really handy, so I included it for you. :)
Developers may find a make cleanall really helpful.
Read the Makefile for more details.
To run lsat do a
./lsat
For help and (up to date) command line options do a
./lsat -h
Any number of options can be specified on the command line.
This may take some time on older systems as it (at some point in time) does
an rpm -qa while checking installed packages (pkginfo on Solaris).
It also checks all SETUID and SETGID files on the system.
On a system more "modern" than mine (80Mhz) it should not take long.
The output is in the file in the directory where lsatmain was run and
should be called lsat.out. If you have previously run lsatmain then the
previous output will be moved to lsat.old. This is so that you may check
your imcremental security improvements to the system.
Ok, the documentation for LSAT is as follows: in order
of how often they are modified:
modules.html and README.modules - gives a nice descript of what each module
does and also a primier on how to build modules.
changelog - whats new, whats old.
README - basic stuffs, sometimes added to.
INSTALL - a new file, but I do not see it changing much. :)
You can reach me (sometimes) at
and othertimes at
lsat-0.9.7.1/lsat.pod 0000644 0001750 0000144 00000007024 11007333550 013600 0 ustar number9 users # Let's see what happens here now
=head1 NAME
lsat - a security auditing tool
=head1 SYNOPSIS
B [OPTION]
=head1 DESCRIPTION
Linux Security Auditing Tool (LSAT) is a post install security
auditing tool. It is modular in design, so new features can be
added quickly. It checks inetd entries and scans for unneeded
RPM packages. It is being expanded to work with Linux
distributions other than Red Hat, and checks for kernel versions.
Output is in lsat.out.
On subsequent runs, previous output is in lsat.old.
=head1 OPTIONS
-d
diff current and old md5 runs, output in lsatmd5.diff
-m
Force a specific distribution test
Names are: redhat, debian, mandrake, solaris, gentoo
-h
Show LSAT help
-a
Show LSAT advanced help
-o
Output filename, default is last.out
-r
Check rpm integrity. RedHat or Mandrake only.
-s
Be silent. No output at all.
-x
Filename is a text file consisting of modules to
exclude from being run. This should be a comma,
tab or newline delimited file, with just the name(s)
below one wishes to exclude.
Module names (with a small description) are:
bpass check for bootloader passwd
cfg check runlevel daemons (redhat)
dotfiles check for dotfiles
files check for sticky bits, etc
forward check for network forwarding
ftpusers check ftpusers file for bad entries
inetd check for unneeded services
inittab check runlevel, etc.
ipv4 check for other things in ipv4
issue check issue banner
kbd check kbd/login perms
limits check limits file
logging check for enough logging
md5 perform md5 of all files on sys
modules check for loadable kern mod.
net check network
open check open files
passwd check passwd file for bad entries
perms check permissions on files
pkgs check for unwanted packages
promisc are we in promisc mode?
rc check for unwanted rc files
rpm perform rpm integrity check
securetty check secure tty
set check for SUID files
ssh check ssh config
startx check for tcp listening in X
umask check default umask
write check world read/write files
www output in html
-v
Be verbose about it.
-w
Output file is in html format.
=head1 MODULES
Current modules are checkbpass, checkdotfiles, checkfiles,
checkftpusers, checkhostsfiles, checkinetd, checkipv4,
checkissue, checkkbd, checklimits, checkmodule, checkmd5,
checknet, checknetforward, checknetp, checkopenfiles,
checkpasswd, checkperms, checkpkgs, checkrc, checkrpm,
checksecuretty, checkset, checkssh, checkumask, checkwrite
and checkwww. A breif description is included in each module.
Writing a module is fairly easy and straightforward.
See README.modules for more information.
=head1 LICENSE
This software is licensed under the GNU/GPL, please see
http://www.gnu.org for more details.
=head1 BUGS
Doesn't correct the problems that it discovers (yet).
Running on Solaris is not fully functional.
=head1 AUTHOR
Robert Minvielle
If that fails,
lsat-0.9.7.1/lsatheader.h 0000644 0001750 0000144 00000012464 11007333550 014422 0 ustar number9 users /*************************
header file for lsatmain.c
*************************/
/* these are in lsatmain.c itself... */
void usage();
int findexclude(char xlisting[], int *xlist);
int versions(char release[], char kernel[], int verbose);
int lsatrm(void);
/* end of list of funcs inside lsatmain.c itself */
/* dostuff does all sortfs of stuff, read it for details. */
int dostuff(const char *const tempfile, const char *const outfile, const char *const shellcode, const char *const header, int html);
/* checks rpms against a list of unnecessary ones */
int checkpkgs(int distribution, const char *const filename, int verbose, int html);
/* check /etc/inetd.conf file for entries. */
/* if running xinetd.d, check that. */
int checkinetd(const char *const outfile, int distribution, int verbose, int html);
/* check that the default runlevel is not set to 5 */
int checkinittab(const char *const outfile, int distribution, int verbose, int html);
/* if running inetd or xinetd.d, check that */
/* hosts.deny has ALL:ALL, at least. */
int checkhostsfiles(const char *const outfile, int verbose, int html);
/* check for auth and authpriv facilities */
int checklogging(const char *const outfile, int distribution, int verbose, int html);
/* check rpm integrity, only run if -r switch given */
int checkrpm(const char *const outfile, int verbose, int html);
/* check SETUID/SETGID files on the sustem */
int checkset(const char *const outfile, int verbose, int html);
/* check for world WRITABLE files and directories */
int checkwrite(const char *const outfile, int distribution, int verbose, int html);
/* check for .exrc and .forward files */
int checkdotfiles(const char *const outfile, int verbose, int html);
/* check for UID 0 other than root and unwated users */
int checkpasswd(const char *const outfile, int distribution, int verbose, int html);
/* check for sticky bits on /tmp, /var/tmp */
/* this will do more later. */
int checkfiles(const char *const outfile, int verbose, int html);
/* check for umask settings in /etc/ */
int checkumask(const char *const outfile, int verbose, int html);
/* check for entries in /etc/ftpusers */
int checkftpusers(const char *const outfile, int verbose, int html);
/* check for errors in ftp configs... */
int checkftp(const char *const outfile, int verbose, int distribution, int html);
/* check rc files for unneeded ones */
int checkrc(char release[], char kernel[], int distribution, const char *const outfile, int verbose, int html);
/* check for ctrl-alt-del (linux) or STOP-A (SunOS) disable */
int checkkbd(char release[], const char *const outfile, int verbose, int html);
/* check for limits.conf file */
int checklimits(const char *const outfile, int verbose, int html);
/* check for sshd config errors */
int checkssh(const char *const outfile, int distribution, int verbose, int html);
/* check network ports we are listening on */
int checknet(const char *const outfile, int distribution, int verbose, int html);
/* check for network forwarding */
int checknetforward(const char *const outfile, int distribution, int verbose, int html);
/* print out all daemons in all runlevels for the user to inspect */
/* this is a redhat (and derivative) specific module... */
int checkcfg(const char *const outfile, int verbose, int html);
/* do a lsof check. See checkopenfiles for details. */
/* this module will be expanded later on. */
int checkopenfiles(const char *const outfile, int distribution, int verbose, int html);
/* this will check for /etc/issue and /etc/issue.net */
/* see the module for more details */
int checkissue(const char *const outfile, int verbose, int html);
/* this checks for execcgis... should also check for SSIs later */
int checkwww(const char *const outfile, int distribution, int verbose, int html);
/* this checks to see if kernel modules are enabled */
int checkmodules(const char *const outfile, int verbose, int html);
/* this gives a list of all md5sums of all files on the system */
/* if run previously, the old list is called lsatmd5.old, the */
/* list generated by checkmd5 is called lsatmd5.out... */
int checkmd5(const char *const outfile, int distribution, int verbose, int html, int diff);
/* check /etc/securetty for entries... */
int checksecuretty(const char *const outfile, int verbose, int html);
/* check that files in /etc/rc.d/init.d are perm 700 */
int checkrcperms(const char *const outfile, int distribution, int verbose, int html);
/* check that the network interfaces are not in promisc mode */
int checknetp(char kernel[], const char *const outfile, int distribution, int verbose, int html);
/* check that the bootloaders are using passwords */
int checkbpass(int distribution, const char *const outfile, int verbose, int html);
/* check some ipv4 stuffs in /proc */
int checkipv4(const char *const outfile, int verbose, int html);
/* check to see if X is listening for tcp connections */
int checkx(const char *const outfile, int verbose, int html);
/* Check for listening apps. See checklistening for details. */
/* will this module ever be expanded later on? */
int checklistening(const char *const outfile, int distribution, int verbose, int html);
/* perform some very basic disk checking, like mounted */
/* filesystems and current disk usage. Will expand this later */
int checkdisk(const char *outfile, int verbose, int html);
lsat-0.9.7.1/lsatmain.c 0000644 0001750 0000144 00000111263 11007333550 014106 0 ustar number9 users /************************************************************************/
/* This is the main file for lsat */
/* It contains the main program and also does two checks of its own. */
/* It gives the user some usage info (perhaps) and will check the */
/* kernel version and release level of software running on the box. */
/* */
/* Current release is 0.9.0. */
/* Project started on 04/01/2002 */
/* homepage: http://www.dimlight.org/lsat */
/* changelog: http://www.dimlight.org/lsat/changelog.html */
/* */
/* This software Licensed under the GNU General Public License */
/* see the bottom of this file for details. */
/* */
/* This program is _supposed_ to be modular in nature. That is to say: */
/* all security checks are sub-functions called from this main prog. */
/* */
/************************************************************************/
/****************/
/* Includes */
/****************/
#include
#include
#include
#include
#include "lsatheader.h"
#include
#include
#include
/********************************************************/
/* Usage function. Tell user command line options */
/********************************************************/
void usage()
{
fprintf(stderr, "Usage is lsat [options]\n");
fprintf(stderr, "Options:\n");
fprintf(stderr, "\t-d\t\t\tdiff current and old md5, output in lsatmd5.diff\n");
fprintf(stderr, "\t-m \tForce a specific distribution test.\n");
fprintf(stderr, "\t\t\t\tDistro names are: \n");
fprintf(stderr, "\t\t\t\tdebian\n");
fprintf(stderr, "\t\t\t\tgentoo\n");
fprintf(stderr, "\t\t\t\tmandrake\n");
fprintf(stderr, "\t\t\t\tmacosx\n");
fprintf(stderr, "\t\t\t\tredhat\n");
fprintf(stderr, "\t\t\t\tslackware\n");
fprintf(stderr, "\t\t\t\tsolaris\n");
fprintf(stderr, "\t\t\t\tIf no -f option, lsat will guess. If lsat can\n");
fprintf(stderr, "\t\t\t\tnot guess the distribution, default is redhat.\n");
fprintf(stderr, "\t-a\t\t\tShow this (advanced) help page\n");
fprintf(stderr, "\t-o \t\tOutput file name -- default is lsat.out\n");
fprintf(stderr, "\t-r\t\t\tCheck rpm integrity -- redhat or mandrake only\n");
fprintf(stderr, "\t-s\t\t\tSilent mode\n");
fprintf(stderr, "\t-v\t\t\tVerbose output\n");
fprintf(stderr, "\t-w\t\t\tOutput file in html format\n");
fprintf(stderr, "\t-x \t\teXclude module(s) in filelist from checks...\n");
fprintf(stderr, "\t\t\t\tmodules listed in filename will be excluded\n\t\t\t\tfrom checks. Valid module names are the module\n\t\t\t\tnames themselves without the check.\n\t\t\t\t(e.g. set not checkset)\n\t\t\t\tsee manpage or README for more info\n");
exit(8);
}
/********************************************************/
/* findexclude function. See if target is in exclude */
/* list that was on the command line... */
/********************************************************/
int findexclude(char xlisting[100], int *xlist)
{
FILE *fileptr;
int i=0;
char *token;
char tempstring[26];
char line[256];
char thelist[33][12] = { {"pkgs"}, {"rpm"}, {"inetd"}, {"inittab"}, {"logging"}, {"set"}, {"write"}, {"dotfiles"}, {"passwd"}, {"files"}, {"umask"}, {"ftpusers"}, {"rc"}, {"kbd"}, {"limits"}, {"ssh"}, {"open"}, {"issue"}, {"www"}, {"md5"}, {"modules"}, {"securetty"}, {"perms"}, {"net"}, {"forward"}, {"promisc"}, {"listening"}, {"cfg"}, {"bpass"}, {"ipv4"}, {"startx"}, {"ftp"}, {"disk"} };
if ((fileptr = fopen(xlisting, "r"))==NULL)
{
perror("Error opening exclude file\n");
return(-1);
}
while (fgets(line, sizeof(line), fileptr) != NULL)
{
token = strtok(line, ", \"\n");
if (token == NULL)
{
break;
}
/* not blank?? Do some stuff... */
while (token != NULL)
{
if (sscanf(token, "%25s", tempstring) < 1)
{
perror("sscanf bit the dust");
perror("Error was in lsatmain.\n");
return(-1);
}
/* ok, now here we compare */
/* we go through our array of module names and */
/* see if they match. If they do, the user does */
/* not want to run that module, so we put it in */
/* another array of ints to look through later. */
for (i=0;i<33;i++)
{
if ((strcmp(thelist[i], tempstring)) == 0)
{
/* we have a match. */
xlist[i]=1;
}
}
token = strtok(NULL, ", \"\n");
if (token == NULL)
{
/* freak out */
break;
}
} /* end while (ptr != NULLL) */
} /* end while (fgets...) */
/* clean up */
fclose(fileptr);
return(0);
}
/***************************************************/
/* Check what version and kernel release we are at */
/* Changed: 4/4/2002: */
/* we will no longer cat /etc/redhat-release */
/* in main... we will now just grab the 1st field */
/* from the uname -a output so that it is easier */
/* (later on too) to figure out what we should do. */
/* We shall still grab the "kernel/release" field */
/* (field 3) to get the linux kernel or release */
/* (e.g. Solaris version) that we are on. This (I */
/* think) will give us greater flexibility in */
/* porting to other *NIXs like Solaris or AIX. */
/* */
/* Note: release will be field 1, kernel field 3 */
/***************************************************/
int versions(char release[], char kernel[], int verbose)
{
/* some local vars... */
FILE *infile; /* file pointer to input file */
char *ptr; /* char pointer for strtok */
char line[100]; /* temp array for reading lines */
/* note make tempstring 100 also, avoid buffer overruns */
char tempstring[100]; /* temp string for sscanf */
int linecount=0; /* line counter */
int field=0; /* field counter for strtok */
int i=0; /* general counter variable */
int fileval=0; /* return value */
/* First off, get the output of uname -a */
/* this is silly, I should know how to do this more easily */
if ((fileval = open("/tmp/lsat1.lsat", O_RDWR | O_CREAT | O_EXCL | O_EXCL, 0600)) < 0)
{
perror("Could not make file w/perms 0600...\n");
perror("Possible link attack while creating/opening file!\n");
perror("Bailing in lsatmain...\n");
exit(-1);
}
/* get the uname, redirect to tempfile */
if ( (system("uname -a >> /tmp/lsat1.lsat")) < 0)
{
/* rhut-rho...something bad happened. */
perror("Problem executing pwd...\n");
perror("Error was in lsatmain.\n");
return(0);
}
/* open input file for read... */
if (NULL == (infile = fdopen(fileval, "r")))
{
/* rhut-rho */
perror("Can't open the file we just made!?!\n");
perror("Giving up, check perms or something...\n");
perror("Error was in lsatmain.\n");
return(-1);
}
/* get a line from the file... it should contain only 2 */
/* 1st line is uname -a, so the third field is the kernel version */
while (fgets(line, sizeof(line), infile) != NULL)
{
/* (re)set field... */
field=0;
ptr = strtok(line, ", \"\n");
if (ptr == NULL)
{
break;
}
/* not blank?? Do some stuff... */
while (ptr != NULL)
{
/* if linecount == 0, get 1st field */
if (sscanf(ptr, "%99s", tempstring) < 1)
{
perror("sscanf bit the dust");
perror("Error was in lsatmain.\n");
return(-1);
}
if ((field == 0) && (linecount == 0))
{
for (i = 0; i < 50; i++)
{
release[i]=tempstring[i];
}
}
if ((field == 2) && (linecount == 0))
{
for (i = 0; i < 3; i++)
{
kernel[i]=tempstring[i];
}
}
ptr = strtok(NULL, ", \"\n");
if (ptr == NULL)
{
/* freak out */
break;
}
/* increment counter for the field we are reading */
field++;
} /* end while(ptr != NULL) */
/* increment the line counter */
linecount++;
} /* end while (fgets...) */
close(fileval);
/* clean up even though we will rm it */
close(infile);
if ( (system("rm -f /tmp/lsat1.lsat")) < 0)
{
/* rhut-rho...something bad happened. */
perror("Problem rm'ing tempfile...\n");
perror("Error was in lsatmain.\n");
return(0);
}
if (verbose > 0)
{
printf("System type is: %s\n", release);
printf("Kernel/release level is: %s\n", kernel);
}
return(0);
}
/****************************************************************/
/* lsatrm. This function will remove temp files that lsat uses */
/* should a module bomb out. All temp files should be called */
/* lsatn.lsat where n is an integer, and should be in /tmp/ */
/****************************************************************/
int lsatrm(void)
{
if ((system("rm -f /tmp/lsat*.lsat 1>/dev/null 2>/dev/null")) != 0)
{
perror("Error removing tmp files.\n");
perror("This could be a symlink attack.\n");
return(-1);
}
return(0);
}
/****************************************************************/
/* Main All sub-programs/functions should be called */
/* from here. Note: they should also be listed in lsatheader.h */
/****************************************************************/
int main(int argc, char *argv[])
{
int retval=0; /* a return value indicator */
int verbose=0; /* for verbosity */
/* note: switches:
* lsat -a = advanced help
* lsat -d = perform a diff of the md5output and old md5output
* lsat -v = verbose, verbose = 1
* lsat = slightly verbose, verbose = 0,
* the module name is printed as it performes each module
* lsat -s = silent, verbose = -1, nothing printed at all.
* lsat -r = run checkrpm module.
* lsat -m = force a distribution mode, e.g. lsat -m redhat
* lsat -h = give help output
* lsat -o outfile = put output in outfile instead of lsat.out
* lsat -w = print output in html format
* lsat -x module = exclude module from checks
*/
int diff=0; /* do we run the md5 diff? */
int rpmmodule=0; /* do we run the rpm module? */
int inetexists=0; /* if inetd.conf exists, this is 1 */
int distribution=1; /* what distro are we on? */
/* -1=user specified a distro, its in man_distro
* 1=redhat
* 2=debian
* 3=solaris
* 4=gentoo
* 5=macosx
* 6=slackware
* default = redhat */
int html=0; /* html output? */
/* html = 0: normal output
* html = 1: user wants html output
*/
char release[50]; /* array for release level */
char kernel[50]; /* what kernel user is running */
static char *man_distro; /* if the user specifies a distribution */
const char * header =NULL; /* to print out the header */
static char *out_file = "lsat.out"; /* output filename var */
char xlist[100]; /* modules to exclude */
int xarray[33] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int somethinginxlist = 0;
/* note if no filename given, default = lsat.out */
FILE *tempptr; /* a temp file pointer */
uid_t uidme;
uidme = getuid();
/* we used to set the umask of the user here... */
/* note that does not work all of the time. */
/* instead use open with options below. Also, */
/* warn user at bottom about setting umask to */
/* sensible value before modifying files. */
/* we will again try to set umask here... */
mode_t old_umask;
old_umask=(umask(0177));
/* Now do options processing */
int i;
for (i=1; i < argc; i++)
{
if(argv[i][0] == '-')
{
switch (argv[i][1])
{
case 'a':
usage();
break;
case 'h':
usage();
break;
case 'd':
diff = 1;
break;
case 'm':
strcpy(man_distro, argv[i]+3);
break;
case 'o':
strcpy(out_file, argv[i]+3);
break;
case 'r':
rpmmodule = 1;
break;
case 's':
verbose = -1;
break;
case 'v':
verbose = 1;
break;
case 'w':
html = 1;
out_file="lsat.html";
break;
case 'x': strcpy(xlist,argv[i]+3);
somethinginxlist = 1;
break;
default :
usage();
break;
}
}
}
if (!out_file) /* if no filename after -o */
{
usage(); /* note usage() will exit lsat */
}
/* if an exclude list was given, parse the file and */
/* fill the array of excludes.. */
if (somethinginxlist == 1)
{
if (findexclude(xlist, xarray) != 0)
{
/* something went wrong */
perror("Error reading exclude list...\n");
return(-1);
}
}
/* check if output exists, if it does, make a */
/* backup and rm the orig. named one. */
tempptr = fopen(out_file, "r");
if (tempptr != 0)
{
/* output file exists */
/* make a backup copy */
char *newname = NULL;
if ((newname = (char *) calloc(2, sizeof(out_file))) == NULL)
{
perror("Can not allocate temp memory in lsatmain.\n");
perror("Strange. Bailing...\n");
exit(-1);
}
fclose(tempptr);
/* add .old onto the old outfile name */
sprintf(newname, "%s.old", out_file);
/* gnu, but should be ok... */
/* whoops, we are now failure checking this... */
retval = 0;
retval = rename(out_file, newname);
if (retval < 0)
{
/* damn, rename bombed */
perror("GNU rename bombed in lsatmain.\n");
perror("Very odd, you should have seen errors, report them :) \n");
exit(-1);
}
/* free up calloc'd mem */
free(newname);
}
/* now that we have a backup, remove the outfile */
/* don't care about failure here... */
remove(out_file);
/* not seem to work 100% of the time on my system*/
/* for making files w/chmod 0600... */
/* reverting to open with options... */
retval = 0;
if ((retval = open(out_file, O_RDWR | O_CREAT | O_EXCL, 0600)) < 0)
{
perror("Could not make file w/perms 0600...\n");
perror("Possible link attack while creating/opening file!\n");
perror("Bailing in lsatmain...\n");
exit(-1);
}
/* we print this out no matter what verbose is */
printf("Starting LSAT...\n");
/* remove old tempfiles (if lsat got killed) */
/* if this fails, we should stop _now_! */
if (lsatrm() < 0)
{
perror("Could not remove tempfiles during startup.\n");
perror("You may need root permissions to do this.\n");
return(-1);
}
/* read that in, check kernel version and "release" */
if (verbose >= 0)
{
printf("Getting system information...\n");
}
retval = versions(release, kernel, verbose);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in versions function.\n");
return(0);
}
/* note about Mandrake: until I can find vast differences */
/* between RedHat/Mandrake in terms of configs, we assume */
/* that it is redhat and don't check /etc/mandrake_rel... */
/* simple check to see if we are on RedHat or Debian */
/* first, did the user specify a distro? */
if (distribution != -1)
{
if ((system("cat /etc/redhat-release 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* we are on redhat */
distribution = 1;
}
if ((system("cat /etc/debian_version 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* we are on debian */
distribution = 2;
}
if ((system("uname |grep SunOS 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* we are on Solaris/SunOS */
distribution = 3;
}
if ((system("uname -a |grep gentoo 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* we are on gentoo */
distribution = 4;
}
if ((system("uname |grep Darwin 1>/dev/null 2>/dev/null >/dev/null")) == 0)
{
/* we are on Mac OSX */
distribution = 5;
}
if ((system("cat /etc/slackware-version 1>/dev/null 2>/dev/null >/dev/null")) == 0) /* JTO */
{
/* we are on slack */
distribution = 6;
}
}
if (distribution == -1)
{
/* user specified a distribution */
if ((strcmp(man_distro, "redhat")) == 0)
{
/* redhat */
distribution = 1;
}
if ((strcmp(man_distro, "centos")) == 0)
{
/* CentOS, RHEL-alike */
distribution = 1;
}
if ((strcmp(man_distro, "caos")) == 0)
{
/* CaOS, RHL-alike */
distribution = 1;
}
if ((strcmp(man_distro, "fedora")) == 0)
{
/* Post-RHL */
distribution = 1;
}
if ((strcmp(man_distro, "debian")) == 0)
{
/* debian */
distribution = 2;
}
if ((strcmp(man_distro, "solaris")) == 0)
{
/* solaris */
distribution = 3;
}
if ((strcmp(man_distro, "mandrake")) == 0)
{
/* mandrake, same as redhat, sortof */
distribution = 1;
}
if ((strcmp(man_distro, "gentoo")) == 0)
{
/* gentoo */
distribution = 4;
}
if ((strcmp(man_distro, "macosx")) == 0)
{
/* Mac OSX */
distribution = 5;
}
if ((strcmp(man_distro, "slackware")) == 0) /* JTO */
{
/* slackware- JTO */
distribution = 6;
}
/* default is redhat */
else
{
distribution = 1;
}
} /* end if (distribution == -1) */
/* ********* checks are below ****************** */
/* ok, we should have enough info, run the checks */
if (verbose >= 0)
{
printf("Running modules...\n");
}
/* we need to make a header if html = 1, as this */
/* could confuse the issue by putting it in the */
/* first module... call dostuff here... */
if (html == 1)
{
html = 2; /* this tells dostuff to write out header html */
header = "\n"; /* can't be NULL */
if ((dostuff(0, out_file, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
html = 1; /* change html int back to one */
}
/* run checkpkgs */
/* did user put it in exclude list? */
if (xarray[0] == 0 )
{
retval = 0;
retval = checkpkgs(distribution, out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkpkgs module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* run checkrpm if rpmmodule = 1 and distribution =1 */
/* did user put it in exclude list? */
if (xarray[1] == 0)
{
retval = 0;
if ((rpmmodule == 1) && (distribution == 1))
{
retval = checkrpm(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkrpm module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
}
/* run checkinetd */
/* did user put it in exclude list? */
if (xarray[2] == 0)
{
/* if hosts file exists run checkhostsfiles */
inetexists = checkinetd(out_file,distribution, verbose, html);
/* if inetexists == 1, it does! */
/* if inetexists == 0, it does not... */
/* if inetexists == -1, we had some problems. */
if (inetexists == 1)
{
checkhostsfiles(out_file, verbose, html);
}
if (inetexists == 0)
{
/* do nothing... */
;
}
if (inetexists == -1)
{
/* there was a problem. User should have seen */
/* messages from checkinetd program. */
/* do nothing here and continue... */
/* module bombed, clean up */
lsatrm();
}
}
/* check inittab */
/* did user put it in exclude list? */
if (xarray[3] == 0)
{
retval = 0;
retval = checkinittab(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkinittab module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* check logging */
/* did user put it in exclude list? */
if (xarray[4] == 0)
{
retval = 0;
retval = checklogging(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checklogging module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* check for setuid/setgid files */
/* did user put it in exclude list? */
if (xarray[5] == 0)
{
retval = 0;
retval = checkset(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkset module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* check for world writable files/directories */
/* did user put it in exclude list? */
if (xarray[6] == 0)
{
retval = 0;
retval = checkwrite(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkwrite module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* check for .exrc and .forward files */
/* did user put it in exclude list? */
if (xarray[7] == 0)
{
retval = 0;
retval = checkdotfiles(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkdotfiles module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* check /etc/passwd for uid 0 other than */
/* root and users not needed on the sys. */
/* did user put it in exclude list? */
if (xarray[8] == 0)
{
retval = 0;
retval = checkpasswd(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkpasswd module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* check to see if sticky bits are set */
/* on /tmp & /var/tmp. I will add more */
/* to this later on... */
/* did user put it in exclude list? */
if (xarray[9] == 0)
{
retval = 0;
retval = checkfiles(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkfiles module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[10] == 0)
{
retval = 0;
retval = checkumask(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in chumask module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[11] == 0)
{
retval = 0;
retval = checkftpusers(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkftpusers module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[12] == 0)
{
retval = 0;
retval = checkrc(release, kernel, distribution, out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkrc module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[13] == 0)
{
retval = 0;
retval = checkkbd(release, out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkkbd module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[14] == 0)
{
if (distribution != 6) /* need to fix for slack, JTO */
{
retval = 0;
retval = checklimits(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checklimits module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
} /* end if its not slack if statement */
}
/* did user put it in exclude list? */
if (xarray[15] == 0)
{
retval = 0;
retval = checkssh(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checkssh module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[16] == 0)
{
retval = 0;
retval = checkopenfiles(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checkopenfiles module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[17] == 0)
{
retval = 0;
retval = checkissue(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checksissue module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[18] == 0)
{
retval = 0;
retval = checkwww(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checkwww module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[19] == 0)
{
retval = 0;
retval = checkmd5(out_file, distribution, verbose, html, diff);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checkmd5 module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[20] == 0)
{
if ((distribution != 3) && (distribution !=5))
/* we are not on Solaris, so we can run this module */
{
retval = 0;
retval = checkmodules(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checkmodules module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[21] == 0)
{
retval = 0;
retval = checksecuretty(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checksecuretty module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[22] == 0)
{
retval = 0;
retval = checkrcperms(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkrcperms module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[23] == 0)
{
retval = 0;
retval = checknet(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checknet module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[24] == 0)
{
retval = 0;
retval = checknetforward(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checknetforward module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[25] == 0)
{
if ((distribution !=3) && (distribution != 5))
{
/* we are on linux... */
retval = 0;
retval = checknetp(kernel, out_file, distribution, verbose, html);
if (retval < 0)
{
perror("Problem in checknetpromisc module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[26] == 0)
{
if (distribution == 1) /* redhat (or derived) specific */
{
retval = 0;
retval = checkcfg(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkcfg module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[27] == 0)
{
if ((distribution !=3) && (distribution != 5)) /* we are on linux */
{
retval = 0;
retval = checkbpass(distribution, out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkbpass module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[28] == 0)
{
if ((distribution != 3) && (distribution != 5)) /* we are on linux */
{
retval = 0;
retval = checkipv4(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkipv4 module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[29] == 0)
{
if ((distribution !=3) && (distribution !=5)) /* we are on linux */
{
retval = 0;
retval = checkx(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkx module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[30] == 0)
{
if ((distribution !=3) && (distribution !=5)) /* we are on linux */
{
retval = 0;
retval = checkftp(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkftp module.\n");
perror("You should have seen errors...\n");
/* module bombed, clean up */
lsatrm();
return(0);
}
}
}
/* did user put it in exclude list? */
if (xarray[31] == 0)
{
retval = 0;
retval = checklistening(out_file, distribution, verbose, html);
if (retval < 0)
{
/* something went wrong.. */
perror("Problem in checklistening module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* did user put it in exclude list? */
if (xarray[32] == 0)
{
retval = 0;
retval = checkdisk(out_file, verbose, html);
if (retval < 0)
{
/* something went wrong... */
perror("Problem in checkdisk module.\n");
perror("You should have seen errors...\n");
lsatrm();
return(0);
}
}
/* this is to put a footer html at the end of the output */
/* file if the user wanted html output. */
if (html == 1)
{
html = 3; /* tells dostuff to do an html footer */
header = "\n"; /* can't be NULL */
if ((dostuff(0, out_file, 0, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
html = 1; /* set html int back... habit */
}
else
{
/* print a general footer */
header = "\n";
if ((dostuff(0, out_file, 0, header, 0)) < 0)
{
/* something went wrong */
perror(" Creation of footer failed.");
return(-1);
}
}
/* tell the user we are finished and where the output is */
/* we print this out no matter what verbose is */
printf("Finished.\n");
printf("Check %s for details.\n", out_file);
/* in silent mode we don't say much */
if (verbose >= 0)
{
printf("Don't forget to check your umask or file perms\n");
printf("when modifying files on the system.\n");
}
/* set the umask back... */
umask(old_umask);
return(0);
}
/**********************************************************************
Copyright (C) 2002 Robert Minvielle (number9)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
**********************************************************************/
lsat-0.9.7.1/Makefile.in 0000644 0001750 0000144 00000002515 11007333550 014176 0 ustar number9 users #
# Makefile for lsat program
#
SHELL=/bin/sh
SOURCES.c= lsatmain.c dostuff.c checkpkgs.c checkrpm.c checkinetd.c checkinittab.c checkhostsfiles.c checklogging.c checkset.c checkwrite.c checkdotfiles.c checkpasswd.c checkfiles.c checkumask.c checkftpusers.c checkrc.c checkkbd.c checklimits.c checkssh.c checknetforward.c checknet.c checkcfg.c checkopenfiles.c checklistening.c checkissue.c checkwww.c checkmodules.c checkmd5.c checksecuretty.c checkrcperms.c checknetp.c checkbpass.c checkipv4.c checkx.c checkftp.c checkdisk.c
INCLUDES=
CFLAGS=
LDFLAGS=
SLIBS=
PROGRAM= lsat
INSTALL = /usr/bin/install -c
prefix = @prefix@
BINDIR = @bindir@
DATADIR = @datadir@
MANDIR = @mandir@
OBJECTS= $(SOURCES.c:.c=.o)
.KEPP_STATE:
debug:
all debug: $(PROGRAM)
install:
$(INSTALL) -d $(DESTDIR)$(BINDIR)
$(INSTALL) $(PROGRAM) $(DESTDIR)$(BINDIR)
$(PROGRAM): $(INCLUDES) $(OBJECTS)
$(LINK.c) -o $@ $(OBJECTS) $(SLIBS)
clean:
rm -f $(PROGRAM) $(OBJECTS)
cleanall:
rm -f $(PROGRAM) $(OBJECTS) Makefile config.* lsat.old lsatmd5.out lsatmd5.old
manpage:
pod2man $(PROGRAM).pod > $(PROGRAM).tmp
sed 's/perl v5.6.1/LSAT/g' $(PROGRAM).tmp| \
sed 's/Perl/LSAT/g'\
> $(PROGRAM).1
rm -f $(PROGRAM).tmp
# cp -vf $(PROGRAM).1 debian/manpage.1.ex
installman:
$(INSTALL) -d $(DESTDIR)$(MANDIR)/man1
$(INSTALL) $(PROGRAM).1 $(DESTDIR)$(MANDIR)/man1/
lsat-0.9.7.1/modules.html 0000644 0001750 0000144 00000023115 11007333550 014466 0 ustar number9 users
LSAT Modules README
This is the readme for modules.
It contains a list of the modules in the lsat
package and what they check for.
It also has a premier at the end for creating
modules.
----------------------------------------------------------------------------
Modules in the LSAT package:
checkbpass:
- This module check for a boot loader password
- Currently only for grub and lilo
checkcfg:
- This module is performed last
- RedHat specific. Just prints out /sbin/chkconfig --list so that
the user can perform a visual inspection.
checkdotfiles:
- Looks for .forward, .exrc, .rhosts and .netrc files on the system.
- Does not span "other" filesystems.
checkfiles:
- checks that /tmp and /var/tmp have sitcky bit set
- checks utmp, wtmp, motd, mtab for chmod 644.
- checks /usr, /var dirs/files for root ownership.
checkftpusers:
- checks that all accounts in /etc/passwd are in /etc/ftpusers.
checkhostsfiles:
- Reads /etc/hosts.allow and /etc/hosts.deny files
- Checkes deny for ALL:ALL statement.
- Checks allow for any ALL statements.
checkinetd:
- Checks either /etc/inetd.conf or /etc/xinetd.d/*
- If inetd.conf, it checks for entries not hashed out.
(All entries should be commented out :)
- If xinetd.d it checks all files in that dir for disable = yes.
checkinittab:
- Check to see if the default runlevel is 5. If it is, give the user a warning.
checkipv4:
- Checks for common forwarding and ignore settings in ipv4.
checkissue:
- checks to make sure that /etc/motd, /etc/issue and /etc/issue.net
do not exist, or if they do, warn the user.
checkkbd:
- checks that ctrlaltdel function is disabled under linux.
- checks for KEYBOARD_DISABLE to be enabled under Solaris.
checklimits:
- performs simple check of limits.conf file
checklogging:
- simple check to see if the auth and authpriv logging facilities are on.
This is mostly for older versions of linux, as I know redhat and others
have this on by default now...
checkmodules:
- checks to see if loadable kernel modules are enabled
checkmd5:
- performs a system-wide md5sum on all regular files.
- only executes if -m switch is used
- output is in lsatmd5.out, previous output in lsatmd5.old
checknet:
- checks what ports the system is listening to.
- (may not check _all_ ports. I have to RTFM on this one)
checknetforward:
- checks that ipv4 forwarding is disabled under linux
- checks that ipforwarding & source routing are disabled under Solaris
- checks that norouter & defaultrouter exist under Solaris
checknetp:
- checks that no interface is in Promiscuous mode
checkopenfiles:
- checks for all open files on the system using lsof (if installed)
checkpasswd:
- checks /etc/passwd for unneeded accounts.
- checks that only root is SUID=0.
checkrcperms:
- checks files in init.d dir to see if they are chmod 700
checkpkgs:
- Checks list of packages (rpms, debs) installed on the system.
- Checks against a list of "should not have" rpms.
- (this list quite possibly needs to be expanded)
checkrc:
- checks /etc/rcn.d or /etc/rc.d/init.d and reports unneeded scripts.
checkrpm: (redhat specific)
- check to see if we are on redhat, and if we are...
- use the built in rpm -Va to verify rpms on the system.
checksecuretty:
-check to see if only tty[0-6] are in /etc/securetty
checkset:
- Checks system for all setuid/setgid files.
- Also checks for block or char files in /dev/ that do not belong.
checkssh:
- check some security features of ssh for instance:
root logins, X11 forwarding and the like.
checkumask:
- checks that the default umask on the system is sensible.
checkwrite:
- Checks system for world writable files.
checkwww:
- check to see if ExecCGIs are enabled.
- check to see who is running httpd/apache.
checkx:
- Checks for some common security measures on X windows
-------------------------------------------------------------------------
Writing modules:
All modules are (thus far) written in C. (hopefully ANSI C)
Looking back on this, perhaps it should have been in Python...
or perl or ADA or LISP or [insert your favorite prog language here]...
All modules (execpt dostuff.c) are called from lsatmain.c
A small description of the module is in lsatheader.h
Parameters:
A module (read function) can be passed (as of now) up
to four parameters. They are:
char release[]: basically the first field of "uname -a" output
char kernel[]: basically the third field of "uname -a" output
const char *const out_file: the file that lsat will output checks to
int verbose: integer flag to indicate we should be verbose
A module (in my mind :) should be an independant entity.
If I were to take a module and stick it in a "main" c function
and pass it whatever parameters listed above it needs it should
function. Properly.
In doing the above I am setting this up to where modules can
be added or deleted without problems. Having a module depend
on the output of another is not my goal or desire. It may
run a little slower for some things like this, but one
can customize it whenever and however they see fit with
relative ease.
Modules should return zero or greater on success and a negative
number on failure. Modules should themselves output error msgs,
not lsatmain.c. (although lsatmain.c will say "Module x failed,
you should have seen errors.", upon receiving a negative number
from a returning module)
Modules should have a small description at the top and _should_
be able to cope with being on different systems (Linux vs
Solaris for instance). Yes I still need to work on mine. :O
The dostuff module is a module (written by nordi (nordi at addcom dot de))
that is used to run shellcode, write to tempfiles, and append headers
and/or the tempfile to the output file. The description at the top
of dostuff is given below... written by Nordi, I quote:
"This is a function that does all the filehandling stuff for the lsat modules
so that you don't have to reinvent the wheel every time you want to do something.
Afterall we have to get rid of, eradicate and stamp out all kinds of redundancies.
As arguments it takes four pointers to strings: tempfile, outfile, shellcode and
header. Header can be NULL, then it simply will not be printed. One of the other
pointers can be NULL as well. In this case refer to the following list:
no NULL pointer default behaviour
create tempfile
run shellcode
append header to outfile
append tempfile to outfile
delete tempfile
outfile == NULL if you want to do keep working with tempfile
create tempfile
run shellcode
tempfile == NULL if you already have a tempfile and want to keep it
run shellcode
shellcode == NULL if you already got a tempfile but now you're finished
append header to outfile
append tempfile to outfile
delete tempfile
Special Case: just print the header to the outfile
tempfile==shellcode==NULL
append header to outfile
Will return 0 on success and negative value on failure." - End Nordi quote.
This has (thus far) made it a lot easier to write modules. In general,
using dostuff.c one can concentrate more on exactly what they want
a module to do and not have to worry about opening files and writing
temp files etal every time one writes a module.
A basic template for a module (IMHO) would be:
int module(release, kernel, distribution, filename, verbose)
{
/* above parameters are optional, depending on module */
/* some internal variable defs here */
/* these should be in all modules */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose > 0)
{
printf("Starting module: module\n");
}
/* do something you want to... */
/* we ALWAYS call the tempfiles lsatn.lsat, */
/* where n is an integer... this is for cleanup */
/* purposes... */
if (verbose > 0)
{
printf(" Generating list of badstuffs\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -name badstuff 2>/dev/null >/tmp/lsat1.lsat";
header = "I am finding the bad stuff man\n";
if ((dostuff(tempfile, filename, shellcode, header)) < 0)
{
/* "but Den, with the Loc-nar we could have returned to earth..." */
perror(" Could not generate list");
return(-1);
}
if (verbose > 0)
{
printf("Finished in module: module...\n");
}
return(0);
}
Some things worth noting are this:
- We always call tempfiles lsatn.lsat where n is an integer.
- We always use verbose > 0, and the first and last verbose
statements have no space before the output. The inner
verbose statements have a space. This makes verbose output pertty.
- We always check the return value of dostuff, and perror if problems.
- We always return 0 on success and something less than 0 on
failure.
There are times when one needs to create a temp file for storage
due to the fact tha the module may be looping through some data
that the shellcode has generated. This can be done and is ok, but
use the following example as a guide to (safely) create a temp file:
int fileval;
if ((fileval = open("/tmp/lsat4.lsat", O_RDWR | O_CREAT, 0600)) < 0)
{
perror("Could not make file w/perms 0600...\n");
perror("Possible link attack while creating/opening file!\n");
exit(-1);
}
One thing to point out is to be careful of open files when
doing this two temp file procedure. If one calls dostuff and
the file was already open, it will puke, hurl and pass out.
I will put some more info in here when I get some time :)
../number9
lsat-0.9.7.1/README 0000644 0001750 0000144 00000013214 11007333550 013007 0 ustar number9 users This is the README file for LSAT (Linux Security Auditing Tool)
NOTE: This is still BETA software and should be treated as such.
--------------------------------------------------------------------------------
Hoempage:
The homepage for lsat is http://usat.sourceforge.net
The backup homepage is http://www.dimlight.org/lsat
The homepage for lsat used to be http://www.dimlight.org/~number9/lsat
--------------------------------------------------------------------------------
About:
Linux Security Auditing Tool (LSAT) is a post install security
auditing tool. It is modular in design, so new features can be added
quickly. It checks inetd entries and scans for unneeded RPM packages.
It is being expanded to work with Linux distributions other than Red Hat,
and checks for kernel versions.
--------------------------------------------------------------------------------
Changes:
See changelog/changelog.html for changes.
--------------------------------------------------------------------------------
Current working systems:
LSAT currently compiles and works under RedHat 5.x, 6.x, 7.x, 8.x, 9.x and
Gentoo linux systems. (tested on RedHat 8,9 and Gentoo 1.4)
It should compile and run under RedHat derivative systems, Debian, and the
x86_64 based systems.
The goal is to have it work under many *NIX systems, including but not
limited to Solaris, Debian, RedHat (and derivatives), FreeBSD etc.
--------------------------------------------------------------------------------
REQUIREMENTS:
LSAT was intended to build with a minimal of fuss, but it does require
one thing that is not installed on some systems (I have heard this
from Suse users in particular). popt. If make fails or complains about
popt, please install the popt-devel package as you need the popt header
files.
Other things that would be nice, but LSAT will run without:
To be clear, the following are OPTIONAL, but are useful anyhows,
and LSAT will use them if you have them to give you more information.
nmap Yes LSAT calls nmap to do that one extra scan of your ip address.
lsof This is not installed by default on many systems. Your distribution
most probably has a package of this ready to be installed.
ip This is on newer redhat boxen, replaces ipconfig, gives more output.
--------------------------------------------------------------------------------
Compilation:
LSAT now has autoconf: building should just be (in the lsat- dir:
./configure
make
If you like you can do a:
make install
after the make. This will place lsat in /usr/local/bin and man pages
in /usr/local/man.
--------------------------------------------------------------------------------
Running:
To run the program:
./lsat [OPTIONS]
Options:
-d diff current and old md5, output in lsatmd5.diff
-f Force a specific distribution test.
Distro names are:
redhat
debian
mandrake
solaris
gentoo
macosx
If no -f option, lsat will guess. If lsat can
not guess the distribution, default is redhat.
-a Show this (advanced) help page
-o Output file name -- default is lsat.out
-r Check rpm integrity -- redhat or mandrake only
-s Silent mode
-v Verbose output
-w Output file in html format
-x eXclude module(s) in filelist from checks...
modules listed in filename will be excluded
from checks. Valid module names are the module
names themselves without the check.
(e.g. set not checkset)
NOTE: The valid names for the -x (exclude) option are the following:
pkgs, rpm, inetd, inittab, logging, set, write, dotfiles, passwd, files,
umask, ftpusers, rc, kbd, limits, ssh, open, issue, www, md5, modules,
securetty, perms, net, forward, promisc, cfg, startx.
These should be in a text file in the working directory where lsat
is called from, and can be comma, whitespace/tab or newline delimited.
Any number of options can be specified on the command line.
This may take some time on older systems as it (at some point in time) does
an rpm -qa while checking installed packages. It also checks all SETUID and
SETGID files on the system. (On my Sun sparc20 running Mandrake at 80mhz, it
can take quite a while)
The output is in the file in the directory where lsatmain was run and
should be called lsat.out. If you have previously run lsatmain then the
previous output will be moved to lsat.old. This is so that you may check
your imcremental security improvements to the system.
--------------------------------------------------------------------------------
Modules:
Please see modules.html for info on modules or
writing modules.
Plain text version is README.modules
--------------------------------------------------------------------------------
License:
This software is licensed under the GNU/GPL, please see http://www.gnu.org
for more detals.
--------------------------------------------------------------------------------
Contact:
I am number9. Sometimes known as Triode. My personal page is at
http://www.dimlight.org/number9
You may reach me at
triode@users.sourceforge.net or number9@dimlight.org if its up :)
--------------------------------------------------------------------------------
lsat-0.9.7.1/README.checkrpm 0000644 0001750 0000144 00000003602 11007333550 014602 0 ustar number9 users
LSAT should check for what distro it is running on and some
modules will behave differently based on this (checkpkgs for
instance), however, there is a package (checkrpm) which is
redhat specific and is also enabled via a switch to LSAT
(lsat -r). Some notes are given below...
1) lsat -r will run the module checkrpm, which performs
a basic signature check on packages.
NOTE: this is not the best way to check integrity of
packages, since if rpm itself was hacked the output can
be falsified. HOWEVER, if rpm is known good (say, by checking
the md5sum) it can prove useful.
2) If lsat -r is run it will take some considerable time
to perform this extra check. (on my 30Mhz system it increased
LSAT run time by 5min)
3) Please note (IMPORTANT): don't freak if lsat -r reports
all kinds of modifications to packages if your system is not
a fresh install. You probably modified some stuff already,
have you not? For instance, commenting out all lines in
/etc/inetd.conf (and restarting it) is a "good thing" but
doing so will make checkrpm report that this has been modified.
It is a good idea to run this module, but please go through the
output and think about what _you_ have changed to the system
before concluding that you have been 0wn3d.
This will also be printed in the output, but it is here for
completeness also... this is what the output symbols mean from
checkrpm:
M Mode differs (includes permissions and file type)
5 MD5 sum differs
D Device major/minor number mis-match
L readLink(2) path mis-match
U User ownership differs
G Group ownership differs
T mTime differs
Please go through the output and check each one. Again, unless you
_just_ did a fresh install, some files will be modified from
package installations and modifications to the system that you
performed in the past. Think about what you or a package
has modified before concluding the machine has been hax0r3d.
lsat-0.9.7.1/README.exclude 0000644 0001750 0000144 00000003630 11007333550 014440 0 ustar number9 users
This is the readme file for the -x option. The -x option in lsat
is there to exclude modules from being run while running lsat.
The command line is:
lsat -x somefilename.txt
somefilename.txt should be a comma, tab, whitespace or newline delimited
file which contains the name of the module(s) that you do NOT wish to run.
See the sample_exclude.txt file for an example.
A brief summary of the modules are below, as well as the correct
name that should be used in the aforementioned exclusion list:
pkgs - checks which pkgs are installed (rpm and pkg systems only)
rpm - performs rpm integrity check (rpm systems only)
inetd - checks for problems in inetd file
inittab - checks for sane values in inittab
logging - checks for correct logging (are we doing enough?)
set - checks SUID/GUID of files
write - checks for world read/writeable files
dotfiles- finds and reports all dotfiles (.rhosts for instance)
passwd - checks for baddies in passwd file
files - performs file checks for insecurities on system
umask - checks for a sensible umask on the system
ftpusers- checks for valid /etc/ftpusers and who is in that file
rc - checks rc scripts
kbd - checks for proper perms etc on keyboard
limits - chceks for good limits on files, etc systemwide
ssh - checks version and security problems in ssh config
open - checks open files
issue - checks systemwide issue
www - checks web server for common errors/SSIs
md5 - perform md5sum on all files (note this is off by default)
modules - check to see if loadable module support is enabled in kernel
securetty - check for sensible values in tty settings
perms - see if all perms on files/dirs are ok
net - check local network connections
forward - check to see if network forwarding is enabled
promisc - check to see if any network interface is in promisc mode
cfg - check all services in all runlevls and print them
For more info on lsat options do
lsat -a
for advanced help.
lsat-0.9.7.1/README.modules 0000644 0001750 0000144 00000022612 11007333550 014460 0 ustar number9 users This is the readme for modules.
It contains a list of the modules in the lsat
package and what they check for.
It also has a premier at the end for creating
modules.
----------------------------------------------------------------------------
Modules in the LSAT package:
checkbp:
- Checks for boot loader password.
- Currently only for grub and lilo.
checkcfg:
- This module is performed last
- RedHat specific. Just prints out /sbin/chkconfig --list so that
the user can perform a visual inspection.
checkdotfiles:
- Looks for .forward, .exrc, .rhosts and .netrc files on the system.
- Does not span "other" filesystems.
checkfiles:
- checks that /tmp and /var/tmp have sitcky bit set
- checks utmp, wtmp, motd, mtab for chmod 644.
- checks /usr, /var dirs/files for root ownership.
checkftpusers:
- checks that all accounts in /etc/passwd are in /etc/ftpusers.
checkhostsfiles:
- Reads /etc/hosts.allow and /etc/hosts.deny files
- Checkes deny for ALL:ALL statement.
- Checks allow for any ALL statements.
checkinetd:
- Checks either /etc/inetd.conf or /etc/xinetd.d/*
- If inetd.conf, it checks for entries not hashed out.
(All entries should be commented out :)
- If xinetd.d it checks all files in that dir for disable = yes.
checkinittab:
- Checks to see if default runlevel is 5. If it is, give the user a warning.
checkipv4:
- Checks to see that common forwarding and ignoring are off/on in ipv4.
checkissue:
- checks to make sure that /etc/motd, /etc/issue and /etc/issue.net
do not exist, or if they do, warn the user.
checkkbd:
- checks that ctrlaltdel function is disabled under linux.
- checks for KEYBOARD_DISABLE to be enabled under Solaris.
checklimits:
- performs simple check of limits.conf file
checklogging:
- performs a simple check to see if auth and authpriv logging facilities are on.
This is really for older linux versions/distros as I know that RedHat and
others now have this on by default.
checkmd5:
- performs md5sum on all regular files on the system and saves in lsatmd5.out
- Only runs when -m switch is used
- if run more than once, old output is copied to lsatmd5.old
checkmodule:
- checks to see if loadable kernel modules are enabled
checknet:
- checks what ports the system is listening to.
- (may not check _all_ ports. I have to RTFM on this one)
checknetforward:
- checks that ipv4 forwarding is disabled under linux
- checks that ipforwarding & source routing are disabled under Solaris
- checks that norouter & defaultrouter exist under Solaris
checknetp:
- checks to see if any interface is in promiscuous mode
checkopenfiles:
- checks all open files on the system using lsof (if installed)
checkpasswd:
- checks /etc/passwd for unneeded accounts.
- checks that only root is SUID=0.
checkpkgs:
- Checks list of packages (rpms, debs) installed on the system.
- Checks against a list of "should not have" rpms.
- (this list quite possibly needs to be expanded)
checkrc:
- checks /etc/rcn.d or /etc/rc.d/init.d and reports unneeded scripts.
checkrpm: (redhat specific)
- check to see if we are on redhat, and if we are...
- use the built in rpm -Va to verify rpms on the system.
checksecuretty:
- check to see if ttys other than tty[1-6] are in /etc/securetty
checkset:
- Checks system for all setuid/setgid files.
- Also checks for block or char files in /dev/ that do not belong.
checkssh:
- check some security features of ssh for instance:
root logins, X11 forwarding and the like.
checkumask:
- checks that the default umask on the system is sensible.
checkwrite:
- Checks system for world writable files.
checkwww:
- check to see if ExecCGIs are enabled.
- check to see who is running httpd/apache.
checkx:
- checks for sommon security settings in the X window setup.
checklistening:
- checks for applications listening. This is an "extra" test
used in conjunction with ifconfig / ip testing.
-------------------------------------------------------------------------
Writing modules:
All modules are (thus far) written in C. (hopefully ANSI C)
Looking back on this, perhaps it should have been in Python...
or perl or ADA or LISP or [insert your favorite prog language here]...
All modules (execpt dostuff.c) are called from lsatmain.c
A small description of the module is in lsatheader.h
Parameters:
A module (read function) can be passed (as of now) up
to four parameters. They are:
char release[]: basically the first field of "uname -a" output
char kernel[]: basically the third field of "uname -a" output
const char *const out_file: the file that lsat will output checks to
int verbose: integer flag to indicate we should be verbose
A module (in my mind :) should be an independant entity.
If I were to take a module and stick it in a "main" c function
and pass it whatever parameters listed above it needs it should
function. Properly.
In doing the above I am setting this up to where modules can
be added or deleted without problems. Having a module depend
on the output of another is not my goal or desire. It may
run a little slower for some things like this, but one
can customize it whenever and however they see fit with
relative ease.
Modules should return zero or greater on success and a negative
number on failure. Modules should themselves output error msgs,
not lsatmain.c. (although lsatmain.c will say "Module x failed,
you should have seen errors.", upon receiving a negative number
from a returning module)
Modules should have a small description at the top and _should_
be able to cope with being on different systems (Linux vs
Solaris for instance). Yes I still need to work on mine. :O
The dostuff module is a module (written by nordi (nordi at addcom dot de))
that is used to run shellcode, write to tempfiles, and append headers
and/or the tempfile to the output file. The description at the top
of dostuff is given below... written by Nordi, I quote:
"This is a function that does all the filehandling stuff for the lsat modules
so that you don't have to reinvent the wheel every time you want to do something.
Afterall we have to get rid of, eradicate and stamp out all kinds of redundancies.
As arguments it takes four pointers to strings: tempfile, outfile, shellcode and
header. Header can be NULL, then it simply will not be printed. One of the other
pointers can be NULL as well. In this case refer to the following list:
no NULL pointer default behaviour
create tempfile
run shellcode
append header to outfile
append tempfile to outfile
delete tempfile
outfile == NULL if you want to do keep working with tempfile
create tempfile
run shellcode
tempfile == NULL if you already have a tempfile and want to keep it
run shellcode
shellcode == NULL if you already got a tempfile but now you're finished
append header to outfile
append tempfile to outfile
delete tempfile
Special Case: just print the header to the outfile
tempfile==shellcode==NULL
append header to outfile
Will return 0 on success and negative value on failure." - End Nordi quote.
This has (thus far) made it a lot easier to write modules. In general,
using dostuff.c one can concentrate more on exactly what they want
a module to do and not have to worry about opening files and writing
temp files etal every time one writes a module.
A basic template for a module (IMHO) would be:
int module(release, kernel, distribution, filename, verbose)
{
/* above parameters are optional, depending on module */
/* some internal variable defs here */
/* these should be in all modules */
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose > 0)
{
printf("Starting module: module\n");
}
/* do something you want to... */
/* we ALWAYS call the tempfiles lsatn.lsat, */
/* where n is an integer... this is for cleanup */
/* purposes... */
if (verbose > 0)
{
printf(" Generating list of badstuffs\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode = "find / -name badstuff 2>/dev/null >/tmp/lsat1.lsat";
header = "I am finding the bad stuff man\n";
if ((dostuff(tempfile, filename, shellcode, header)) < 0)
{
/* "but Den, with the Loc-nar we could have returned to earth..." */
perror(" Could not generate list");
return(-1);
}
if (verbose > 0)
{
printf("Finished in module: module...\n");
}
return(0);
}
Some things worth noting are this:
- We always call tempfiles lsatn.lsat where n is an integer.
- We always use verbose > 0, and the first and last verbose
statements have no space before the output. The inner
verbose statements have a space. This makes verbose output pertty.
- We always check the return value of dostuff, and perror if problems.
- We always return 0 on success and something less than 0 on
failure.
There are times when one needs to create a temp file for storage
due to the fact tha the module may be looping through some data
that the shellcode has generated. This can be done and is ok, but
use the following example as a guide to (safely) create a temp file:
int fileval;
if ((fileval = open("/tmp/lsat4.lsat", O_RDWR | O_CREAT, 0600)) < 0)
{
perror("Could not make file w/perms 0600...\n");
perror("Possible link attack while creating/opening file!\n");
exit(-1);
}
One thing to point out is to be careful of open files when
doing this two temp file procedure. If one calls dostuff and
the file was already open, it will puke, hurl and pass out.
I will put some more info in here when I get some time :)
../number9
lsat-0.9.7.1/sample_exclude.txt 0000644 0001750 0000144 00000000031 11007333550 015653 0 ustar number9 users write pkgs files md5 set
lsat-0.9.7.1/securitylinks.txt 0000644 0001750 0000144 00000003742 11007333550 015605 0 ustar number9 users Security checklist/howto:
CERT UNIX security checklist:
http://www.cert.org/tech_tips/usc20_full.html
Linux security checklist:
http://www.wfu.edu/~rbhm/linux.html
SANS institute securing solaris paper:
http://rr.sans.org/unix/sec_solaris.php
Linux security:
http://www.linuxsecurity.com
Linux security HOWTO:
http://www.tldp.org/HOWTO/Security-HOWTO.html
Securing UNIX, part 1 with links to 2:
http://www.boran.com/security/unix1.html
Matt's UNIX security page (tons of links, not updated recently)
http://www.deter.com/unix/
NewOrder. Goes without saying.
http://neworder.box.sk/
Insecure. Why hasn't this been in here from the start?
http://www.insecure.org
Check for rootkits...
http://www.chkrootkit.org
General documentation:
The Linux documentation project:
http://www.tldp.org/
Routing and firewall docs:
Linux advanced routing and traffic control HOWTO:
http://lartc.org/HOWTO//cvs/2.4routing/2.4routing-howto.html
Linux firewall and proxy HOWTO:
http://www.tldp.org/HOWTO/Firewall-HOWTO.html
Linux rootkit checker:
http://www.chkrootkit.org/
www, CGI and scripting:
Small faq on cgis:
http://hoohoo.ncsa.uiuc.edu/cgi/security.html
The WWW security faq:
http://www.inet.co.th/security/www-security-faq.html#contents
User and system accounts:
See the first link at the top, section 5.
Also, some of the sans links have nice explinations of accounts.
Live checks:
Tripwire:
http://www.tripwire.org
aide:
http://www.cs.tut.fi/~rammer/aide.html
afick:
http://afick.sourceforge.net
Hash functions:
The MD5 specification, RFC 1321, is available at
http://www.ietf.org/rfc/rfc1321.txt
The SHA-1 specification, RFC 3174, is available at
http://www.faqs.org/rfcs/rfc3174.html
The SHA-256 specification, FIPS 180-2, is available at
http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf
The Tiger specification is available at
http://www.cs.technion.ac.il/~biham/Reports/Tiger/
The Whirlpool specification is available at
http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html
lsat-0.9.7.1/lsat.out 0000600 0001750 0000144 00000354172 11010400563 013617 0 ustar number9 users
****************************************
Entries below shall be services in xinetd.d that
are not disabled.
Please verify that you do not want these disabled.
If nothing is listed below, all services in xinetd.d are disabled.
****************************************
Lines found in hosts.allow
Make sure you wish to allow the following:
****************************************
Did not find ALL:ALL in hosts.deny.
Lines found in hosts.deny:
****************************************
default init level set to 5.
Unless there is a reason to run a GUI full time on this system,
consider setting to runlevel 3.
****************************************
Consider placing: auth.* /var/log/secure
in your /etc/syslog.conf file.
****************************************
Consider placing: authpriv.* /var/log/secure
in your /etc/syslog.conf file.
****************************************
The last 100 (or less) failed login attempts on the system
****************************************
This is a list of .exrc files found
****************************************
This is a list of .forward files found on the system:
****************************************
This is a list of .rhosts files found on the system:
****************************************
This is a list of .netrc files found on the system
****************************************
This is a list of dotfiles found on the system
****************************************
Please consider removing these system accounts.
Check to see if you need them for your system applications before removing.
Also, consult the securitylinks.txt file for more information.
lp
sync
news
uucp
****************************************
The following accounts are SUID 0 in /etc/passwd.
Remove if needed.
****************************************
Remove the following entries (if any) from the
respective passwd/group file(s)
****************************************
The following accounts have no/empty passwords
****************************************
Output of pwck, note non existent directories, etc
****************************************
Output of grpck, note groups it think should be deleted.
****************************************
Checking default umask on system:
Default umask should be 022, 027 or 077. 002 is ok for RedHat.
Here are the filenames, and the umask number
found in each. Please read through the file and ensure that is what you want.
/etc/bashrc: 002
/etc/bashrc: 022
/etc/csh.cshrc: 002
/etc/csh.cshrc: 022
****************************************
While checking ftpusers...
/etc/ftpusers does not exist or is not readable.
This is ok if you are not root, not
running ftp or your ftp daemon
does not use /etc/ftpusers.
Please triple check your configuration
and ensure you do not need /etc/ftpusers.
*****************************************
****************************************
Checking rc startup scripts:
These services were found in /etc/rc.d/init.d
Consider removing or disabling unneeded services.
****************************************
****************************************
Default limits hashed out in limits.conf.
Check /etc/security/limits.conf for the default entry.
Make sure to set hard and soft limits for default "*",
or for individual users.
****************************************
Output from ulimit, check to see if these are reasonable limits.
Resource limits can help prevent DOS attacks,
read up on them if you need to.
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 40960
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 40960
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
****************************************
sshd config file entries
Make sure these are commented out.
****************************************
Protcol 2 not found in sshd config, or you are doing 1,2.
Change to protcol 2 only.
****************************************
lsof is not installed on this system,
or it is not in the path,
or I just can not find it.
checkopenfiles was not run.
****************************************
/etc/issue exists. Make sure it does not have any
system specific information in it.
****************************************
/etc/issue.net exists. Make sure it does not have any
system specific information in it.
****************************************
/etc/motd exists. Make sure it does not have any
system specific information in it.
****************************************
/etc/banners dir not found.
Check securitylinks.txt for more info.
****************************************
No ExecCGIs found. Good.
****************************************
These are the kernel modules that are loaded on the system
as given by the output of modprobe -c -l
Check to see if they are really needed.
/lib/modules/2.6.24.3-50.fc8/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/arch/x86/kernel/microcode.ko
/lib/modules/2.6.24.3-50.fc8/kernel/arch/x86/crypto/aes-x86_64.ko
/lib/modules/2.6.24.3-50.fc8/kernel/arch/x86/crypto/twofish-x86_64.ko
/lib/modules/2.6.24.3-50.fc8/kernel/arch/x86/oprofile/oprofile.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ax25/ax25.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/xfrm4_mode_transport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/xfrm4_mode_beet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_yeah.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipcomp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_illinois.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_scalable.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/inet_diag.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_vegas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tunnel4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/xfrm4_tunnel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_lp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/esp4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_htcp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_veno.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ah4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_bic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_highspeed.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_lc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_dh.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_rr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_sed.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_nq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_diag.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_westwood.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_h323.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_ULOG.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_ah.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_irc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_owner.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/iptable_filter.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_ecn.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_sip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_LOG.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/arpt_mangle.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/arptable_filter.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_ECN.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ip_queue.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ip_tables.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_TOS.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/iptable_nat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_ttl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_addrtype.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_recent.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_iprange.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_SAME.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/iptable_mangle.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_TTL.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_tos.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/arp_tables.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/iptable_raw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/netfilter/ipt_REJECT.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ipip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/ip_gre.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/tcp_hybla.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv4/xfrm4_mode_tunnel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/rfkill/rfkill.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/rfkill/rfkill-input.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/core/pktgen.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/rose/rose.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/8021q/8021q.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/key/af_key.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/wireless/cfg80211.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/ccids/dccp_ccid3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/ccids/dccp_ccid2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/ccids/lib/dccp_tfrc_lib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/dccp_ipv4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/dccp_ipv6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/dccp_probe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/dccp_diag.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/dccp/dccp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/802/p8023.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_fw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_rsvp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_red.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/act_nat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_tbf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_teql.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_tcindex.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_rsvp6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_dsmark.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_hfsc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_basic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_gred.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/em_text.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/act_ipt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_netem.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_route.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/em_meta.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/act_pedit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/act_gact.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/act_simple.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/em_u32.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/em_cmp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/cls_u32.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_sfq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_cbq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_atm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/act_mirred.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/em_nbyte.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_prio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_ingress.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sched/sch_htb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/decnet/decnet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/bluetooth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/hidp/hidp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/rfcomm/rfcomm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/cmtp/cmtp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/sco.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/l2cap.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bluetooth/bnep/bnep.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/xfrm6_mode_tunnel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/tunnel6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/mip6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/xfrm6_mode_beet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/esp6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/ip6_tunnel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/ipv6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/xfrm6_tunnel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/xfrm6_mode_ro.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/ah6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/sit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/xfrm6_mode_transport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6_tables.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6table_mangle.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_hbh.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6table_filter.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_HL.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_hl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_mh.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6table_raw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_LOG.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_ah.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_rt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6_queue.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_eui64.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_frag.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/netfilter/ip6t_owner.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipv6/ipcomp6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ipx/ipx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ieee80211/ieee80211_crypt_wep.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ieee80211/ieee80211.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ieee80211/ieee80211_crypt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ieee80211/ieee80211_crypt_tkip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/ieee80211/ieee80211_crypt_ccmp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/wanrouter/wanrouter.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/mac80211/mac80211.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/appletalk/appletalk.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/atm/pppoatm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/atm/lec.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/atm/atm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/atm/br2684.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/atm/clip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sunrpc/xprtrdma/xprtrdma.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sunrpc/auth_gss/rpcsec_gss_spkm3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sunrpc/sunrpc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/bridge.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_ulog.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_limit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_snat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_redirect.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_arpreply.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_stp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_802_3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_ip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebtable_nat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebtable_filter.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_pkttype.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_dnat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_arp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebtable_broute.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_among.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_vlan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_log.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_mark.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebtables.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/bridge/netfilter/ebt_mark_m.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/tipc/tipc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/irda/irnet/irnet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/irda/ircomm/ircomm-tty.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/irda/ircomm/ircomm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/irda/irda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/irda/irlan/irlan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_TRACE.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_length.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_sane.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_quota.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_dscp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_dccp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_sctp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/x_tables.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_u32.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_pptp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_comment.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_TCPMSS.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_conntrack.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_state.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_irc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_CLASSIFY.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_NFQUEUE.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_CONNMARK.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_limit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nfnetlink.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_connmark.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_multiport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_h323.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_sip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nfnetlink_queue.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_tcpudp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_NOTRACK.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_DSCP.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_connbytes.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_pkttype.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_mac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_esp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_ftp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_realm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_connlimit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_tcpmss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_MARK.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_NFLOG.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_time.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_SECMARK.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_mark.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_amanda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_statistic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_string.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nfnetlink_log.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_helper.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_policy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_hashlimit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_netlink.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_physdev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_proto_gre.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_tftp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netfilter/xt_CONNSECMARK.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/netrom/netrom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/9p/9pnet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/9p/9pnet_fd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/net/sctp/sctp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/uio/uio_cif.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/uio/uio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/dc395x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/initio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/ppa.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_transport_fc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_transport_srp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/aic7xxx/aic79xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/aic7xxx_old.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_transport_sas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/atp870u.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/arcmsr/arcmsr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_mod.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/ips.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/sg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/sr_mod.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/megaraid/megaraid_mm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/megaraid/megaraid_mbox.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/megaraid/megaraid_sas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/raid_class.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/libsrp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/lpfc/lpfc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_transport_iscsi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/aacraid/aacraid.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/3w-9xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/iscsi_tcp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/libiscsi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/stex.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/qlogicfas408.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_tgt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/a100u2w.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_wait_scan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/osst.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/megaraid.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/libsas/libsas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/qla1280.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/ch.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/tmscsim.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/aic94xx/aic94xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/gdth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/hptiop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/scsi_transport_spi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/3w-xxxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/BusLogic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/imm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/st.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/scsi/sd_mod.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ssb/ssb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mfd/sm501.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/auxdisplay/ks0108.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/auxdisplay/cfag12864bfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/auxdisplay/cfag12864b.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/w83877f_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/w83977f_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/softdog.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/i6300esb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/iTCO_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/wdt_pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/machzwd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/it8712f_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/ibmasr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/pcwd_pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/w83627hf_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/alim1535_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/alim7101_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/iTCO_vendor_support.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/pcwd_usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/watchdog/w83697hf_wdt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/i2o/i2o_proc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/i2o/i2o_bus.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/i2o/i2o_config.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/i2o/i2o_block.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/i2o/i2o_scsi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/i2o/i2o_core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptfc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptlan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptctl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptsas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptscsih.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptspi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/message/fusion/mptbase.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/i5k_amb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/vt8231.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/ad7418.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm90.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/gl520sm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adm1029.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm85.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm92.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm80.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/ds1621.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/thmc50.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm63.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/max1619.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/sis5595.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/abituguru3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83l785ts.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83627ehf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/applesmc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adm1026.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/hwmon-vid.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/f75375s.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm77.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/k8temp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/abituguru.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/gl518sm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/vt1211.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/coretemp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm83.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/fscpos.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/it87.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/via686a.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adm9240.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83793.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83791d.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/fscher.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm87.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/asb100.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/pc87360.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/ibmpex.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/hwmon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/f71805f.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/dme1737.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adt7470.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adm1031.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm93.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adm1025.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83792d.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83627hf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm78.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/atxp1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/smsc47m1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/smsc47m192.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/w83781d.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/lm75.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/pc87427.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/f71882fg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/hdaps.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/max6650.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/smsc47b397.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/adm1021.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/hwmon/fschmd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/e1000e/e1000e.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sungem.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tg3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sc92031.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/bnx2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/atl1/atl1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ifb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/amd8111e.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ppp_synctty.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/netxen/netxen_nic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/starfire.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/e100.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sky2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pppol2tp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sis190.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sunhme.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/typhoon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/acenic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ixgb/ixgb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tun.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ne2k-pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/qla3xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sungem_phy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/marvell.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/smsc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/libphy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/cicada.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/mdio-bitbang.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/icplus.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/fixed.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/qsemi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/vitesse.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/lxt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/davicom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/phy/broadcom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/fealnx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ixgbe/ixgbe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sundance.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/pegasus.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/net1080.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/gl620a.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/dm9601.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/rndis_host.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/zaurus.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/usbnet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/catc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/plusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/asix.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/kaweth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/mcs7830.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/cdc_ether.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/cdc_subset.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/usb/rtl8150.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pppoe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/epic100.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/dummy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/airo.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rndis_wlan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/airo_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/ath5k/ath5k.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/hermes.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/atmel_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/netwave_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/b43/b43.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/orinoco_plx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/p54pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/wavelan_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/libertas/usb8xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/libertas/libertas_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/libertas/libertas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/ipw2200.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/atmel_pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/zd1201.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/orinoco_pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/orinoco_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/hostap/hostap_plx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/hostap/hostap_pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/hostap/hostap_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/hostap/hostap.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/ipw2100.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rtl8187.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/iwlwifi/iwl4965.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/p54common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/adm8211.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rtl8180.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/p54usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/orinoco_tmd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/spectrum_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/wl3501_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/atmel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/orinoco.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/at76_usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/prism54/prism54.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/wireless/orinoco_nortel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/natsemi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/chelsio/cxgb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/bonding/bonding.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sis900.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/niu.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/netconsole.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/veth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/e1000/e1000.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ns83820.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/mii.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/atp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/tulip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/de4x5.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/winbond-840.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/xircom_cb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/uli526x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/de2104x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tulip/dmfe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/forcedeth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ppp_mppe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ipg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/r8169.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/myri10ge/myri10ge.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/via-rhine.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ppp_deflate.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ppp_async.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/plip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/slip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/appletalk/ipddp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/cxgb3/cxgb3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tokenring/olympic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tokenring/3c359.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/skge.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamachi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/de620.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/slhc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/sb1000.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/axnet_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/3c589_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/3c574_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/nmclan_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/smc91c92_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcmcia/pcnet_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/ppp_generic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/dl2k.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/via-velocity.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/baycom_par.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/yam.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/baycom_ser_fdx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/baycom_ser_hdx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/mkiss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/hdlcdrv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/bpqether.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/hamradio/6pack.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/8390.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/tehuti.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pcnet32.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/act200l-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/kingsun-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/toim3232-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/tekram-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/smsc-ircc2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/mcp2120-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/ali-ircc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/sir-dev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/irda-usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/esi-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/vlsi_ir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/stir4200.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/ks959-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/via-ircc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/ma600-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/w83977af_ir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/girbil-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/actisys-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/irtty-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/mcs7780.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/nsc-ircc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/litelink-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/ksdazzle-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/irda/old_belkin-sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/macvlan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/8139too.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/pppox.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/b44.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/atl2/atl2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/mlx4/mlx4_core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/3c59x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/cassini.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/skfp/skfp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/8139cp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/yellowfin.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/s2io.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/de600.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/net/eql.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/tifm_core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/msi-laptop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/tifm_7xx1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/sony-laptop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/eeprom_93cx6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/ioc4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/eeepc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/fujitsu-laptop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/thinkpad_acpi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/misc/asus-laptop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/edac/edac_core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/edac/e752x_edac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/edac/i82975x_edac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/edac/i5000_edac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/rio500.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/emi62.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/phidget.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/trancevibrator.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/usbled.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/legousbtower.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/phidgetmotorcontrol.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/auerswald.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/iowarrior.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/appledisplay.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/uss720.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/emi26.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/berry_charge.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/phidgetkit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/ftdi-elan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/adutux.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/phidgetservo.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/idmouse.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/ldusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/misc/usblcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/host/ohci-hcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/host/ehci-hcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/host/u132-hcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/host/sl811-hcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/host/uhci-hcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/host/isp116x-hcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/class/usblp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/class/cdc-acm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/storage/usb-storage.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/atm/speedtch.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/atm/usbatm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/atm/ueagle-atm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/atm/cxacru.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/atm/xusbatm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/kl5kusb105.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/oti6858.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/navman.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/cyberjack.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/digi_acceleport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/pl2303.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/option.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ark3116.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/usb_debug.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/keyspan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/funsoft.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/belkin_sa.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/aircable.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/whiteheat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/keyspan_pda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ir-usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ipw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/mct_u232.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/airprime.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ftdi_sio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/usbserial.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/hp4x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/io_ti.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/kobil_sct.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/safe_serial.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/mos7840.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ipaq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/sierra.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/omninet.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/mos7720.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/cp2101.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/garmin_gps.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/cypress_m8.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ch341.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/io_edgeport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/visor.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/serial/empeg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/image/microtek.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/usb/image/mdc800.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/sbshc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/sbs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/toshiba_acpi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/button.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/ac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/bay.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/battery.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/acpi/video.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/kvm/kvm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/kvm/kvm-intel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/kvm/kvm-amd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/core/mmc_core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/host/ricoh_mmc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/host/sdhci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/host/tifm_sd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/host/wbsd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/card/mmc_block.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mmc/card/sdio_uart.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/cfi_cmdset_0020.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/gen_probe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/map_ram.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/map_rom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/map_absent.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/cfi_util.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/cfi_cmdset_0001.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/jedec_probe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/cfi_probe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/cfi_cmdset_0002.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/chips/chipreg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtdchar.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/redboot.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nftl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtdoops.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nand/diskonchip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nand/nand.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nand/alauda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nand/nand_ecc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nand/nandsim.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/nand/nand_ids.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/ssfdc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/ftl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/rfd_ftl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtdblock.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/ubi/ubi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/devices/block2mtd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/devices/mtdram.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/devices/pmc551.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtdblock_ro.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtd_blkdevs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/scb2_flash.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/ck804xrom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/map_funcs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/esb2rom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/ts5500_flash.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/netsc520.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/maps/sc520cdp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/mtdconcat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/mtd/inftl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/cdrom/cdrom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/dtl1_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/hci_usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/bt3c_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/bcm203x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/btsdio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/btuart_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/bpa10x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/bluecard_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/bfusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/hci_uart.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/bluetooth/hci_vhci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/mouse/vsxxxaa.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/mouse/appletouch.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/mouse/sermouse.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_igorplugusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_sir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_pvr150.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_ttusbir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_cmdir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_imon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_atiusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_bt829.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_i2c.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_it87.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_serial.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_streamzap.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_dev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_mceusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/lirc_mceusb2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/lirc/commandir.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/ati_remote2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/keyspan_remote.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/pcspkr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/uinput.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/atlas_btns.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/ati_remote.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/yealink.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/misc/powermate.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joydev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/gamecon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/xpad.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/analog.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/magellan.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/joydump.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/spaceorb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/interact.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/stinger.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/grip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/spaceball.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/tmdc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/sidewinder.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/iforce/iforce.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/gf2k.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/adi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/turbografx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/cobra.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/db9.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/guillemot.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/warrior.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/a3d.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/twidjoy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/joystick/grip_mp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/tablet/aiptek.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/tablet/gtco.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/tablet/acecad.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/tablet/kbtab.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/tablet/wacom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/gameport/fm801-gp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/gameport/gameport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/gameport/emu10k1-gp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/gameport/ns558.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/gameport/lightning.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/ucb1400_ts.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/elo.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/penmount.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/touchright.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/usbtouchscreen.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/fujitsu_ts.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/mtouch.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/touchwin.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/gunze.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/touchscreen/mk712.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/serio/serio_raw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/input/input-polldev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/dma/ioatdma.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-hp-sw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-snapshot.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-multipath.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-emc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-mirror.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/linear.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/raid10.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/multipath.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-mod.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-zero.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/raid0.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/raid1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/raid456.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/faulty.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-round-robin.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-rdac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/md/dm-crypt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_uverbs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/iw_cm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/rdma_cm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_ucm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_mad.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_cm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_addr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_sa.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/rdma_ucm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/core/ib_umad.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/hw/mthca/ib_mthca.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/hw/ipath/ib_ipath.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/hw/cxgb3/iw_cxgb3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/hw/amso1100/iw_c2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/ulp/iser/ib_iser.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/ulp/srp/ib_srp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/infiniband/ulp/ipoib/ib_ipoib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/max6875.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/eeprom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/pca9539.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/ds1337.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/ds1374.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/pcf8591.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/pcf8574.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/chips/tsl2550.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/i2c-dev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/i2c-core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/algos/i2c-algo-pcf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/algos/i2c-algo-pca.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/algos/i2c-algo-bit.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-nforce2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-via.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-sis96x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-parport-light.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-voodoo3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-prosavage.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-amd756.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-i801.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-parport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-viapro.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-amd8111.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-simtec.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-savage4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/i2c/busses/i2c-stub.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/output.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/cirrusfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/svgalib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/fb_ddc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/sstfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/kyro/kyrofb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/fb_sys_fops.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/sysimgblt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/syscopyarea.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/sm501fb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_Ti3026.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_base.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_maven.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/i2c-matroxfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_DAC1064.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_accel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_misc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_crtc2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/g450_pll.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/matrox/matroxfb_g450.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/display/display.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/backlight/progear_bl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/backlight/lcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/neofb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/vga16fb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/intelfb/intelfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/macmodes.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/aty/aty128fb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/aty/atyfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/aty/radeonfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/s3fb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/tdfxfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/sysfillrect.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/savage/savagefb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/riva/rivafb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/tridentfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/vgastate.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/video/nvidia/nvidiafb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/parport/parport.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/parport/parport_pc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/parport/parport_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/parport/parport_serial.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/eni.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/he.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/suni.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/ambassador.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/atmtcp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/idt77252.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/firestream.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/lanai.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/atm/horizon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/leds/ledtrig-timer.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/leds/ledtrig-heartbeat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/serial/jsm/jsm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/serial/serial_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pcmcia/pd6729.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pcmcia/i82092.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/cinergyT2/cinergyT2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/pluto2/pluto2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9005.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-ttusb2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-vp702x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-a800.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-vp7045.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-m920x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-gp8psk.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dtt200u.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dibusb-mc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-cxusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-digitv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-umt-010.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dibusb-mb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-au6610.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-gl861.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-opera.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dib0700.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb-nova-t-usb2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/dvb-usb/dvb-usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/dvb-ttpci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/budget-patch.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/budget.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/budget-av.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/budget-core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/budget-ci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttpci/ttpci-eeprom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttusb-dec/ttusbdecfe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/ttusb-dec/ttusb_dec.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/b2c2/b2c2-flexcop-pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/b2c2/b2c2-flexcop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/b2c2/b2c2-flexcop-usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/bt8xx/dst.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/bt8xx/dvb-bt8xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/bt8xx/dst_ca.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/bt8xx/bt878.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/sp8870.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/cx22700.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda8083.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/ves1820.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dib0070.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/lgdt330x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/mt2131.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/stv0297.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/nxt200x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/l64781.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/nxt6000.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/zl10353.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda1004x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/qt1010.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dibx000_common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/bcm3510.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dvb-pll.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/isl6421.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/sp887x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/cx24123.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda827x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/ves1x93.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda10023.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dib3000mb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda10086.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/mt312.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/s5h1409.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tua6100.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dib3000mc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/mt2060.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/or51211.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda826x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/cx22702.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/s5h1420.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/mt2266.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/cx24110.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/tda10021.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/stv0299.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/lnbp21.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dib7000m.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/dib7000p.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/mt352.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/dvb/frontends/or51132.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/radio/radio-maxiradio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/radio/dsbr100.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/radio/radio-maestro.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/radio/radio-gemtek-pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tvaudio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ovcamchip/ovcamchip.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/zr36050.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/videobuf-dma-sg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/wm8775.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa6588.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/dabusb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/pvrusb2/pvrusb2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa5246a.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/mxb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7185.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7114.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7191.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tcm825x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/w9968cf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/se401.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tuner-simple.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7111.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/vp27smpx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/adv7175.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7134/saa7134.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7134/saa7134-dvb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7134/saa7134-alsa.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7134/saa6752hs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7134/saa7134-empress.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tvp5150.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tuner.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/bt819.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/hexium_orion.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/meye.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx88-alsa.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx8800.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx88-dvb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx88xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx88-vp3054-i2c.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx88-blackbird.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx88/cx8802.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7115.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ir-kbd-i2c.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/v4l2-common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ivtv/ivtv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ivtv/ivtvfb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/w9966.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ov511.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/adv7170.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvision/usbvision.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tea6420.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvideo/konicawc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvideo/ibmcam.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvideo/ultracam.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvideo/usbvideo.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvideo/vicam.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/usbvideo/quickcam_messenger.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/stradis.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx25840/cx25840.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ov7670.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tea5761.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/videocodec.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tea6415c.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/v4l1-compat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tda9840.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/hexium_gemini.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/c-qcam.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/upd64083.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tda7432.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/zr36067.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/vpx3220.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/wm8739.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/em28xx/em28xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7110.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/compat_ioctl32.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/sn9c102/sn9c102.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/uvcvideo/uvcvideo.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tda9875.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/stv680.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/v4l2-int-device.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/bt866.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tuner-3036.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa7127.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/saa5249.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tveeprom.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cpia_pp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx2341x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/videodev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/msp3400.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/videobuf-dvb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/mt20xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tda8290.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cpia_usb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tea5767.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/bw-qcam.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/zr36016.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/et61x251/et61x251.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cx23885/cx23885.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/zc0301/zc0301.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/videobuf-core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/bt856.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/ks0127.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/zr364xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/dpc7146.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cpia2/cpia2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/btcx-risc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/upd64031a.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/pwc/pwc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cpia.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/bt8xx/bttv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/tlv320aic23b.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/cs53l32a.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/video/zr36060.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/common/saa7146_vv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/common/ir-common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/media/common/saa7146.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tpm/tpm_atmel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tpm/tpm_infineon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tpm/tpm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tpm/tpm_bios.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tpm/tpm_nsc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tpm/tpm_tis.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/crash.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/synclink_gt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/synclink.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/mwave/mwave.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/rocket.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/n_r3964.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/n_hdlc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/ppdev.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/synclinkmp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/tlclk.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/cyclades.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/hw_random/amd-rng.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/hw_random/intel-rng.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/pcmcia/cm4000_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/pcmcia/cm4040_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/i810.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/via.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/i830.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/savage.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/tdfx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/drm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/mga.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/i915.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/sis.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/r128.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/radeon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/drm/nouveau.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/lp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/ipmi/ipmi_devintf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/ipmi/ipmi_poweroff.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/ipmi/ipmi_msghandler.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/ipmi/ipmi_watchdog.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/ipmi/ipmi_si.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/char/hangcheck-timer.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/comm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/epia.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/on26.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/pt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/epat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/pd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/pcd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/ktti.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/friq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/frpw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/bpck.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/kbic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/pg.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/fit3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/paride.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/dstr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/fit2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/on20.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/aten.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/paride/pf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/aoe/aoe.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/cciss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/sx8.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/floppy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/cpqarray.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/loop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/umem.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/nbd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/pktcdvd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/cryptoloop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/block/DAC960.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_cmd640.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_mpiix.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_sis.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_cs5520.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_jmicron.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_optidma.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_sl82c105.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_vsc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_via.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_netcell.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_cs5530.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_svw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_efar.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pdc_adma.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_nv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_sil24.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_opti.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_artop.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_cypress.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_serverworks.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_ns87415.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_acpi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_sil680.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_mv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_it8213.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_uli.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_inic162x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_ali.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_triflex.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_hpt3x3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_hpt3x2n.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_pcmcia.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_amd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_oldpiix.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_hpt366.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_ns87410.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_sis.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/ata_piix.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_sil.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_via.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_qstor.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/ahci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_marvell.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_sx4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_cmd64x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/ata_generic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_hpt37x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_it821x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_pdc2027x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/libata.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_atiixp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/sata_promise.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/ata/pata_pdc202xx_old.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pci/hotplug/pciehp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pci/hotplug/acpiphp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pci/hotplug/acpiphp_ibm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pci/hotplug/shpchp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/pci/hotplug/fakephp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/firmware/dcdbas.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/firmware/dell_rbu.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/firmware/edd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/dca/dca.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/i4l/isdn.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/t1pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/c4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/b1pci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/b1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/b1dma.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hardware/avm/avm_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/avma1_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/hisax.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/teles_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/hisax_isac.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/isdnhdlc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/elsa_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/hisax_st5481.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/hisax/sedlbauer_cs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/capi/kernelcapi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/capi/capidrv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/capi/capi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/capi/capifs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/gigaset/usb_gigaset.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/gigaset/ser_gigaset.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/gigaset/gigaset.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/gigaset/bas_gigaset.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/isdn/divert/dss1_divert.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/cpufreq/cpufreq_ondemand.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/cpufreq/cpufreq_stats.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/cpufreq/cpufreq_powersave.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/cpufreq/cpufreq_conservative.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/firewire/firewire-core.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/firewire/firewire-ohci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/firewire/firewire-sbp2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/drivers/power/power_supply.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/soundcore.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/synth/snd-util-mem.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/synth/emux/snd-emux-synth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/oss/snd-pcm-oss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/oss/snd-mixer-oss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd-page-alloc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd-rtctimer.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd-timer.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd-rawmidi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd-pcm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/snd-hwdep.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-instr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/oss/snd-seq-oss.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-midi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-virmidi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-midi-event.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-midi-emul.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-dummy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/snd-seq-device.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/instr/snd-ainstr-fm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/core/seq/instr/snd-ainstr-simple.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/vx/snd-vx-lib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/snd-dummy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/opl3/snd-opl3-synth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/opl3/snd-opl3-lib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/snd-mts64.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/mpu401/snd-mpu401.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/snd-portman2x4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/snd-virmidi.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/drivers/snd-mtpav.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/usb/snd-usb-audio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/usb/snd-usb-lib.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/isa/sb/snd-sb-common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/isa/sb/snd-sb16-dsp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/ac97_bus.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/i2c/snd-i2c.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/i2c/other/snd-ak4114.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/i2c/other/snd-pt2258.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/i2c/other/snd-tea575x-tuner.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/i2c/snd-cs8427.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ca0106/snd-ca0106.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-sonicvibes.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-cs5530.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-als300.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-es1938.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-cs4281.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-intel8x0.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ice1712/snd-ice1724.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ice1712/snd-ice1712.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-ad1889.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-sis7019.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-als4000.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/trident/snd-trident.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/trident/snd-trident-synth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-fm801.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/emu10k1/snd-emu10k1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-bt87x.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ymfpci/snd-ymfpci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-indigo.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-darla24.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-layla20.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-gina20.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-echo3g.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-indigodj.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-darla20.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-mia.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-gina24.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-mona.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-layla24.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/echoaudio/snd-indigoio.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/mixart/snd-mixart.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/cs46xx/snd-cs46xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-cmipci.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-es1968.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-rme32.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-via82xx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-maestro3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-atiixp-modem.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/nm256/snd-nm256.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ali5451/snd-ali5451.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/vx222/snd-vx222.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/korg1212/snd-korg1212.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-intel8x0m.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/riptide/snd-riptide.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-ens1370.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-atiixp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-rme96.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-ens1371.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/rme9652/snd-hdspm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/rme9652/snd-hdsp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/rme9652/snd-rme9652.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-azt3328.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/hda/snd-hda-intel.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/snd-via82xx-modem.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/au88x0/snd-au8820.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/au88x0/snd-au8830.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/au88x0/snd-au8810.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/pcxhr/snd-pcxhr.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ac97/snd-ac97-codec.ko
/lib/modules/2.6.24.3-50.fc8/kernel/sound/pci/ac97/snd-ak4531-codec.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/lrw.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/arc4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/authenc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/anubis.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/async_tx/async_memcpy.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/async_tx/async_tx.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/async_tx/async_xor.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/twofish_common.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/ecb.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/pcbc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/md4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/gf128mul.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/des_generic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/seed.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/crypto_null.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/sha256_generic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/xor.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/tcrypt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/sha512.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/deflate.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/cast5.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/blkcipher.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/michael_mic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/cast6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/twofish.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/aes_generic.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/wp512.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/camellia.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/khazad.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/fcrypt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/xcbc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/serpent.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/blowfish.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/aead.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/tea.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/cbc.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/tgr192.ko
/lib/modules/2.6.24.3-50.fc8/kernel/crypto/xts.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/romfs/romfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/cifs/cifs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/mbcache.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nfs/nfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/hfsplus/hfsplus.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/udf/udf.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/configfs/configfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ecryptfs/ecryptfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/reiserfs/reiserfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nfsd/nfsd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nfs_common/nfs_acl.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/dlm/dlm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/freevxfs/freevxfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/coda/coda.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/qnx4/qnx4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ext2/ext2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/fuse/fuse.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ext3/ext3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ocfs2/dlm/ocfs2_dlm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ocfs2/dlm/ocfs2_dlmfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ocfs2/ocfs2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ocfs2/cluster/ocfs2_nodemanager.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/xfs/xfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/efs/efs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/vfat/vfat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ufs/ufs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/hfs/hfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/ncpfs/ncpfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/befs/befs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/gfs2/locking/dlm/lock_dlm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/gfs2/locking/nolock/lock_nolock.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/gfs2/gfs2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/squashfs/squashfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/autofs/autofs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-6.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp855.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp863.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp737.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp860.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp932.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-7.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_utf8.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp1251.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-15.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp936.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp865.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp861.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp949.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-5.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-3.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-14.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp1250.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_koi8-r.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp852.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-13.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_koi8-u.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp857.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp874.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp862.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_koi8-ru.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp850.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp950.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp866.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_euc-jp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-9.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp775.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp1255.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp869.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_iso8859-1.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/nls/nls_cp864.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/fat/fat.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/affs/affs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/cramfs/cramfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/lockd/lockd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/autofs4/autofs4.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/bfs/bfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/msdos/msdos.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/exportfs/exportfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/sysv/sysv.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/jffs2/jffs2.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/minix/minix.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/9p/9p.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/jbd/jbd.ko
/lib/modules/2.6.24.3-50.fc8/kernel/fs/jfs/jfs.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/reed_solomon/reed_solomon.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/crc16.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/crc-itu-t.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/crc-ccitt.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/ts_fsm.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/zlib_deflate/zlib_deflate.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/ts_kmp.ko
/lib/modules/2.6.24.3-50.fc8/kernel/lib/ts_bm.ko
/lib/modules/2.6.24.3-50.fc8/extra/nvidia/nvidia.ko
****************************************
This is a list of files in /etc/rc.d/init.d without permission 700
We recommend that you change the permission of this files to 700
/etc/rc.d/init.d/iptables
/etc/rc.d/init.d/rsyslog
/etc/rc.d/init.d/rpcsvcgssd
/etc/rc.d/init.d/nvidia
/etc/rc.d/init.d/rdisc
/etc/rc.d/init.d/lisa
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/wpa_supplicant
/etc/rc.d/init.d/irqbalance
/etc/rc.d/init.d/irda
/etc/rc.d/init.d/backuppc
/etc/rc.d/init.d/yum-updatesd
/etc/rc.d/init.d/ntpd
/etc/rc.d/init.d/winbind
/etc/rc.d/init.d/httpd
/etc/rc.d/init.d/killall
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/crond
/etc/rc.d/init.d/ip6tables
/etc/rc.d/init.d/autofs
/etc/rc.d/init.d/ConsoleKit
/etc/rc.d/init.d/setroubleshoot
/etc/rc.d/init.d/anacron
/etc/rc.d/init.d/rpcbind
/etc/rc.d/init.d/NetworkManager
/etc/rc.d/init.d/kudzu
/etc/rc.d/init.d/netfs
/etc/rc.d/init.d/single
/etc/rc.d/init.d/smartd
/etc/rc.d/init.d/openvpn
/etc/rc.d/init.d/functions
/etc/rc.d/init.d/psacct
/etc/rc.d/init.d/avahi-daemon
/etc/rc.d/init.d/racoon
/etc/rc.d/init.d/halt
/etc/rc.d/init.d/messagebus
/etc/rc.d/init.d/saslauthd
/etc/rc.d/init.d/fuse
/etc/rc.d/init.d/acpid
/etc/rc.d/init.d/jetty
/etc/rc.d/init.d/netplugd
/etc/rc.d/init.d/dund
/etc/rc.d/init.d/microcode_ctl
/etc/rc.d/init.d/nasd
/etc/rc.d/init.d/haldaemon
/etc/rc.d/init.d/mdmonitor
/etc/rc.d/init.d/hsqldb
/etc/rc.d/init.d/bluetooth
/etc/rc.d/init.d/pand
/etc/rc.d/init.d/netconsole
/etc/rc.d/init.d/restorecond
/etc/rc.d/init.d/smolt
/etc/rc.d/init.d/lm_sensors
/etc/rc.d/init.d/multipathd
/etc/rc.d/init.d/auditd
/etc/rc.d/init.d/tomcat5
/etc/rc.d/init.d/ypbind
/etc/rc.d/init.d/cups-config-daemon
/etc/rc.d/init.d/udev-post
/etc/rc.d/init.d/NetworkManagerDispatcher
/etc/rc.d/init.d/pcscd
/etc/rc.d/init.d/gpm
/etc/rc.d/init.d/firstboot
/etc/rc.d/init.d/network
/etc/rc.d/init.d/sendmail
/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/cups
/etc/rc.d/init.d/sshd
/etc/rc.d/init.d/cpuspeed
/etc/rc.d/init.d/nscd
****************************************
Check these ports in /etc/services to see what they are.
Close all ports you do not need.
Ports listening on this system:
Protocol Port
tcp 111
tcp 631
tcp 25
tcp 34747
****************************************
Output from nmap run on local IP(s)
Check these services to see if they are critical.
Disable services you do not need.
Starting Nmap 4.20 ( http://insecure.org ) at 2008-05-07 14:18 CDT
Initiating Connect() Scan at 14:18
Scanning kometa (172.20.8.78) [1697 ports]
Discovered open port 22/tcp on 172.20.8.78
Discovered open port 111/tcp on 172.20.8.78
Completed Connect() Scan at 14:18, 0.04s elapsed (1697 total ports)
Host kometa (172.20.8.78) appears to be up ... good.
Interesting ports on kometa (172.20.8.78):
Not shown: 1695 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
Nmap finished: 1 IP address (1 host up) scanned in 0.102 seconds
****************************************
Output from netstat -i showing Kernel interface statistics
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 12784245 0 0 0 6204929 0 0 0 BMRU
lo 16436 0 25994 0 0 0 25994 0 0 0 LRU
****************************************
Output from netstat -rn showing current routing
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
172.20.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 172.20.8.1 0.0.0.0 UG 0 0 0 eth0
****************************************
Hrm, do not see FORWARD_IPV4=FALSE in network.
Make sure that /etc/sysconfig/network
contains the line FORWARD_IPV4=FALSE
****************************************
These network interfaces found to be in promisc mode using /sbin/ip.
****************************************
These network interfaces found to be in promisc mode using /sbin/ip.
****************************************
This is a list of all services in
all runlevels on the system.
ConsoleKit 0:off 1:off 2:on 3:on 4:on 5:on 6:off
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
NetworkManagerDispatcher 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
backuppc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off
dund 0:off 1:off 2:off 3:off 4:off 5:off 6:off
firstboot 0:off 1:off 2:off 3:on 4:off 5:on 6:off
gpm 0:off 1:off 2:on 3:on 4:on 5:off 6:off
haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
irda 0:off 1:off 2:off 3:off 4:off 5:off 6:off
irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off
jetty 0:off 1:off 2:off 3:off 4:off 5:off 6:off
kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off
lisa 0:off 1:off 2:off 3:off 4:off 5:off 6:off
lm_sensors 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off
messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off
microcode_ctl 0:off 1:off 2:on 3:on 4:on 5:on 6:off
multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nasd 0:off 1:off 2:off 3:off 4:off 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off
nscd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nvidia 0:off 1:off 2:on 3:on 4:on 5:on 6:off
openvpn 0:off 1:off 2:off 3:off 4:off 5:off 6:off
pand 0:off 1:off 2:off 3:off 4:off 5:off 6:off
pcscd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
psacct 0:off 1:off 2:off 3:off 4:off 5:off 6:off
racoon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
restorecond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcidmapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
setroubleshoot 0:off 1:off 2:off 3:on 4:on 5:on 6:off
smartd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
smolt 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
tomcat5 0:off 1:off 2:off 3:off 4:off 5:off 6:off
udev-post 0:off 1:off 2:off 3:on 4:on 5:on 6:off
winbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
wpa_supplicant 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
yum-updatesd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
****************************************
This is a list of all services which are
on right now, taken from chkconfig output.
ConsoleKit 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off
firstboot 0:off 1:off 2:off 3:on 4:off 5:on 6:off
gpm 0:off 1:off 2:on 3:on 4:on 5:off 6:off
haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off
kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off
mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off
messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off
microcode_ctl 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nasd 0:off 1:off 2:off 3:off 4:off 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off
nvidia 0:off 1:off 2:on 3:on 4:on 5:on 6:off
pcscd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
racoon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
restorecond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcidmapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
setroubleshoot 0:off 1:off 2:off 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:off 2:off 3:on 4:on 5:on 6:off
yum-updatesd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
****************************************
Can not locate grub or lilo conf files.
Please check that the password keyword is being used in them.
****************************************
/proc/sys/net/ipv4/icmp_echo_ignore_all exists, but is off.
Consider placing a one in it to turn on.
****************************************
You ignore all ICMP Echo broadcasts, good.
****************************************
You are denying source routed packets. Good.
****************************************
/proc/sys/net/ipv4/conf/all/accept_redirects exists, but its off.
****************************************
You are ignoring bad err msgs in ipv4. Good.
****************************************
Logging of spoofed, etc packets is off.
Consider turning on.
****************************************
X seems to be listening for tcp connections.
Consider turning this off with
-nolisten tcp in your X startup file.
****************************************
readlink is not installed on this system,
or it is not in the path,
or I just can not find it.
checklistening was not run.
****************************************
This is a list of mount points currently mounted.
Make sure the permissions are reasonable (rw, ro, etc).
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
origin2:/store on /store type nfs (rw,udp,addr=172.20.26.205)
origin1:/research on /research type nfs (rw,udp,addr=172.20.26.204)
****************************************
This is a list of disk utilizations on the system, in kilobytes.
Chcek to see that filesystems are not near capacity, etc.
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 473086160 6581008 442085952 2% /
tmpfs 2031292 36 2031256 1% /dev/shm
origin2:/store 6856646656 5637073600 1219573056 83% /store
origin1:/research 16376720640 8752292352 7624428288 54% /research
****************************************
lsat-0.9.7.1/checkcfg.c 0000644 0001750 0000144 00000003141 11010374106 014022 0 ustar number9 users /****************************************/
/* This is the checcfg.c module for */
/* lsat program. This module checks */
/* all services in all runlevels on the */
/* system and just prints them out... */
/* this is redhat specific... */
/* */
/* See lsatmain.c for more details. */
/****************************************/
#include "lsatheader.h"
#include
#include
#include
int checkcfg(filename, verbose, html)
const char *const filename;
int verbose;
int html;
{
const char * tempfile =NULL;
const char * shellcode=NULL;
const char * header =NULL;
if (verbose >= 0)
{
printf(" Running checkcfg module...\n");
}
if (verbose > 0)
{
printf(" Creating list of daemons in all runlevels...\n");
}
tempfile = "/tmp/lsat1.lsat";
shellcode= "/sbin/chkconfig --list 2>/dev/null | tee >/tmp/lsat1.lsat";
header = "This is a list of all services in\n all runlevels on the system.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror(" Creation of list failed.");
return (-1);
}
tempfile = "/tmp/lsat1.lsat";
shellcode = "/sbin/chkconfig --list 2>/dev/null |grep on >/tmp/lsat1.lsat";
header = "This is a list of all services which are \non right now, taken from chkconfig output.\n";
if ((dostuff(tempfile, filename, shellcode, header, html)) < 0)
{
/* something went wrong */
perror( "Creation of list failed.");
return(-1);
}
if (verbose > 0)
{
printf(" Finished in checkcfg module.\n");
}
return(0);
}