Эта статья не даст практически никакого опыта, однако она действительно важна для понимания того, как все устроено. Ведь без азов нельзя в будущем написать что-либо действительно хорошее. Именно эта статья
рассказывает, почему xspider полезен, но если он ничего не выдает, то это не значит, что жертва неуязвима
(как считают 95% начинающих взломщиков).

В статье описывается именно безопасность linux-систем, так как windows не совсем предназначен для "глубокой" работы с сетью.

Итак, приступим. Начнем, как я уже говорил, с азов. То есть со сканирования сети и получения от нее всей интересующей нас информации. Думаю, что всем ясно, как пользоваться соц.
инженерией. Я не буду углубляться в этот недостойный человека метод и расскажу Вам о настоящих сканированиях сети.

1) Очень редко используемые, да и мало помогающие базы whois.
root@localhost$ whois foo.com
Domain name: ---
Registar: ---
Referall: bar.com

и т.д. Наиболее полезными строками будут registar и referall, т.к. при запросе whois с указанием компании регистратора мы получим наиболее полную информацию. (root@localhost$ whois
foo.com@whois.bar.com). Советую так же применить whois относительно не только какого-то домена, но и по определенному ip адрессу. Именно это поможет узнать такие тонкости, как последнее обновление сервера.

2)Ping, traceroute, host.
Про ping, наверное, не надо рассказывать. Много информации от него не получишь, хотя он всегда под рукой.

Traceroute основывается на отправке UDP-пакетов с указанным max-forwards и ожидании ICMP-ответов. Шлет пакеты на порты в
диапазоне от 33434 до 33523. Мы видим через какие компьютеры проходили пакеты, можем узнать больше об удаленной машине. И даже если она не уязвима, то можно
попробывать в дальнейшем протестировать на безопасность, к примеру, его провайдера.

Host. Главное - получить как можно больше информации. И это нам вполне может
удастся, если dns создавалась не вручную. 

а) При вызове команды host со следующими параметрами можно добиться результатов:
-HINFO указывает конфигурацию сервера, установленное на него ПО.
-ТХТ дополнительная информация о сервере.
(это далеко не все параметры, однако именно они нужны при сканировании сети).

б) Поскольку одна машина может работать некорректно, то создают вторичные dns-сервера, которые являются "запасными". Проблема в том, что хакер может наряду с администратором создать такую
dns. Если сначала ввести host baz.ru, а потом host baz.ru name_of_server (где name_of_server - ответ на ваш первый запрос), то можно получить список всех хостов для данного сервера с их ip. 

3) Определение ОС и запущенных процессов.

Сканирование портов.

а) Вот то главное, что необходимо при анализе безопасности компьютера. Зная все открытые порты жертвы можно подключаться к ней через разные прокси и узнавать, какие именно версии программ установлены на нем
(например старый sendmail). Так же открытые порты лучше всего
позволяют определить ОС, однако не стоит верить во все открытые порты. Иногда открывают порты для windows, когда на сервере стоит linux, что вводит многих в смятение. Каждый порт лучше проверить на действительную работоспособность.
Я предпочитаю сканировать удаленную машину с помощью
nmap (тем
сканером, что был в Матрице 2). Все параметры
вы легко можете найти в документации.

Надо заметить, что информация, которую будет передаваться на ваш компьютер при подключении к компьютеру жертвы может быть подменена администратором и определить настоящую версию
ПО будет уже не так легко, поэтому сканирования портов может быть недостаточно.

б)Необходимо формировать заведомо некорректные запросы. Тогда ответ сервера может помочь с определением ОС. Для формирования таких запросов я советую использовать nmap (и вообще, nmap лучше других программ такого рода во всем, поэтому использовать нужно его как можно больше).
Однако и формирование запросов не даст результата, если администратор поставил firewall, а это он уж точно сделал.
Однако появилось усовершенствование предыдущего метода. Заключается это усовершенствование в том, что мы не посылаем специальные запросы на сервер, нам достаточно простого подключения к удаленной машине. У каждой системы свои конфигурации соединения и работы по протоколу tcp/ip: DF, Windows Size, TOS, TTL. (главные атрибуты). Получая их мы можем определить установленную на удаленном компьютере систему.
Если сами вы не умеете смотреть свойства соединения, то зайдите на сайт
subterrain.net, где вы сможете скачать нужную программу.

4) Файловая система

Существует интересная возможность собрать информацию благодаря NFS, которая позволяет совместно использовать файлы машинам, основанным на linux. При этом любой человек может
(если это не запретили) подключиться к удаленной машине и смонтировать
(подключить) жесткий диск жертвы к себе с правами суперпользователя. Если такое подключение и запретили,
то команду showmount (что она делает, наверное, догадаетесь сами) -
вероятно нет. Надо заметить, что часто необходимо использовать эту
команду с параметрами -а и -е, что покажет все хосты, на
которые смонтированы файлы, а так же все хосты, которым это позволено.

