Top Banner
1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux
52

1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Dec 28, 2015

Download

Documents

Polly Harris
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

1

ISEC0514Computer Systems Security

and Privacy

Lecture Notes #8Hardening UNIX/Linux

Page 2: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

UNIX Hacking

The most common target for a hacker is to get to user root, which can control everything on a UNIX server.

UNIX hacking include common footprinting and enumeration techniques. Gathering public information Port scanning Various enumeration techniques

These information leads to system compromise.

2

Page 3: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Gathering Public Information

Web sites Internal web sites External web sites

Public FTP server IP address information through whois

database DNS

Server addresses MX records Tools: host, nslookup, dig

google3

Page 4: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

DNS Information

4

[root@test ~]# host -l -a miss.comTrying "miss.com";; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14233;; flags: qr aa ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:;miss.com. IN AXFR

;; ANSWER SECTION:miss.com. 10800 IN SOA miss.com. admin.miss.com. ...miss.com. 10800 IN NS pentarget.miss.com.miss.com. 10800 IN MX 10 pentarget.miss.com.ns.miss.com. 10800 IN CNAME pentarget.miss.com.pentarget.miss.com. 10800 IN A 192.168.4.3pentest.miss.com. 10800 IN A 192.168.4.2www.miss.com. 10800 IN CNAME pentarget.miss.com.miss.com. 10800 IN SOA miss.com. admin.miss.com. ...

Page 5: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

DNS Hardening

DNS configuration can hardened (Bind - /etc/named.conf). Allow query to any clients. Allow transfer only to secondary servers. Allow recursion only to local clients.

5

options { ... allow-query { any; }; allow-transfer { localhost; 192.168.4.4; }; allow-recursion { localhost; 192.168.4.0/24; }; recursion yes; ...};

Page 6: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

DNS Hardening

Hardening result:

6

[root@test nfs]# host -l -a miss.comTrying "miss.com"; Transfer failed.Trying "miss.com"Host miss.com not found: 9(NOTAUTH)Received 40 bytes from 192.168.4.3#53 in 1 ms; Transfer failed.

Page 7: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Network Enumeration

traceroute Ping sweep Port scanning

7

Page 8: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Traceroute

Network topology can be found by using traceroute.

Firewall location may also be located.

8

[bash]$ traceroute example.comtraceroute to example.com (192.168.1.7), 30 hops max, 38 byte packets1 (10.1.1.1) 4.264 ms 4.245 ms 4.226 ms2 (10.2.1.1) 9.155 ms 9.181 ms 9.180 ms3 (192.168.10.90) 9.224 ms 9.183 ms 9.145 ms4 (192.168.10.33) 9.660 ms 9.771 ms 9.737 ms5 (192.168.10.217) 12.654 ms 10.145 ms 9.945 ms6 (192.168.11.173) 10.235 ms 9.968 ms 10.024 ms7 (192.168.12.97) 133.128 ms 77.520 ms 218.464 ms8 (192.168.13.78) 65.065 ms 65.189 ms 65.168 ms9 (192.168.14.252) 64.998 ms 65.021 ms 65.301 ms10 (192.168.100.130) 82.511 ms 66.022 ms 66.17011 www.example.com (192.168.1.7) 82.355 ms 81.644 ms 84.238 ms

Page 9: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Traceroute Countemeasures

You cannot block inbound traceroute from the outside network, since it can be any kind of IP packets.

However, you can block outbound ICMP TTL-exceeded (ICMP type 11), which is the response of the internal machines to the traceroute source.

9

Local Machines

AttackerFW

Any IP packets

ICMP TTL-exceeded

Page 10: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Ping Sweeps

Ping sweep can be done by sending ICMP-echo (type 8) from the outside and wait for ICMP-echo-reply (type 0).

Ping sweep can also be done by using other techniques, such as sending ICMP-info-request (type 15).

Tools: nmap fping hping2

10

Page 11: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Ping Sweeps

11

[root@test static]# ./icmpenumUSAGE: ./icmpenum [opts] [-c class C] [-d dev] [-i 1-3] [-s src] [-t sec] hosts ...-c class C in x.x.x.0 form -i icmp type to send/receive, types include the following: 1 echo/echo reply (default) 2 timestamp request/reply 3 info request/reply 4 mask request/reply -d device to grab local IP or sniff from, default is eth0 -s spoofed source address -t time in seconds to wait for all replies (default 5)[root@test static]# ./icmpenum -i 2 -i eth0 -c 192.168.4.1192.168.4.2 is up192.168.4.3 is up

Page 12: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Ping Sweep Countermeasures

Block ICMP echo and other unused types.

12

Page 13: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Port Scanners and OS Detection

