ISACA İstanbul Chapter

Slides:



Advertisements
Benzer bir sunumlar
EBA BİLİŞİM AĞI TANITIMI VE KULLANIMI. EBA v2 EBAv2 : Eğitimde FATİH Projesinin içerik bileşeni olarak 2012 yılında yayın hayatına başlayan Eğitim Bilişim.
Advertisements

BULUT BİLİŞİM GÜVENLİK VE KULLANIM STANDARDI M. Raşit ÖZDAŞ Huzeyfe ÖNAL Zümrüt MÜFTÜOĞLU Ekim 2013.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
EK DERS UYGULAMA REHBERİ. GIRIŞ EKRANı Sisteme giriş için adresi kullanılmaktadır. Kullanıcı adı ve şifre için ö ğ renci bilgi.
Dosya Yönetimi Dosya, Klasör ve Sürücüler HÜSEYİN ALİOSMANOĞLU.
Stratejik Pazarlama 4. Hafta
LUCA Bilgisayarlı muhasebe programı
TEST ÇÖZME TEKNİKLERİ. Test çözmede 3 unsur önemlidir.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
DONANIM VE YAZILIM.
O R T L G İ M A A Ve Problem çözme.
OLASILIK TEOREMLERİ Permütasyon
BİLGİ ve VERİ GÜVENLİĞİ
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
Proje Entegrasyon Yönetimi
EQUIZSHOW.
Sözsüz İletişimin Özellikleri
Sosyal Ağlar Tehditler, Yanlış Kullanım ve Doğru Kullanım Örnekleri.
Sevgili 8.sınıf öğrencisi; Kendi yeteneklerin, ilgilerin, değerlerin hakkında bilgi sahibi olmak ve daha doğru lise tercihi yapabilmek için lütfen öncesinde.
Linux Kullanıcı Yönetimi/Denetimi Emre Eryılmaz Linux Kullanıcıları Derneği 3 Şubat 2012.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
PROXY SERVER Eren AKGÜL Proxy Server  Vekil sunucu veya yetkili sunucu, internete erişim sırasında kullanılan bir ara sunucudur. Adanmış.
NETWORK YÖNETIMI Ş. Bü ş ra Güngör NETWORK YÖNETIMI NEDIR? Network, sunucu, yazıcı, bilgisayar ve modem gibi veri ileti ş im araçlarının güncel.
Leyla İÇERLİ Araş. Gör. Dr. Aksaray Üniversitesi İİBF İşletme Bölümü.
APP INVENTOR Emre ANLAR.
BİLGİSAYAR PROGRAMLAMA DERSİ
Yazılım Kurulum ve Yönetimi Ders- II
Öğr. Gör. Dr. İnanç GÜNEY Adana MYO
ÖĞRETİM MATERYALLERİ HAZIRLAMA İLKELERİ
Proje Dosyası - Belgeleme - Raporlama
İŞLETİM SİSTEMLERİ ISE 206 Dr. Tuğrul TAŞCI.
PROGRAMLI ÖĞRETİM Tanımı:
Görev 1 31 Ekim e kadar Görev 1’i tamamlayıp ye göndermeniz gerekiyor.
BİLGİ GÜVENLİĞİ Bilgi Gizliliği ve Güvenliği Zararlı Yazılımlar
Problem Çözme ve Algoritmalar
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
BİLGİ GÜVENLİĞİ Bilgi Gizliliği ve Güvenliği Zararlı Yazılımlar
İNTERNET ORTAMINDA AKADEMİK ARAŞTIRMA NASIL YAPILIR?
HAZIRLAYAN SEDA KALKANDELEN
Teknolojİ ve tasarIm dersİ
İnternet ve WEB Tanımları Html Temel Etiketleri
Uçak Bileti Değiştirme
BİLGİ GÜVENLİĞİ Güvenli Şifre Oluşturma Bilgi Gizliliği ve Güvenliği
Sözleşme Sözleşme Türleri
Dosya, Klasör ve Sürücüler
İNTERNETTE ARAMAYI ÖĞRENİYORUM
BİLGİ GÜVENLİĞİ Bilgi Gizliliği ve Güvenliği Zararlı Yazılımlar
GÖRÜŞME İLKE VE TEKNİKLERİ Sağlık Bilimleri Fakültesi
PROBLEM ÇÖZME VE ALGORİTMALAR
Futbol Yetenek Avcısı AOFScout.
3.hafta METODLAR.
PARAMETRİK HİPOTEZ TESTLERİ
Globalpiyasa.com’da Firma Web Sitesi Nasıl Oluşturulur?
NİŞANTAŞI ÜNİVERSİTESİ
Doğrusal Mantık Yapısı İle Problem Çözme
Bilgisayar II 26 Nisan-7Mayıs Öğr. Gör. Feyza Tekinbaş.
Bilgisayarım Simgesinin Kullanımı Dosyaların Yönetimi
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
VERİTABANI YÖNETİM SİSTEMLERİ 3-Normalizasyon
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
İNTERNET VE BİLGİSAYAR AĞLARI
NİŞANTAŞI ÜNİVERSİTESİ
Hata ayıklama da denilen programlama hatalarını bulma ve düzelme işlemine ne denir? a) Veri b) Yazılım c) Bug d) Debugging e) Donanım.
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR DESTEKLİ TASARIM
Bilgehan Arslan, Süreyya Gülnar
GÖRÜŞME İLKE VE TEKNİKLERİ Sağlık Bilimleri Fakültesi
Bilimsel Araştırma Yöntemleri
Sunum transkripti:

