дизасемблировать бинарник
Модератор: Fastman
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
дизасемблировать бинарник
у юзера сперли пароль на фтп, и стали загружать всякие вредоносные бинарные проги.
Посредством php (system, etc) эту гадость запускают. Это все происходит быстро, скрипт загружает, запускает и сразуже удаляет.
при помощи нехитрых телодвижений аля chflags -R sappnd я эту гадость выловил
но не знаю как ее толком разобрать по кусочкам. Интересно таки
может кто подскажет механизм,
ссылки также приветствуются.
пример такого малваере ниже:
http://paix.org.ua/tmp/malware.pl_
ps. пробовал посмотреть портовым libdisasm
но скилов по теме не хватило чтобы с наскоку -)
Посредством php (system, etc) эту гадость запускают. Это все происходит быстро, скрипт загружает, запускает и сразуже удаляет.
при помощи нехитрых телодвижений аля chflags -R sappnd я эту гадость выловил
но не знаю как ее толком разобрать по кусочкам. Интересно таки
может кто подскажет механизм,
ссылки также приветствуются.
пример такого малваере ниже:
http://paix.org.ua/tmp/malware.pl_
ps. пробовал посмотреть портовым libdisasm
но скилов по теме не хватило чтобы с наскоку -)
With best wishes, Sergej Kandyla
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: дизасемблировать бинарник
ну там не на С++ и даже не на С
там два варианта
1) та меил варя писана на ассемблере и както упакована
2) писана на perl'e и скомпилирована перл компилеров в ELF выполняемый файл
вовсяком случае она из себя запускает /usr/bin/perl
и чтото декриптует или распаковывает толи через пайпы толи через /tmp/
сказать сложно
если это для фрибсд то запусти ее через truss
а /usr/bin/perl можно как то подставить туда чтото другое вместо перла
и оно думаю будет пробовать тому выдуманому перлу подставить декрипченый или распакованый поток уже нормальной перл программы
там два варианта
1) та меил варя писана на ассемблере и както упакована
2) писана на perl'e и скомпилирована перл компилеров в ELF выполняемый файл
вовсяком случае она из себя запускает /usr/bin/perl
и чтото декриптует или распаковывает толи через пайпы толи через /tmp/
сказать сложно
если это для фрибсд то запусти ее через truss
а /usr/bin/perl можно как то подставить туда чтото другое вместо перла
и оно думаю будет пробовать тому выдуманому перлу подставить декрипченый или распакованый поток уже нормальной перл программы
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
ну вот я нашел модуль
http://search.cpan.org/~rurban/B-C-1.04 ... sembler.pm
там есть еще какой-то B::C::Disassembler
установить этот модуль
написать
perld.pl
выполнить:
и посмотреть что будет...
(у меня этот модуль не стоит, я не пробовал, чтобу дет не знаю)
тут вот еще http://search.cpan.org/search?m=all&q=disassemble&s=1
вот это по-моиму оно http://search.cpan.org/~bobmath/Disasse ... .13/X86.pm
но оно должно тебе выдать в asm/Си, а не в перле
http://search.cpan.org/~rurban/B-C-1.04 ... sembler.pm
там есть еще какой-то B::C::Disassembler
установить этот модуль
написать
perld.pl
Код: Выделить всё
use Disassembler qw(print_insn);
my $fh = new FileHandle "<$ARGV[0]";
disassemble_fh($fh, \&print_insn);
Код: Выделить всё
./perld.pl malware.pl_
(у меня этот модуль не стоит, я не пробовал, чтобу дет не знаю)
тут вот еще http://search.cpan.org/search?m=all&q=disassemble&s=1
вот это по-моиму оно http://search.cpan.org/~bobmath/Disasse ... .13/X86.pm
но оно должно тебе выдать в asm/Си, а не в перле
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: дизасемблировать бинарник
фряха фряха...paradox писал(а):ну там не на С++ и даже не на С
там два варианта
1) та меил варя писана на ассемблере и както упакована
2) писана на perl'e и скомпилирована перл компилеров в ELF выполняемый файл
вовсяком случае она из себя запускает /usr/bin/perl
и чтото декриптует или распаковывает толи через пайпы толи через /tmp/
сказать сложно
если это для фрибсд то запусти ее через truss
а /usr/bin/perl можно как то подставить туда чтото другое вместо перла
и оно думаю будет пробовать тому выдуманому перлу подставить декрипченый или распакованый поток уже нормальной перл программы
я к работающим процессам этой гадости цеплялся через truss, оно там ниче толкового не делало, и постоянно сыпало
select
gettimeofday..
прога кстати открывала сокеты по udp, а также пыталась на 80ый забиндится, tcp.
на счет идеи подставить что-то вместо перлятины - забавный вариант, спасибо )
ProFTP, спасибо.
выкрою время попробую....
With best wishes, Sergej Kandyla
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
в примере я не посмотрел, B::Disassembler это для байт кода, оно не подойдет...
а ELF формат это только машинный-код?
perl, python код можно скомпилировать как обычную Си программу (есть скрипт для этого стандартный, не большой perlcc)
т.е. это как обычная Си программа, наверное...
а ELF формат это только машинный-код?
perl, python код можно скомпилировать как обычную Си программу (есть скрипт для этого стандартный, не большой perlcc)
т.е. это как обычная Си программа, наверное...
Последний раз редактировалось ProFTP 2009-10-26 11:54:48, всего редактировалось 1 раз.
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: дизасемблировать бинарник
проверь
без наличия перла эта гадость работать поидеи не должна
и кстати если это программа скомпилирована на перле
то я думаю должна какая то быть приблуда котрая ее же и декомпилирует обратно в перл
а как обратно? должны быть готовые утилиты
без наличия перла эта гадость работать поидеи не должна
и кстати если это программа скомпилирована на перле
то я думаю должна какая то быть приблуда котрая ее же и декомпилирует обратно в перл
даа ELF это только машинный-код?
угуperl, python код можно скомпилировать как обычную Си программу (есть скрипт для этого стандартный)
а как обратно? должны быть готовые утилиты
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
у тебя perl стот?paradox писал(а): а как обратно? должны быть готовые утилиты
набери в консоле:
Код: Выделить всё
ee /usr/local/bin/perlcc
Код: Выделить всё
/usr/local/bin/perlcc
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: дизасемблировать бинарник
perlcc это скомпилить из pl в elf
а я говорил что должно быть обратно
из elf в pl
если этот elf перловский
а я говорил что должно быть обратно
из elf в pl
если этот elf перловский
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
там есть команды упаковщики http://perldoc.perl.org/functions/unpack.html , но не упаковщики которые делают бинарный файлparadox писал(а): угу
а как обратно? должны быть готовые утилиты
а gdb не получиться этот файл посмотреть?
или objdump?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
в Си можно заинклудит же perl как библиотеку и использовать его в Си
ты уверен что elf перловский?
ты уверен что elf перловский?
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: дизасемблировать бинарник
не уверенты уверен что elf перловский?
но то что там в том elf делаеться
1) открываються пайпы
2) открываеться /usr/bin/perl
3) декриптуеться/депакуеться поток символов с того elf файла и пишеться в пайп для /usr/bin/perl
наводит на мысль что этот elf скомпилирован perlcc
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
http://www.google.com.ua/#hl=uk&q=perlc ... 4bacaee8e0
http://sunsite.ualberta.ca/Documentatio ... mpile.html
ну вот тут вот написано...
B::Disassembler если я понял для perlcc?
http://sunsite.ualberta.ca/Documentatio ... mpile.html
ну вот тут вот написано...
B::Disassembler если я понял для perlcc?
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: дизасемблировать бинарник
незнаю
может это просто декомпилятор байт кода в asm
возьми проверь)
может это просто декомпилятор байт кода в asm
возьми проверь)
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
этого модуля в портах нету - ставить геморой, он в perl не переведет, только в asm
и байт код довольно сложный чем машинный, например
это обычный бот, наверное, ходил по ftp и ставил эти програмки, что там в нем смотреть
и байт код довольно сложный чем машинный, например
это обычный бот, наверное, ходил по ftp и ставил эти програмки, что там в нем смотреть
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: дизасемблировать бинарник
ну так ясно что ботProFTP писал(а):этого модуля в портах нету - ставить геморой, он в perl не переведет, только в asm
это обычный бот, наверное, ходил по ftp и ставил эти програмки, что там в нем смотреть
не суть. Сегодня мелкая пакость, завтра большая... надо быть готовым.
With best wishes, Sergej Kandyla
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
ну это вирус пароль на фтп украл на винде и зашел на сервак?
т.е. кто угодно может туда залить все что угодно...?
может нужно как-то system выключить?
т.е. кто угодно может туда залить все что угодно...?
может нужно как-то system выключить?
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: дизасемблировать бинарник
да system уже давно выключен на этом серваке про него забыли както...не суть.ProFTP писал(а):ну это вирус пароль на фтп украл на винде и зашел на сервак?
т.е. кто угодно может туда залить все что угодно...?
может нужно как-то system выключить?
одни трояны воруют у юзеров пароли,
эти пароли подпихуются ботам которые и пытаются залить и выполнить на серваке какуюнибудь фигню.
этот механизм прозрачен.
With best wishes, Sergej Kandyla
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
там модуль не дописан, и им никто не пользовался, гугл не пишет чтобы им кто-то пользовался http://www.google.com.ua/#hl=uk&q=use+D ... 4bacaee8e0paradox писал(а):незнаю
может это просто декомпилятор байт кода в asm
возьми проверь)
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: дизасемблировать бинарник
и он выводит:
Код: Выделить всё
sub print_insn {
my ($insn, $arg, $comment) = @_;
undef $comment unless $comment;
if (defined($arg)) {
if ($insn eq 'newopx' or $insn eq 'ldop') { # threaded or unthreaded
my $type = $arg >> 7;
my $size = $arg - ($type << 7);
$arg .= sprintf(" \t# size:%d, type:%d %s", $size, $type) if $comment;
printf "\n# [%s %d]\n", $opname[$type], $opix++ if $comment;
} elsif (!$comment) {
;
} elsif ($insn eq 'newsvx') {
# TODO which type? SV, AV or GV. check arg
$arg .= "\t# ".$comment if $comment ne '1';
printf "\n# [%s]\n", 'SV';
} elsif ($insn eq 'gv_stashpvx') {
$arg .= "\t# ".$comment if $comment ne '1';
printf "\n# [%s]\n", "STASH";
} elsif ($insn eq 'ldsv') {
# TODO which type? SV, AV or GV. check arg
$arg .= "\t# ".$comment if $comment ne '1';
printf "\n# -%s-\n", 'SV';
} elsif ($insn eq 'gv_fetchpvx') {
$arg .= "\t# ".$comment if $comment ne '1';
printf "\n# [%s]\n", 'prototype';
} else {
$arg .= "\t# ".$comment if $comment ne '1';
}
printf "%s %s\n", $insn, $arg;
} else {
$insn .= "\t# ".$comment if $comment ne '1';
print $insn, "\n";
}
}
Последний раз редактировалось paradox 2009-10-26 19:37:41, всего редактировалось 1 раз.
Причина: юзайте нормальные теги!
Причина: юзайте нормальные теги!