Port scanning tools nmap strobe tcp_scan, udp_scan (part of SAINT) netcat (nc)

OS detection tools nmap queso

13

Page 14: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Detecting Port Scanners

There are several tools that can be used to detect port scanning activities. psad scanlogd (TCP only) Snort

Some software can also integrate with firewall, so that further scanning can be prevented.

14

Page 15: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Banner Grabbing

Possible information include Secure shell server software and

protocol version Mail server software

Tools telnet netcat amap vmap

15

Page 16: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Banner Grabbing

16

[root@test static]# telnet 192.168.4.3 22Trying 192.168.4.3...Connected to 192.168.4.3.Escape character is '^]'.SSH-2.0-OpenSSH_5.2

Protocol mismatch.Connection closed by foreign host.

[root@test static]# telnet 192.168.4.3 25220 relay.mut.ac.th ESMTP Sendmail 8.13.8/8.14.2; ...quit221 2.0.0 xxx.xxx.ac.th closing connection

Connection to host lost.

Page 17: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

FTP Enumeration An attacker may use any FTP client to scan directory

structure inside an FTP server to check whether you have any wrong permission settings in the server.

Most anonymous FTP server allows password to be any e-mail address.

If a world-writable directory is found, the attacker will have a way to upload (hack)tools to your server and find the way it execute it later.

If the FTP server software has security issues, the attacker may launch an exploit against it.

Successful exploit will give the attacker a user with FTP service privilege.

17

Page 18: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

SMTP Enumeration

SMTP server may be used to gain more information about users on the target machine.

SMTP special command like VRFY can be used to confirm valid usernames.

EXPN can be used to expand usernames in a mailing list.

18

Page 19: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

SMTP Enumeration

19

[root$]telnet 10.219.100.1 25Trying 10.219.100.1...Connected to 10.219.100.1.Escape character is '^]'.220 mail.example.com ESMTP Sendmail Tue, 15 Jul 2008vrfy root250 root <[email protected]>expn test250 test <[email protected]>expn mailing-list250 .... the whole list of subscribers ... quit221 mail.example.com closing connection

Page 20: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

TFTP Enumeration Trivial File Transfer Protocol (TFTP) is a UDP-

based protocol for unauthenticated “quick and dirty” file transfers.

TFTP runs on UDP port 69. TFTP is commonly used to transfer devices

ROM images and configuration backups/restores.

Configuration can have valuable information to the attacker, such as passwords or hashes of the network devices.

You should always block TFTP request from trusted addresses.

20

Page 21: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Finger Enumeration

On old UNIX servers, finger service may be running.

The attacker may get the list of logged-in users, as well as, valid user names.

Finger service is not common in modern UNIX anymore.

21

[root$]finger [email protected][192.168.202.34] Line User Host(s) Idle Location* 2 vty 0 idle 0 192.168.202.14

Page 22: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

RPC Enumeration

All RPC-based services must be registered to the RPC server.

Common RPC services include NIS and NFS.

rpcinfo command can be used to enumerate available services, service versions, and open ports.

RPC server itself runs on TCP and UDP port 111.

RPC server service is commonly referred to as rpcbind or portmapper.

22

Page 23: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

RPC Enumeration

23

[root@test static]# rpcinfo -p 192.168.4.3 program vers proto port service 100000 4 tcp 111 portmapper 100000 4 udp 111 portmapper 100024 1 udp 50626 status 100024 1 tcp 34440 status 100011 2 udp 875 rquotad 100011 2 tcp 875 rquotad 100021 4 udp 51211 nlockmgr 100021 4 tcp 49851 nlockmgr 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100005 2 udp 47214 mountd 100005 2 tcp 46771 mountd 100005 3 udp 47214 mountd 100005 3 tcp 46771 mountd

Page 24: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

R-cmd Enumeration R-commands are used in traditional UNIX to

support remote administration tasks. Authentication is controlled using a config file

called .rhosts in the home directory of the target user.

Common misconfiguration is to put a plus symbol (+) to be in the rhosts file. This allows every machine to remote control the target machine as the specified user.

R-commands include: rexec, rsh, rlogin, rcp. R-commands are not common in modern UNIX.

SSH should be used as replacement.

24

Page 25: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

R-cmd Enumeration

25

hammer$ cat .rhostsgryphon.csi.cam.ac.ukoneeye.csi.cam.ac.uk

gryphon$ rlogin hammer.thor Last login: Mon Oct 11 13:10:02 from gryphon.csi.cam.ac.uk Solaris Release 2.5 [hammer] Linux Redhat Release 4.2hammer$

gryphon$ rsh -l rjd4 hammer.thor.cam.ac.uk uname -n hammer.thor.cam.ac.uk

