Você efetua login em um sistema UNIX ou Linux desconhecido (como raiz). 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á em execução e qual é a situação atual quando se trata de permissões e segurança?
Qual é o primeiro e o segundo comando digitado?
linux
shell
command-line
root
Alexander
fonte
fonte
uname -a
entãoapropos whatever
é seu amigo.nmap -A -T4 localhost
também poderia lhe dar algumas informações úteisnmap
martelo, delocalhost
repente parecia um prego. Mas então eu percebi que, na verdade, fornece algumas informações interessantes, então deixei como uma sugestão semi-séria.Respostas:
uma pergunta de uso duplo! Um arqueólogo de software ou um hacker do mal podem usar as respostas para esta pergunta! Agora, quem sou eu?
Eu sempre usava
ps -ef
versusps -augxww
para descobrir o que estava usando. As caixas Linux e System V tendem a gostar de "-ef" e de erro em "-augxww", vice-versa para BSD e máquinas antigas do SunOS. A saída deps
pode informar muito também.Se você puder fazer login como root, e for uma máquina Linux, deverá fazê-lo
lsusb
elspci
- isso levará você a 80% do caminho para saber qual é a situação do hardware.dmesg | more
pode ajudar a entender os problemas atuais em praticamente qualquer coisa.Está começando a ser eliminado gradualmente, mas o procedimento
ifconfig -a
geralmente pode dizer muito sobre as interfaces de rede e a rede. A execuçãomii-tool
e / ouethtool
nas interfaces que você vê naifconfig
saída que parecem com Ethernet com cabo também pode fornecer algumas informações.Executar
ip route
ounetstat -r
pode ser informativo sobre roteamento de Protocolo da Internet e talvez algo sobre interfaces de rede em uso.Uma
mount
chamada pode falar sobre o (s) disco (s) e como eles são montados.Em execução
uptime
e, em seguida,last | more
pode dizer algo sobre o estado atual da manutenção. Uptimes de mais de 100 dias provavelmente significam "é hora de mudar o óleo e os fluidos", metaforicamente falando. Correrwho
também éOlhando
/etc/resolv.conf
e/etc/hosts
posso falar sobre a configuração de DNS dessa máquina. Talvez façanslookup google.com
oudig bing.com
para ver se o DNS é principalmente funcional.Sempre vale a pena observar quais erros ("comando não encontrado") e quais variantes de comando ("ps -ef" vs "ps augxww") funcionam para determinar em qual variante do Unix ou Linux ou BSD você acabou.
A presença ou ausência de um compilador C e onde ele mora é importante. Faça
which cc
ou melhor,which -a cc
para encontrá-los.fonte
netstat -tulpanw
mais produção, mas é realmente uma questão de gosto.lshw
no Linux.mount
é bagunçado,findmnt
é muito limpo.cat /etc/*release*
é um bom comando para obter uma visão geral de qual distribuição está sendo executada.fonte
http://bhami.com/rosetta.html pode ser útil para revisar, caso contrário, eu costumo vasculhar
/etc
(contas, itens de inicialização, dicas sobre o sabor do SO etc.)crontab -l
e ver aps
lista de coisas para aprender.Também "como root" é super assustador, pois tive que consertar sistemas nos quais um administrador do Linux que faz essa investigação define todos os nomes de host do Solaris
-f
.Também
df
é um comando perigoso, uma ótima maneira de interromper o bloqueio de E / S. Portanto, nunca execute isso até que você tenha ao menos investigado as montarias ou saiba que pode abrir outra sessão de alguma forma.Use comandos muito simples (
uname
,cd /etc; ls
,cat
,$PAGER
) até você descobrir o que o anfitrião é, e se você não estiver familiarizado com ele, verifique a rosetta ou sempre ler a página de manual antes de assumir algum comando ou bandeira para um comando faz o que faz em sistemas mais populares.fonte
df
perigoso? Existem sistemas onde ele faz algo diferente de mostrar o uso do sistema de arquivos?df
travar, basta pressionar CTRL-Z ekill -9
ele. Também encontrei esse problema e isso sempre funcionou para mim. Além disso, idealmente, suas montagens não devem ser penduradas. Também não acho que muitas pessoas pensem nos programas suspensos como "perigosos", e é por isso que acho que o Terdon estava confuso.dmidecode
elspci
geralmente lhe dará uma boa idéia do que é o hardware em execução no sistema. Se este for um servidor geralmente em execuçãonetstat -tlpn
, a finalidade do servidor será revelada.df -hP
é um bom comando para verificar o armazenamento atual no sistema.lsb_release -a
você deve saber em que distro está:A execução
last
deve informar quem usa o sistema. Supondo que você tenha acessado esse servidor legitimamente, muitas vezes você pode simplesmente pedir a uma das pessoas que faz login nele para obter mais informações sobre ele.Para verificações de segurança neutras do fornecedor: Geralmente, o firewall possui dados de configuração exclusivos, portanto, executar a
iptables -nvL
é útil. Você também deve verificar os arquivos de configuração pam da sua distribuição para ver se você está usando apenas usuários locais ou se está configurado para usar ldap / kerberos / winbind / sssd / o que for.Você também pode inspecionar a configuração dos serviços que aparecem no seu
netstat -tlpn
. Por exemplo, se você vê o apache, pode ver/etc/http/conf/httpd.conf
(no RHEL,/etc/apache2
no Ubuntu) e tentar ver quais sites estão em execução. Como alternativa, você pode fazer umapachectl -S
para obter uma lista de todos os hosts virtuais configurados. É meio que fãs de lá, então tudo o que posso fazer é oferecer o apache como exemplo e apenas dizer para verificar a configuração do daemon, se houver outra coisa.No RHEL, eu também verificaria
rpm -qa --last | head
quando da última vez que eles fizeram atualizações do sistema. Eu também verificaria se o SELinux está ativado viagetenforce
fonte
Algumas outras idéias:
/proc
sistema de arquivos pode indicar se você está no Mac , FreeBSD ou Linux.ls /usr/bin | grep 'apt\|yum\|pacman'
netstat -tulpan
. O poderia sersshd
servidor da webftp
;fonte
yum
pacote. Como a presença de um servidor ssh indica o sistema? AFAIK você pode encontrarsshd
em praticamente qualquer coisa.