CEH v11 Hacking Lab – Module 4 Enumeration +

Trong bài hướng dẫn hacking & pentest với Metasploit này các bạn sẽ liệt kê máy ảo Metasploitable 2 để thu thập thông tin hữu ích cho việc đánh giá lỗ hổng. Kiến thức này tương ứng với chương 4/19 của CEH và thuộc chương 5 trong PENTEST + Study Guide.

Phép liệt kê trong toán học hoặc khoa học máy tính được gọi là liệt kê một số phần tử trong một tập hợp. Còn Liệt Kê hay ENUM trong bối cảnh tấn công là quá trình truy xuất tên người dùng, chia sẻ, dịch vụ, thư mục web, nhóm, máy tính trên mạng. Đây còn được gọi là kiểu liệt kê mạng. Trong quá trình này, chúng ta sẽ thu thập các thông tin hữu ích khác liên quan đến mạng để tiến hành thử nghiệm thâm nhập. Một phần quan trọng của quy trình liệt kê Metasploitable 2 là quy trình quét cổng và lấy dấu vân tay. Quét cổng được sử dụng để thăm dò máy chủ hoặc máy chủ để tìm các cổng TPC và UDP đang mở. Lấy dấu vân tay là quá trình xác định các dịch vụ được kết nối với các cổng đó. 

Một công cụ rất phổ biến được sử dụng để liệt kê mạng, quét cổng và lấy dấu vân tay là NMap (Network Mapper) mà chúng ta sẽ sử dụng trong suốt hướng dẫn này. Các bạn cũng sẽ sử dụng một công cụ liệt kê rất mạnh mẽ và hữu ích có tên là enum4linux. Enum4linux là một công cụ được sử dụng để liệt kê thông tin từ các máy chủ Windows và Samba.

Sau khi chúng ta tiến hành liệt kê thành công máy ảo Metasploitable 2, các bạn sẽ thực hiện đánh giá lỗ hổng về phía mạng trong hướng dẫn tiếp theo. Với thông tin được lấy từ quá trình điều tra, ví dụ như phiên bản hệ điều hành và các dịch vụ đang chạy ta sẽ tìm kiếm các lỗ hổng trong các dịch vụ này. Các bạn sẽ sử dụng Cơ sở dữ liệu về lỗ hổng bảo mật nguồn mở (OSVDB) và Lỗ hổng bảo mật phổ biến và mức độ phơi nhiễm (CVE) cho mục đích này. Bước cuối cùng là quét máy chủ đích để tìm các lỗ hổng này bằng trình quét lỗ hổng có tên OpenVAS trên Kali Linux.

Liệt kê Metasploitable 2 và Quét Cổng

Trong phần hướng dẫn liệt kê Metasploitable 2, chúng ta sẽ liệt kê các dịch vụ, tài khoản đang chạy và thực hiện quét cổng đang mở.Các bạn sẽ sử dụng NMap để quét máy ảo để tìm các cổng đang mở và lấy dấu vết các dịch vụ được kết nối. Trong bài tập này, chúng ta chỉ tập trung vào việc liệt kê mạng của máy Metasploitable 2. Chúng ta sẽ thực hành và khai thác về khía cạnh web trong một hướng dẫn khác, nơi chúng ta sẽ liệt kê các ứng dụng và thư mục web, thực hiện các cuộc tấn công chèn SQL và khai thác các dịch vụ web dễ bị tấn công.

Tôi cho rằng bạn đã có cài đặt máy ảo Metasploitable  từ hướng dẫn trước và nếu bây giờ nó không chạy thì đã đến lúc khởi động nó. 

Hãy xem lại hướng dẫn chạy Pentest Lab hay Your Hacking Lab nếu cần thiết

Khi bạn đăng nhập vào máy chủ dễ bị tấn công bằng msfadmin làm tên người dùng và mật khẩu, bạn có thể sử dụng lệnh ifconfig để xác định địa chỉ IP của nó. Bạn cũng có thể sử dụng netdiscover trên máy Kali linux để quét một loạt địa chỉ IP cho máy chủ đích. Sử dụng lệnh sau trên thiết bị đầu cuối:

netdiscover –r 192.168.111.0/24

