Commandes pour apprendre à connaître un système inconnu

Vous vous connectez à un système UNIX ou Linux inconnu (en tant que root). Quelles commands courez-vous pour vous orienter et déterminer quel type de système vous utilisez? Comment déterminez-vous quel type de matériel est utilisé, quel type de operating system fonctionne et quelle est la situation actuelle en matière d'permissions et de security?

Quelle est la première et la deuxième command que vous tapez?

une question à double usage! Soit un archéologue logiciel ou un pirate informatique pourrait utiliser les réponses à cette question! Maintenant, qui suis-je?

J'ai toujours utilisé ps -ef contre ps -augxww pour savoir ce que j'étais. Linux et System V ont tendance à aimer "-ef" et l'erreur sur "-augxww", vice versa pour BSD et les anciennes machines SunOS. La sortie de ps peut vous faire aussi beaucoup savoir.

Si vous pouvez vous connecter en tant que root, et c'est une machine Linux, vous devriez faire lsusb et lspci – vous obtiendrez 80% du path vers la connaissance de la situation matérielle. dmesg | more dmesg | more peut vous aider à comprendre les problèmes actuels sur à peu près n'importe quoi.

Il commence à être éliminé, mais faire ifconfig -a peut souvent vous en dire beaucoup sur les interfaces réseau et la mise en réseau. Exécuter mii-tool et / ou ethtool sur les interfaces que vous voyez dans la sortie ifconfig qui ressemblent à Ethernet câblé peut vous donner des informations aussi.

Runnin ip route ou netstat -r peut être instructif sur le routing Internet Protocol, et peut-être quelque chose sur les interfaces réseau en cours d'utilisation.

Une invocation de mount peut vous renseigner sur le ou les disques et leur assembly.

Exécution de la uptime , puis last | more last | more peut vous dire quelque chose sur l'état actuel de la maintenance. Les time de plus de 100 jours signifient probablement «il est time de changer l'huile et les fluides», métaphoriquement parlant. Courir who est aussi

En regardant dans /etc/resolv.conf et /etc/hosts pouvez vous renseigner sur la configuration DNS de cette machine. Peut-être que nslookup google.com ou dig bing.com pour voir si le DNS est principalement fonctionnel.

Il est toujours utile de regarder quelles erreurs ("command introuvable") et quelles variantes de commands ("ps -ef" vs "ps augxww") fonctionnent pour déterminer quelle variante d'Unix ou Linux ou BSD vous venez de terminer.

La présence ou l'absence d'un compilateur C, et où il vit est important. Faites which cc ou mieux, which -a cc pour les find.

cat /etc/*release* est une jolie command pour avoir une vue d'set de la dissortingbution en cours.

http://bhami.com/rosetta.html pourrait être utile pour réviser, sinon je me pique habituellement sous /etc (counts, trucs init, astuces de saveur OS, etc) et crontab -l et regarde à travers la list ps pour les choses pour en savoir plus.

Aussi "en tant que root" est super effrayant, car j'ai dû réparer des systèmes où un administrateur Linux effectuant une telle enquête définissait tous les noms d'hôte Solaris sur -f .

Aussi df est une command dangereuse, une excellente façon d'ohops bloqué sur le blocage des E / S. Alors ne courez jamais cela avant d'avoir au less enquêté sur les montures, ou sachez que vous pouvez ouvrir une autre session d'une façon ou d'une autre.

Utilisez des commands très simples ( uname , cd /etc; ls , cat , $PAGER ) jusqu'à ce que vous $PAGER ce que l'hôte est, et si vous n'êtes pas familier, vérifiez une rosetta ou lisez toujours la page man avant de prendre une command ou flag à une command fait ce qu'il fait sur les systèmes les plus populaires.

dmidecode et lspci vous donneront généralement une bonne idée du fonctionnement du matériel sur le système. Si c'est un server qui exécute habituellement netstat -tlpn va donner le but du server. df -hP est une bonne command pour vérifier le stockage actuel sur le système. lsb_release -a devrait vous laisser savoir quelle distro vous êtes sur:

 [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 Dissortingbutor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 6.7 (Santiago) Release: 6.7 Codename: Santiago 

L'exécution en last devrait vous permettre de savoir qui utilise le système. En supposant que vous avez accédé à ce server légitimement, vous pouvez souvent requestr à l'une des personnes qui se connectent pour plus d'informations à ce sujet.

Pour les controls de security neutres: Souvent, le pare-feu possède des données de configuration uniques, ce qui permet d'exécuter un iptables -nvL . Vous devriez également consulter les files de configuration de votre distro pour voir si vous utilisez uniquement des users locaux ou si vous êtes configuré pour utiliser ldap / kerberos / winbind / sssd / whatever.

Vous pouvez également inspecter la configuration des services qui apparaissent dans votre netstat -tlpn . Par exemple, si vous voyez apache, vous pouvez regarder /etc/http/conf/httpd.conf (sur RHEL, /etc/apache2 sur Ubuntu) et essayer de voir quels sites web sont en cours d'exécution. Vous pouvez également faire un apachectl -S pour get une list de tous les hôtes virtuels configurés. Il sorte de ventilateurs à partir de là tout ce que je peux vraiment faire est d'offrir Apache comme un exemple et de dire simplement pour vérifier la configuration du démon si c'est autre chose.

Sur RHEL je voudrais aussi vérifier rpm -qa --last | head rpm -qa --last | head pour voir quand la dernière fois qu'ils ont fait des mises à jour du système. Je voudrais également vérifier si SELinux est activé via getenforce

Quelques autres idées:

  • La présence ou l'absence du système de files /proc peut indiquer si vous utilisez Mac , FreeBSD ou Linux.
  • La gestion des packages diffère de la dissortingbution Linux en distro. Debian-based a apt, comme Deepin, Ubuntu, Mint; Red Hat et Fedora avaient miam jusqu'à un certain point mais maintenant Fedora a DNF ; Arch utilise pacman. Nous pourrions donc faire quelque chose comme ceci: ls /usr/bin | grep 'apt\|yum\|pacman' ls /usr/bin | grep 'apt\|yum\|pacman'
  • Présence de certains services sur certains ports lors de la visualisation de netstat -tulpan . Le pourrait être sshd , webserver, ftp ;