ISACA İstanbul Chapter LİNUX SUNUCULARDA YETKİ YÜKSELTME Istanbul, 31.01.2017 FATİH EMİRAL (BTRisk)

Genel yetki yükseltme metodu AJANDA Ön şartlar Genel yetki yükseltme metodu Aşina olma adımında (da) bakılabilecek temel bilgiler Pratik yetki yükseltme alanlarının incelenmesi Uzun inceleme Diğer sistemlere yönelik bilgi edinme Shell komut ve script'lerindeki bazı özel konular

İşletim sistemleri komut satırında rahat olmak ÖN ŞARTLAR Adım attığınız (shell aldığınız) bir sunucu üzerinde yetki yükseltme adımlarını pratik biçimde gerçekleştirebilmek için gerekli önşartlar: İşletim sistemleri komut satırında rahat olmak ve shell script yazabilmek'tir. Ancak bir sistem yöneticisi rahatlığında olmak şart değildir. Daha ziyade hazırlıklı olmaktan söz ediyoruz.

GENEL YETKİ YÜKSELTME METODU File sistem üzerinde kısa bir süre gezinerek sisteme aşina olma Otomatik enumeration Manuel enumeration Manuel inceleme Google, google, google, ... Yetki yükseltme mekanizmasını kurma / etkinleştirme (denemeleri ...) Yüksek yetkili shell'i alma (ve daha sonra diğer hedefler için bilgi toplama)

AŞİNA OLMA ADIMINDA (DA) BAKILABİLECEK TEMEL BİLGİLER whoami / id (Kimim ve hangi gruplara üyeyim) ls -ahl ~ (Mevcut kullanıcımızın home dizin içeriği) sudo -l (sudo hakkım var mı. Bazı komutlar parola gerektirebilir, eğer bir proses’i hack’leyerek sisteme ulaştıysanız bu bir problem olabilir. Sudo komutlarında parola ihtiyacı olup olmadığını bir script için şu şekilde de test edebiliriz) echo '' | sudo -S -l 2>/dev/null | grep -w 'nmap\|perl\|'awk'\|'find'\|'bash'\|'sh'\|'man'\|'more'\|'less'\|'vi'\|'vim'\|'nc'\|'netcat'\|python\|ruby\|lua\|irb' (Sudo ile çalıştırarak içinden komut çalıştırabileceğimiz interpreter, shell v.d. uygulamalar var mı)

AŞİNA OLMA ADIMINDA (DA) BAKILABİLECEK TEMEL BİLGİLER uname -a (Sistem bilgisi, kernel versiyonu, v.s.) cat /proc/version (Biraz daha detaylı sistem bilgisi, bazen uname -a çıktısı çok zayıf kalabilir) lscpu (İşlemci mimarisi hakkında bilgiler, uname komutu çıktılarını desteklemek amacıyla da kullanılabilir, makine mimarisi payload üretirken ve local privilege exploit araştırırken önemli olacaktır) cat /etc/*-release (Linux dağıtımı hakkında daha detaylı bilgi sağlar, kernel exploit ararken hedefi netleştirmek için kullanılabilir) hostname (Sunucunun adı işlevi hakkında bize fikir verebilir, bu bilgi de bize daha sonraki adımlar için fikir verebilir)

AŞİNA OLMA ADIMINDA (DA) BAKILABİLECEK TEMEL BİLGİLER cat /etc/passwd (Hangi kullanıcıların home dizinleri var, erişim hakkımız varsa bu dizinlerde önemli bilgiler bulabiliriz. Ayrıca başka root kullanıcısı var mı – uid: 0. Modern işletim sistemlerinde genellikle parola hash’leri passwd dosyasında bulunmaz, shadow dosyasında bulunur, ama şansımızı denemekte fayda var) cat /etc/master.passwd (FreeBSD sistemler üzerindeki passwd dosyasının adıdır.) lastlog | grep -v "Never" (Sisteme logon olmuş kullanıcılar, yine home dizin incelemesi, başka root kullanıcısı var mı gibi incelemelere destek olur) cat /etc/group (Özellikle root grubu (bu tür grupların adları farklı dağıtımlarda farklı olabilir) ve sudo grubuna üyelikler ilgimizi çekebilir. /etc/sudoers dosyasında %sudo ifadesiyle sudo grubunun yetkileri tanımlanır, eğer sistem yöneticisi bu hakları kısıtlamamışsa ve bu grubun üyesiysek şansımız yüksek)

AŞİNA OLMA ADIMINDA (DA) BAKILABİLECEK TEMEL BİLGİLER cat /etc/sudoers 2>/dev/null (Normalde sudoers dosyası sadece root kullanıcısı ve root grubuna üye kullanıcılar tarafından izlenebilir, ama şansımızı denemekte fayda var. Bu dosyada diğer sudo yetkili kullanıcıları görebiliriz.) cat /etc/shadow 2>/dev/null (Normalde shadow dosyası sadece root kullanıcısı ve root grubuna üye kullanıcılar tarafından izlenebilir, ama şansımızı denemekte fayda var. Parola hash’lerini bu dosyadan elde edebiliriz.) ls -ahl /root/ 2>/dev/null (root’un home dizinini okuyabiliyor muyuz, eğer okuyabiliyorsak .bash_history v.d. dosyalardan hassas bilgiler elde edebiliriz) ls -ahl /home/ 2>/dev/null (home dizini ve altındaki dizinler için erişim haklarımız neler. Kullanıcı home dizinleri genellikle bu dizin altında olmakla birlikte bu mutlak bir kural değildir, bu yüzden passwd dosyasını incelememizden yine de fayda var.)

AŞİNA OLMA ADIMINDA (DA) BAKILABİLECEK TEMEL BİLGİLER find /home/ -perm -4 -type f -exec ls -al {} \; 2>/dev/null (home dizinleri altındaki world readable dosyaların listesi. Bu komut manuel enumeration sırasında farklı dizinler için de kullanılabilir. Erişim hakkı parametresini -perm -o=r şeklinde de yazabilirdik.) Hassas dosyalara erişim haklarımız (Yazma hakkımız varsa değiştirmek isteyebiliriz): ls -la /etc/passwd 2>/dev/null ls -la /etc/group 2>/dev/null ls -la /etc/profile 2>/dev/null ls -la /etc/shadow 2>/dev/null ls -la /etc/master.passwd 2>/dev/null ls -la ~/.*_history 2>/dev/null (Mevcut kullanıcımızın home dizininde bulunan history dosyalarının ve erişim haklarının listesi) ls -la /root/.*_history 2>/dev/null (root’un home dizininde bulunan history dosyalarının ve erişim haklarının listesi)

PRATİK YETKİ YÜKSELTME ALANLARININ İNCELENMESİ find / -uid 0 -perm -4007 -type f 2>/dev/null (Sahibi root olan world writable setuid dosyalar) find / -perm -4007 -type f 2>/dev/null (World writable setuid dosyalar) find / -perm -4000 -type f 2>/dev/null | grep -w 'nmap\|perl\|'awk'\|'find'\|'bash'\|'sh'\|'man'\|'more'\|'less'\|'vi'\|'vim'\|'nc'\|'netcat'\|python\|ruby\|lua\|irb\|pl' | xargs -r ls –la (root shell escape’i yapabileceğimiz dosyalardan setuid hakkına sahip olanları var mı?) find / -perm -4000 -type f 2>/dev/null (Tüm setuid hakkına sahip dosyaların listesi)

PRATİK YETKİ YÜKSELTME ALANLARININ İNCELENMESİ find / -uid 0 -perm -2007 -type f 2>/dev/null (Sahibi root olan world writable setgid dosyalar) find / -perm -2007 -type f 2>/dev/null (World writable setgid dosyalar) find / -perm -2000 -type f 2>/dev/null | grep -w 'nmap\|perl\|'awk'\|'find'\|'bash'\|'sh'\|'man'\|'more'\|'less'\|'vi'\|'vim'\|'nc'\|'netcat'\|python\|ruby\|lua\|irb\|pl' | xargs -r ls –la (root shell escape’i yapabileceğimiz dosyalardan setgid hakkına sahip olanları var mı?) find / -perm -2000 -type f 2>/dev/null (Tüm setgid hakkına sahip dosyaların listesi)

PRATİK YETKİ YÜKSELTME ALANLARININ İNCELENMESİ ls -la /etc/cron* 2>/dev/null (cron job’ların tanımlandığı dosya ve dizinlerin listesi, erişim hakları ile birlikte. Bu dosyalar içinde yazma hakkımız bulunanlar var ise ve root hakları ile çalıştırılıyorlarsa kendimizi sudoers dosyasına ekletebilir veya reverse shell payload’umuzu root hakları ile çalıştırtabiliriz.) find /etc/cron* -perm -0002 -exec ls -la {} \; -exec cat {} 2>/dev/null \; (World writable cron dosya ve dizinlerinin listesi. Bu daha nokta atışı bir komut, ancak yukarıdaki çıktının sonuçları bize bazı dolaylı bilgiler verebilir, en azından okunabilir işlerin içini inceleyip başka bir manipülasyon yöntemi bulabilir miyiz bakabiliriz.) cat /etc/crontab 2>/dev/null (Sistemin geneli için geçerli ve genellikle root hakları ile çalışan cron işleri ile ilgili bilgi edinebiliriz.) ls -la /var/spool/cron/crontabs 2>/dev/null (Varsa root ve diğer kullanıcıların cron konfigürasyon dosyalarını ve erişim haklarını inceleyebiliriz)

PRATİK YETKİ YÜKSELTME ALANLARININ İNCELENMESİ ls -la /etc/anacrontab 2>/dev/null (anacron sürekli açık olmayan bilgisayarlarda atlanan işleri takip etmek için geliştirilmiş bir mekanizma. Bu altyapı da yine genellikle root hakları ile çalıştığından anacrontab dosyasına yazma hakkımız olması halinde haklarımızı yükseltebiliriz. Anacron’un bizim için olumsuz tarafı en kısa sürenin günlük olmasıdır.) cat /etc/passwd | cut -d ":" -f 1 | xargs -n1 crontab -l –u 2>/dev/null (Eğer görme hakkımız varsa diğer kullanıcıların aktif cron işlerini listeler. Kullanıcıların cron konfigürasyonunu herhangi bir dosyadan okutarak cron tanımlaması yapması mümkündür, bu konfigürasyonu /var/spool/cron/crontabs/ dizini altına kaydederlerse sistem her yeniden başlatıldığında aktif hale gelir, manuel olarak tekrar tanımlanmasına gerek kalmaz. Dolayısıyla bakmakta fayda var.)

PRATİK YETKİ YÜKSELTME ALANLARININ İNCELENMESİ Local privilege escalation exploit'lerinin araştırılması için: Kernel exploit’lerini araştırma sudo -V (sudo uygulama versiyonunun incelenmesi. sudo ve sudoedit uygulamalarının eski versiyonlarında bulunan açıklıklar ile bu fonksiyonalite kötüye kullanılabilir ve hak yükseltilebilir.) mysql --version (MySQL açıklıkları ile yetki yükseltilebilir. Tabi bazı durumlarda MySQL erişim bilgilerine de ihtiyacımız olabilir.) Sistem üzerinde çalışan servislerin detaylı analizi sonrası incelemelere devam etmek gerekebilir.

PRATİK YETKİ YÜKSELTME ALANLARININ İNCELENMESİ mysqladmin -uroot -proot version / mysqladmin -uroot version (MySQL’e basit biçimde bağlanabilirsek ve MySQL root hakları ile çalışıyorsa bu veritabanının fonksiyonalitesi – örneğin INTO OUTFILE, LOAD_FILE() gibi – kullanılarak yetki yükseltme yolunda ilerlenebilir) psql -U postgres template0 -c 'select version()' (veritabanı ismini biliyor olmamız önkoşulu ile - template0 yerine veritabanı adı gelecektir - postgres kullanıcısının şifresi boş mu test eder) psql -U pgsql template0 -c 'select version()' (veritabanı ismini biliyor olmamız önkoşulu ile - template0 yerine veritabanı adı gelecektir - pgsql kullanıcısının şifresi boş mu test eder)

UZUN İNCELEME find / > dirlist.txt (Sistem üzerindeki tüm dosyaların adlarının bir dosyaya kaydedilmesi. Daha sonra bu listeyi kullanarak belli dosya adlarını dosya sistemini tekrar tekrar taramadan inceleyebiliriz.) grep 'ini$' dirlist.txt > ini.files grep 'conf$' dirlist.txt > conf.files grep 'backup$|bck$' dirlist.txt > backup.files grep 'cap$' dirlist.txt > capture.files cat ini.files | xargs grep -E 'pass|root' 2>/dev/null cat conf.files | xargs grep -E 'password|root' 2>/dev/null Yukarıdaki grep işlemleri ve kelime arama komutları ihtiyaca göre çeşitlendirilebilir.

UZUN İNCELEME find / -maxdepth 4 -name *.conf -type f -exec grep -Hn keyword {} \; 2>/dev/null (Dizin listesi de kullanılabilirdi elbette - sonu .conf ile biten dosyaların içinde keyword kelimesinin aranması) find / -name *.log -type f -exec grep -Hn keyword {} \; 2>/dev/null (Sonu .log ile biten dosyaların içinde keyword kelimesinin aranması) find / -name *.log -type f -exec grep -Hn keyword {} \; 2>/dev/null (Sonu .ini ile biten dosyaların içinde keyword kelimesinin aranması) find /etc/ -maxdepth 1 -name *.conf -type f -exec ls -la {} \; 2>/dev/null (/etc dizini altında bulunan ve sonu .conf ile biten dosyaların erişim hakları ile birlikte listelenmesi) find / -writable -not -user `whoami` -type f -not -path "/proc/*" -exec ls -al {} \; 2>/dev/null (/proc/ dizini dışında bulunan ve bize ait olmadığı halde yazabildiğimiz dosyaların listesi. /proc/ file system’i çalışma anında oluşturulur ve disk üzerinde değildir.)

UZUN İNCELEME find / ! -path "*/proc/*" -perm -2 -type f -print 2>/dev/null (/proc/ dizini dışında bulunan tüm world writable dosyaların listesi. Belki CTF’i hazırlayan kişi sahibi bizim olan bir dosyayı da world writable yapmıştır, gözden kaçırmayalım.) find / -writable -user `whoami` -type d -not -path "/proc/*" -exec ls -al {} \; 2>/dev/null (Kullanıcımızın da yazabileceği writable dizinler, kendimiz script’lerimizi yerleştirebileceğimiz bir yer aradığımızda da kullanılabilir.) find / -type d -perm -777 2>/dev/null (World writable dizinler. Yine CTF durumlarında dikkati doğru alana yöneltmek için kullanılabilir.)

UZUN İNCELEME find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys 2>/dev/null (ssh anahtar dosyalarının tespitine çalışma. Bunlardan sonu pub ile bitenler public anahtarlardır, yani başka bir sisteme erişim için uygun değildir, ancak private key’ler diğer sistemlere erişmek için işimize yarayabilir.) grep "PermitRootLogin " /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | awk '{print $2}' (root kullanıcısı ssh ile logon olabilir mi. Gerçi eğer şifresini biliyorsak bu noktada su komutuyla da root olabiliriz. Ancak CTF imajlarında bu özellik aktif değilse en azından CTF’i hazırlayan kişinin ssh üzerinden root parola bruteforce yöntemi ile girmemizi öngörmediğinden emin olabiliriz) cat /etc/shells (Shell uygulamalarının listesi. Setuid bit incelemesi yaparken dikkatimizi yoğunlaştırabileceğimiz dosyalardan olabilir bu liste)

UZUN İNCELEME echo $PATH (setuid’li bir uygulama başka bir uygulamayı çağırıyorsa (bu durumları hata mesajlarından veya strings gibi komutlarla statik incelemeyle farkedebiliriz) bu uygulamalarla aynı isimli ancak bizim istediğimiz bir işlevi yerine getiren farklı bir uygulamayı path’imize yerleştirmek için ihtiyacımız olacaktır.) cat /etc/login.defs (Parola bruteforce saldırısı yapmayı düşünüyorsak parola politikasını bu dosyadan öğrenebiliriz. Ayrıca parola hash’lerinin hesaplanmasında kullanılan algoritmayı da bu dosyada görebiliriz.) cat /etc/apache2/envvars 2>/dev/null |grep -i 'user\|group' |awk '{sub(/.*\export /,"")}1' (Apache sunucusunu çalıştıran kullanıcı adını görebiliriz. Eğer zaten Apache üzerinde çalışan bir uygulamayı kullanarak sisteme sızmamışsak bu alana daha fazla eğilebiliriz) apache2 -v 2>/dev/null; httpd -v 2>/dev/null (Apache versiyonu hakkında bilgi).

UZUN İNCELEME find /home -iname *.rhosts -exec ls -la {} 2>/dev/null \; -exec cat {} 2>/dev/null \; (Home dizinleri altında .rhosts dosyaları var mı ve içerikleri nedir? Varsa bu kullanıcı adları ile güvenilen başka bir sunucudan r komutları çalıştırılabilir. Düşük bir ihtimal de olsa bakmakta fayda var.) find /usr/home -iname *.rhosts -exec ls -la {} 2>/dev/null \; -exec cat {} 2>/dev/null \; (Yukarıdaki işlemin /usr/home dizini altında gerçekleştirilmesi) find /etc -iname hosts.equiv -exec ls -la {} 2>/dev/null \; -exec cat {} 2>/dev/null \; (Sistem genelinde etkili olan ve trust ilişkilerinin tanımlandığı /etc/hosts.equiv dosyasının içeriğinin incelenmesi) ls -la /etc/exports 2>/dev/null; cat /etc/exports 2>/dev/null (NFS dosya paylaşım konfigürasyonunun incelenmesi. Paylaşımlarda hassas bilgiler tespit edilebilir.)

UZUN İNCELEME ls -la /var/mail 2>/dev/null (Sistem üzerinde mail box’lar var mı) head /var/mail/root 2>/dev/null (root’un mail’i var mı ve okuyabiliyor muyuz)

UZUN İNCELEME netstat -antp (Dinlemekte olan TCP servisleri, çalışan uygulama adıyla listeler. Uzaktan görülemeyen ancak lokalde erişilebilen ve yüksek haklarla çalışan servisler olabilir.) netstat –anup (Dinlemekte olan UDP servisleri, çalışan uygulama adıyla listeler.) ps aux (Çalışan proses’lerin listelenmesi) ps aux | awk '{print $11}'|xargs -r ls -la 2>/dev/null |awk '!x[$0]++' (Çalışan proses’lerin imajları ve bunlara erişim haklarının listelenmesi)

UZUN İNCELEME cat /etc/inetd.conf 2>/dev/null (Servis konfigürasyon dosyası içinde çalışan ağ servisleri ile ilgili işimize yarayabilecek bir bilgi olabilir, servis imajlarını aldığı parametreler ve hangi kullanıcı hakları ile çalıştıkları gibi.) cat /etc/xinetd.conf 2>/dev/null (xinetd TCP wrapper destekli bir servis konfigürayon dosyası. Bir tür host based firewall fonksiyonalitesi sağlar ve bazı unix ortamlarında görülebilir.) ls -la /etc/init.d 2>/dev/null (init script’lerinin, yani sistem açılırken çalıştırılan script’lerin listesi ve erişim hakları) find /etc/init.d/ \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null (root kullanıcısına ait olmayan ancak init.d dizininde yer alan script’lerin listesi. Bu dizinde bulunan script’ler root hakları ile çalışacağından yazma hakkımız bulunması halinde sistem yeniden açıldığında root kullanıcı hakları ile komut çalıştırabiliriz)

UZUN İNCELEME ls -la /etc/rc.d/init.d 2>/dev/null (Varsa rc.d init scriptlerinin listesi ve erişim hakları) find /etc/rc.d/init.d \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null (root kullanıcısına ait olmayan ancak rc.d init.d dizini altında yer alan scriptlerin listesi)

DİĞER SİSTEMLERE YÖNELİK BİLGİ EDİNME Aynı parolaların diğer sistemlerde de kullanılması ihtimaline bağlı olarak açık ve hash'li parolaları ele geçirme, parola hash'lerini bruteforce ile kırma (/etc/passwd, salt'lu hash kullanımı, MySQL hash'leri, v.d. parolalar) Aktif ağ bağlantıları (netstat -an) /sbin/ifconfig -a (Sunucu üzerindeki tüm interface’leri görmek için. Farklı ağlara dallanmak için işimize yarayabilir.) route (Yine bağlı bulunulan diğer ağlar hakkında bilgi edinmek için kullanılabilir)

DİĞER SİSTEMLERE YÖNELİK BİLGİ EDİNME cat /etc/fstab 2>/dev/null |grep username |awk '{sub(/.*\username=/,"");sub(/\,.*/,"")}1'| xargs -r echo username:; cat /etc/fstab 2>/dev/null |grep password |awk '{sub(/.*\password=/,"");sub(/\,.*/,"")}1'| xargs -r echo password:; cat /etc/fstab 2>/dev/null |grep domain |awk '{sub(/.*\domain=/,"");sub(/\,.*/,"")}1'| xargs -r echo domain: (/etc/fstab dosyası içinde erişim bilgileri var mı) cat /etc/fstab 2>/dev/null |grep cred |awk '{sub(/.*\credentials=/,"");sub(/\,.*/,"")}1'| xargs -I{} sh -c 'ls -la {}; cat {}' (/etc/fstab dosyası içinde credentials dosyası var mı)

SHELL KOMUT VE SCRIPT'LERİNDEKİ BAZI ÖZEL KONULAR Hataların script çıktılarını kirletmemesi için 2>/dev/null Escape karakteri \ (awk gibi uygulamalara verilen parametrelerdeki shell özel karakterlerinin shell tarafından dikkate alınmaması için) Command subtitution (ters tırnak ve $( ) kullanımı)

Sorular? Teşekkür ederiz!