Các lệnh để tìm hiểu về một hệ thống lạ [đóng]


19

Bạn đăng nhập vào một hệ thống UNIX hoặc Linux không quen thuộc (với quyền root). Những lệnh nào bạn chạy để tự định hướng và tìm ra loại hệ thống nào bạn đang sử dụng? Làm thế nào để bạn tìm ra loại phần cứng đang sử dụng, loại hệ điều hành nào đang chạy và tình hình hiện tại là gì khi nói đến quyền và bảo mật?

Lệnh đầu tiên và thứ hai bạn gõ là gì?


3
Tôi sẽ sử dụng uname -asau đó apropos whatever là bạn của bạn.
fd0

1
nmap -A -T4 localhostcũng có thể cung cấp cho bạn một số thông tin hữu ích
seumasmac

@seumasmac netstat sẽ tốt hơn và hiệu quả hơn so với việc lập sơ đồ máy cục bộ.
André Borie

@ AndréBorie nmap và netstat tạo ra kết quả khá khác nhau. Do đó, không có ý nghĩa gì khi so sánh chúng với hiệu quả (bất kể loại nào).
moooeeeep 2/10/2015

@ AndréBorie Ban đầu tôi dự định đặt một :) vào cuối đó. Tôi đang kiểm tra bảo mật trên một trong những máy của chính mình, và trong khi cầm nmapcây búa của tôi localhostđột nhiên trông giống như một cái đinh. Nhưng sau đó tôi nhận ra rằng nó thực sự cung cấp một số thông tin thú vị, vì vậy tôi đã để nó như một đề nghị bán nghiêm túc.
seumasmac

Câu trả lời:


22

một câu hỏi sử dụng kép! Hoặc là một nhà khảo cổ phần mềm hoặc một Hacker ác có thể sử dụng câu trả lời cho câu hỏi này! Bây giờ, tôi là ai?

Tôi luôn luôn sử dụng ps -efso với ps -augxwwđể tìm hiểu những gì tôi đang trên. Các hộp Linux và System V có xu hướng thích "-ef" và lỗi trên "-augxww", ngược lại đối với BSD và các máy SunOS cũ. Đầu ra của pscó thể cho bạn biết rất nhiều là tốt.

Nếu bạn có thể đăng nhập với quyền root và đó là máy Linux, bạn nên làm lsusblspci- điều đó sẽ giúp bạn đạt được 80% cách để biết tình hình phần cứng là gì. dmesg | morecó thể giúp bạn hiểu bất kỳ vấn đề hiện tại về bất cứ điều gì.

Nó bắt đầu được loại bỏ, nhưng việc làm ifconfig -athường có thể cho bạn biết rất nhiều về giao diện mạng và mạng. Chạy mii-toolvà / hoặc ethtooltrên các giao diện mà bạn thấy ở ifconfigđầu ra trông giống như ethernet đã tắt cũng có thể cung cấp cho bạn một số thông tin.

Runnin ip routehoặc netstat -rcó thể là thông tin về định tuyến Giao thức Internet và có thể là một cái gì đó về giao diện mạng đang sử dụng.

Một mountlời mời có thể cho bạn biết về (các) đĩa và cách chúng được gắn kết.

Chạy uptime, và sau đó last | morecó thể cho bạn biết một số điều về tình trạng bảo trì hiện tại. Thời gian hơn 100 ngày có lẽ có nghĩa là "đã đến lúc thay dầu và chất lỏng", nói một cách ẩn dụ. Chạy whocũng được

Nhìn vào /etc/resolv.conf/etc/hostscó thể cho bạn biết về thiết lập DNS của máy đó. Có thể làm nslookup google.comhoặc dig bing.comđể xem DNS chủ yếu là chức năng.

Luôn luôn đáng xem những lỗi nào ("không tìm thấy lệnh") và biến thể của các lệnh ("ps -ef" so với "ps augxww") hoạt động để xác định biến thể của Unix hoặc Linux hoặc BSD mà bạn vừa kết thúc.