5) Протокол SNMP

Останавливаться подробно я на нем не буду, так как он больше пригоден для взлома
(а это тема другой статьи), нежели для сбора информации. Данный протокол
позволяет обращаться к различным сетевым устройствам. Главной проблемой его является то, что многие программы работают только с одной из самых ранних его версий, безопасность которой оставляет желать лучшего.
Программы для работы с snmp широко распространены в
интернете. 

6) Протокол ONC RPC

RPC является механизмом, который позволяет процессам одного компьютера вызывать некоторые процедуры на других компьютерах. Интересным является тот факт, что за RPC не устанавливаются определенные порты, они сами регистрируются в специальной службе portmap. Portmap поддерживает
команду rpcinfo, что позволяет вам увидеть все запущенные
rpc процессы на удаленном компьютере. Я и для этого сканирования предпочитаю использовать
nmap.

Если вы еще не поняли, почему нельзя (точнее нежелательно) использовать сканер безопасности xspider (или любой другой ему подобный), то вы были не внимательны. А ответ прост: при сканировании жертва легко может заметить сканирование и перекрыть доступ к уязвимым местам системы, а так же подменить выдаваемую информацию, что приведет к полной дезинформации взломщика.
Собственно говоря, используйте все методы сбора информации, может хоть об одном администратор забыл.

Теперь о том, как не дать злоумышленнику узнать о том, что его интересует.Надо заметить, что в линукс достаточно много потенциальных уязвимостей, однако многие из них решаются
одинаковым способом (установкой firewall, к примеру).

1) Базы данных whois.
Здесь все просто. Не давать им данных...

2) Ping, host traceroute

Для отключения ping необходимо настроить политику безопасности относительно echo запросов. Необходимо, чтобы такую возможность имели только определенные узлы. Можно с помощью firewall, можно с помощью политики
ipchains (о ней подробно в другой статье). Можно так же отключить саму службу echo в файле
/etc/inetd.conf. Закомментируйте строки:

echo stream ...
echo dgram ...

С Host сложнее.

а) Во-первых, записи в dns создавайте в ручную. Не пишите информацию в поле hinfo. (остальные поля по усмотрению). 

б) При создании вторичных серверов необходимо в файле named.conf указать IP-адреса "разрешенных" (как это сделать, написано в документации, но все же скажу, что сделать это можно с помощью allow_transfer:
...
zone "foo.ru" {
...
allow-transfer {ip.ip.ip.ip;};
...

Traceroute: т.к. указать администраторам других компьютеров что-либо вы не можете, то придется сделать
единственное - запретить echo запросы и/или установить firewall. Тогда злоумышленнику будет отправляться сообщение о том, что порт недоступен и информацию о вашей сети он получит не всю.

3)Определение ОС и запущенных процессов.

а) Я предпочитаю программу с www.psionic.com/abucus/portsentry
(как вы уже догадались, программа называется PortSentry). Она помогает распознавать наличие подключение к какому-то порту.
Собственно, я уже упоминал о том, что необходимо
открыть несколько портов с незапущенными на них службами
(причем портов для разных операционных систем).
Так как очень часто злоумышленников волнуют telnet и sendmail, то я опишу то, где хранится информация, выдаваемая при подключении к вашему компьютеру
(версия службы). В файле sendmail.cf в папке /etc/
необходимо изменить строку smtpgreetingmessage (это для sendmail, если кто-то не догадался). А для telnet - /etc/essue Там надо удалить всю информацию, которую будут показывать злоумышленнику.

б) Для закрытия возможности получить информацию, использую
некорректные пакеты для запроса, необходимо просто установить
firewall. При закрытии "пассива" необходимо опять же выдавать заведомо ложную информацию. Для /proc/sys/net/ipv4 параметра ip_default _ttl можно написать echo 1024 и она будет выдавать 1024 при запросе, а на самом деле все не так. Для просмотра остальных параметров исследуйте исходные коды системы.

4) Постарайтесь избегать этой NFS (не как нечисть, конечно). Если все же nfs вам необходим для работы, то запретите подключение к порту 2049 для "не своих". Желательно запретить доступ к nfs программам, так как их безопасность оставляет желать лучшего.

5) Буду немногословным. Надо установить firewall и заблокировать доступ к портам с snmp для чужих компьютеров. Ну и,
естественно, использовать как можно более новые версии
smtp. 

6) Закройте все ненужные порты использую firewall, отключите возможность обращаться к portmaper с помощью все того же
firewall.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии