Creating, Using and Justifying the Auditor's Toolkit

advertisement
Creating, Using and Justifying the
Auditor's Toolkit
• Welcome
• General announcements
Creating, Using and Justifying the
Auditor's Toolkit
ISACA Presentation
April 2003
Ed Capizzi
Schedule etc.
•
•
•
•
•
•
•
Breakfast
Intro, admin & Methodology
Outside – In tools
Unix
Lunch
Windows
Hands on
Administrivia
•
•
•
•
•
•
•
Location information
Pagers and cell phones
Fire escapes
Food
Start stop times
Location of restrooms
General room rules and mood
Assumptions
•
•
Auditors have all the front end time & field
work time they need
Auditors have large budgets for tools and
training
•
Auditors always get full cooperation of and
unlimited access to audit areas
•
No one minds being audited
•
You are already experts on everything
Real World Assumptions
•
•
•
•
•
•
You have to become an expert at everything
FAST (or at least brush up!)
You need something you can apply now
You probably run a WinTel based machine
You probably don't have admin / root level
access (of your own) to the systems you audit
You have to be part tech, part teacher, part
politician
Even “free, industry best practices” require
some selling
Real World Assumptions
•
•
•
•
This is one way to do things, not THE way
Linux (for this presentation) is RedHat
Solaris (for this presentation) is 2.6
HP (for this presentation) is 11.x
Our Approach
•
•
•
•
•
Learn to fish
Basics, basics, basics
Keep it simple
Inside out, Outside in
Creative use of “indigenous resources”
(utilities included in the existing OS)
• Audits (& auditors) must be
“environmentally friendly and low impact”
Our Approach
1. Subsystem(s) involved
2. Best practice examples/settings
3. Ramifications of settings or principles
4. How to sell to administrators and management
5. Which tool to use to accomplish which task
15 Main Areas
1) Account Policies
2) Auditing
3) Device Drivers
4) Drives
5) Event Log
6) Printer Permissions
7) Processes
8) Registry
9) Remote Access
10) Scheduled Tasks
11) System Info
12) Services
13) Shares
14) Trusted Relationships
15) Users & Groups
Account Policies
What are the tools?
– admintool (gui-Solaris)
• /etc/default/passwd (sun)
• /etc/passwd
– sam (gui-HP)
/etc/passwd
– userconf or redhat-config-users (gui Red Hat Linux)
• /etc/passwd (linux)
What can they tell us?
Account Policies
What can they tell us*:
o login name
o encrypted password
o numerical user ID
o numerical group ID
o reserved gecos ID
o initial working directory
o program to use as shell
BUT WE WANT MORE!
Account Policies
To get more, the system has to be using:
shadow passwords (Solaris / Linux)
/etc/shadow
or
“trusted system” (HP)
/tcb/files/auth/
More on this later, stay tuned...
Account Policies
Where are the files? (review)
Standard systems
/etc/default/passwd (Sun)
/etc/passwd (HP & Linux)
Shadowed or trusted systems
/etc/default/passwd (Sun)
/etc/passwd (Sun & Linux)
/tcb/files/auth/ (HP)
SAM
Sam
Sam
Linuxconf
Linuxconf
Auditing
• user logon / logoff
• system restart, start up, shutdown
• object access
Auditing
Linux
– /etc/syslog.conf
– /var/log/messages
Sun
– /etc/syslog.conf
– /var/adm/message
HPUX
– /etc/syslog.conf
– /var/adm/syslog/syslog.log
Auditing
Linux & HP
dmesg -boot diagnostics & messages
Sun
prtdiag
Cool tool alert!!!
Rosetta Stone for Unix!
Rosetta Stone for Unix
Auditing
lastb
Auditing
• last
Auditing
• dmesg
Auditing
• HPUX “Trusted System”
– passwords moved from /etc/passwd
– All users must have a password
– Check /etc/rc.config.d/auditing &
/sbin/rc2.d/S760auditing./etc/rc.config.
d/auditing for auditing control
parameters.
– /tcb/files/ttys
• uid of user log into terminal, logins &
unsuccessful logins.
Auditing
A.K.A Setting up syslog!
Syslog.conf
• Simple text file with format of
daemon.loglevel <Tab> log target
mail.*
/var/log/daemon.log
-rw-------
1 root
root
702093 Mar 17 17:56 /var/log/messages
Owned by root (rw)
– 'log' group (r)
(if needed)
– 'other' group not permissions
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*
/dev/console
Syslog.conf (con't)
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none
/var/log/messages
# The authpriv file has restricted access.
authpriv.*
/var/log/secure
# Log all the mail messages in one place.
mail.*
/var/log/maillog
# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit
/var/log/spooler
# Save boot messages also to boot.log
local7.*
/var/log/boot.log
Syslog logging Levels
•
•
•
•
•
•
•
•
emerg
alert
crit
err
warning
notice
info
debug
System is unusable
Action must be taken NOW
Critical conditions
Error conditions
Warning conditions
Normal but significant
FYI
More than you want to know
(Programmers only)
Syslog targets
• /path/to/file
• @loghost
•
•
•
•
Message appended to the given file
Sent to syslog server on 'loghost'
server
*
Message written to all loged in users
user1,user2
Message written to user1 & user2
/dev/console Message written to named ttys
| /path/to/name_pipe
Message written to named pipe
Device Drivers
•
How the system handles hard drives, keyboards or
any other peripheral attached to the system
• located in /dev
–Character Device
• communicate in echoed characters
–Block Devices
• communicate in 512 or 1024 blocks of
data
• Faster access
Devices
• The device type is indicated by the first
character in the permission block. i.e.
crw--w--w- 1 root root 4, 1 Jul 19 13:26 tty1
crw--w--w- 1 root root 4, 2 Jul 19 13:26 tty2
Major device number – identifies the device driver
number
Minor device number – identifies the device number
Devices
• device permissions are important!
• /dev/kmem = kernel memory
• /dev/hda1 =hard disk
– access to this may allow dump of disk files
bypassing /etc/passwd
• use groups and sudo
Drives
• mount – to show what is mounted
• df- k, df -h to see free space
• etc/fstab (/etc/vfstab - Solaris) to see
file system mount point descriptions
description of /dev/dsk -vs- /dev/rdsk
Local-vs-remote
• mount
• /etc/fstab
• /etc/dfs/dfstab
share
exportfs -v
nfsstat
lists all current shares (Sun)
lists all current shares (HP & Linux)
NFS performance statistics (HP & Sun)
Event Log
• Syslog (and /etc/syslog.conf)
/var/log/messages Linux
/var/adm/messages HP & Sun
tail and / or grep
Ask if Swatch or logcheck may be running
Printer Permission
• /etc/hosts.lpd = hosts that can print
– You can also put in /etc/hosts.equiv but
that opens them to use rservices too!
– lpadmin (solaris) lsR -al /etc/lp
Linux
– cat /etc/printcap.local
• shows all local printers
• printtool (gui)
– Hpux – lpadmin
• /etc/lp/*
• /var/adm/lp*
Processes
• Before we begin..
Policy
Best Practices
Goals of Security
init Process
init is always process #1
(all other things that happen before this are actually part of the
kernel or kernel process)
The “system father task” that propagates all child
processes needed for operation.
Configuration file:
•
/etc/inittab
/etc/inittab
• Defines the default run level
•
–
id:5:initdefault:
–
strt:3:initdefault:
Executes and process entries that have sysinit in the action field (so that
any special initialisation takes place before the users log in).
•
Defines processes for specific run levels
–
rebt:6:wait:/etc/init.d/announce restart
identifier:runlevel processed at:the action:the process
Runlevels
• 0 – Shutdown or halt the system
• 1 – Single user (administrative) mode
• 2 – Basic Multi user mode (all daemons, no NFS)
• 3 – Multi User Mode (all daemons and NFS)
• 4 - Reserved
• 5 – Reboot the system (passing through runlevel 0)
• S or s – single user mode all file systems mounted and
accessible
• 6 Shut down the machine /reboot
Run Levels con't
How do I display the current runlevel?
• HP & Solaris
–
# who -r
• run-level 3 Feb 28 10:55 3 0 S
• current run level date and time of run level change current run
level number of times at this run level since last reboot previous
run level
• Linux
–
# /sbin/runlevel
• N 5 or 3 5
(none before and now 5 or 3 before and 5 now)
rc scripts
Run Control Scripts exist for each run level
Scripts start and/or stop all processes needed to put
system into appropriate Run Level
S start, K kill (stop)
• processed sequentially 0-99
Solaris rc scripts
Run Control Scripts exist for each run level
• /sbin/rc
– directory for each script
• /sbin/rc3
– S15nfs.server
->
/etc/rc3.d/
Linux rc scripts
Run Control Scripts exist for each run level
•
/etc/rc.d/rc.local
• /etc/rc.d/rc#
– directory for each script
• /etc/rc.d/rc3
– K20nfs
rc scripts
Run Control Scripts exist for each run level
HP rc scripts
Run Control Scripts exist for each run level
• /sbin/rc#.d
– directory for each script
• /sbin/rc3.d/
K20nfs
Processes
• ps -aef
• ps -aux
• inet.d
/etc/inetd.conf
• how to start, & stop
/etc/init.d/name start or stop,
restart
• /proc directory
cd /proc/proc#; ls
Processes
• ps -aef
Processes
• ps -aux
Processes
• inet.d
/etc/inetd.conf
Processes (TOP)
Processes
• /etc/services
–read by inet.d
netstat
qotd
msp
msp
chargen
chargen
ftp-data
ftp
fsp
ssh
ssh
telnet
15/tcp
17/tcp
18/tcp
18/udp
19/tcp
19/udp
20/tcp
21/tcp
21/udp
22/tcp
22/udp
23/tcp
quote
# message send protocol
# message send protocol
ttytst source
ttytst source
fspd
# SSH Remote Login Protocol
# SSH Remote Login Protocol
Registry
Bind, SMNP, HTTP
• Bind
• Snmp
• HTTP
Registry
Bind, SMNP, HTTP
• Bind
– nslookup change to that server ls -d domain name
– /etc/named.conf
Registry
Bind, SMNP, HTTP
• Bind
– C:\>nslookup
– Default Server: hm01.mycompany.com
– Address: 10.199.128.10
– > server 10.199.128.10
– Default Server: hm01.mycompany.com
– Address: 10.10.128.10
– > ls -d mycompany.com
– [hm01.mycompany.com]
– *** Can't list domain mycompany.com: Query refused
Registry
Bind, SMNP, HTTP
• Bind
– /etc/named.conf
cat /etc/named.conf |grep –i –A 10 ‘allow’
allow-transfer {
127.0.0.1;
10.0.0.2;
};
};
// localhost
// secondary DNS server for my zone
ICAT Metabase
ICAT Metabase
ICAT Metabase
SMNP
• Smnp FILES
•
/usr/sbin/snmpd
•
/usr/sbin/snmpdm
•
/usr/sbin/mib2agt
•
/usr/sbin/hp_unixagt
•
/usr/sbin/trapdestagt
•
/etc/SnmpAgent.d/snmpd.conf
•
/var/adm/snmpd.log
•
/opt/OV/snmp_mibs/
•
/sbin/SnmpAgtStart.d/
SMNP
snmpwalk 10.10.2.1 public
system.sysDescr.0 = HP-UX Alice B.11.00 E 9000/889
system.sysObjectID.0 = OID: enterprises.11.2.3.2.3
system.sysUpTime.0 = Timeticks: (1062137248) 122 days, 22:22:52.48
system.sysContact.0 =
system.sysName.0 = tinker
system.sysLocation.0 =
system.sysServices.0 = 72
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
interfaces.ifNumber.0 = 3
at.atTable.atEntry.atIfIndex.1.1.170.199.6.1 = 1
at.atTable.atEntry.atIfIndex.1.1.170.199.6.5 = 1
at.atTable.atEntry.atIfIndex.1.1.170.199.6.9 = 1
at.atTable.atEntry.atIfIndex.1.1.170.199.6.30 = 1
at.atTable.atEntry.atIfIndex.1.1.170.199.6.43 = 1
Registry
Bind, SMNP, HTTP
# telnet 10.10.2.1 80
Trying...
Connected to 10.10.2.1.
Escape character is '^]'.
GET / HTTP/1.0
GET / HTTP/1.1HTTP/1.1 200 OK
Date: Thu, 17 Apr 2003 21:24:56 GMT
Server: HP Apache-based Web Server/1.3.26 (Unix)
Last-Modified: Thu, 20 Mar 2003 19:57:37 GMT
ETag: "ae3-116e-3e7a1d31"
Accept-Ranges: bytes
Registry
Bind, SMNP, HTTP
Content-Length: 4462
Connection: close
Content-Type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Startup Page for HP Apache-based Web Server on HP-UX</TITLE>
<style type="text/css">
<!--
BODY {
font-family: Verdana, Helvetica, Arial, Sans-serif;
}
H1 {
font-family: Verdana, Helvetica, Arial, Sans-serif;
font-size:24pt;
}
-->
</style>
Remote Access
•
•
•
•
Rservices
telnet
ssh
/var/log/secure
– cat and grep for in.telnet, rlogin, etc
– find /var/log/ -name secure* -exec cat {} \; >/tmp/sec.log.atxt
• rpcinfo -p
– prints information if rpc is running
Scheduled Tasks
• Cron
– Crontab -l
1 2345
21 14 * * 2 /path/to/whatever/bin/sh/etc/2run
1
MINUTE(0-59)
2
3
HOUR(0-23)
DAYOFMONTH(1-31)
5
DAYOFWEEK(0-6) Note 0 = Sun
2 = Tue
4 = Thr
6 = Sat
4
MONTHOFYEAR(1-12)
System Info
• dmesg
• prtconf -v (Solaris)
• ioscan (HP)
System Info
dmesg
Variable size pages used to map 1000 graf pages at f7000000
NOTICE: nfs3_link(): File system was registered at index 3.
NOTICE: autofs_link(): File system was registered at index 6.
NOTICE: cachefs_link(): File system was registered at index 7.
8 ccio
8/4 c720
8/4.2 tgt
8/4.2.0 stape
8/4.7.0 sctl
8/4.15.0 sdisk
8/8 c720
8/8.7 tgt
8/8.7.0 sctl
8/16 bus_adapter
System Info
ioscan
Services
• /etc/services
• /etc/inetd
–super daemon
1. checks the incoming port,
2. consults /etc/services to get the service name,
3. reads its configuration file, /etc/inetd.conf to determine what
program to start to handle the incoming connection
Services
• /etc/services
<official service name> <port number/protocol name> <aliases>
ftp-data
ftp
telnet
smtp
time
time
rlp
whois
20/tcp
# File Transfer Protocol (Data)
21/tcp
# File Transfer Protocol (Control)
23/tcp
# Virtual Terminal Protocol
25/tcp
# Simple Mail Transfer Protocol
37/tcp timeserver
# Time
37/udp timeserver #
39/udp resource
# Resource Location Protocol
43/tcp nicname
# Who Is
Services
●
/etc/inetd.conf
# A line in the configuration file has the following fields separated by tabs and/or spaces:
# service name
as in /etc/services
# socket type
either "stream" or "dgram"
# protocol
as in /etc/protocols
# wait/nowait
only applies to datagram sockets, stream
#
sockets should specify nowait
# user
name of user as whom the server should run
# server program
absolute pathname for the server inetd will
#
execute
# server program args.
arguments server program uses as they normally
#
are starting with argv[0] which is the name of
#
the server.
ftp
stream tcp nowait root /usr/lbin/ftpd
ftpd -l
(Causes each FTP session to be logged in the syslog file.)
telnet
stream tcp nowait root /usr/lbin/telnetd telnetd
Shares
• nis
(Network Information Service)
Formerly YP (Yellow Pages)
• nfs
(Network File System)
NFS Server
• Daemons
mountd, nfsd, statd, nfslogd
• Files
/etc/dfs/dfstab
/etc/dfs/rmtab
list of all local filesystems automatically shared
/etc/dfs/nfslog.conf
defines path, filenames & logging options
table of nfs file systems mounted by clients
• Commands
share, unshare, dfshares, dfmounts
(all show share in use information)
NFS Security
• In general
●
Only run NFS as needed, apply latest patches
Careful use of /etc/exports (or /etc/dfs/dfstab for
SUN)
Read-only if possible
No suid if possible
●
Fully qualified hostnames
●
●
●
NFS Client
• Daemons
(look for them)
statd, lockd
• Files
(review)
/etc/vfstab
/etc/mnttab
/etc/dfs/fstypes
• Commands
dfshares
dfsmounts
NIS
• If you do NOT use NIS or NIS+, make your system a HP-UX trusted
system for easier system security
NIS
Daemon
ypserv
Function
Server process
ypwhich
Lists name of the NIS server
(client)
ypcat -x
Displays the contents of an
NIS map (client)
NIS
What's exported
# ypwhich
ypwhich the NIS domain name hasn't been set on this machine
# exportfs -v
(HP shows all exported)
nothing exported
NIS
# ypwhich
NIS
# exportfs -v
NIS
# ypcat -x or ypwhich -x
Use "passwd" for map "passwd.byname"
Use "group" for map "group.byname"
Use "networks" for map "networks.byaddr"
Use "hosts" for map "hosts.byaddr"
Use "protocols" for map "protocols.bynumber"
Use "services" for map "services.byname"
Use "aliases" for map "mail.aliases"
Use "ethers" for map "ethers.byname"
NIS
•
•
HP cat /var/yp/secureservers
-defines trusted NIS servers
255.255.255.255 192.1.1.1
-only one server
255.255.0.0 128.1.0.0
-any server from the 128.1 subnet
HP cat /var/yp/securenets
-defines trusted NIS clients
255.255.255.255 192.1.1.2
-only one client
255.255.0.0 128.1.0.0
-any client from the 128.1 subnet
Trusts
• /etc/hosts.equiv
– non-root access request:
if host exists -> /etc/passwd
if account exists -> you're in! (no password challenge)
• .rhosts
– Root accesss request
.rhosts checked if host exists -> you're in! no jacket required!
• /etc/ftpusers
if they're in here, they are restricted
root, uucp, adm, lp, smtp, bin, nobody etc all good candidates!
Trusts
TCP Wrappers only
TCP Wrappers inserts itself into the middle of
the relationship and acts as the server until
the client/host is authenticated
• /etc/hosts.deny
(ALL:ALL)
Hosts that will be denied access
• /etc/hosts.allow
(only trusted hosts!)
Hosts that will be permitted access
Trusts
• /usr/adm/sulog
– see who has been switching users
• /var/log/messages
– see who has been switching user
•
find / -nouser -print -o -nogroup -print
•
find / -user root -perm -004000 -print
•
•
•
find / -xdev -perm -004000 -exec ls -l {} \;
find / -name .rhosts -exec cat {}\; >audit.rh
find / -name .netrc
Users & Groups
• /etc/passwd
rights on the file
• if I can change my UID to 0, I'm root
-rw-r--r-- 1 root root
683 Jan 29 07:19 /etc/passwd
contents of the file
username:passwd:uid:gid:comments:directory:shell
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
• Shadow passwords or trusted system in use?
Shadow Passwords
• Solaris, Linux
–/etc/shadow
• HPUX
–/tcb/files/auth
Shadow Passwords
username:password:Date of last change (# days since 01/01/1970):
minimum days between changes:
maximum # days between changes:
# days warning in advance of change:
# days after required change before disabled:
account expire date :reserved and empty
root:$1$RY7BRRo9$vbJX3mu0ESeUAhlfYYupk1:
12081:0:99999:7:-1:134539236
*
bin: :11926:0:99999:7:::
daemon:*:11926:0:99999:7:::
adm::11926:0:99999:7:::
Users & Groups
• /etc/groups
rights on the file
•
if I can change my GID to 0, I've got root
-rw-r--r--
1 root
root
455 Jan 29 07:19 /etc/group
contents of the file
group_name:password:group_id:list
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
Putting it all together
• Script to run commands and dump output to
/tmp
• tar all of the output files and transfer via
network to your laptop
• use Cygwin to evaluate the output files!
Putting it all together
•
•
•
•
Grep
Telnet
Cat
Find
Putting it all together
last >/tmp/last.atxt
root
tty1
Sun Mar 16 12:22 still logged in
reboot system boot 2.2.14-5.0
Sun Mar 16 12:21
(05:51)
root
tty1
Sat Mar 15 14:20 - down (07:12)
root
pts/1
:0
Sat Mar 15 14:14 - 14:14 (00:00)
root
pts/1
:0
Sat Mar 15 13:07 - 13:07 (00:00)
root
pts/0
:0
Sat Mar 15 12:27 - 14:14 (01:46)
root
tty1
Sat Mar 15 12:01 - 14:19 (02:18)
reboot system boot 2.2.14-5.0
Sat Mar 15 11:58
(09:34)
root
tty1
Thu Mar 13 06:32 - down (08:10)
root
tty1
Thu Mar 13 06:29 - 06:32 (00:02)
reboot system boot 2.2.14-5.0
root
tty1
tty1
(08:19)
Tue Mar 11 07:11 - down (02:17)
reboot system boot 2.2.14-5.0
root
Thu Mar 13 06:24
Tue Mar 11 07:10
(02:18)
Sun Mar 9 18:12 - down (00:49)
reboot system boot 2.2.14-5.0
Sun Mar 9 18:09
(00:51)
Putting it all together
• grep -a -i -f grep.txt target.txt
-a = process the target file as text –i=ignore case –f=use input file grep.txt=name of input file target.txt= file being “grepped”
Cygwin note:
If you are using Cygwin, you can create the input file in a Windows editor (i.e. Notepad)
but before using it to grep you must convert it to a unix file by using the ‘dos2unix’
command (dos2unix filename).
i.e. dos2unix grep.txt will convert the dos text file grep.txt to unix text. The
differences between the two are not great, but they are large enough to prevent
grep from understanding the input file if you don’t convert it first!
Putting it all together
talk
name
finger
uucp
mouse
tftp
shell
login
exec
comsat
systat
netstat
admind
Putting it all together
$ grep -a -i -f grep.txt target.txt
systat
11/tcp
users
# Active Users
whois
43/tcp
nicname
# Who Is
tftp
69/udp
# Trivial File Transfer Protocol
finger
79/tcp
# Finger
hostnames
101/tcp
hostname
uucp-path
117/tcp
# UUCP Path Service
netbios_ns
137/tcp
# NetBIOS Name Service
exec
512/tcp
# remote execution, passwd required
login
513/tcp
# remote login
shell
514/tcp
talk
517/udp
# conversation
ntalk
518/udp
# new talk, conversation
cmd
# NIC Host Name Server
# remote command, no passwd used
Putting it all together
grep -o 'JM[0-9][0-9][0-9][0-9][0-9]' leg_share.txt
grep -o 'JM[0-9][0-9][0-9][0-9][0-9]' leg_share.txt |sort -u
grep -o 'JM[0-9][0-9][0-9][0-9][0-9]' leg_share.txt |sort -u
>sorted.txt; grep -A1 -f sorted.txt april_users.txt
Putting it all together
tar –cvf audit.tar /tmp/*atxt
Putting it all together
•
•
•
•
•
The following slides are a list of commands I use to audit Unix systems.
This list is not “all encompassing”, well organized, 100% accurate, or 100%
complete.
Use at your own risk, no warranty expressed or implied. Void where prohibited.
This list can be a place to start your own research.
The goal is to place the output of these simple commands into the /tmp directory, tar
them up and then transfer them back to the auditor’s workstation for analysis.
Good luck and enjoy!
Putting it all together
"the usual suspects"
“the usual reasons”
ls /etc/sam/custom/login-name.cf
#config file that sets user’s rights for sam
bdf >/tmp/bdf.atxt
show mounts
cat /etc/passwd |sort >/tmp/passwd.atxt
users and passwd info
cat
group list and members
/etc/group |sort >/tmp/groups.atxt
cat /etc/shadow |sort >/tmp/shadow.atxt
users and passwd info
cat
list content of services file
/etc/services >/tmp/services.atxt
cat /etc/aliases >/tmp/aliases.atxt
system mail aliases
cat /etc/default/useradd >/tmp/useradd.atxt
show useradd template params
cat /etc/dfs/dfstab >/tmp/dfstab.atxt
list mount points
cat /etc/fstab >/tmp/fstab.atxt
list mount points
cat /etc/exports >tmp/exports.atxt
look for nfs
cat /etc/ftpd/ftpusers |sort >/tmp/ftpusers.atxt
restricted ftp users
cat /etc/ftpusers |sort >/tmp/ftpusers.atxt
restricted ftp users
cat /etc/host.equiv >/tmp/host.equiv.atxt
show priveleged hosts
cat /etc/hosts
show hosts resolve
>/tmp/hosts.atxt
(errors can be a good thing!)
cat /etc/inetd.conf >/tmp/ined.conf.atxt
show the configuration file for inetd
cat /etc/xinetd.d/inetd.conf >/tmp/ined.conf.atxt
show the configuration file for inetd
cat /etc/inittab >/tmp/inittab.atxt
show initialization tab
cat /etc/nsswitch.conf >/tmp/nsswitch.atxt
display name resolution order
cat /etc/pam >/tmp/pam.atxt
Pluggable Authentication Modules
cat /etc/pam.conf >/tmp/pamconf.atxt
Display Pam Settings
cat /etc/PATH >/tmp/path.atxt
display path
echo $PATH >/tmp/path.atxt
display path
cat /etc/profile >/tmp/profile.atxt
show profiles
cat /etc/rc.config >/tmp/rcconfig.atxt
show rc config
* omit everything to the right of “>” for output to screen
Putting it all together
"the usual suspects"
“the usual reasons”
cat /etc/rhosts >/tmp/rhosts.atxt
show hosts able to connect remote
cat /etc/rpc >/tmp/rpc.atxt
RPC program number database
cat /etc/shadow >/tmp/shadow.atxt
shadow password
cat /etc/uucp/Devices >/tmp/uucp_devices.atxt
look for uucp devices
cat /etc/uucp/Dialers >/tmp/uucp_dialers.atxt
check for modems
cat /usr/lib/uucp/Devices >/tmp/uucp_devices.atxt
list of uucp devices
cat /usr/lib/uucp/Dialers >/tmp/uucp_dialers.atxt
check for modem phone numbers
cat /usr/lib/uucp/Systems >/tmp/uucp_systems.atxt
list of uucp systems
crontab -l >/tmp/crons.atxt
list contents of the crontab
df -h >/tmp/df.atxt
disk space
df -k >/tmp/dfk.atxt
show disk space
# df -k >/tmp/x.atxt
show disk space
env >/tmp/env.atxt
display environment
exportfs >/tmp/exportfs.atxt
list currently exported files and directories
last
last logins
>/tmp/last.atxt
lastb >/tmp/last.bad.atxt
last bad logins
ls /etc/rc/rc.3 >/tmp/rc3.atxt
Show what is turned on/off for this runlevel
ls /etc/rc/rc.5 >/tmp/rc5.atxt
Show what is turned on/off for this runlevel
ls -l /etc/exports >/tmp/exports.atxt
show permissions on /etc/exports
ls -l -R /tcb/files/auth >/tmp/hp_trusted.atxt
show trusted systems “shadow
ls -l -R
rights on the (ugh) filesystem
>/tmp/filesys.atxt
mount >/tmp/mountpts.atxt
* omit everything to the right of “>” for output to screen
show drive mount points
file”
Putting it all together
"the usual suspects"
“the usual reasons”
cat /etc/rc.config.d/netconf >/tmp/netconf.atxt
config values for core networking subsystems
cat /etc/rc.config.d/netconf /etc/rc.config.d/auditing >> >/tmp/rc_configd.atxt
#gets the rest
cat /etc/resolv.conf
# defines the domain the system
client will use.
>/tmp/resolvconf.atxt
cat /etc/uucp/Systems >/tmp/uucp_systems.atxt
belongs to and the name server the
“Unix-to-Unix copy”. Lists and describes remote systems accessible
to a local system using the Basic Networking Utilities "
cat /var/adm/inetd.sec >/tmp/inetd_sec.atxt
"# The lines in the file contain a service name permission field
and the Internet addresses or names of the hosts and/or networks
allowed to use that service in the local machine.
"file with contents “console” if exists then root can only login from console all others must remote
cat for /etc/securetty >/tmp/.atxt
login as themselves and then su."
find / \( -perm -0200 -o -perm -0400 \) -ls
>/tmp/uid.atxt
find / -name .profile - >/tmp/x.atxt
find / -name .rhost -exec cat {} \; >rhosts.txt
look for setuid or guid
show profile file (get cshell and korn shell too!)
>/tmp/rhosts.atxt
rhost search
find / -perm -2000 -exec ls -al {} \; >/tmp/2000.atxt
find permissions on files
find / -perm -4000 -exec ls -al {} \; >/tmp/4000.atxt
find permissions on files
find /etc/rc.config.d/*conf* -exec cat {} \; >rc.configd.txt >/tmp/rc.config.atxt
displays the config files from /rc.config.d/
find etc/rc.config.d/*config* -exec cat {} \; > config.txt >/tmp/hp_rc.config.d.atxt #list contents of the config files
find etc/rc.config.d/audit* -exec cat {} \; > config.txt >/tmp/hp_rc.audit.atxt
list contents of the auditing cofig
xxx.xxx.xxx.xxx
ypwhich
Lists name of the NIS server and nickname translation table
ypcat -x
Displays the contents of an NIS map.
exportfs -v >/tmp/exportfs.atxt
Print each directory or file name as it is exported or unexported
share >/tmp/share.atxt
Print each directory or file name as it is exported or unexported
cat /etc/hosts.allow
Lists machines that the host will accept a connection coming in
from (IP address)
cat /etc/hosts.deny
Lists machines that the host will NOT accept a connection coming in
from (IP address)
find / -name snmpd.conf -exec grep -l public {} \;
* omit everything to the right of “>” for output to screen
find snmpd config files where default password of public may exit
Putting it all together
"the usual suspects"
“the usual reasons”
netstat -a >/tmp/netstata.atxt
all sockets
netstat -in >/tmp/netstatin.atxt
show interface info
netstat -rv >/tmp/netstatrv.atxt
route table
nfs configs >/tmp/x.atxt
Solaris package manager
Pkginfo >/tmp/pkginfo.atxt
solaris look for installed packages
ps -aef >/tmp/psaef.atxt
show those processes
ps -aux >/tmp/psaux.atxt
more processes
rpm -qa >installed.pkgs.txt >/tmp/rpms.atxt
Linux display installed pkgs
showmount -e >/tmp/ex_mntpts.atxt
show exported mount points
swlist -l fileset >/tmp/hp_pkgs.atxt
hp look for installed pkgs
tail -300 /sr/adm/sulog >/tmp/sulog.atxt
last 300 lines of su log
uname -a >/tmp/uname.atxt
id the system
rpcinfo
Show rpc services running (portmapper dump) on
>/tmp/x.atxt
cat /etc/printcap.local
This file used to specify custom edited printers
ioscan
list hardware config
umask
display current umask settings
* omit everything to the right of
“>”
for output to screen
Some useful URLs:
ICAT Metabase and Secunia
http://icat.nist.gov/icat.cfm
and www.secunia.com
Common Vulnerabilities and Exposures
http://cve.mitre.org/
Rosetta Stone for Unix
http://bhami.com/rosetta.html
RPC port info
http://www.iss.net/security_center/advice/Exploits/Ports/RPC/default.htm
Download