Lệnh này sẽ trả về tất cả máy chủ lưu trữ trực tiếp trên dải IP nhất định, trong ví dụ này, nó sẽ là dải 192.168.111.0/24 bao gồm IP 192.168.111.0 đến 192.168.111.255. Tất nhiên, bạn nên quét dải IP mà bản cài đặt máy ảo Metasploitable 2 của bạn nằm trên mạng của riêng bạn.

Netdiscover -r 192.168.111.0/24 phát hiện tất cả các địa chỉ IP trong dải đã cho.

Quét cổng Nmap và quét dịch vụ

Ta sẽ bắt đầu quá trình quét cổng mở bằng cách quét máy chủ đích bằng NMap. Chúng tôi sẽ quét TCP SYN cho mục đích này và quét mục tiêu cho các cổng UDP đang mở. Quét SYN được gọi là quét cổng lén lút vì nó không kết thúc quá trình bắt tay TCP đầy đủ. Một kết nối TCP đầy đủ bắt đầu với một kiểu bắt tay ba chiều trong đó gói SYN được gửi bởi NMap như là phần đầu tiên của quá trình bắt tay. Khi một cổng trên máy đích đang mở, nó sẽ phản hồi bằng gói SYN-ACK. Khi không có phản hồi nào từ đích trên gói SYN đầu tiên, cổng đó đã bị đóng hoặc bị lọc bởi tường lửaBước thứ 3 trong quá trình này là máy chủ sẽ phản hồi SYN-ACK bằng một gói ACK để hoàn tất quá trình bắt tay TCP đầy đủTrong trường hợp quét SYN, nó không bao giờ hoạt động và do đó được gọi là lén lút.

Khi bạn bắt đầu quét SYN (và bất kỳ quá trình quét cổng nào khác) từ NMap mà không chỉ định phạm vi cổng thì NMap sẽ chỉ quét 1.000 cổng đầu tiên được coi là cổng quan trọng nhất thay vì tất cả 65.535 cổng. Để quét tất cả các cổng, bạn phải sử dụng cờ -p-. Lệnh quét Nmap SYN sử dụng cờ -sS như được sử dụng trong lệnh sau để quét SYN cổng 1 đến cổng 65.535:

nmap -sS -p- [taget IP address]

Hướng dẫn quét NMap SYN Metasploitable

Quá trình quét SYN không hoàn thành quá trình bắt tay TCP ba cách vì gói SYN / ACK không được phản hồi với gói ACK.

Quét Nmap SYN thường được gọi là quét lén lút, ngụ ý rằng nó không được chú ý. Điều này đúng với các tường lửa cũ, chỉ ghi các kết nối TCP đầy đủ, nhưng không đúng cho các tường lửa hiện đại cũng ghi các kết nối TCP chưa hoàn thành. Sau đây là một ví dụ về nmap :

Các cổng mở có dễ bị tấn công không?

Chỉ vì một cổng đang mở không có nghĩa là phần mềm bên dưới dễ bị tấn công. Chúng ta cần biết phiên bản của hệ điều hành và các dịch vụ đang chạy. Với thông tin này, chúng tôi có thể xác định xem có lỗ hổng bảo mật nào được khai thác hay không. Kết quả quét dịch vụ và hệ điều hành sẽ cung cấp cho chúng tôi thông tin phù hợp để điều tra thêm trong quá trình đánh giá lỗ hổng. Để có được thông tin này, chúng tôi sẽ chạy quét cổng với tùy chọn -sV để phát hiện phiên bản và tùy chọn –O để phát hiện hệ điều hành để truy xuất phiên bản của các dịch vụ đang chạy và hệ điều hành. Quá trình quét Hệ điều hành và Phiên bản Nmap hoàn thành quá trình bắt tay TCP đầy đủ và sử dụng các kỹ thuật như lấy biểu ngữ để lấy thông tin từ các dịch vụ đang chạy.

Bạn cũng có thể sử dụng tùy chọn –A thay vì –O để bật tính năng Phát hiện hệ điều hành, phát hiện phiên bản, quét tập lệnh và theo dõi lộ trình cùng một lúc. Đây không phải là cách quét lén lút.

Dịch vụ Nmap quét với phát hiện hệ điều hành

Sử dụng lệnh sau để bắt đầu quét cổng Nmap với phát hiện dịch vụ và hệ điều hành:

Nmap –sS –sV -O [địa chỉ IP mục tiêu]

Sau khi chạy lệnh này, NMap sẽ trả về danh sách các cổng đang mở và các dịch vụ được kết nối:Metasploitable 2 Enumeration - quét cổng nmap

