Взлом и защита компьютера

Тема в разделе "WASM.NETWORKS", создана пользователем s3dworld, 15 дек 2010.

  1. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    Всем доброго вечера!

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

    Возможно у меня не правильное представление о сетевом мире, но я считаю что всё построено на сокетах (TCP, UDP и другие). Хотя, наверное я ошибаюсь. Возможно сокеты это только часть сетевого мира, самая распространённая. Лично я просто больше ничего не знаю. Самые распространённые операционные системы, это Windows и Linux. В отличии от Windows, Linux взламывают намного чаще. Наверное это из-за тонкостей настройки. Всё это я не утверждаю, я лишь читал про это. Так собственно как может идти взлом компьютера?!

    Я не являюсь профессионалом ни в одной операционной системы, но для меня ближе Windows, поэтому буду говорить именно о ней (наверняка в других операционных системах есть всё схожее).

    Первым что мне приходит в голову, так это если в системе создано несколько пользователей и если разрешён сетевой вход в систему, то тогда путём подбора пароля (ну и имя пользователя тоже не мешает знать) можно войти в систему и попытаться украсть то, что плохо лежит (если конечно для данного пользователя есть такие права доступа). Ну или же оставить какую-нибудь программку, которую может запустить пользователь с большими привилегиями и тем самым откроет лазейку для взломщика (программа может и по открывать что угодно, и может по сети передавать данные). Уж не знаю насколько всё так, это только мои фантазии. Таким образом, будет ведь безопаснее, если на компьютере будет всего один пользователь создан или если будет запрещён сетевой вход в систему? В моём случае, в Windows 7 создан всего один пользователь с правами администратора и запрещён сетевой вход в систему. Я считаю это надёжным.

    Собственно это был способ проникнуть на компьютер, а есть ещё взлом сайтов. При взломе сайтов я не уверен что можно побродить по всему компьютеру (собственно как это возможно), я думаю что можно лишь побывать админом сайта и иметь доступ к хранящейся информации на сайте (но не к информации на всём компьютере). Поправите меня если я не прав, просто не понимаю как из взлома сайта можно по жёстким дискам всего компьютера побродить. Так каким же образом взламывают сайты?! Путём подбора паролей, но думаю сейчас это уже глупо использовать. Ведь теперь можно ставить ограничения на ввод. Далее ещё есть SQL-инъекции. Именно таким образом меня и взломали весной. Но и от SQL-инъекции можно обезопаситься, достаточно лишь жёстко закрепить используемые символы (сочетания символов) и при получении данных в PHP-скрипт вести проверку на недопустимые символы (наборы символов). Собственно от SQL-инъекции взломщик может получить данные из базы данных. Так же может удалить, добавить и изменить данные. Извлечь пароль админа и координально переделать сайт. Но он не сможет получить доступ к другой части компьютера, которая не является сайтом и которая может хранить другие данные. Правильно ведь?

    Есть ещё DOS-атаки. Если честно, то мне с трудом верится что от неё может быть польза во взломе сайта, что тебе покажется код или ещё что-то. Если подумать разумно, то я вижу тут только лишь пользу в том, чтобы лишить сайт клиентов (прекратить на время обслуживание). Хороший способ для устранения конкурентов. Не знаю как на самом деле, но у меня только такие познания. Как же защититься от DOS-атак? Программным способом думаю это не поможет, так как придётся тратить процессорное время на фильтрацию и прочее. Наверное самый лучший вариант, это дополнительное оборудование. Но и в этом случае нет полноценной защиты. Видимо выиграет тот, кто больше заплатит.

    А теперь хотелось бы поговорить про порты. Всего есть 65536 портов (от 0 до 65535). Те порты, которые ближе к началу, они уже зарезервированы (например 80 - это порт Web-сервера). Так как же возможно взломать компьютер через порт? Если не брат во внимание разные firewall, то как всё это происходит? Порт может быть закрыт, если не идёт прослушка этого порта программой. И порт может быть открыт, если программа ожидает подключения к этому порту. Про порт 80 думаю дело обстоит так же как и взломом через браузер, только лишь вручную придётся прописывать TCP-запрос. Но опять же, что получить можно, всего лишь данные сервера если они не защищены от SQL-инъекций (на слово всего лишь не обращайте внимание). Ну а что значит поиск открытых портов с уязвимым кодом? Нашёл я открытый порт и что дальше? Как я узнаю уязвимый код или нет? И что он мне даст если он уязвимый, каким образом его можно использовать и что произойдёт?

    Наверное TCP-порты взламывают шаг за шагом анализируя полученную от него информацию и к предыдущему запросу добавляя новые данные и заново отсылая. Так? Но я не понимаю, как через какой-то порт, которые обслуживает вообще левая программа, даже если у неё код косячный, что программа может просто зависнуть (выйти из строя) если ей прислать "интересное" значение переменной, как она может помочь войти в компьютер и скопировать информацию?

    Как я понимаю, firewall хорошая вещь. Наверное даже может фильтровать IP-адреса для определённых портов. И думаю если у стоит такая программа, то единственное что сможет ослабить её защиту, то это только подцепленный вирус любопытного админа. Я прав?

    Интересно, почему многие хакеры (хотя по данной теме лучше бы использовать слово крекеры) не используют Windows, а сидят только лишь в Linux? Не связано ли это с сырыми сокетами? Вроде бы такой в Windows нельзя создать сырой сокет, а в Linux можно. И как я понимаю, сырой сокет - это сокет, в котором можно полностью контролировать пакеты, вплоть до подмены IP-адреса отправителя. Так ведь?

    У меня стоит Avast 5 Home и он частенько выводит информацию что только что была пресечена попытка заражения компьютера. Он выводит IP-адрес нападающего и порт, на который подверглось нападение, ну и название вируса. Интересно, как такое может быть. Я не лазил по сайтам, у меня не был запущен браузер. Я только лишь находился в системе. Как тогда кто-то мог напасть на мой компьютер именно на порт? И как это он мог заразить компьютер вирусом через порт? А если бы у меня Avast 5 Home не следил за этим, меня бы что, так вот заразили? Объясните, как через порт кто-то мог заразить компьютер (ведь через порт можно лишь программу загнуть)?

    Это конечно не всё что я хочу знать, но думаю пока достаточно и этого. Надеюсь на оживлённую беседу.

    Повторю ещё раз, Вы из меня не сделаете преступника, я только для познавательных целей. Я прекрасно понимаю что в Интернете всё прозрачно. Наверное многие думают что можно что-то сделать и скрыться. Но я знаю, что если захотеть (особенно если это будет правительство), то человека найдут. А я закон нарушать не хочу. Думаю что ничего плохого нет в том, что я интересуюсь подобной темой.
     
  2. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Ох, какой здоровенный список клише!!!
    Если делать замечания по каждому из пунктов, то текста будет страниц на 10....

    Лично у меня яда не хватит, может кто поможет?

    2s3dworld
    практически ничего из списка не имеет ничего общего с реальностью ;)
     
  3. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Блин, ступил, может проверка какая... специалистов по защите в банк набирают, а я тут язвлю ;););)
    Или статью о выдающихся дефендерах пишут... в ксакеп. Мммм, я бы мог стать кумиром школоты! И как касперский создать собственную секту (не, не секту найкедджамперов, я про другого касперского), делать на этом бабки....

    Вечно я всё порчу Х(
     
  4. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    Z3N
    Нет, это не проверка. И то что это могло выглядеть фантастикой - тут ничего плохого нет, я ведь написал чтобы разобраться. Хочу все эти тонкости знать. А то кругом всё происходит, а я как в неведении. Если можете помочь, буду рад.
     
  5. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Кстати, что вот это?

    Вашу маму и там и тут показывают ;)

    тыц
     
  6. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    Z3N
    Это тоже самое. Меня от туда сюда послали.
     
  7. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Ладно... Мой скромный (тр|фл)уд. Мои познания скромны... и, возможно, неверны/устаревшие. К вашему (не|)счастью из флудеров на форуме сейчас только я ;).

    Говорите про сокеты, а перечисляете протоколы...
    Вам бы с терминами познакомиться для начала.

    Мда, виндовс нужна для ботнетов и всяческого рода угонов, а линукс - это обычно серв и цели соответсвенные (хотя, в последнее время не слежу за соотношением их долей в роли серверов)

    Имея пару световых лет в запасе - почему бы и нет?

    Нет, если есть сплоет, то вас ничего не спасёт, кроме пяти сантиметров воздуха в качестве фаера. Отсутствие привилегий помеха, но поправимая.

    Аминь!

    Не всегда, иногда доступ к важным данным имеют записи, которые этот доступ иметь не должны... лечиться временем.

    :S

    Существуют сайты, на которых описаны актуальные методы взлома сайтов.

    Либо большие тайм-ауты. Также помогжет друг в отделение К (Кал)
    А вообще - это вопрос к акилле... как он справляется... ;)

    Это вы так пространно о переполнение буфера? Тут есть статья - курите, там всё как для школьников написано.

    Не-а, зачем так ограничивать фаер? Ослабить его может всё, что угодно.... Кривые руки особенно (программиста или юзера)

    Исчо бы, милиция, вот, тоже начальству по несколько раз в день рапортует о успешной борьбе с преступностью.

    Ну, вот, опять, хз о чём вы говорите... опять про сплоеты что-ли?
    Что-то мне подсказывает, что вас бы и не посадили бы... возраст не позволил.... Сколько вам лет?

    Диагноз:
    Нехватка базовых знаний в критической форме

    Диагноз себе:
    Критинизм, мля
     
  8. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    s3dworld
    Нужно выбрать то что САМое интересное.
    По ходу познания разберешься со всем остальным
    думаю.
    Для начала напиши на с простой клиент и сервер.

    - Потесть локально, потом в локальной сети.

    - Дальше открой в настройках своего ADSL - модема
    закладку Port Forwarding и пробрось на свою дом.
    машину порт 6666 например.

    - Повесь сервер на прос-
    лушивание порта 6666. Пойди к другу и от него
    подключись клиентом к своему серверу через
    порт 6666.

    - Почувствуй разницу.

    Потом вдруг заметишь что половина вопросов - отпала
    издавая хрустальный звон :))
     
  9. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    световой год, мера длинны а не времени :derisive:
     
  10. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    spa
    Это же время, за которое идёт луч света от солнца до земли, не? Получается, что и длинны и времени....
     
  11. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    _sheva740
    Программировал на C++ в Windows через WinSock 2. Начинал от примитивного консольного приложения с соединения между двумя компьютерами и заканчивал созданием фонового сервера, который принимал клиентов и мог со всеми с ними общаться. Так же и клиенты могли посылать данные на сервер. В общем получать и отправлять данные можно были и всё это информируется и выводится. Писал только TCP.
     
  12. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    Z3N
    Световой год, это не время за которое свет идёт до земли. Это расстояние, которое свет проходит за один год.
     
  13. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    А сегодня пробовал экспериментировать. Через сканер портов Advanced Port Scanner определял открытые порты на разных серваках и прописывал эти порты. Так ничего и не получил в ответ.

    Код (Text):
    1. #define WIN32_LEAN_AND_MEAN
    2.  
    3. #include <Windows.h>
    4. #include <WinSock2.h>
    5. #include <iostream>
    6.  
    7. const char* ip="81.19.70.3";
    8. const unsigned short int port=777;
    9.  
    10. SOCKET sock=0;
    11.  
    12. void Release(void);
    13.  
    14. int main(void)
    15. {
    16.     WSADATA sockData;
    17.     sockaddr_in sockAddress;
    18.     sockaddr_in sockMyAddress;
    19.     char buffer[128];
    20.     int length=0;
    21.  
    22.     memset(&sockData,0,sizeof(WSADATA));
    23.     memset(&sockAddress,0,sizeof(sockaddr_in));
    24.     memset(&sockMyAddress,0,sizeof(sockaddr_in));
    25.     memset(buffer,0,128);
    26.  
    27.     std::cout<<"Welcome to Net!"<<std::endl<<std::endl;
    28.  
    29.     if(!WSAStartup(MAKEWORD(2,2),&sockData))
    30.     {
    31.         std::cout<<"Success init socket system."<<std::endl;
    32.     }
    33.     else
    34.     {
    35.         std::cout<<"Error init socket system!"<<std::endl;
    36.         Release();
    37.         return -1;
    38.     }
    39.  
    40.     sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    41.  
    42.     if(sock!=INVALID_SOCKET)
    43.     {
    44.         std::cout<<"Success create socket."<<std::endl;
    45.     }
    46.     else
    47.     {
    48.         std::cout<<"Error create socket!"<<std::endl;
    49.         Release();
    50.         return -1;
    51.     }
    52.  
    53.     sockMyAddress.sin_family=AF_INET;
    54.     sockMyAddress.sin_addr.S_un.S_addr=0;
    55.     sockMyAddress.sin_port=htons(port);
    56.  
    57.     if(bind(sock,(SOCKADDR*)&sockMyAddress,sizeof(sockaddr_in))!=SOCKET_ERROR)
    58.     {
    59.         std::cout<<"Success bind."<<std::endl;
    60.     }
    61.     else
    62.     {
    63.         std::cout<<"Error bind!"<<std::endl;
    64.         Release();
    65.         return -1;
    66.     }
    67.  
    68.     sockAddress.sin_family=AF_INET;
    69.     sockAddress.sin_addr.S_un.S_addr=inet_addr(ip);
    70.     sockAddress.sin_port=htons(port);
    71.  
    72.     if(connect(sock,(SOCKADDR*)&sockAddress,sizeof(sockaddr_in))!=SOCKET_ERROR)
    73.     {
    74.         std::cout<<"Success connect."<<std::endl;
    75.     }
    76.     else
    77.     {
    78.         std::cout<<"Error connect!"<<std::endl;
    79.         Release();
    80.         return -1;
    81.     }
    82.  
    83.     length=send(sock,"Hello!",6,0);
    84.  
    85.     if(length!=SOCKET_ERROR)
    86.     {
    87.         std::cout<<"Success send data."<<std::endl;
    88.     }
    89.     else
    90.     {
    91.         std::cout<<"Error send data!"<<std::endl;
    92.         Release();
    93.         return -1;
    94.     }
    95.  
    96.     length=0;
    97.  
    98.     std::cout<<"Waiting data..."<<std::endl;
    99.     length=recv(sock,buffer,10,0);
    100.  
    101.     if(length!=SOCKET_ERROR)
    102.     {
    103.         std::cout<<"Read data: "<<length<<std::endl<<std::endl;
    104.         std::cout<<buffer;
    105.     }
    106.     else
    107.     {
    108.         std::cout<<"Error read data!"<<std::endl;
    109.         Release();
    110.         return -1;
    111.     }
    112.  
    113.     Release();
    114.     return 0;
    115. }
    116.  
    117. void Release(void)
    118. {
    119.     if(sock) closesocket(sock);
    120.     WSACleanup();
    121.  
    122.     std::cout<<std::endl<<"Input any text for exit...";
    123.     std::cin.get();
    124. }
     
  14. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    spa
    s3dworld
    Не, я сегодня туплю просто... последствия 6-часового экзамена.
     
  15. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    "Прописывал" - это как?
    Напиши сервер, который содержит в себе переполнение буфера.
    Например, принял от клиента строку и передал ее в функцию
    типа такой:
    Код (Text):
    1. ;----------------------------------------------
    2. _strspy proc uses esi edi, src:PTR BYTE
    3. LOCAL lBuffer[10]:BYTE
    4.       mov    esi, src
    5.       lea    edi, lBuffer
    6.       cld
    7. wh: lodsb
    8.       stosb
    9.       test   al, al
    10.       jne    wh
    11.       ret
    12. _strspy endp
    13. ;----------------------------------------------
    Так как там 10 байт а передано 34, то будет затирание
    в стеке адреса возврата из функции.
    Теперь если клиент передает не просто какие то данные
    а последовательность выполнимых команд, то уязвимый
    твой сервер их выполнит. Вот и произойдет использование
    уязвимости тобою созданной. А клиент отсылающий
    выполнимый код - будет сплитом.

    Уязвимости ищет у разных серверов. Продают некоторые.

    Та че там световых лет. Он в 2009 Конфикер пароли подбирал
    так немудренно:

    [​IMG]
     
  16. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    spa
    Хан Соло как-то обронил, что в световых годах измеряется скорость.
     
  17. xanxy

    xanxy New Member

    Публикаций:
    0
    Регистрация:
    18 май 2010
    Сообщения:
    18
  18. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    _sheva740
    Я вариант паролей вроде 123 не рассматривал даже. Об этом ещё в наскальной живописи писали... думал, что все хоть немного поумнели....

    CyberManiac
    Есть предложение отныне измерять время/скорость перебора пароля в световых годах ;)
     
  19. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    расстояние/скорость/время с одной размерностью
    Минковский в гробу ворочается
     
  20. AndjellaArtavazdovna

    AndjellaArtavazdovna New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2010
    Сообщения:
    615
    s3dworld
    Вероятно исчерпывающим ответом на ваш вопрос будет следующий:
    книга "Техника взлома - сокеты,эксплоиты,шеллкод".
    А вот это не факт... Большинство программеров нынче прописано где-нибудь в Вышних *уях,а работает либо Москве,либо в Питере.
    Приехал неизвестно откуда,жил неизвестно где,к интернету подрубился как неизвестно кто,зашел через прокси,натварил делов,и на перекладных обратно в Вышние *уи. Ищи-свищи......