Ayrıcalık yükseltme yazma / etc / passwd, ancak su üzerinde SUID izni olmadan
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
Eğer erişiminiz varsa (VM veya sunucu) standart Linux ana bilgisayarda /etc/passwd
veya /etc/shadow
sonra 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/passwd
iç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/passwd
değiştirmenin bir etkisi olabilir, ancak bu, kapsayıcının ne yaptığına bağlı olarak durumsal olacaktır.