Làm thế nào để có thể xâm nhập vào bất kỳ máy Linux nào thông qua grub2 an toàn?


52

Làm thế nào khả năng của một người có quyền truy cập vật lý vào máy tính của bạn để có quyền root với các bước đó theo bất kỳ cách nào an toàn?

  1. Khi menu grub2 mở, nhấn e để chỉnh sửa các tùy chọn khởi động Linux
  2. Thay đổi:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    đến:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. Bây giờ bạn có quyền truy cập root chỉ cần làm:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. khởi động lại máy tính và bạn thắng.

Câu hỏi của tôi là, làm thế nào để có thể xâm nhập vào bất kỳ máy Linux nào thông qua grub2 an toàn? Tôi không hiểu thực tế về Linux, cảm ơn bạn đã trả lời.


51
Ai nói truy cập vật lý cần phải được thực hiện? Khi ai đó có quyền truy cập vật lý -ALL- cược là -OFF-. Chủ sở hữu của một máy nên -ALWAYS- có quyền truy cập vào máy của mình khi anh ta ở bên cạnh. Nếu không, nó sẽ có thể gạch nó mà không có cách nào để phục hồi.
Rinzwind

7
và bạn có thể phàn nàn về điều này: nhưng làm thế nào về việc gắn một dvd / usb trực tiếp vào hệ thống? Hoặc lấy đĩa ra, đặt vào máy khác và ddlấy đĩa? Và "linux"? Hoạt động cho các hệ thống khác sử dụng grub quá ... mặt khác ... khi cửa sổ bị hỏng ... có lẽ bạn chỉ có thể định dạng hệ thống: P
Rinzwind

10
Để được bảo mật hoàn toàn, bạn cần giải pháp này
Anwar

5
Ôi không có kỷ niệm nào! @Clutchy phát hiện ra bí mật của chúng tôi. Tất cả chúng ta phải uống viên nang xyanua ngay bây giờ.
paulzag

3
@paulzag Hiểu rồi, tôi sẽ kích hoạt cơ chế tự hủy phòng máy chủ. Vinh quang cho RMS!
Kaz Wolfe

Câu trả lời:


108

Làm thế nào khả năng một người có quyền truy cập vật lý vào máy tính của bạn có thể root [sử dụng Grub / Bash] theo cách nào an toàn?

Bởi vì nếu Linux quyết định bắt đầu làm điều đó, tin tặc sẽ chỉ khai thác các lỗ hổng bảo mật khác. Nguyên tắc bảo mật đầu tiên là nếu tôi có quyền truy cập vật lý vào hệ thống của bạn, trò chơi sẽ kết thúc. Tôi đã giành được.

Ngoài ra, hãy tưởng tượng máy chủ X của bạn bị hỏng và bạn không có GUI nữa. Bạn cần khởi động vào bảng điều khiển phục hồi để sửa chữa mọi thứ, nhưng bạn không thể, vì điều đó không an toàn. Trong trường hợp này, bạn bị bỏ lại với một hệ thống hoàn toàn bị hỏng, nhưng này, ít nhất thì nó "an toàn!"

Nhưng Kaz, làm sao điều này có thể? Tôi đặt mật khẩu trên Grub của mình để bạn không thể đổi tôi initthành Bash!

Oh, bạn đã làm, phải không? Thú vị, bởi vì điều này trông giống như album ảnh của bạn. GRUB không có bất kỳ yếu tố bảo mật cố hữu nào cả. Nó chỉ là một bộ tải khởi động , không phải là một bước trong chuỗi xác thực và khởi động an toàn. Trên thực tế, "mật khẩu" bạn đã thiết lập là khá dễ bỏ qua.

Điều đó, và những gì sysadmin không mang ổ đĩa khởi động cho chúng trong trường hợp khẩn cấp?

Nhưng bằng cách nào?! Bạn không biết mật khẩu của tôi (hoàn toàn không phải P@ssw0rdbtw)

Vâng, nhưng điều đó không ngăn tôi mở máy tính của bạn và rút ổ cứng của bạn. Từ đó, chỉ cần một vài bước đơn giản để gắn ổ đĩa của bạn vào máy tính của tôi, cho phép tôi truy cập vào tất cả hệ thống của bạn. Điều này cũng có lợi ích tuyệt vời của việc bỏ qua mật khẩu BIOS của bạn. Điều đó, hoặc tôi có thể vừa thiết lập lại CMOS của bạn. Hoặc / hoặc.

