12 способов узнать ос

Discussion in 'Безопасность и Анонимность' started by Ky3bMu4, 12 Feb 2008.

  1. Ky3bMu4

    Ky3bMu4 Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    487
    Likes Received:
    284
    Reputations:
    42
    Навеено темой - "23 способа получить в регистре единицу" А вот 12 способов узнать что за *nix система стоит на машине. Сильно не пинайте =) .

    1)uname -a

    2)cat /etc/issue(linux)

    3)cat /proc/version

    5)Тип ФС - fdisk [-l] //freebsd or not freebsd(может конечно быть и solaris=)) - ufs или ext3 ;Или - /dev/hda , /dev/hdb - linux , /dev/ad0s3e(нечто в этом роде) - freebsd

    6)Посмотреть логи - /var/log/daemon.log,/var/bootstrap.log(linux) , /boot/loader.rc(freebsd) ,заглянуть в /boot/grub/menu.lst

    7)Содержимое /usr/src/[kernel sources](если они конечно есть=)) , а точнее README.[OS](linux) or README(freebsd)

    8)echo 'int main(void){return 0;}' > os.c && gcc os.c -o os && strings os
    Если стоит freebsd, то увидете нечто вроде
    $FreeBSD: src/lib/csu/i386-elf/crti.S,v 1.7 2005/05/19 07:31:06 dfr Exp $

    9)По типу установки пакетов.
    Присутствие директорий
    /usr/ports - freebsd
    /etc/apt - debian\ubuntu
    /usr/portage - gentoo
    откликается на rpm - redhat based , на deb или apt-get - debian\ubuntu , на emerge - gentoo , pacman - arch linux , slapt-get, swaret , slackpkg - slackware

    10)Специфические файлы - /etc/rc.conf - freebsd\gentoo для остальных linux`ов rc.local,также можно посмотреть содержимое данного файла(к примеру, настройка маршрутиризации в debian`е и freebsd отличается по синтаксисиу ip) ; /etc/master.shadow - freebsd ,/etc/redhat-release - redhat or fedora , /etc/debconf.conf or /etc/debian_version - debian\ubuntu , /etc/freebsd-update.conf - freebsd , /COPYRIGHT(freebsd), позаглядывать в файлы /etc многие из них могут начинаться на
    # $FreeBSD: ...
    В /usr/share/doc тоже можно много интересного найти - /handbook(freebsd) или /ubuntu-doc

    11)Если стоит web-сервак, то можно посмотреть какой message выводит сервер(но способ крайне ненадёжный) telnet localhost 80 ; GET /123123123123123123.html - <address>Apache/2.0.55 (Ubuntu) PHP/5.1.6 Server at 127.0.1.1 Port 80</address>


    12)Если же ниодин из вышеперечисленных способов не помог(в чём я очень сильно сомневаюсь=)), то можно хотябы узнать версию ядра -
    Code:
    #include <stdio.h>
    #include <sys/utsname.h>
    
    int main(void)
    {
    	struct utsname u;
    	uname(&u);
    	printf("%s release %s(version %s) on %s\r\n",u.sysname,u.release,u.version,u.machine);
    	return 0;
    }
    
    Я не думаю что кто-то из сисадминов будет перехватывать вызов uname() =).
     
    6 people like this.
  2. mr.celt

    mr.celt Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    133
    Likes Received:
    16
    Reputations:
    12
    +13-й способ
    procinfo|grep "Linux"
     
    1 person likes this.
  3. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    +14
    приглашение на Ftp сервер, если админ не изменил канеш.*))
     
  4. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    +15

    Версия дистрибутива:
    cat /etc/*-realise

    +16

    Определение версии ОС:
    sysctl -a | grep version
     
  5. beliy

    beliy New Member

    Joined:
    29 May 2007
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    а как узнать в какой директории установлен perl и установлен ли он вообще?
     
  6. Ky3bMu4

    Ky3bMu4 Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    487
    Likes Received:
    284
    Reputations:
    42
    which perl - где установлен(бинарик)
    ls /usr/lib/ | grep perl - установлен ли вообще
     
  7. Ryuzavi

    Ryuzavi Member

    Joined:
    10 Sep 2008
    Messages:
    10
    Likes Received:
    8
    Reputations:
    0
    +17
    Для всех никсов (я не должен ошибиться): dmesg | grep Linux (или grep -i bsd и т.д.)
    cat /etc/motd - имя машины, ос (message of the day), но если админ не идиот, то он специально напишет туда неверную информацию.
    Для линух, мало что даёт (2.4 уже редкость), но всё-таки: для пересборки ядра 2.6 требуется компилятор gcc 3.2 и выше. (Т.е. если стоит gcc <3.2 , то сероятнее ядро 2.4)
    Можно так же втупую перебрать все папки и найти все файлы в root fs, в имени которых "perl" (этот способ можно поюзать когда в меню не прописана информация о пакете или нужно найти все файлы, связанные с пакетом, но в данном случае способ нехороший):
    sudo find / -iname *perl*