Команды, чтобы узнать о незнакомой системе [закрыто]

19

Вы входите в незнакомую систему UNIX или Linux (с правами root). Какие команды вы запускаете, чтобы ориентироваться и выяснить, на какой системе вы работаете? Как определить, какое оборудование используется, какая операционная система работает и какова текущая ситуация с разрешениями и безопасностью?

Какую первую и вторую команду вы вводите?

Александр
источник
3
Я бы использовал uname -aтогда apropos whatever твой друг.
fd0
1
nmap -A -T4 localhostмог бы также дать вам некоторую полезную информацию
seumasmac
@seumasmac netstat будет лучше и эффективнее, чем nmapping локальной машины.
Андре Бори
@ AndréBorie nmap и netstat дают совершенно разные результаты. Поэтому не имеет смысла сравнивать их с точки зрения эффективности (какой бы то ни было).
moooeeeep
@ AndréBorie Я изначально планировал поставить :) в конце этого. Я проверял безопасность на одной из своих машин, и, удерживая nmapмолоток, localhostвнезапно выглядел как гвоздь. Но потом я понял, что это действительно дает некоторую интересную информацию, поэтому я оставил это как полусерьезное предложение.
Seumasmac

Ответы:

22

вопрос двойного назначения! Либо программный археолог, либо злой хакер могут использовать ответы на этот вопрос! Теперь, кто я?

Я всегда использовал ps -efпротив, ps -augxwwчтобы узнать, что я был на. Блоки Linux и System V имели тенденцию напоминать «-ef» и «error» в «-augxww», и наоборот, для BSD и старых машин SunOS. Вывод psможет дать вам знать много.

Если вы можете войти в систему под корень, и это машина Linux, вы должны сделать , lsusbи lspci- что попадется вам 80% от пути к зная , что ситуация с аппаратной частью. dmesg | moreможет помочь вам понять любые текущие проблемы по любому поводу.

Это постепенно прекращается, но, ifconfig -aкак правило , работа может многое рассказать вам о сетевых интерфейсах и сетях. Запуск mii-toolи / или ethtoolинтерфейсы, которые вы видите в ifconfigвыходных данных, которые выглядят как кабельные локальные сети, также могут дать вам некоторую информацию.

Runnin ip routeили netstat -rможет быть информативным о маршрутизации интернет-протокола и, возможно, что-то об используемых сетевых интерфейсах.

mountВызов может сказать вам о диске (ах) , и как они установлены.

Запуск uptime, а затем last | moreможет рассказать вам кое-что о текущем состоянии обслуживания. Время простоя более 100 дней, вероятно, означает «пора менять масло и жидкости», образно говоря. Бег whoтоже

Глядя /etc/resolv.confи /etc/hostsмогу рассказать вам о настройке DNS этой машины. Может быть, сделать nslookup google.comили dig bing.comпосмотреть, если DNS в основном работает.

Всегда стоит посмотреть, какие ошибки («команда не найдена») и какие варианты команд («ps -ef» против «ps augxww») работают, чтобы определить, какой вариант Unix, Linux или BSD вы только что выбрали.

Наличие или отсутствие компилятора C, и где он живет, очень важно. Делай which ccили лучше, which -a ccчтобы найти их.

Брюс Эдигер
источник
Я предпочитаю netstat -tulpanwбольше продукции, но это действительно вопрос вкуса.
Нед64
Существует также lshwпод Linux.
Шахбаз
mountгрязный, findmntочень чистый вместо этого.
EDMZ
10