Page 26: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

NIS Enumeration

NIS data can be retrieved using ypcat and ypmatch command.

NIS data may be accessed remotely, but the attacker needs to know the NIS domain name.

26

[root@pentarget ~]# nisdomainnamemiss[root@pentarget ~]# ypcat passwdtestnis1:!!:1001:1001::/home/testnis1:/bin/bashtest1:!!:501:501::/home/test1:/bin/bashadmin:$6$OKCPxAVpdPN$pn...pVp8B6i.:500:500::/home/admin:/bin/bash[root@pentarget ~]# ypmatch admin passwdadmin:$6$OKCPxAVpdPN$pn...pVp8B6i.:500:500::/home/admin:/bin/bash[root@pentarget ~]#

Page 27: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Hardening NIS

Configure (/var/log/)securenets configuration files to allow NIS access only from NIS client machines.

Make NIS domain name harder to guess.

Note that NIS domain name can be found easily if you can log into the NIS client machine.

27

Page 28: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

NFS Enumeration

NFS exports can be remotely found by using showmount command.

NFS authentication, by default, is checked against IP address of the NFS client machines.

If the address is trusted, any UID supplied by the client will be trusted by the server too.

Any misconfiguration on the NFS exports may lead to system compromise.

nfsshell is another tool to interact with NFS server directly.

28

Page 29: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

NFS Attacks

29

[root@pentarget ~]# cat /etc/exports/home *(rw)/mnt pentarget.miss.com(rw)/usr *(ro)

[root@pentest static]# showmount -e 192.168.4.3Export list for 192.168.4.3:/usr */home */mnt pentarget.miss.com

Page 30: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

NFS Attacks

30

[root@pentest ~]# mount 192.168.4.3:/home /mnt[root@pentest ~]# ls -l /mnttotal 12drwx------. 26 admin admin 4096 2010-02-18 16:05 admindrwx------. 6 501 501 4096 2010-02-16 15:22 test1[root@pentest ~]# useradd -u 501 hoho[root@pentest ~]# id hohouid=501(hoho) gid=501(hoho) groups=501(hoho)[root@pentest ~]# su - hoho[hoho@pentest test1]$ cd /mnt/test1[hoho@pentest test1]$ mkdir .ssh[hoho@pentest test1]$ cd .ssh[hoho@pentest .ssh]$ cp ~/.ssh/id_rsa.pub authorized_keys[hoho@pentest .ssh]$ chmod 644 authorized_keys[hoho@pentest .ssh]$ chmod 700 .

Page 31: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

NFS Attacks

31

[hoho@pentest .ssh]$ ls -latotal 12drwx------. 2 hoho hoho 4096 2010-02-18 17:29 .drwx------. 7 hoho hoho 4096 2010-02-18 17:28 ..-rw-r--r--. 1 hoho hoho 403 2010-02-18 17:29 authorized_keys[hoho@pentest .ssh]$ ssh-agentSSH_AUTH_SOCK=/tmp/ssh-jGbArm2818/agent.2818; export SSH_AUTH_SOCK;SSH_AGENT_PID=2819; export SSH_AGENT_PID;echo Agent pid 2819;[hoho@pentest .ssh]$ SSH_AUTH_SOCK=/tmp/ssh-jGbArm2818/agent.2818; export SSH_AUTH_SOCK;[hoho@pentest .ssh]$ SSH_AGENT_PID=2819; export SSH_AGENT_PID;

Page 32: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

NFS Attacks

32

[hoho@pentest .ssh]$ ssh-addEnter passphrase for /home/hoho/.ssh/id_rsa:Identity added: /home/hoho/.ssh/id_rsa (/home/hoho/.ssh/id_rsa)[hoho@pentest .ssh]$ ssh -l test1 192.168.4.3...Last login: Tue Feb 16 15:24:27 2010 from 192.168.4.2[test1@pentarget ~]$ iduid=501(test1) gid=501(test1) groups=501(test1)

Page 33: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Hardening NFS

Only export file systems to trusted machines. Export file systems read-only if possible. Use root ownership of exported files and

directories. Do not export the server's executables. Always use showmount command to double-

check that you configure it securely. Do not allow users to log into the NFS server. Use TCP_Wrappers to block NFS access, if

possible.

33

Page 34: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

X-Windows Security

X-Windows allows many privileges to remote access including: Capture keystrokes Kill windows Capture windows Remap keyboard keys

X access control is xhost authentication. Xhost authentication is IP-based. Most users

simple type “xhost +” to allow access. This means that anyone can access the X-

Windows system on the server.

34

Page 35: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

X-Windows Security

xscan can be used to scan for X-Windows access on the networks.

