Ayrıcalık yükseltme yazma / etc / passwd, ancak su üzerinde SUID izni olmadan

Dec 16 2020

Bu bir egzersiz değil, çözüm olmayabilir.

Kök olmayan bir kullanıcı tarafından çalıştırılmak üzere tasarlanmış bir Docker görüntüsü (CentOS tabanlı) üretiyoruz. Ancak, bu kullanıcı "root" grubunda olduğu için / etc / passwd'ye yazma erişimine sahiptir. İşte / etc / passwd izinleri:

-rw-rw-r-- 1 root root 692 Dec 16 14:35 /etc/passwd

Bu kritik bir kusurdur ve kolay ayrıcalık artışına izin vermesi beklenir. / Etc / passwd içine bir kullanıcı ekleyebilirim.

Ancak su'nun SUID izni olmadığı için bu kullanıcıya geçiş yapamıyorum:

-rwxr-xr-x 1 root root 32128 Sep 30 17:46 /bin/su

Sonuç olarak, kullanıcı başarılı bir su yürütme için yeterli izne sahip değildir:

su: cannot set groups: Operation not permitted

Anladığım kadarıyla çoğu Linux'ta su command SUID izni ile yapılandırıldı. Bu, su çalıştıran her kimse, bunun kök kullanıcı tarafından yürütüldüğü anlamına gelir. Diğer bir alternatif, yeteneklerle oynamak olabilir. Sanırım CAP_SETGID ve CAP_SETUID gerekli ve belki diğerleri. Su bu yeteneklerle yapılandırıldıysa SUID izni gerekmeyebilir. Ancak Docker imajımızda su üzerinde herhangi bir yetenek yok. Görünüşe göre sadece root su'yu düzgün bir şekilde çalıştırabilir.

Ayrıca, sudo kurulu değil ve sshd / telnetd çalışmıyor.

Peki / etc / passwd'ye eklenen kimlik bilgilerini nasıl kullanabilirim? Yardımcı olabilirse kıvrılma mevcuttur.

Yanıtlar

3 RoryMcCune Dec 16 2020 at 23:46

Eğer erişiminiz varsa (VM veya sunucu) standart Linux ana bilgisayarda /etc/passwdveya /etc/shadowsonra değiştirmek ya da var (tabii ki ciddi bir sorun olacağını, hesaplara kimlik bilgilerini ekleyebileceğiniz bir değişiklik izin sonuçlarına ilişkin ayrıntılar /etc/passwdiçinde bu cevap

Bir Docker konteynerinde, genellikle bu dosyaları kullanan yazılım yüklü değildir, bu nedenle Linux PAM, SSHD veya kimlik doğrulama veritabanını kullanan başka bir yazılım yoktur.

Bu tür bir yazılım yüklenmeden, bu dosyalar üzerinde çalışan hiçbir program olmadığı için yapabileceğiniz pek bir şey yoktur.

Elbette, kapsayıcıda çalışan uygulama kullanırsa, /etc/passwddeğiştirmenin bir etkisi olabilir, ancak bu, kapsayıcının ne yaptığına bağlı olarak durumsal olacaktır.