ГлавнаяФорумыЧАТОбщее по компьютерам

ОС "Linux"

-Dim@$-[903] (Off)
[13.02.10, 20:44]
NetCat лучший друг хакера или вся правда о пирочиных ножах
[ Мануал по Unix-Linux ]


NetCat одна из самых известных утилит для тестирования сетевых приложений. Поэтому я не мог пропустить эту чудесную тулзу из виду и не написать статью про самый лучший, на мой взгляд, инструмент для тестирования сетевых приложений.
Начнем пожалуй с того что с помощью nc можно тестировать все протоколы прикладного уровня модели OSI.(для тех кто не знает что это http://ru.wikipedia.org/wiki/Сетевая_модель_OSI). Да это не так уж и много и даже обидно что такая утилита не может на прямую работать с протоколами нижний уровней на подобие TCP или IP.
Но, увы, всего и сразу не бывает и может быть, если у меня будет настроения, я напишу, как работать с библиотекой pcap и вы сами сможете создать чудесное приложение для работы со стеком протоколов TCP/IP.
И так приступим к изучению NetCat с моей самой любимой команды help.
Набрав нашем обожаемом cmd строчку такого вида:
nc –h вы увидите хелп.(это для тех кто вообще ничего не понимает было написано
C:>nc -h
Первое что сразу же должно бросится нам в глаза это синтаксис ввода команд:
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
Разберем же его более подробно.
В первой строчке написан синтаксис для тестирования серверных приложений после непосредственного ввода команды nc мы должны указать опции которые будут рассмотрены ниже, далее нужный нам хост и порт(ы).
Во второй строчке написан синтаксис для тестирования клиентских приложений опция –l обозначает включение режима прослушки определенного порта который мы указываем после опции –p, далее идут дополнительные опции имя хоста и порт соединение с которыми мы ожидаем.
На сколько вы уже могли догадаться то что указано в квадратных скобках является необязательными параметрами. А это значит что netcat можно запустить в таком виде:
C:>nc 127.0.0.1 80
И соединится с 80 портом у нас на localhost. NetCat будет терпеливо и послушно ждать данных, которые мы хотим отправить на указанный порт данного сервера, а при нажатие на enter отправит их и так же терпеливо будет ждать ответ от сервера.
Ну например если ввести в cmd:
C:>nc google.ru 80 [CR][LF] (даже не думайте вводить www.google.ru это вам не браузер)
То NetCat соединится с 80 портом сервера google.ru и будет ждать ввода данных, которые мы хотим оправить. Введем туда запрос главной страницы www.google.ru (для тех кто не знаком с протоколом HTTP http://ru.wikipedia.org/wiki/HTTP)
GET / HTTP/1.0[CR][LF] [CR][LF](два раза нужно нажать enter)
Для особо непонятливых [CR][LF] это нажатие на кнопку enter:-)(ну не совсем, вообще то это признак конца строки).
И о чудо мы видим, что к нам пришел html код главной страницы www.google.ru.
Команду nc –l –p port мы рассмотрим подробней, так как она представляет большой интерес.
Написав в cmd:
C:>nc –l –p 12345
Мы запускаем у себя на компьютере небольшой сервер, который прослушивает порт 12345.
Таким образом, мы можем даже переписываться с друзьями вот таким вот не хитрым образом:
C:>nc –l –p 12345
Этой командой мы запустим у себя сервер.
C:>nc ваш_ip 12345
А этой командой пусть воспользуется ваш друг. И можете общается как True HaCKeRs.
Или можно сделать все на localhost и переписываться самому с собой (ну мало ли друзей нет в жизни одиноко).
Надеюсь, основы вы поняли! Но мы же люди с непостижимой тягой к знаниям, так что будем углубляется.
Опция –e указывает на то какое приложение мы хотели бы запустить при коннекте к нашему серверу.
C:>nc –l –p 12345 –e C:windowssystem32cmd.exe
Самое интересное в данной опции то, что весь ввод будет идти указанному приложению. А это значит что если мы запустим у «друга» команду указанную выше мы активируем удаленный шел и придя домой сможем свободно бродить у «друга в гостях»(если знаете основы работы с DOS).
Подключившись к нему таким вот образом:
C:>nc ip_жертвы 12345
Наверное, у некоторых встал вопрос, а может ли NetCat работать по UDP протоколу, вить все рассмотренное выше относится к TCP.Ответ однозначный и четкий да может! Для этого предназначена опция –u которую просто нужно подставить:
nc –l –p 12345 –u (прослушивает 12345 UDP порт)
nc –u 127.0.0.1 12345 (подключается к 12345 UDP порту)
и вуаля мы уже работаем по UDP протоколу, что не может меня не радовать, так как люди часто забывают про него и его преимущества, хотя и недостатков у него хватает, но эта тема отдельной статьи.
Опция –w указывает на количество времени, которое NetCat будет ждать ответа от сервера. Ну скажем если мы подключимся к серверу, а он нам не отвечает по каким либо причинам то приложение нужно будет заканчивать аварийно нажатием Ctrl+C, но опция –w лишает нас этого недостатка и устанавливает время ожидания по окончанию которого связь с сервером будет прервана!
Опция –o делает возможным сохранить в лог файл хекс дамп вашего соединения. Что бывает очень полезно при длительных анализах сетевых приложений, дабы вернутся и посмотреть, если что то неожиданно забыли  или просто нужно сохранить историю соединения в файл для дальнейшего анализа.
Допустим команда:
C:>nc –o C:hexdump.txt pop.mail.ru 110
USER testuser[CR][LF]
PASS passuser[CR][LF]
RETR 1[CR][LF]
QUIT[CR][LF]
соединится с POP3 сервером mail.ru получит первое сообщение и выйдет сохранив историю соединения и сообщение в файл C:hexdump.txt. (подробней о работе с POP3 протоколом с подошью nc читайте мою статью «POP3 протокол или как работать с почтой при помощи пирочиного ножа»).
Опцию –v я просто обожаю! Она выводит экран подробную информацию о соединение что несет громадную пользу при исследование! Впрочем, сами все увидите.
C:>nc –v google.ru 80
Само собой разумеется, что эта чудесная опция тоже будет работать так:
C:>nс –l –p 12345 –v
И расскажет вам кто и зачем к вам подключился!
Опция –z очень помогает тогда когда вы знаете что такое циклы и как они работают.
При включение этой опции NetCat просто соединяется с указанным вами хостом и портом и и при включенной опции –v воозврашает ответ что хост доступен, а порт открыт(или недоступен и закрыт) при этом разумеется он не ждет от вас ввода данных для отправки, а сразу закрывает соединение.
C:>nс –v –z google.ru 80
DNS fwd/rev mismatch: google.ru != gv-in-f104.1e100.net
DNS fwd/rev mismatch: google.ru != ew-in-f104.1e100.net
DNS fwd/rev mismatch: google.ru != ww-in-f104.1e100.net
google.ru [216.239.59.104] 80 (http) open
Но постойте! А что если порт не открыт или еще хуже хост недоступен? Что тогда? Вечно ждать ответа? Или по-быстрому создать сервер, что бы он ответил на заданный вопрос? Нет, просто задать уже знакомый нам ключик –w.
А если данные будут отправляется слишком быстро? И сервер подумает что мы проводим ddos атаку? Но и тут коварный и ужасный NetCat придумал для нас опцию –i, с помощью которой мы задаем число секунд, через которое NetCat должен посылать следующий запрос.
Опция –n отключает DNS(и/или файл hosts) и поиск номеров портов в файле services.
(для ОС Windows C:WindowsSystem32driversetcservices
для *nic подобных ОС /etc/services)
Иногда это бывает полезным. Допустим, если некая программа изменила значение порта и его символьного представления.
Кажется, я забыл упомянуть о том, что номера портов не обязательно указывать как 80, можно указать как www. Номера портов и их символьное представление можно посмотреть в выше указанных файлах.
И наконец опция –s задает ip адрес с которого мы бы хотели подключиться или на котором мы бы хотели ожидать подключения к нам. Это тоже бывает полезно в тех случаях, когда у вас два разных ip адреса, и вы бы хотели ждать подключения или же подключатся с указанного вами ip(при наличии пары сетевых платы или локальной сети где есть localhost,LANip,WANip это актуально). Надо всего-то указать ваш адрес:
C:>nс –v –s my_ip_addr google.ru 80
Подключится к google.ru с адреса my_ip_addr.
Я попытался рассмотреть наиболее общие опции для различных версия NetCat. Опцию –t я подробно рассмотрел в моей статье «telnet ….».
В заключение могу сказать что возможности NetCat не ограничиваются рамками этой статьи более того могу сказать его возможности в *nix подобных ОС почти не ограничены и с уверенным знанием протоколов и языка Shell, вы сможете написать очень мощные сетевые приложения. Кстати в поставку NetCat входят скрипы, показывающие его серьезные возможности! Не надо думать что NetCat не применим в ОС Windows, он также может там использоваться, просто возможности консоли данной ОС не так велики что не удивительно вить в Windows упор сделан на удобство, а значит графический интерфейс в данном случае не так уж и важней.

parrot
-Dim@$-[903] (Off)
[13.02.10, 20:45]
Взято ^ с сайта "хакзона"
-Dim@$-[903] (Off)
[13.02.10, 20:48]
Вирмейкинг в среде Linux
[ Личный опыт ]


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

Возможно ли это?
Более чем. То, что число вирусов под Linux мало по сравнению с числом вирусов для Windows свидетельствует только о низком интересе вирмейкеров к этой платформе. Представьте себе, что Linux стало использовать хотя бы 10% пользователей. Тогда число вирусов непременно возросло бы. Более того, Linux на данный момент более чем подвержен возможным вирусным эпидемиям, в связи с отсутствием в нем адекватного антивирусного софта (те антивирусы, которые ставятся на файловые сервера и сканируют exe'шники, естественно, не считаем).

И зачем оно надо?
Популярность Linux повышается. Не исключено, что следующий, кого вы захотите взломать, будет использовать именно эту ОС. Наиболее результативным приемом заражения компьютера является прогруз жертве троянца. Ситуация усугубляется тем, что большинство пользователей, переходящих на Linux еще не так хорошо в ней разбираются, и верят своим «друзьям», которые говорят: «В Linux нет вирусов».

Разоблачение мифов
1.«Ваши вирусы только компиляцией распространяются». Широко известное заблуждение. Возникает оно из-за того, что большая часть программ в мире *nix распространяется в исходниках и тянет за собой зависимости. Что мешает написать вирус без использования лишних зависимостей от сторонних библиотек и распространять бинарик? Абсолютно ничего.
2.«Без root'а вирусы ничего не могут». Да, они не могут без рута заражать программы, расположенные в /usr/bin, но могут проделывать любые действия, разрешенные пользователю, от чьего имени они запущены. Например, удалять данные или биндить 31337-tcp порт, рассылать спам, выступать в роли socks/proxy для хэккера (если фаерволл настроен неправильно, либо вообще не настроен). Кроме того, в вирус можно встроить связку сплоитов для ядра, или для сервисов, работающих под root, и стать рутом. Дальше сдержит только наличие ограничений для суперпользователя, которые точно мало кто устанавливает.
3.«Linux — система с более совершенными настройками прав пользователей. Вирусы просто не получат прав на запуск». Во-первых, вирус будет заноситься не сам по себе, а через эксплуатацию какого-либо бага в софте, например в firefox. Однажды запущенный таким образом вирус способен установить себе все нужные права, а при наличии root — бит suid, и спокойно запускаться из какого-нибудь скрипта инициализации, типа ~/.profile

Примерный алгоритм работы простого вируса под Linux

1 Итак, сначала нужно определить, как вирус будет получать управление. Сделать это можно разными средствами. Можно эксплуатировать уязвимость в каком-нибудь софте, а можно впаривать запуск средствами соц. инженерии. Для простоты, положим что вирус должен выполняться только под архитектурой x86.

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

3 Просканировать локальную систему на присутствие возможно уязвимых сервисов, а также попробовать использовать эксплоит повышения прав для ядра. Если получаем root, то дело в шоколаде (за исключением случая, когда права самого суперпользователя ограничены, но так делают только самые настоящие параноики).

4 Сделать несколько резервных копий своего тела, реализованных в виде бэкдора. Многие дистрибутивы Linux часто выпускают обновления, поэтому записи в одном скрипте может оказаться недостаточно — при обновлении скриптов запись может удалиться и наш вирус больше не будет получать управление при запуске. Идеальный вариант — хранить бэкдор в виде головки-распаковщика + сжатого и зашифрованного тела. Не забыть проставить нужным файлам права на запуск!

5 Здесь уже можно переходить к выполнению полезной нагрузки.

* Замечу здесь, что если пишется деструктивный вирус, то эти этапы вообще не нужны. В таком случае достаточно просканировать к каким данным есть доступ и посносить их. Но такие вирусы не представляют интереса, а потому не рассматриваются.

Пути обмана пользователя и ручного запуска вируса
Возьму, для примера, среду GNOME. В первую очередь следует обратить внимание на меню приложений, которое можно пропатчить модификацией файлов, лежащих в ~/.config/menus
Например, можно подменить запуск конкретного приложения запуском вируса. Чтобы пользователь не заметил подмены, нужно следом запустить запрашиваемое приложение.

Также следует обратить внимание на gconf, и, в частности, на ветку /desktop/applications
Там можно задать «любимые программы» типа браузеров, почтовых агентов, календаря и т.д. Меняем программу на своего зверя, и точно так же как и в предыдущем случае запускаем запрошенное приложение, не забыв передать ему все нужные аргументы.

Для того, чтобы просматривать трафик всех приложений, работающих через gtk+ (например firefox, xchat), необязательно устанавливать снифер. Достаточно установить свой прокси-сервер в gconf: /system/proxy. Только пусть ваш прокси работает круглосуточно, иначе подозрения возникнут даже у самого неопытного пользователя. И на всякий случай добавляйте заголовок X_HTTP_FORWARDED_FROM с ip-адресом владельца, чтобы избежать лишних подозрений. С SOCKS все обстоит несколько сложнее, зато через него может работать больше программ.

Распространение вирусов в исходниках
В данном случае подразумевается совсем не то, о чем вы подумали. Эта техника уже давно известна: взламывается сервер с репозитариями, загружается зараженный пакет, подменяется checksum и вуаля. От последствий заражения спасает только быстрая реакция админов хранилища.

Но это одна сторона медали. Что мешает автору программы хитро запрятать в ней уязвимость, особенно если в программе минимум 100 тысяч строк кода? Отсутствие бэкдоров в «открытых исходниках» можно подтвердить только после изучения каждой строчки по отдельности, и всей программы в целом. Вы наверняка так или иначе используете свободное ПО, утверждая что в нем нет «шпионских закладок». А вы в них заглядывали? Много ли вы в них увидели понятного сразу? Наличие исходников только помогает в реверс-инженерии тем, кто не владеет искусством дизассемблирования, но не избавляет от самой необходимости анализа. По сути, даже такая простая и известная всем вещь как buffer overflow уже может выступать в роли «закладки».

Заражение файлов
В Linux заражение системных файлов, таких как ядро и драйверы не так эффективно, как может показаться. В отличие от Windows, ядро и системные компоненты Linux обновляются чаще, а значит зараженный файл рано или поздно будет перезаписан. Перехватывать перезапись также непросто. Поэтому выбирать нужно такие программы, которые почти не обновляются, или обновляются достаточно редко: ls, find, grep, gcc, ld, awk и т.д, но в то же время к ним происходят частые обращения.

Здесь есть еще одна тонкость: можно не модифицировать существующие утилиты, а просто записать свою псевдоутилиту, скажем, в /home/username/.utilites, выставить себе права на выполнение и отредактировать PATH, поставив свой путь на первое место. Точка в имени папки нужна, чтобы сделать её «скрытой» в nautilus. (тем не менее, она будет показана по команде ls -a).

Заключение
В этой статье были описаны самые простые способы заражения вирусами и троянами систем типа Linux. На самом деле они не заканчиваются этим списком, а только начинаются. Помните: то, что под Linux мало вирусов, не заслуга платформы, а следствие её непопулярности в роли объекта вирмейкеров.

_mbr_
-Dim@$-[903] (Off)
[06.03.10, 19:08]
Ubuntu готовит экспансию на компьютеры конечных пользователей

В текущем 2010 году операционная система Ubuntu Linux продолжит расширение своей популярности в среде настольных компьютеров и серверов. Об этом заявила Джейн Силбер, новый исполнительный директор компании Canonical, коммерческого спонсора Ubuntu.
Силбер заявляет, что она довольно реалистично смотрит на позиции Ubuntu на настольных рабочих компьютерах, особенно в свете недавнего релиза Windows 7, и тем не менее, компания Canonical продолжит развитие как боксовой версии Ubuntu, так и продажи OEM-варианта, предусматривающего предварительную установку на новые компьютеры.
"С точки зрения работы на потребительском рынке, наши действия будут направлены как на получение определенной рыночной доли у Microsoft, так и на занятие некоторых сегментов, которые в данный момент принадлежат другим дистрибутивам", - говорит она.
Значительную часть планов в текущем году производитель связывает с релизом новой ОС Ubuntu 10.04 Lucid Lynx, запланированной к выходу в конце апреля, а также на интернет-сервис Ubuntu One Music Store, где пользователи могут покупать музыкальные записи. "Я думаю, что настольную версию ОС мы продолжим делать более ориентированной на массового потребителя", - говорит Силбер.
Одновременно с этим, Canonical бросит значительную часть ресурсов на развитие OEM-партнерства. "Розничная торговля - это хитрая среда, которая так или иначе завершается на потребителе. Мы не ожидаем значительного роста спроса на коробочные версии Ubuntu, но планируем, что предустановленные версии дистрибутива будут пользоваться спросом. Можно сказать, что партнерство со сборщиками ПК будет играть для нас ключевую роль", - отмечает Силбер. Она говорит, что в текущем году Canonical и Ubuntu будут привлекать новых пользователей обновленными возможностями работы в настольной среде, а также оперативностью выпуска новых исправлений и доработок для ОС. "В плане исправления ошибок в софте, открытому сообществу разработчиков пока нет равных, баги здесь исправляются быстрее, чем где-либо", - резюмирует Силбер.
Антон24[38] (Off)
[09.05.10, 11:14]
Лично я на линуксе не разу не сидел
Sonny[947] (Off)
[09.05.10, 11:46]
Да для администрирования лучше и не найдешь. Думаю лет через 5-10 все будут сидеть на убунте Пингвин.
APVil[77] (Off)
[09.05.10, 12:33]
Хотел взять эту ОС..ток чёт передумал
Bleed_The_Dream[123] (Off)
[09.05.10, 14:14]
Линукс хорош тем что вирусов нету, а так хорошо поставлена винда будет ничем не хуже. Просто большинство нубов сами загоняют свой комп ненужными программами, а потом жалуются что вируса всю ОСь погрызли.
rom@n[71] (Off)
[06.11.10, 1:17]
Linux, произносится «ли?нукс» (некоторые, также, GNU/Linux[1], произносится «гну ли?нукс» или «гну слэш ли?нукс»[2]) — общее название Unix-подобных операционных систем на основе одноимённого ядра и собранных для него библиотек и системных программ, разработанных в рамках проекта GNU.

Linux работает на множестве архитектур процессора таких как Intel x86, x86-64, PowerPC, ARM, Alpha AXP, Sun SPARC, Motorola 68000, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других.

В отличие от большинства других операционных систем, Linux не имеет единой «официальной» комплектации. Вместо этого Linux поставляется в большом количестве так называемых дистрибутивов, в которых ядро Linux соединяется с утилитами GNU и другими прикладными программами (например, X.org), делающими её полноценной многофункциональной операционной средой.

Наиболее известными дистрибутивами Linux являются Arch Linux, CentOS, Debian, Fedora, Gentoo, Mandriva, Mint, openSUSE, Red Hat, Slackware, Ubuntu.

Российские дистрибутивы — ALT Linux, ASPLinux, Calculate Linux, НауЛинукс, AgiliaLinux (ранее MOPSLinux), Runtu и Linux XP.
zzz123[77] (Off)
[19.02.11, 22:35]
Линукс это полная хрень! такая тупость честное слово! никогда себе ее не поставлю
Последние ответы