Quét 2 cổng Metasploitable với dịch vụ và quét hệ điều hành

Việc quét cổng và dịch vụ Nmap trả về rất nhiều cổng đang mở, các dịch vụ lắng nghe và phiên bản của hệ điều hành. Máy chủ đích đang chạy hệ điều hành Linux 2.6.9 – 2.6.33. Chúng ta có thể thấy rằng máy chủ đang chạy dịch vụ SSH bằng OpenSSH, một dịch vụ telnet, một máy chủ web Apache 2.2.8, 2 máy chủ SQL và một số dịch vụ khác. Hãy tổng hợp tất cả các dịch vụ với phiên bản và cổng trong một danh sách mà chúng tôi đang sử dụng trong chương tiếp theo, nơi chúng tôi sẽ thực hiện đánh giá lỗ hổng và tìm kiếm các lỗ hổng phổ biến:

  • Vsftpd 2.3.4 trên cổng mở 21
  • OpenSSH 4.7p1 Debian 8ubuntu 1 (giao thức 2.0) trên cổng mở 22
  • Dịch vụ telnetd Linux trên cổng mở 23
  • Postfix smtpd trên cổng 25
  • ISC BIND 9.4.2 trên cổng mở 53
  • Apache httpd 2.2.8 Ubuntu DAV / 2 trên cổng 80
  • Dịch vụ RPCbind trên cổng 111
  • Samba smbd 3.X trên cổng 139 và 445
  • 3 dịch vụ trên cổng 512, 513 và 514
  • GNU Classpath grmiregistry trên cổng 1099
  • Vỏ gốc Metasploitable trên cổng 1524
  • Một dịch vụ NFS trên cổng 2049
  • ProFTPD 1.3.1 trên cổng 2121
  • MySQL 5.0.51a-3ubuntu5 trên cổng 3306
  • PostgreSQL DB 8.3.0 – 8.3.7 trên cổng 5432
  • Giao thức VNC v1.3 trên cổng 5900
  • Dịch vụ X11 trên cổng 6000
  • Unreal ircd trên cổng 6667
  • Giao thức Apache Jserv 1.3 trên cổng 8009
  • Apache Tomcat / Coyote JSP engine 1.1 trên cổng 8180

Các dịch vụ đang chạy được quét bởi Nmap có thể bị tấn công ! Nếu chúng có lỗi bảo mật và chưa được vá …

Tất nhiên chúng ta biết máy ảo Metasploitable 2 sinh ra để bị hack. Vì vậy, người ta chỉ có thể nghi ngờ rằng hầu hết, nếu không phải tất cả, các dịch vụ đều chứa lỗ hổng bảo mật, cửa hậu, v.v. Trong hướng dẫn hack này, chúng tôi sẽ chỉ đề cập đến các chiến thuật liệt kê, quét cổng và đánh giá lỗ hổng về phía mạng. Trong các hướng dẫn về Metasploitable tiếp theo, chúng tôi sẽ khai thác các lỗ hổng. Hãy tiếp tục với việc liệt kê người dùng.

Quét Nmap UDP

Cho đến nay, chúng ta chỉ quét các cổng TCP đang mở, là cổng mặc định cho Nmap, chứ không phải cho các cổng UDP đang mở. Hãy sử dụng lệnh sau để bắt đầu quét UDP:

nmap -sU 192.168.111.128

Chúng ta cũng có thể sử dụng cờ -p để xác định các cổng được quét. Quá trình quét UDP sẽ mất nhiều thời gian hơn để hoàn thành so với quá trình quét TCP. Nmap trả về thông tin sau về các cổng UDP đang mở mà nó đã tìm thấy:

PORT STATE SERVICE
53 / udp open domain
111 / udp open rpcbind
137 / udp open netbios-ns
2049 / udp open nfs

Lưu ý rằng quét UDP có thể gây ra rất nhiều kết quả dương tính giả. Kết quả dương tính giả có thể xảy ra vì UDP thiếu gói tương đương với TCP SYN. Khi một cổng UDP đã quét bị đóng, hệ thống sẽ phản hồi bằng một thông báo không thể truy cập cổng ICMP. Sự vắng mặt của gói như vậy cho thấy rằng cổng UDP đang mở cho nhiều công cụ quét. Khi có tường lửa trên máy chủ đích chặn thông báo không thể truy cập ICMP thì tất cả các cổng UDP dường như đang mở. Khi tường lửa chặn một cổng, máy quét cũng sẽ báo sai rằng cổng đó đang mở.

