LD_LIBRARY_PATH

Kezdőlap Fórumok Biztonság LD_LIBRARY_PATH

10 bejegyzés megtekintése - 11-20 / 21
  • Szerző
    Bejegyzés
  • #2135661
    zoltan22
    Felhasználó

      Ha mar megint elovettuk a temat, akkor probalgattam egy kicsit a gepemen a dolgot. Eredmenyek:

      Code:
      somebody@computer:/$ cd /tmp
      somebody@computer:/tmp$ touch libc.so.6
      somebody@computer:/tmp$ chmod +x libc.so.6
      somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp ls
      ls: error while loading shared libraries: /tmp/libc.so.6: file too short
      somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp passwd
      Changing password for somebody.
      A (jelenlegi) UNIX jelszó:
      passwd: Hitelesítési hiba
      passwd: password unchanged
      somebody@computer:/tmp$

      Mintha nem venne figyelembe az LD_LIBRARY_PATH-ot. Valakinek sikerult betoltenie valahogy egy hamisitott libc-t peldaul a passwd-hoz?

      #2135662
      zoltan22
      Felhasználó

        Ha mar megint elovettuk a temat, akkor probalgattam egy kicsit a gepemen a dolgot. Eredmenyek:

        Code:
        somebody@computer:/$ cd /tmp
        somebody@computer:/tmp$ touch libc.so.6
        somebody@computer:/tmp$ chmod +x libc.so.6
        somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp ls
        ls: error while loading shared libraries: /tmp/libc.so.6: file too short
        somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp passwd
        Changing password for somebody.
        A (jelenlegi) UNIX jelszó:
        passwd: Hitelesítési hiba
        passwd: password unchanged
        somebody@computer:/tmp$

        Mintha nem venne figyelembe az LD_LIBRARY_PATH-ot. Valakinek sikerult betoltenie valahogy egy hamisitott libc-t peldaul a passwd-hoz?

        #2135663
        uzsolt
        Felhasználó

          Hát, valaminek a libc.so.6-ban lennie kellene!
          Nálam:

          Code:
          $ touch libc.so.6
          $ LD_LIBRARY_PATH=. passwd
          passwd: error while loading shared libraries: ./libc.so.6: file too short
          #2135664
          uzsolt
          Felhasználó

            Hát, valaminek a libc.so.6-ban lennie kellene!
            Nálam:

            Code:
            $ touch libc.so.6
            $ LD_LIBRARY_PATH=. passwd
            passwd: error while loading shared libraries: ./libc.so.6: file too short
            #2135665
            zoltan22
            Felhasználó

              Ez erdekes. Tehat nalad a setuid programok mas libc-t is betolthetnek, nalam meg nem.

              uzsolt wrote:
              Hát, valaminek a libc.so.6-ban lennie kellene!

              Hogy mit tegyunk a libc-be?
              Mondjuk egy „gyari” gnu libc-be beleirnek a glibc-2.3.3/sysdeps/generic/libc-start.c a main meghivasa ele valamit (tesztnek egy printf megtenne…) majd azt leforgatnam. Itt egy link a fajlrol. A 157., esetleg 181. sorra pakolnam a valtoztatasokat.

              #2135666
              zoltan22
              Felhasználó

                Ez erdekes. Tehat nalad a setuid programok mas libc-t is betolthetnek, nalam meg nem.

                uzsolt wrote:
                Hát, valaminek a libc.so.6-ban lennie kellene!

                Hogy mit tegyunk a libc-be?
                Mondjuk egy „gyari” gnu libc-be beleirnek a glibc-2.3.3/sysdeps/generic/libc-start.c a main meghivasa ele valamit (tesztnek egy printf megtenne…) majd azt leforgatnam. Itt egy link a fajlrol. A 157., esetleg 181. sorra pakolnam a valtoztatasokat.

                #2135667
                uzsolt
                Felhasználó

                  Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.
                  De lehetőségek azért még vannak:

                  Code:
                  $ readelf -d /bin/passwd  | grep NEEDED
                  0x00000001 (NEEDED)                    Shared library: [libshadow.so.0]
                  0x00000001 (NEEDED)                    Shared library: [libcrypt.so.1]
                  0x00000001 (NEEDED)                    Shared library: [libc.so.6]

                  Szóval ha nagyon érdekel, akkor a shadow-val próbálkozhatok, ha megmondod, mit, hova írjak be (nem vagyok nagy c-s) – 4.0.15-ös van telepítve.

                  #2135668
                  uzsolt
                  Felhasználó

                    Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.
                    De lehetőségek azért még vannak:

                    Code:
                    $ readelf -d /bin/passwd  | grep NEEDED
                    0x00000001 (NEEDED)                    Shared library: [libshadow.so.0]
                    0x00000001 (NEEDED)                    Shared library: [libcrypt.so.1]
                    0x00000001 (NEEDED)                    Shared library: [libc.so.6]

                    Szóval ha nagyon érdekel, akkor a shadow-val próbálkozhatok, ha megmondod, mit, hova írjak be (nem vagyok nagy c-s) – 4.0.15-ös van telepítve.

                    #2135669
                    zoltan22
                    Felhasználó
                      uzsolt wrote:
                      Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.

                      Libc frissitesre senkit se biztatnek 🙂

                      A dologban az igazan erdekes, hogy a _kizarolag_ felhasznalokent meg lehessen csinalni (biztonsagrol beszelunk :)). A dolgot ugy kepzelem, hogy:
                      1. libc forras letolt, kicsomagol
                      2. belepiszkal
                      3. lefordit (de nem telepit!)
                      Ekkor keletkezik a kicsomagolt forrasban valahol egy libc.so.6 fajl. Az LD_LIBRARY_PATH-et beallitva az uj libc.so.6 helyere nehany programot el lehetne inditani. Ha a dolog mukodik, akkor az adott programok indulas elott kiirnak egy uzenetet.

                      Ha van kedved, kiprobalhatod, de a setuid-os programokkal legy ovatos. 🙂

                      #2135670
                      zoltan22
                      Felhasználó
                        uzsolt wrote:
                        Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.

                        Libc frissitesre senkit se biztatnek 🙂

                        A dologban az igazan erdekes, hogy a _kizarolag_ felhasznalokent meg lehessen csinalni (biztonsagrol beszelunk :)). A dolgot ugy kepzelem, hogy:
                        1. libc forras letolt, kicsomagol
                        2. belepiszkal
                        3. lefordit (de nem telepit!)
                        Ekkor keletkezik a kicsomagolt forrasban valahol egy libc.so.6 fajl. Az LD_LIBRARY_PATH-et beallitva az uj libc.so.6 helyere nehany programot el lehetne inditani. Ha a dolog mukodik, akkor az adott programok indulas elott kiirnak egy uzenetet.

                        Ha van kedved, kiprobalhatod, de a setuid-os programokkal legy ovatos. 🙂

                      10 bejegyzés megtekintése - 11-20 / 21
                      • Be kell jelentkezni a hozzászóláshoz.