cat /etc/*release* хорошая команда для получения обзора того, какой дистрибутив работает.

Александр
источник
9

http://bhami.com/rosetta.html может быть удобен для просмотра, в противном случае я обычно подыскиваю раздел /etc(учетные записи, материалы для инициализации, подсказки об особенностях ОС и т. д.) crontab -lи просматриваю psсписок, чтобы узнать о нем.

Также «как root» очень страшно, так как мне приходилось исправлять системы, в которых администратор Linux, проводящий такое исследование, устанавливал все имена хостов Solaris -f.

Также dfэто опасная команда, отличный способ ой ой, зависший при блокировке ввода / вывода. Так что никогда не запускайте это, пока вы, по крайней мере, не исследуете монтирования или не узнаете, что можете как-то открыть другой сеанс.

Используйте очень простые команды ( uname, cd /etc; ls, cat, $PAGER) , пока вы не выяснить , что хозяин, и если вы не знакомы с ним, проверить Rosetta или всегда прочитать страницу человека прежде , чем принять какую - либо команду или флаг команды делает то , что он делает на более популярные системы.

thrig
источник
Меня удивляет: есть ли надежный способ (временно) попасть в среду с более низкими привилегиями? Или это неосуществимо или как-то не очень хорошая идея?
Олифаунт - восстановить Монику
1
Почему это dfопасно? Существуют ли системы, в которых он делает что-то кроме показа использования файловой системы?
Terdon
1
блокировка ввода / вывода в ядре @terdon, например, при жестком монтировании NFS; в лучшем случае вы можете как-то открыть новый сеанс или терминал (время было потрачено впустую во время простоя), или в худшем случае это была ваша единственная консоль в этой старой системе Solaris, и да ... возможно, она загрузится, может быть, не будет, позор, информация о монтировании не была просмотрена сначала, и эта проблемная строка NFS-сервера была распознана ...
thrig
1
Если dfвиснет то просто CTRL-Z это и kill -9оно. Я столкнулся с этой проблемой, и это всегда работало для меня. Кроме того, в идеале ваши крепления не должны быть подвешены. Я также не думаю, что многие люди думают о программах, висящих как «опасные», поэтому я думаю, что Тердон был сбит с толку.
Братчли
3
@ Братчли, о, у тебя никогда не было консольного соединения, над которым ты не можешь послать управляющие символы? Гм, где было это руководство по zmodem, или, о боже, как мы отправили их через глючную Java-программу на другую глючную штуку, чёрт, у кого есть физический доступ?
thrig
5

dmidecodeи lspci, как правило, дает вам хорошее представление о том, какое оборудование работает в системе. Если это сервер, который обычно работает, netstat -tlpnон отдаст назначение сервера. df -hPхорошая команда для проверки текущего хранилища в системе. lsb_release -aдолжен сообщить вам, в каком дистрибутиве вы находитесь:

[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

Запуск lastдолжен дать вам знать, кто использует систему. Предполагая, что вы получили доступ к этому серверу законно, часто вы можете просто попросить одного из людей, которые заходят на него, для получения дополнительной информации о нем.

Для нейтральных проверок безопасности поставщика: часто брандмауэр будет иметь уникальные данные конфигурации, поэтому iptables -nvLполезно использовать a . Вам также следует проверить конфигурационные файлы pam вашего дистрибутива, чтобы узнать, используете ли вы только локальных пользователей или настроены ли вы для использования ldap / kerberos / winbind / sssd / что угодно.

Вы также можете проверить конфигурацию сервисов, которые появляются у вас netstat -tlpn. Например, если вы видите apache, вы можете посмотреть /etc/http/conf/httpd.conf(на RHEL, /etc/apache2на Ubuntu) и попытаться увидеть, какие сайты работают. В качестве альтернативы вы можете сделать, apachectl -Sчтобы получить список всех настроенных виртуальных хостов. Отчасти это похоже на фанатов, поэтому все, что я могу на самом деле сделать, это предложить apache в качестве примера и просто сказать, чтобы проверить конфигурацию демона, если это что-то еще.

На RHEL я бы также проверил, rpm -qa --last | headкогда в последний раз они делали системные обновления. Я также проверил бы, включен ли SELinux черезgetenforce

Bratchley
источник
0

Несколько других идей:

  • Наличие или отсутствие /procфайловой системы может указывать, используете ли вы Mac , FreeBSD или Linux.
  • Управление пакетами отличается от дистрибутива Linux до дистрибутива. У основанных на Debian есть apt, такие как Deepin, Ubuntu, Mint; Red Hat и Fedora были до некоторой степени привлекательными, но теперь у Fedora есть DNF ; Арч использует pacman. Таким образом, мы могли бы сделать что-то вроде этого:ls /usr/bin | grep 'apt\|yum\|pacman'
  • Наличие определенных сервисов на определенных портах при просмотре netstat -tulpan. Может быть sshd, веб - сервер, ftp;
Сергей Колодяжный
источник
Обратите внимание, что наличие данного исполняемого файла в системе ничего не значит. Например, в Debian есть yumпакет. Как присутствие сервера SSH будет указывать на систему? AFAIK вы можете найти sshdна что угодно.
Тердон
@terdon Правда. Я просто подхожу к этому с точки зрения нового сисадмина, где вам говорят: «У нас есть какой-то Linux-пакет, иди и сделай что-нибудь с этим». В этот момент вы можете спросить: есть ли у него удаленный доступ? Защищен ли этот удаленный доступ? Имеет ли он управление пакетами, с которым я знаком, или мне нужно изучать новый менеджер пакетов? Цель не обязательно определяет, какую ОС вы получаете, Брюс Эдигер уже освещал это, но я больше сосредоточен на исследовании самой системы
Сергей Колодяжный,