Vậy ... làm thế nào để tôi không cho phép bạn truy cập vào dữ liệu của tôi?

Đơn giản. Giữ máy tính của bạn xa tôi. Nếu tôi có thể chạm vào nó, truy cập bàn phím, chèn ổ đĩa flash của riêng tôi hoặc tách nó ra, tôi có thể giành chiến thắng.

Vì vậy, tôi có thể thích đặt máy tính của mình vào trung tâm dữ liệu hay không? Đó là khá an toàn, phải không?

Vâng, họ là. Nhưng, bạn đang quên rằng con người cũng có thể hack được, và có đủ thời gian và sự chuẩn bị, tôi có thể vào trung tâm dữ liệu đó và rút tất cả dữ liệu ngọt ngào đó ra khỏi máy tính của bạn. Nhưng tôi lạc đề. Chúng tôi đang giải quyết các giải pháp thực sự ở đây.

Được rồi, vì vậy bạn gọi là vô tội vạ của tôi. Tôi không thể đặt nó trong một trung tâm dữ liệu. Tôi chỉ có thể mã hóa thư mục nhà của tôi hoặc một cái gì đó?

Chắc chắn, bạn có thể! Đó là máy tính của bạn! Nó sẽ giúp ngăn chặn tôi? Không một chút nào. Tôi chỉ có thể thay thế một cái gì đó quan trọng, như /usr/bin/firefoxvới chương trình độc hại của riêng tôi. Lần tới khi bạn mở Firefox, tất cả dữ liệu bí mật của bạn sẽ được rút ra cho một số máy chủ bí mật ở đâu đó bí mật. Và bạn thậm chí sẽ không biết. Hoặc, nếu tôi có quyền truy cập thường xuyên vào máy của bạn, tôi chỉ có thể thiết lập thư mục nhà của bạn để được sao chép vào /usr/share/nonsecrets/home/hoặc bất kỳ vị trí tương tự (không được mã hóa) nào.

Được rồi, những gì về mã hóa toàn bộ đĩa?

Điều đó ... thực sự khá tốt. Tuy nhiên, nó vẫn chưa hoàn hảo! Tôi luôn có thể thực hiện Cold Boot Attack bằng cách sử dụng bình khí nén đáng tin cậy của mình. Hoặc, tôi chỉ có thể cắm một keylogger phần cứng vào máy tính của bạn. Một cái rõ ràng dễ hơn cái kia, nhưng cách không thực sự quan trọng.

Trong mênh mông đa số trường hợp, đây là một nơi dừng tốt. Có thể ghép nối nó với TPM (thảo luận bên dưới) và bạn là vàng. Trừ khi bạn tức giận với một đại lý gồm ba chữ cái hoặc một hacker rất có động lực, không ai sẽ trải qua nỗ lực cần thiết trong giai đoạn này.

Tất nhiên, tôi vẫn có thể giúp bạn cài đặt một số phần mềm độc hại / backtime bằng cách cung cấp cho bạn một PPA hoặc tương tự, nhưng điều này sẽ đi vào khu vực rất âm u của niềm tin người dùng.

Vậy ... iPhone an toàn đến mức nào? Ngay cả với quyền truy cập vật lý, bạn cũng không thể làm được gì nhiều.

Vâng, có và không. Ý tôi là, nếu tôi có đủ động lực, tôi có thể đọc chip flash và lấy mọi thứ tôi cần. Tuy nhiên, iPhone về cơ bản là khác nhau vì chúng là một nền tảng bị khóa hoàn toàn. Nhưng, đồng thời, bạn thực sự hy sinh khả năng sử dụng và khả năng phục hồi sau những thất bại thảm hại. GRUB (trừ khi được thiết kế rất đặc biệt) không có nghĩa là một chuỗi trong hệ thống bảo mật. Trên thực tế, hầu hết các hệ thống Linux đều có chuỗi bảo mật của chúng bắt đầu hậu khởi động, vì vậy sau khi GRUB hoàn thành công việc của mình.

Thêm vào đó, iPhone có chức năng thực thi chữ ký mã hóa (cũng được thảo luận bên dưới), điều này khiến phần mềm độc hại rất khó có thể lẻn vào điện thoại của bạn thông qua các con đường hợp pháp.

Nhưng còn TPM / SmartCards / [chèn công nghệ tiền điện tử ở đây] thì sao?

