Comandos para aprender sobre um sistema desconhecido [fechado]

19

Você faz login em um sistema UNIX ou Linux desconhecido (como root). Quais comandos você executa para se orientar e descobrir em que tipo de sistema você está? Como você descobre que tipo de hardware está em uso, que tipo de sistema operacional está sendo executado e qual é a situação atual quando se trata de permissões e segurança?

Qual é o primeiro e o segundo comando que você digita?

    
por Alexander 01.10.2015 / 20:20

5 respostas

22

uma pergunta de dupla utilização! Um arqueólogo de software ou um hacker malvado poderiam usar as respostas para essa pergunta! Agora, qual sou eu?

Eu sempre usei ps -ef versus ps -augxww para descobrir o que eu estava usando. As caixas Linux e System V tendem a gostar de "-ef" e erro em "-augxww", vice-versa para máquinas BSD e antigas SunOS. A saída de ps também permite que você conheça muito bem.

Se você pode logar como root, e é uma máquina Linux, você deve fazer lsusb e lspci - isso vai te ajudar em 80% do caminho para saber qual é a situação do hardware. dmesg | more pode ajudar você a entender qualquer problema atual em praticamente qualquer coisa.

Ele está começando a ser desativado, mas o ifconfig -a geralmente pode informar muito sobre as interfaces de rede e a rede. A execução de mii-tool e / ou ethtool nas interfaces que você vê na saída ifconfig que se parece com a Ethernet cabeada pode fornecer algumas informações também.

Executar ip route ou netstat -r pode ser informativo sobre o roteamento do Protocolo da Internet e talvez algo sobre interfaces de rede em uso.

Uma invocação de mount pode informá-lo sobre o (s) disco (s) e como eles são montados.

Executando uptime e, em seguida, last | more pode informar sobre o estado atual da manutenção. Upsimes de mais de 100 dias provavelmente significam "é hora de trocar o óleo e os fluidos", metaforicamente falando. A execução de who também é

Observar /etc/resolv.conf e /etc/hosts pode informar sobre a configuração de DNS dessa máquina. Talvez nslookup google.com ou dig bing.com para ver se o DNS é mais funcional.

Sempre vale a pena observar quais erros ("comando não encontrado") e quais variantes de comandos ("ps -ef" vs "ps augxww") funcionam para determinar em qual variante do Unix ou Linux ou BSD você acabou de terminar.

A presença ou ausência de um compilador C e onde ele é importante. Do which cc ou melhor, which -a cc para encontrá-los.

    
por 01.10.2015 / 21:48
10

cat /etc/*release* é um bom comando para obter uma visão geral de qual distro está sendo executada.

    
por 01.10.2015 / 20:54
9

link pode ser útil para revisar, caso contrário, eu costumo dar uma olhada em /etc (contas, coisas do init, dicas de SO sabor, etc) e crontab -l e procure na lista ps as coisas para aprender.

Além disso, "as root" é super assustador, já que tive que consertar sistemas em que um administrador do Linux fazia uma investigação desse tipo e definia todos os nomes de hosts do Solaris como -f .

Também df é um comando perigoso, uma ótima maneira de fazer oh whoops travarem no bloqueio de E / S. Então nunca corra até que você tenha pelo menos investigado as montarias, ou saiba que você pode abrir outra sessão de alguma forma.

Use comandos muito simples ( uname , cd /etc; ls , cat , $PAGER ) até descobrir qual é o host e, se você não estiver familiarizado com ele, verifique uma rosetta ou sempre leia o manual página antes de assumir algum comando ou sinalizador para um comando faz o que faz em sistemas mais populares.

    
por 01.10.2015 / 20:55
5

dmidecode e lspci normalmente dão uma boa ideia do hardware em execução no sistema. Se este for um servidor normalmente rodando netstat -tlpn , o propósito do servidor será revelado. df -hP é um bom comando para verificar o armazenamento atual no sistema. lsb_release -a deve deixar você saber em qual distro você está:

[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

A execução de last deve permitir que você saiba quem usa o sistema. Supondo que você tenha acessado este servidor legitimamente, muitas vezes você pode simplesmente perguntar a uma das pessoas que fazem login nele para obter mais informações sobre ele.

Para verificações de segurança neutras do fornecedor: Muitas vezes, o firewall terá dados de configuração exclusivos, portanto, executar um iptables -nvL é útil. Você também deve verificar os arquivos de configuração do pam da sua distro para ver se está usando apenas usuários locais ou se está configurado para usar o ldap / kerberos / winbind / sssd / whatever.

Você também pode inspecionar a configuração dos serviços que aparecem no seu netstat -tlpn . Por exemplo, se você vir o apache, poderá ver /etc/http/conf/httpd.conf (no RHEL, /etc/apache2 no Ubuntu) e tentar ver quais sites estão sendo executados. Alternativamente, você pode fazer um apachectl -S para obter uma lista de todos os hosts virtuais configurados. É um tipo de fãs que saem de lá, então tudo que eu posso fazer é oferecer o apache como um exemplo e apenas dizer para verificar a configuração do daemon se for outra coisa.

No RHEL eu também verificaria rpm -qa --last | head para ver quando a última vez que eles fizeram atualizações no sistema. Eu também verificaria se o SELinux está habilitado via getenforce

    
por 01.10.2015 / 22:46
0

Algumas outras ideias:

  • A presença ou ausência do sistema de arquivos /proc pode indicar se você está Mac , FreeBSD , ou Linux.
  • O gerenciamento de pacotes difere da distribuição do Linux para a distribuição. Os baseados no Debian têm apt, como Deepin, Ubuntu, Mint; A Red Hat e o Fedora tinham o yum até certo ponto, mas agora o Fedora tem DNF ; Arch usa pacman. Então poderíamos fazer algo assim: ls /usr/bin | grep 'apt\|yum\|pacman'
  • Presença de certos serviços em determinadas portas ao visualizar netstat -tulpan . O pode ser sshd , webserver, ftp ;
por 02.10.2015 / 20:48