xlsclients list all windows on a display xkill kills any window. xwd dumps a screen to a file. xwud displays a image created by xwd.

35

Page 36: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

X-Windows Security

36

[testnis1@pentarget ~]$ iduid=1001(testnis1) gid=1001(testnis1) groups=1001(testnis1)[testnis1@pentarget ~]$ xlsclientsxlsclients: unable to open display ""

[admin@pentarget ~]$ xhost +Access control disabled, clients can connect from any host[admin@pentarget ~]$

Page 37: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

X-Windows Security

37

[testnis1@pentarget ~]$ xlsclients -display :0.0 –l...Window 0xe00001: Machine: pentarget.miss.com Name: Terminal Icon Name: gnome-terminal Command: gnome-terminal Instance/Class: gnome-terminal/Gnome-terminalWindow 0x4200001: Machine: pentarget.miss.com Name: Firefox Icon Name: firefox Command: firefox Instance/Class: firefox/Firefox...[testnis1@pentarget ~]$ xkill -display :0.0 -id 0x4200001xkill: killing creator of resource 0x4200001

Page 38: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Vulnerability Mapping

After gaining security information on the server, a hacker can manually map it to get potential vulnerabilities.

This process is called vulnerability mapping which can be done by: Manually map gathered information to find

potential vulnerabilities. Public and proof-of-concept exploits can be

used to test whether vulnerabilities can successfully exploited.

Use vulnerability scanners to find potential exploits, but this is noisy.

38

Page 39: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Vulnerability Mapping

Script kiddies simply skip vulnerability mapping process, and shoot everything at the target.

It’s common to get windows exploits targeting UNIX/Linux servers.

39

Page 40: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Vulnerability Mapping

Common vulnerability mapping process include: Perform network reconnaissance against the

target system. Map attributes such as operating system,

architecture, and specific versions of listening services to known vulnerabilities and exploits.

Perform target acquisition by identifying and selecting key systems.

Enumerate and prioritize potential points of entry.

40

Page 41: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

System Access

There are two type of gaining access to a UNIX/Linux server. Remote access is done by gaining

access via the network or communication channel.

Local access is done by having actual command shell and escalating to a higher privileges. This is usually called privilege escalation attacks.

41

Page 42: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

System Access

Remote access and local access are related.

Attackers remotely exploit a vulnerability in a listening service and then gaining local shell access.

Once shell access is obtained, the attackers are considered to be local on the system.

Then, attackers escalate their local privileges to root.

42

Page 43: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Brute-Force Attack

Password brute-force attack can be conducted on several services including: telnet ftp R-commands Secure shell (SSH) POP3, IMAP HTTP, HTTPS CVS/SVN

43

Page 44: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Brute-Force Attack

Tools: Hydra ADM-pop.c SNMPBrute

44

Page 45: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Brute-Force Attack Countermeasures

Use strong passwords by enforcing password policy.

This can be done setting configurations and additional software Cracklib System configurations

/etc/security/login.conf PAM

45

Page 46: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Brute-Force Attack Countermeasures

In addition to general password strength recommendations, Log multiple authentication failures. Implement account lockout where

possible (beware of DoS attack). Disable unused services. Use stronger authentication when

possible, for example One-time password (OTP). public key authentication. Security tokens.

46

Page 47: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Attacks from Bad Coding

Attacks from bad coding behavior include: Buffer overflow attacks Format string attacks Weak input validation Integer overflow and integer sign

attacks Dangling pointer attacks

47

Page 48: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Countermeasures

Always update software with security patches.

Beware of obsolete software. Use secure coding practices. Conduct software audits regularly. Disable unused services.

48

Page 49: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Stack Protection

Administrators may disable stack execution to lower chances of getting attacked by stack overflow techniques.

This can be done by modify settings in proper (OS-dependent) configuration files. Solaris: /etc/system Linux: depends on distributions

This does not prevent other similar techniques, such as heap overflow.

49

Page 50: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Generic UNIX Protection For all UNIX machines, following protection

measures can be done: Separate networks for UNIX servers from clients. Using TCP_Wrappers. Enable host-based firewall. Consider what traffic should pass firewall.

RPC traffic can remain inside DMZ. Enforce password policy. Do not share admin accounts. Centralize logs to a log server (syslog). Disable root login (except for recovery). Implement sudo.

Letting users perform tasks as root or privileged user.

50

Page 51: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Separate Server Networks

DMZ should be implemented to separate public and private machines.

51

Page 52: 1 ISEC0514 Computer Systems Security and Privacy Lecture Notes #8 Hardening UNIX/Linux.

Reference

Hacking Exposed 6th edition. 9780071613743 Chapter 2,3,5

52