Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Category:

код сапфира

Интересный документ (спасибо, malaya_zemlya): подробный разбор кода червяка "Сапфир", который недавно парализовал большую часть интернета в течение суток где-то. На ассемблере.

Если кто-то не знает, как работают такого рода червяки и эксплойты (?), и знает ассемблер, советую поглядеть -- интересно. Сам код довольно простой. Мне приходилось писать shell code (для интереса, никогда "вживую" ничего не выпускал), хотя года четыре уже этим не занимался. Такой, думаю, легко написал бы, если бы стояла задача и уже известна была дырка в SQL-сервере, которой этот червяк пользуется.

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

Кстати, проверка правильного местонахождения таблицы экспортов там довольно неудачная, можно было сделать грамотнее, чтобы он лучше работал с разными версиями DLL-я.

Трюк с засовыванием строк в стэк несколькими push-ами (каждый push - четыре символа) милый, но тоже хорошо известный. Я, кажется, всё же не так делал, а совал строки где-нибудь рядом с кодом и выцарапывал их через смещение от eip в какой-то точке.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments