Если вы хотите ознакомиться с остальными частями этой статьи, пожалуйста, прочитайте:
Знание того, как работает операционная система, означает знание того, как она взаимодействует. Но что, если в этом взаимодействии что-то упущено?
Вы может быть знакомы с терминами архитектура и профилирование компьютера. Но что означают эти термины? В этом цикле статей вы сможете не только получить ответ на этот вопрос, но и попробовать самим. Эта информация может быть очень полезной для системных администраторов, которые также очень часть выполняют работу по обеспечению сетевой безопасности (network security). Тем людям, которым также интересно расширить свои знания о компьютерной безопасности, будет также очень полезны статьи из этого цикла.
В рамках этого курса мы научимся находить различия между операционными системами (operating system), а также идентифицировать службы, запущенные на компьютере. Другими словами, мы узнаем, как профилировать архитектуру компьютера и компьютер, т.е. сам компьютер в рамках служб на нем запущенных. Вы, может быть, слышали о такой программе, как P0f, которая позволяет идентифицировать для вас операционную систему, а что самое замечательно, она делает это пассивно. Да, такие программы, как P0f, в самом деле великолепны. Однако, существует одна проблема. Снова вам приходиться абстрагироваться от информации. Программирование под Windows, можно сказать.
Самое важно здесь понять основы. В этом случае основами будет служить осознание того, как ваша операционная система отвечает обычным и необычным стимулам. Прямо сейчас нас интересует, как будет реагировать операционная система Microsoft Windows. Способ, которым она реагирует, будет показательным. Мы лишь знаем, что это такое: Win 9x или W2K/XP или в этом роде. После этого мы также, вероятно, обратим внимание на некоторые интересные характеристики стека TCP/IP stack, т.к. он имеет отношение к работе с сетью. Все это и многое другое можно очень быстро обнаружить. Установка для этого упражнения в действительности достаточно проста. У меня есть образы VMware image операционных систем W2K Pro, Win XP Pro и W2K3 Standard. Кроме этого мне также нужно будет использовать инструмент для разбора пакетов экстраординарный Hping. Мне показалась, что его версия для платформы Windows немного сырой, поэтому я использовал версию для Linux. Но убедитесь, что есть порт Windows port.
Прямо сейчас. Немного разобравшись с фоновой информацией, давайте начнем задачу по профилированию архитектуры и компьютера. В качестве стимул на компьютер с операционной системой Windows 2000 Pro я пошлю три типа пакетов. Ответ, который мы получим от компьютера с операционной системой Windows 2000 Pro, мы будем изучать на пакетном уровне (packet level). В результате этого, как вы скоро увидите, мы получим огромный объем информации. Три типа пакетов, которые мы сформируем, будут следующими: RST, ACK и пакет типа SYN. С этого момента давайте приступим к тому, к чему мы должны.
Синтаксис вызова Hping, который я использовал для формирования одного пакета SYN packet, выглядит следующим образом:
Hping –S 192.168.1.103 –p 135 –c 1
Я послал пакет SYN на порт TCP port 135 в надежде пробиться через порт, который не был закрыт брандмауэром (firewall). В лабораторных условиях, которые использовались в этой статье, такого фильтра не стояло. Давайте посмотрим на то, что мы отправили, и что получили в ответ.
tcpdump.exe: listening on \Device\{B3765DC9-4BE1-40C1-8707-16E03D99092C}
17:48:12.515625 IP (tos 0x0, ttl 64, id 24396, offset 0, flags [none], proto: T
CP (6), length: 40) 192.168.1.101.2834 > 192.168.1.103.135: S, cksum 0x18d1 (cor
rect), 1097760784:1097760784(0) win 512
0x0000: 4500 0028 5f4c 0000 4006 9767 c0a8 0165 E..(_L..@..g...e
0x0010: c0a8 0167 0b12 0087 416e 8010 0b2b 38b2 ...g....An...+8.
0x0020: 5002 0200 18d1 0000 0000 0000 0000 P.............
17:48:12.515625 IP (tos 0x0, ttl 128, id 675, offset 0, flags [DF], proto: TCP (
6), length: 44) 192.168.1.103.135 > 192.168.1.101.2834: S, cksum 0xd012 (correct
), 2591089004:2591089004(0) ack 1097760785 win 64240
0x0000: 4500 002c 02a3 4000 8006 740c c0a8 0167 E..,..@...t....g
0x0010: c0a8 0165 0087 0b12 9a70 e16c 416e 8011 ...e.....p.lAn..
0x0020: 6012 faf0 d012 0000 0204 05b4 `...........
Теперь вы можете увидеть, что я выделил некоторые места в двух вышеупомянутых пакетах. Самый верхний пакет был сформирован мной и послан по адресу 192.168.1.103 на порт 135. Следующий пакет – это ответ операционной системы Windows 2000 Pro на одинокий пакет SYN, который был послан на его работающий порт TCP port 135. В подчеркнутых разделах выше вы можете увидеть, что компьютер по адресу 192.168.1.103 вернул в ответ SYN/ACK, т.к. по этому порту работает прослушивающая служба. Это достаточно стандартно, поэтому давайте перейдем к следующим интересным полям, которые содержатся в ответе, посланным с адреса 192.168.1.103.
Во-первых, вы можете увидеть, что значение параметра “ttl” или время жизни равно 128. Это значение характерно для операционных систем Windows 2000/XP и 2003. Из приведенной мной ссылки, вы можете узнать, что Netware также по умолчанию имеет такое значение ttl (time to live или время жизни). В нашем случае мы заранее знаем, что эта операционная система Windows 2000 Pro, поэтому мы не будем сильно переживать по этому поводу. Что еще можно заключить из значения параметра ttl равного 128? Есть что-то, чем мы можем воспользоваться. Говорит ли вам это значение что-нибудь о том, где располагается этот компьютер в сети? Чтобы нарушить ваше замешательство, мы можем точно сказать вам, что этот компьютер находится с нами в одном сетевом сегменте. Другими словами, мы находимся в одной подсети. Мы знаем это потому, что значение ttl еще не было уменьшено маршрутизатором (router). Вас могут удивить такие выводы, но это лишь одна из частей головоломки.
После этого у нас есть параметр win или window size (размер окна), значение которого равно 64240. Размер окна (window size), если вы помните из предыдущих статей, измеряется в байтах, и говорит вам о том, сколько буферизованной памяти (buffered memory) компьютер имеет для посылаемых ему данных. Теперь это значение выпадает из того интервала, который можно увидеть, перейдя по приведенной мной выше ссылке. Не вдаваясь в такие подробности, как значения размера окна, давайте оставим это все в стороне. Далее вы видим, что значение параметра mss равно 1460. Параметр mss или maximum segment size (максимальный размер сегмента) – это максимальное значение данных, которые ожидает компьютера в одном выделенном пакете. Это значение вы не найдете в списке, если перейдете по предоставленной мною ссылке, но опыт подсказывает мне, что оно идентично Win 32. Мы увидим это в XP и 2K3.
На этом я поставлю точку в этой статье и во второй части вернусь к дальнейшему обсуждению других пакетов, которые мы сформировали и увидели в этой статье. Мы также должны взглянуть на некоторую информацию, касающуюся профилирования. Это поможет нам в дальнейшем в определении того, какая операционная система и какие службы запущены на компьютере, который мы исследуем. На этом момент я прощаюсь с вами. До встречи во второй части!
Источник www.windowsecurity.com
Tags: linux, redirect, tcpdump