Chà, bây giờ bạn đang ghép bảo mật vật lý vào phương trình, nó vẫn trở nên phức tạp hơn. Nhưng, đây không thực sự là một giải pháp vì TPM tương đối yếu và tất cả mã hóa không diễn ra trên chip. Nếu TPM của bạn (bằng cách nào đó) đủ mạnh để tự mã hóa trên chip (một số ổ cứng rất lạ mắt có thứ như thế này), khóa sẽ không bao giờ được tiết lộ và những thứ như tấn công khởi động lạnh là không thể. Tuy nhiên, các khóa (hoặc dữ liệu thô) vẫn có thể có trong bus hệ thống, nghĩa là chúng có thể bị chặn.

Mặc dù vậy, keylogger phần cứng của tôi vẫn có thể lấy được mật khẩu của bạn và tôi có thể dễ dàng tải một số phần mềm độc hại vào máy của bạn theo cách khai thác Firefox mà tôi đã đề cập trước đó. Tất cả tôi cần là bạn rời khỏi nhà / máy tính của bạn trong khoảng một giờ.

Bây giờ, nếu bạn mang theo TPM / thẻ thông minh / bất cứ thứ gì bên mình và tất cả mã hóa thực sự được thực hiện trên chip (có nghĩa là khóa của bạn hoàn toàn không được lưu trữ trong RAM), thì thực tế tôi không thể vào được tất cả, trừ khi bạn (người dùng) trượt lên và quên điều gì đó. Đó là, trừ khi tôi tìm cách nào đó để đọc khóa (không được mã hóa) từ bus hệ thống.

Nhưng điều gì sẽ xảy ra nếu tôi có một số hình thức thực thi chữ ký điện tử / kỹ thuật số trên tất cả các chương trình của mình để đảm bảo chúng hợp pháp?

Theo chứng minh của các công ty điện thoại thông minh khác nhau, đây là một cách rất tốt để đối phó với bảo mật. Bây giờ bạn đã vô hiệu hóa khả năng của tôi để tiêm một số mã vào máy của bạn để làm những việc bất chính, đó là một lợi thế. Thực tế, bạn đã vô hiệu hóa khả năng của tôi để duy trì quyền truy cập liên tục vào máy của bạn từ xa, đây là một điểm cộng rất lớn.

Tuy nhiên, đây vẫn không phải là một phương pháp hoàn hảo! Thực thi chữ ký số sẽ không dừng một keylogger phần cứng. Nó cũng cần phải hoàn toàn không có lỗi, nghĩa là không có cách nào tôi có thể tìm thấy một khai thác cho phép tôi tải chứng chỉ của riêng mình vào kho chứng chỉ của máy. Hơn nữa, điều này có nghĩa là mọi thực thi trên hệ thống của bạn cần phải được ký . Trừ khi bạn muốn tự mình thực hiện và thực hiện tất cả những điều đó, sẽ rất khó để tìm thấy các gói Apt và những thứ tương tự có chữ ký điện tử trên mọi thứ. Trong một tĩnh mạch tương tự, khối này sử dụng hợp pháp cho các tệp thực thi không dấu, cụ thể là recovery. Điều gì sẽ xảy ra nếu bạn phá vỡ thứ gì đó quan trọng và bạn không có (có thể thực thi) để sửa nó? Vâng, có hệ thống của bạn.

Dù bằng cách nào, một nỗ lực để làm điều này trên Linux về cơ bản đã bị bỏ rơi và không còn hoạt động cho các nhân mới, vì vậy bạn cần phải tạo riêng cho mình.

Vì vậy, không thể ngăn bạn ra khỏi máy tính của tôi?

Hiệu quả, vâng, xin lỗi. Nếu tôi có quyền truy cập vật lý và đủ động lực, luôn có thể vào hệ thống. Không có ngoại lệ.

Tuy nhiên, trên thực tế, hầu hết những người xấu xa sẽ không cố gắng đi xa như vậy chỉ vì một số hình ảnh con mèo. Thông thường, chỉ cần mã hóa toàn bộ đĩa (hoặc thậm chí chỉ chạy Linux!) Là đủ để ngăn chặn hầu hết các kiddies script có hai giây nổi tiếng.

TL; DR: Chỉ cần đừng để những người bạn không tin tưởng gần máy tính của bạn. Điều đó thường đủ tốt.


Hoặc chỉ cần mã hóa phân vùng nhà của bạn.
dùng13161

5
@ user13161 Điều này vẫn cho phép một thực thể độc hại thay thế một cái gì đó giống như /bin/bashvới tập lệnh xấu của chính họ, điều này sẽ làm những điều xấu với một thư mục nhà không được mã hóa.
Kaz Wolfe