Sự hiện diện hay vắng mặt của trình biên dịch C và nơi nó sống rất quan trọng. Làm which cchoặc tốt hơn, which -a ccđể tìm thấy chúng.


Tôi thích netstat -tulpanwcho đầu ra nhiều hơn nhưng đó là một vấn đề của hương vị thực sự.
Ned64

Ngoài ra còn có lshwLinux.
Shahbaz

mountlà lộn xộn, findmntlà rất sạch sẽ thay thế.
edmz

10

cat /etc/*release* là một lệnh hay để có được cái nhìn tổng quan về distro đang chạy.


9

http://bhami.com/rosetta.html có thể hữu ích để xem xét, nếu không tôi thường chọc vào bên dưới /etc(tài khoản, công cụ init, gợi ý về hương vị hệ điều hành, v.v.) crontab -lvà xem qua psdanh sách những điều cần tìm hiểu.

Ngoài ra "là root" là rất đáng sợ, vì tôi đã phải sửa các hệ thống mà một quản trị viên Linux thực hiện một cuộc điều tra như vậy đặt tất cả các tên máy chủ Solaris thành -f.

Đây cũng dflà một lệnh nguy hiểm, một cách tuyệt vời để oh whoops treo khi chặn I / O. Vì vậy, đừng bao giờ chạy nó cho đến khi bạn ít nhất điều tra các thú cưỡi, hoặc biết rằng bạn có thể mở một phiên khác bằng cách nào đó.

Sử dụng lệnh rất đơn giản ( uname, cd /etc; ls, cat, $PAGER) cho đến khi bạn tìm ra những gì chủ nhà là, và nếu bạn không quen với nó, kiểm tra một Rosetta hoặc luôn luôn đọc man page trước khi giả định một số lệnh hoặc cờ để một lệnh làm những gì nó làm trên hệ thống phổ biến hơn.


Làm cho tôi tự hỏi: có một cách mạnh mẽ (tạm thời) rơi vào một môi trường đặc quyền thấp hơn? Hoặc điều này là không khả thi hoặc bằng cách nào đó không phải là một ý tưởng tốt?
Oliphistic - phục hồi Monica

1
Tại sao dfnguy hiểm? Có hệ thống nào mà nó làm một cái gì đó ngoài việc sử dụng hệ thống tập tin không?
terdon

1
@terdon chặn I / O kernel, ví dụ như trên giá đỡ NFS cứng bị hỏng; tốt nhất bạn có thể mở phiên mới hoặc thiết bị đầu cuối bằng cách nào đó (lãng phí thời gian trong thời gian ngừng hoạt động) hoặc tệ nhất là bàn điều khiển duy nhất của bạn trên hệ thống Solaris cũ đó và uh yeah ... có thể nó sẽ khởi động, có thể nó sẽ không, xấu hổ vì thông tin gắn kết không được nhìn vào đầu tiên và dòng máy chủ NFS có vấn đề đó đã được nhận ra ...
18 giờ 43 phút

1
Nếu dfbị treo thì bạn chỉ cần CTRL-Z và kill -9nó. Tôi cũng gặp phải vấn đề đó và điều đó luôn có tác dụng với tôi. Ngoài ra, lý tưởng gắn kết của bạn không nên được treo. Tôi cũng không nghĩ nhiều người nghĩ rằng các chương trình treo là "nguy hiểm", đó là lý do tại sao tôi nghĩ terdon bị nhầm lẫn.
Bratchley

3
@Bratchley oh, chưa bao giờ có kết nối bảng điều khiển, bạn không thể gửi các ký tự điều khiển qua? Ừm, hướng dẫn sử dụng zmodem đó ở đâu, hoặc oh geez làm thế nào để chúng tôi gửi chúng thông qua điều Java lỗi đến điều lỗi khác đó ah geez ai có quyền truy cập vật lý?
thrig

5

dmidecodelspcithường sẽ cung cấp cho bạn một ý tưởng tốt về phần cứng chạy trên hệ thống. Nếu đây là một máy chủ thường chạy netstat -tlpnsẽ cho đi mục đích của máy chủ. df -hPlà một lệnh tốt để kiểm tra bộ nhớ hiện tại trên hệ thống. lsb_release -asẽ cho bạn biết những gì bạn đang phân phối:

[root@vle02 ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.7 (Santiago)
Release:        6.7
Codename:       Santiago

Đang chạy last sẽ cho bạn biết ai sử dụng hệ thống. Giả sử bạn đã truy cập máy chủ này một cách hợp pháp, thường thì bạn chỉ cần hỏi một trong những người đăng nhập vào đó để biết thêm thông tin về nó.

Đối với kiểm tra bảo mật trung lập của nhà cung cấp: Thông thường, tường lửa sẽ có dữ liệu cấu hình duy nhất để chạy iptables -nvL rất hữu ích. Bạn cũng nên kiểm tra các tệp cấu hình pam của distro để xem bạn chỉ sử dụng người dùng cục bộ hay nếu bạn được cấu hình để sử dụng ldap / kerberos / winbind / sssd / bất cứ điều gì.

Bạn cũng có thể kiểm tra cấu hình của các dịch vụ đi kèm netstat -tlpn. Chẳng hạn, nếu bạn thấy apache, bạn có thể xem /etc/http/conf/httpd.conf(trên RHEL, /etc/apache2trên Ubuntu) và thử xem trang web nào đang chạy. Ngoài ra, bạn có thể làm mộtapachectl -S danh sách tất cả các máy chủ ảo được cấu hình. Đó là loại người hâm mộ từ đó vì vậy tất cả những gì tôi thực sự có thể làm là cung cấp apache làm ví dụ và chỉ cần nói để xác minh cấu hình của daemon nếu đó là một cái gì đó khác.

Trên RHEL tôi cũng sẽ kiểm tra rpm -qa --last | headxem lần cuối họ cập nhật hệ thống là khi nào. Tôi cũng sẽ kiểm tra xem liệu Selinux có được bật thông qua khônggetenforce


0

Một vài ý tưởng khác:

  • Sự hiện diện hay vắng mặt của /prochệ thống tập tin có thể cho biết bạn đang sử dụng Mac , FreeBSD hay Linux.
  • Quản lý gói khác với bản phân phối Linux đến bản phân phối. Những cái dựa trên Debian có apt, như Deepin, Ubuntu, Mint; Red Hat và Fedora đã yum đến một lúc nào đó nhưng bây giờ Fedora có DNF ; Arch sử dụng pacman. Vì vậy, chúng tôi có thể làm một cái gì đó như thế này:ls /usr/bin | grep 'apt\|yum\|pacman'
  • Sự hiện diện của một số dịch vụ trên các cổng nhất định khi xem netstat -tulpan. Có thể là sshd, máy chủ web , ftp;

Lưu ý rằng sự hiện diện của một tệp thực thi nhất định trên hệ thống không thực sự có ý nghĩa gì. Debian, ví dụ, có một yumgói. Làm thế nào sự hiện diện của một máy chủ ssh chỉ ra hệ thống? AFAIK bạn có thể tìm thấy sshdtrên hầu hết mọi thứ.
terdon

@terdon Đúng. Tôi chỉ tiếp cận điều này từ quan điểm của một sysadmin mới nơi bạn được thông báo "Chúng tôi có một số hộp Linux vượt trội, hãy làm gì đó về nó". Tại thời điểm đó bạn có thể hỏi, tốt: Nó có quyền truy cập từ xa không? Là truy cập từ xa cứng? Nó có quản lý gói tôi quen thuộc hay tôi phải học quản lý gói mới? Mục tiêu không nhất thiết phải xác định những gì hệ điều hành bạn nhận được, Bruce Ediger đã được bảo hiểm đó, nhưng tôi đang tập trung hơn vào điều tra hệ thống chính nó
Sergiy Kolodyazhnyy
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.