---
title: "Обманываем хакеров"
description: "Всем известно что самым главным при взломе является получение информации. Информация правит миром ка..."
author: "root-kz"
published: "2011-01-12T06:32:04+00:00"
modified: "2011-01-12T06:33:52+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/obmanyvaem-hakerov-106804"
markdown_url: "https://yvision.kz/post/obmanyvaem-hakerov-106804/markdown"
site_name: "Yvision.kz"
---

# Обманываем хакеров

> Всем известно что самым главным при взломе является получение информации. Информация правит миром ка...

Всем известно что самым главным при взломе является получение информации. Информация правит миром как говорится =) Ведь действительно чтобы сломать sendmail нужно знать его версию, чтобы использовать локальный эксплоит или ещё чего необходимо узнать версию системы. Что делает взломщик первый раз оказавшись в системе? Могу поспорить что его первой командой будет uname -a. Что это такое? Во всех без исключения системах unix есть программа uname, цель её вывод имени оси. Находится она в /usr/bin/ , /bin/ в зависимости от системы. uname -a покажет вам самую полную информацию: имя системы, версию ядра, имя машины, архитектуру и т.д. Значит надо переделать эту программу чтобы она выводила то что нам надо, тем самым сбивая взломщика с толку.

Ну что приступим? Сделаем из Linux'a например FreeBSD =) Немного помучившись я написал фейковую прогу uname Поехали: /* fake uname.c */ void usage (void) { printf("Usage: uname [OPTION]... Print certain system information. With no OPTION, same as -s. -a, --all print all information -m, --machine print the machine (hardware) type -n, --nodename print the machine's network node hostname -r, --release print the operating system release -s, --sysname print the operating system name -p, --processor print the host processor type -v print the operating system version --help display this help and exit --version output version information and exit Report bugs to ."); } void version (void) { printf("uname (GNU sh-utils) 2.0.11 Written by David MacKenzie. Copyright (C) 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); } main (int argc, char **argv) { /* No options run */ if (!strncmp(argv[1],"",1)) { printf("FreeBSDn"); } /* Run via -a options */ if (!strncmp(argv[1],"-a",2)) { printf("FreeBSD 4.2.2 localhost.localdomain 2.2.14-11src #1 Sun Sep 23 17:06:39 CEST 2001 i686 unknownn"); } /* Run via -m options */ if (!strncmp(argv[1],"-m",2)) { printf("i686n"); } if (!strncmp(argv[1],"-n",2)) { printf("localhost.localdomainn"); } if (!strncmp(argv[1],"-r",2)) { printf("2.2.14-11src #1n"); } if (!strncmp(argv[1],"-s",2)) { printf("FreeBSDn"); } if (!strncmp(argv[1],"-p",2)) { printf("unknownn"); } if (!strncmp(argv[1],"-v",2)) { printf("#1 Sun Sep 23 17:06:39 CEST 2001n"); } /* print information about version of uname if options --version */ if (!strncmp(argv[1],"--version",9)) { version(); } /* print help */ if (!strncmp(argv[1],"--help",6)) { usage(); } } /* EOF */

Теперь зафигачиваем код в файлик uname2.c и проделываем следующее: Сначала посмотрим что у нас за система =) [navl@localhost navl]$ uname -a Linux localhost.localdomain 2.4.8-26mdk #1 Sun Sep 23 17:06:39 CEST 2001 i686 unknown Компилим нашу фейковую прогу: [navl@localhost navl]$ gcc -o uname2 uname2.c Рутимся =) [navl@localhost navl ]$ su Password: Копируем нашу новую прогу в каталог /bin/ [root@localhost navl]# cp uname2 /bin/uname Заменять? кАнЭчна =) cp: overwrite `/bin/uname'? y Шо у нас за система получилась? [root@localhost 1dtw0lf]# su navl [navl@localhost navl]$ uname -a FreeBSD 4.2.2 localhost.localdomain 2.2.14-11src #1 Sun Sep 23 17:06:39 CEST 2001 i686 unknown

Вот и все...FreeBSD накрылась :)

---

Source: [https://yvision.kz/post/obmanyvaem-hakerov-106804](https://yvision.kz/post/obmanyvaem-hakerov-106804)