Bảng liệt kê người dùng Metasploitable 2

Liệt kê người dùng là một bước quan trọng trong mọi thử nghiệm thâm nhập và cần được thực hiện rất kỹ lưỡng. Với tính năng liệt kê người dùng, trình kiểm tra thâm nhập có thể xem những người dùng nào có quyền truy cập vào máy chủ và những người dùng nào tồn tại trên mạng. Một mục đích khác của việc liệt kê người dùng là để có được quyền truy cập vào máy bằng cách sử dụng các kỹ thuật bạo lực. Vì tên người dùng đã được biết đến với người kiểm tra thâm nhập, điều duy nhất còn lại để bạo lực là mật khẩu. Có nhiều cách để liệt kê người dùng trên hệ thống Linux. Chúng ta sẽ xem xét 2 phương pháp khác nhau:

  1. Liệt kê người dùng bằng tập lệnh Nmap có tên smb-enum-users.
  2. Liệt kê người dùng thông qua các phiên rỗng bằng cách sử dụng rpclient.

Hãy bắt đầu với việc liệt kê người dùng bằng cách sử dụng tập lệnh NMap.

Liệt kê người dùng với NMap

Để liệt kê các tài khoản người dùng có sẵn trên máy đích, chúng tôi sẽ sử dụng tập lệnh Nmap sau: smb-enum-users. Chúng ta có thể chạy tập lệnh NMap bằng cách sử dụng lệnh sau:

nmap –script smb-enum-users.nse –p 445 [máy chủ đích]

Đầu ra tập lệnh là một danh sách dài những người dùng có sẵn trên máy chủ:

Liệt kê Metasploitable 2 - Liệt kê người dùng nmap samba

Như bạn có thể thấy, có rất nhiều tên người dùng trên máy Metasploitable 2. Trong số đó có rất nhiều tài khoản dịch vụ và tài khoản quản trị có tên msfadmin. Hãy xem phương pháp thứ hai để truy xuất danh sách tài khoản người dùng từ máy chủ Metasploitable 2 bằng cách sử dụng phiên rỗng trên máy chủ Samba.

Liệt kê tài khoản người dùng thông qua các phiên rỗng (null session) với rpcclient

Rpcclient là một công cụ Linux được sử dụng để thực thi các chức năng MS-RPC phía máy khách. Phiên rỗng là kết nối với máy chủ samba hoặc SMB không yêu cầu xác thực bằng mật khẩu. Không cần tên người dùng hoặc mật khẩu để thiết lập kết nối và do đó nó được gọi là phiên rỗng. Việc cho phép phiên rỗng được bật theo mặc định trên các hệ thống kế thừa nhưng đã bị vô hiệu hóa từ Windows XP SP2 và Windows Server 2003. Kết nối sử dụng cổng 445 là một cổng mở trên máy chủ đích như chúng ta đã thấy trong kết quả của cổng quét.

Hãy mở một cửa sổ đầu cuối mới và thiết lập phiên rỗng với máy chủ samba Metasploitable 2 bằng lệnh sau:

rpcclient –U “” [địa chỉ IP mục tiêu]

Tùy chọn –U xác định tên người dùng rỗng, theo sau là địa chỉ IP của máy ảo Metasploitable 2. Bạn sẽ được yêu cầu nhập mật khẩu, chỉ cần nhấn enter để tiếp tục:Metasploitable 2 Enumeration - phiên rỗng với rpcclient

Bắt đầu một phiên trống bằng cách sử dụng rpcclient

Dòng lệnh sẽ thay đổi thành ngữ cảnh rpcclient được chỉ ra bởi rcpclient $> trên dòng lệnh. Bây giờ hãy chạy lệnh sau trong ngữ cảnh rpcclient:

rcpclient $> querydominfo

Metasploitable 2 Enumeration - querydominfo rpcclient

querydominfo

Lệnh querydominfo trả về tên miền, máy chủ, tổng số người dùng trên hệ thống và một số thông tin hữu ích khác. Kết quả cho chúng ta thấy có tổng cộng 35 tài khoản người dùng có sẵn trên hệ thống mục tiêu. Bây giờ hãy chạy lệnh sau để truy xuất danh sách 35 người dùng này:

rcpclient $> enumdomusers

Bảng kê Metasploitable 2 - Rpcclient enumdomusers

enumdomusers

Kết quả là danh sách tất cả các tài khoản người dùng có trên hệ thống. Bây giờ chúng ta biết tài khoản người dùng nào có sẵn trên máy chủ, chúng ta có thể sử dụng rpcclient để truy vấn thông tin người dùng để biết thêm thông tin bằng cách sử dụng lệnh sau:

rcpclient $> người dùng truy vấn [tên người dùng]

Hãy truy vấn thông tin người dùng cho tài khoản msfadmin bằng lệnh sau:

rcpclient $> người dùng truy vấn msfadmin

Thao tác này sẽ trả về thông tin về đường dẫn hồ sơ trên máy chủ, ổ đĩa chính, cài đặt liên quan đến mật khẩu và nhiều hơn nữa. Đây là thông tin tuyệt vời có thể được truy vấn mà không cần quyền truy cập của quản trị viên! Nếu bạn muốn tìm hiểu thêm về cách sử dụng rpcclient, chỉ cần nhập lệnh trợ giúp để biết tổng quan về các tùy chọn có sẵn.

Sử dụng lệnh netshareenum trên Metasploitable 2 để liệt kê các chia sẻ mạng của nó.

Liệt kê với enum4linux

Enum4linux được sử dụng để liệt kê các máy chủ Windows và Samba và được viết bằng Perl. Về cơ bản, công cụ này là một trình bao bọc cho smbclient, rpcclient, net và nmblookup. Chúng ta hãy xem cách sử dụng enum4linux và chạy nó trên Metasploitable 2. Dưới đây là các tùy chọn phổ biến nhất được sử dụng trong enum4linux. Để có cái nhìn tổng quan về các tùy chọn khác nhau, hãy sử dụng cờ –help.

Cách sử dụng: ./enum4linux.pl [tùy chọn] ip

-U lấy
danh sách người dùng
-lấy danh sách máy * -S nhận danh sách chia sẻ
-P lấy thông tin chính sách mật khẩu
-G lấy nhóm và danh sách thành viên
-d được chi tiết, áp dụng cho -U và -S
-u người dùng chỉ định tên người dùng để sử dụng (mặc định là “” )
-p pass chỉ định mật khẩu để sử dụng (mặc định “”
-a Thực hiện tất cả các phép liệt kê đơn giản (-U -S -G -P -r -o -n -i).
-để nhận thông tin hệ điều hành
-i Lấy thông tin máy in

Hãy chạy enum4linux trên Metasploitable 2 với tất cả các tùy chọn bằng lệnh sau:

enum4linux 192.168.111.128

Sau khi enum4linux hoàn thành, nó trả về cho chúng ta rất nhiều thông tin hữu ích. Chúng tôi đã có một cái nhìn tổng quan về các chia sẻ có sẵn trên máy chủ mục tiêu của chúng tôi:enumeration enum4linux chia sẻ

enum4linux chia sẻ

Và cũng là tổng quan về những người dùng hiện có:

liệt kê người dùng enum4linux

người dùng enum4linux

Và các thông tin sau về hệ thống hoạt động:enumeration enum4linux OS

thông tin hệ điều hành enum4linux

Cho đến nay, chúng tôi đã thu thập thông tin về hệ điều hành, tài khoản người dùng, các cổng đang mở và các dịch vụ đang chạy với số phiên bản trong hướng dẫn liệt kê Metasploitable 2 này. Chúng tôi cũng thu thập thông tin về chính sách mật khẩu (không có chính sách nào), điều này đặt ra câu hỏi về độ mạnh của mật khẩu đã sử dụng mà chúng tôi sẽ điều tra trong giai đoạn khai thác. Chúng tôi đã sử dụng các công cụ như Nmap, rpcclient và enum4linux để thu thập tất cả thông tin này. Hiện tại, chúng tôi có thể sử dụng thông tin này để đánh giá lỗ hổng bảo mật mà chúng tôi sẽ thực hiện trong hướng dẫn Metasploit tiếp theo. 

Biên soạn : Đông Dương

Classroom : CEH V11 / PENTEST + / PRE-OSCP

Admin : Đại Ngọc Sơn


Trả lời

Bạn cần phải đăng nhập để gửi bình luận:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s

%d người thích bài này: