SEOSERVISE - Защита информации.

 
   
 

Главная


 


Работа в предельном режиме Перед реализацией атаки, например на почтовый сервер, вместо безрассудного по­ гружения в ассемблерный код стоит обратиться к документации. Из документа RFC , в котором описывается протокол SMTP , можно извлечь всю необходимую информацию о командах, используемых на сервере по умолчанию. Исходя из полученных знаний, можно сделать вывод, что для реализации атаки в качестве параметра какой-либо ко­ манды достаточно отправить длинную строку. Сделать это проще простого. Хорошим инструментом для выполнения тестирования является свободно распро­страняемая утилита NTOMax от компании Foundstone ( http :// www . fouiidstone . com ). Из фрагмента исходного кода chHserver . c видно, где располагается опасный код. Полученные через сокет данные хранятся в переменной rbuff , а затем передают­ ся в буфер buff размером 1400 байт без какой бы то ни было проверки границ. Та­ ким образом, абсолютно очевидно, что если передать более 1400 байт данных, то можно разместить информацию поверх дополнительной области памяти. Проверим, удастся ли наложить данные поверх чего-нибудь важного. Для начала запустим программу chl 4 server Затем загрузим программу Soft Ice и нажмем комбинацию клавиш < Ctrl + D >. При ра­боте в системе Win 9 x достичь поставленной цели можно с помощью команды faults on , которая позволяет перехватить любое нарушение доступа к памяти. Однако при работе в системах Windows NT или 2000 одной команды faults on недостаточно. К сожалению, при использовании программы Softlce в этих операционных системах могут возникать некоторые проблемы. Вместо этого воспользуемся следующей командой: Эта команда позволяет установить точку прерывания на обработчик прерываний системы NT и дизассемблирует адрес, определяемый выражением esp + Oc . Этот адрес определяет место, где произошло исключение. Введем в командной строке следую­ щую команду: С помощью этой команды на ТСР-порт 9999 передается 1400 байт символа х, а за­ тем 4 байта abed . В действительности эти данные не могут разместиться нигде, кроме важных областей оперативной памяти. Чтобы проиллюстрировать эту ситуацию, на рис. 14.2 показано диалоговое окно отладчика Visual C++.

 

 

 

 

 

 
 

1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100 |