Bu yazımda linux da hak yükseltme aşamasını daha detaylı anlatacağım. Öncelikle hak yükseltme aşamasında bilgi toplama komutlarına bakalım.
Sistem versiyon bilgileri için;
- cat /etc/issue
- cat /etc/*-release
- cat /etc/redhat-release #redhat için
Kernel versiyon bilgileri için;
- uname -a
- cat /proc/version
- uname -mrs
- rpm -q kernel
- dmesg | grep Linux
Yüklü uygulamaların listesi için;
- ls -alh /usr/bin/
- ls -alh /sbin/
- dpkg -l
Açık portlar ve servisler için:
- lsof -i
- grep 80 /etc/services
- netstat -antup
- netstat -antpx
- netstat -tulpn
Kullanıcılar,parolalar ve grupların olduğu dosyalar;
- /etc/passwd
- /etc/group
- /etc/shadow
SUID Ve SGID Bitleri Nedir?
kısaca anlatmak gerekirse suid(set-user identification ) biti bir programı root haklarıyla çalıştırmamıza olanak sağlayan bittir.SGID(set-group identification) ise bir programı grubun haklarıyla çalıştırmamıza olanak sağlayan bittir. Ha birde sticky bit var.Sticky bit ise ilgili dosyayı sadece sahibinin silmesine olanak veren bittir.
suid ve sgid bitleri ayarlamak için;
SUID Ve SGID Bitleri ayarlı programların bulunması
Hak Yükseltme Örnekleri
sudo -l komutu ile hangi programları root haklarıyla çalıştırabileceğime bakıyorum.
python3 ve find komutunu root haklarıyla şifresiz çalıştırabileceğimi görüyorum.
sudo python3 dedikten sonra basit bir python kodu ile root oluyorum.
find komutu ile ise çok basit bir parametre vererek komut çalıştırabiliriz ve hak yükseltebiliriz.
Şimdi gelelim suid ve sgid bitleri ayarlı programları bulmaya.
Gördüğünüz gibi echo,mv ve cp komutlarını root haklarıyla çalıştırabiliriz. İlk balışta çok zararsız görünebilirler ama öyle değiller. Basit bir örnekle ne kadar zararlı olabileceklerini göstereyim.
openssl ile şifre oluşturuyorum ve echo komutu ile passwd dosyasınayeni kullanıcı ekleyip root oluyorum. Gördünüz değil mi tehlikeyi ?
Bundan sonrası zaten kafanızda oturmuştur. cp ve mv komutu ile yeni oluşturduğunuz passwd dosyasını /etc/ dizini altına kopyalayıp hak yükseltebilirsiniz.