GRUB cho phép bạn sử dụng phân vùng khởi động được mã hóa LUKS, trong trường hợp mật khẩu để khởi động không thể bỏ qua. Xem wiki.archlinux.org/index.php/Dm-crypt/ .
v7d8dpo4

@ v7d8dpo4: Mã hóa /bootthực sự là imo vô dụng. Nó sẽ thêm mật khẩu khởi động, nhưng bạn vẫn cần giải mã /để thực sự làm bất cứ điều gì hữu ích, vì vậy bạn chỉ cần thêm một số chi phí phụ mà không có lợi ích gì. Ngoài ra, tôi chỉ có thể sử dụng đĩa Grub của riêng mình để bỏ qua phần khởi động được mã hóa của bạn nếu chỉ /boot được bảo vệ. Hoặc tôi chỉ có thể đọc ổ đĩa như bình thường.
Kaz Wolfe

2
iPhone (6 trở đi, tôi nghĩ) không chỉ có mã hóa "đĩa" đầy đủ, mà nó còn được liên kết với thông tin đăng nhập pincode / sinh trắc học. Vì vậy, nếu bạn sẵn sàng để máy tính của mình từ chối khởi động mà không cần can thiệp, bạn cũng có thể buộc mã hóa ổ đĩa của nó vào mô-đun mã thông báo / mật khẩu / TPM phần cứng. Nó chỉ là khá nhiều công việc.
pjc50

17

Nếu bạn muốn nó bị ràng buộc sử dụng một mật khẩu . Từ liên kết:

Ghi chú bảo vệ mật khẩu GRUB 2

Grub 2 có thể thiết lập các yêu cầu mật khẩu trên:

  • Tất cả thực đơn
  • Thực đơn cụ thể
  • Đối với người dùng cụ thể: Ví dụ: người dùng "Jane" có thể truy cập Ubuntu nhưng không phải chế độ khôi phục Windows, chỉ có thể truy cập bởi "John", siêu người dùng.
  • Quản trị viên phải kích hoạt bảo vệ mật khẩu theo cách thủ công bằng cách chỉnh sửa các tệp hệ thống GRUB 2.

  • Người dùng và mật khẩu phải được xác định trong /etc/grub.d/00_headerhoặc tập tin tập lệnh GRUB 2 khác.

  • Trừ khi bảo vệ phổ quát tất cả các menu là mong muốn, các mục cụ thể phải được xác định:

    • Thủ công bằng cách chỉnh sửa các /etc/grub.d/tập lệnh Grub 2 như 10_linux30_os-prober
    • Thủ công bằng cách chỉnh sửa một tệp cấu hình tùy chỉnh được tạo bởi người dùng.

    • Một trong các phương pháp trên cho phép GRUB 2 tự động thêm yêu cầu mật khẩu vào tệp cấu hình (grub.cfg) bất cứ khi nào cập nhật-grub được thực thi.

    • Thủ công bằng cách chỉnh sửa /boot/grub/grub.cfg. Chỉnh sửa tập tin này sẽ bị xóa khi update-grubchạy và bảo vệ mật khẩu sẽ bị mất.

  • Nếu bất kỳ hình thức bảo vệ mật khẩu GRUB 2 nào được bật, tên và mật khẩu của siêu nhân sẽ được yêu cầu để có quyền truy cập vào dòng lệnh GRUB 2 và các chế độ chỉnh sửa menu.

  • Tên người dùng và / hoặc mật khẩu không nhất thiết phải giống với tên / mật khẩu đăng nhập Ubuntu.
  • Trừ khi tính năng mã hóa mật khẩu của GRUB 2 được sử dụng, mật khẩu được lưu dưới dạng văn bản thuần túy trong một tệp có thể đọc được. Xem phần Mã hóa mật khẩu để được hướng dẫn sử dụng tính năng này.

Theo mặc định (!) Trong trường hợp này khả năng sử dụng hơn hẳn bảo mật. Nếu bạn không thể tin tưởng những người xung quanh bạn sẽ luôn mang theo máy bên mình. Những người cần bảo mật hơn có xu hướng mã hóa toàn bộ hệ thống của họ khiến cho việc yêu cầu mật khẩu là bắt buộc.


Hãy thành thật mà nói, những mật khẩu đó có thể dễ dàng được bỏ qua với quyền truy cập vật lý. Họ bảo vệ một hệ thống khỏi noobs, nhưng không phải từ những kẻ tấn công với một số kỹ năng cơ bản (sử dụng google có thể đã đủ) và truy cập vật lý.
Chỉ huy Byte

3

Hack cố ý của bạn bắt đầu với điều này:

  1. Khi menu grub2 mở, nhấn 'e' để chỉnh sửa các tùy chọn bắt đầu linux

Nhưng bạn có thể bảo vệ mật khẩu etùy chọn như được thảo luận ở đây: Cách thêm bảo vệ mật khẩu GRUB vào quá trình tải hệ điều hành thay vì khi chỉnh sửa tùy chọn khởi động

Bạn có thể thực hiện thêm bước mã hóa mật khẩu grub như được thảo luận trong liên kết. Thật vậy, với khoảng 3% dân số (đoán mò) sử dụng Linux / Ubuntu tại nhà, đó là một ý tưởng tốt cho Quản trị viên Hệ thống để bảo vệ chống lại echức năng trên các hệ thống sản xuất tại nơi làm việc. Tôi tưởng tượng nếu Ubuntu được sử dụng tại nơi làm việc thì 30 đến 40% cũng sẽ sử dụng nó ở nhà và có thể 10% trong số họ sẽ học cách làm điều đó etrên hệ thống gia đình của họ.

Nhờ câu hỏi của bạn mà họ vừa học được nhiều hơn. Mặc dù với liên kết ở trên, Quản trị viên Hệ thống có một nhiệm vụ khác trong danh sách việc cần làm của họ để bảo vệ môi trường sản xuất.


1
Hãy thành thật mà nói, những mật khẩu đó có thể dễ dàng được bỏ qua với quyền truy cập vật lý. Họ bảo vệ một hệ thống khỏi noobs, nhưng không phải từ những kẻ tấn công với một số kỹ năng cơ bản (sử dụng google có thể đã đủ) và truy cập vật lý.
Chỉ huy Byte

@ByteCommander Đó là tất cả về truy cập vật lý. BIOS có thể được thiết lập với mật khẩu quản trị viên để nó không bao giờ có thể khởi động từ USB hoặc DVD. Ai đó có thể mở vỏ máy, hai chân ngắn trên bo mạch chủ và mật khẩu được đặt lại thành khoảng trống (không cần mật khẩu để thay đổi thứ tự khởi động BIOS).
WinEunuuchs2Unix

0

Để đảm bảo an toàn cho mạng lưới, bạn cần bảo vệ quyền truy cập vào nó. Điều này có thể được thực hiện đơn giản với mật khẩu đĩa cứng và tôi đang nói ở đây về bảo mật đĩa nơi nó được lưu trữ trong phần sụn của đĩa. Đĩa không thể được đọc từ hoặc ghi vào. Do đó, không chỉ không thể truy cập mà không có mật khẩu, dữ liệu của bạn cũng vậy.

Vì mật khẩu được lưu trữ trên đĩa, việc chuyển nó sang hệ thống khác sẽ không giúp ích cho hacker.

Có phần mềm xung quanh có thể xóa mật khẩu khỏi một số đĩa của nhà sản xuất, nhưng nó cũng có hiệu quả xóa sạch đĩa. Vì vậy, dữ liệu của bạn vẫn an toàn.


Nhận xét muộn, nhưng tôi muốn chỉ ra rằng điều này đôi khi có thể bị đánh bại theo những cách đơn giản. Có thể có một số lệnh của nhà sản xuất (được ghi lại) để xóa mật khẩu ổ cứng mà không kích hoạt định dạng. Tương tự như vậy, tôi có thể chỉ cần "mượn" đĩa cứng và đặt chúng vào bộ điều khiển của riêng mình - mật khẩu (thường) được lưu trữ trong NVRAM của bộ điều khiển, chứ không phải trên đĩa.
Kaz Wolfe

@Kaz, bạn hoàn toàn đúng trong những gì bạn nói, nhưng phải nhấn mạnh vào từ "thỉnh thoảng" trong cụm từ của bạn "điều này đôi khi có thể bị đánh bại theo những cách đơn giản." Khi công nghệ ổ cứng tiếp tục được cải thiện, trái với những gì bạn nói, gần như tất cả các nhà sản xuất hiện lưu trữ phần sụn và mật khẩu của họ trên đĩa, vì vậy việc thay đổi thẻ điều khiển sẽ không giúp ích gì. Có phần mềm xung quanh để mở khóa ổ đĩa mà không xóa sạch dữ liệu, nhưng nó chỉ hoạt động trên các ổ đĩa cũ.
Scooby-2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.