404 Not Found
Eslestirme.txt
# Eşleştirme Soruları A. Betiğin Adı | B. Temel İşlevi 1. website_dns_lookup.sh | ___ 2. ip_scan.sh | ___ 3. network_local_scan.sh | ___ 4. website_email_scanner.sh | ___ 5. website_host_finder.sh | ___ 6. git_yukleme.sh | ___ 7. website_subdomain_finder.sh | ___ 8. website_email_scanner_katana.sh | ___ 9. net_info.sh | ___ 10. ip_switch_scan.sh | ___ İşlevler (Eşleştirilecek): a. Sistemlerin port taraması ve servis tespiti yapar b. Yerel ağdaki cihazları tarar ve listeler c. Bir web sitesinin DNS kayıtlarını farklı DNS sunucularından sorgular d. Yerel ve genel IP adreslerini gösterir e. Git komutlarını otomatik çalıştırır f. Bir alan adının sunucu konumunu tespit eder g. Katana aracı ile web sitesindeki e-posta adreslerini tarar h. Bir web sitesinin alt alan adlarını tespit eder i. Bir web sitesinin e-posta sunucularını ve adreslerini tarar j. Switch ve router gibi ağ cihazlarının portlarını tarar Cevap Anahtarı: 1-c, 2-a, 3-b, 4-i, 5-f, 6-e, 7-h, 8-g, 9-d, 10-j
bosluk_doldurma.txt
# Boşluk Doldurma Soruları 1. ip_scan.sh'de port tarama işlemi ______ aracı kullanılarak yapılır. 2. website_dns_lookup.sh dosyasında DNS sorguları için ______, ______ ve ______ sunucuları kullanılır. 3. app.py'da loglama işlemleri için ______ kütüphanesi kullanılır. 4. website_email_scanner.sh'de DMARC kaydını kontrol etmek için ______ öneki kullanılır. 5. ip_switch_scan.sh'de RIP protokolü için ______ portu taranır. 6. git_yukleme.sh'de commit işlemi için ______ mesajı kullanılır. 7. network_local_scan.sh'de yerel ağ taraması için ______ parametresi kullanılır. 8. website_host_finder.sh dosyasında sunucu konumu bilgisi ______ API'si kullanılarak alınır. 9. ip_scan.sh'de MongoDB portu olarak ______ taranır. 10. website_subdomain_finder.sh'de SSL sertifika bilgileri ______ sitesinden alınır. 11. app.py'da shell komutlarını çalıştırmak için ______ kütüphanesi kullanılır. 12. ip_scan.sh'de ADB portu olarak ______ taranır. 13. website_email_scanner_katana.sh'de sonuçlar ______ uzantılı dosyaya kaydedilir. 14. ip_switch_scan.sh'de BGP protokolü için ______ portu taranır. 15. network_local_scan.sh'de public IP adresi ______ API'si kullanılarak alınır. 16. ip_scan.sh'de PostgreSQL veritabanı için ______ portu taranır. 17. website_dns_lookup.sh çıktısı ______ formatında verilir. 18. ip_scan.sh'de VNC için ______ portu taranır. 19. website_subdomain_finder.sh'de zone transfer işlemi ______ komutu ile yapılır. 20. ip_switch_scan.sh'de SNMP için ______ ve ______ portları taranır. 21. website_email_scanner.sh'de SPF kaydı ______ DNS kaydından alınır. 22. app.py'da hata kayıtları ______ dosyasına yazılır. 23. ip_scan.sh'de Apple Mobile Device portu olarak ______ taranır. 24. website_subdomain_finder.sh sonuçları ______ önekli dosyaya kaydedilir. 25. ip_switch_scan.sh'de RADIUS için ______ portu taranır. 26. website_email_scanner.sh'de SMTP portları olarak ______, ______ ve ______ taranır. 27. network_local_scan.sh'de ağ taraması ______ komutu ile yapılır. 28. ip_scan.sh'de Oracle veritabanı için ______ portu taranır. 29. website_subdomain_finder.sh'de alt alan adı tespiti için ______ parametresi kullanılır. 30. ip_switch_scan.sh'de Telnet portu olarak ______ taranır. 31. website_email_scanner.sh'de IMAP portları olarak ______ ve ______ taranır. 32. app.py'da script listesi ______ dosyasından yüklenir. 33. ip_scan.sh'de MySQL için ______ portu taranır. 34. website_host_finder_full.sh çıktısı ______ komutu ile formatlanır. 35. ip_switch_scan.sh'de SIP için ______ portu taranır. 36. website_email_scanner.sh'de POP3 portları olarak ______ ve ______ taranır. 37. network_local_scan.sh'de subnet hesabı için ______ komutu kullanılır. 38. ip_scan.sh'de SQL Server için ______ portu taranır. 39. website_subdomain_finder.sh'de bulunan sonuçlar ______ komutu ile sıralanır. 40. ip_switch_scan.sh'de HSRP protokolü için ______ portu taranır. Cevaplar: 1. nmap 2. 8.8.8.8, 1.1.1.1, 9.9.9.9 3. logging 4. _dmarc 5. 520 6. yorum 7. -sn 8. ipinfo.io 9. 27017 10. crt.sh 11. subprocess 12. 5555 13. .txt 14. 179 15. ipify.org 16. 5432 17. JSON 18. 5900 19. AXFR 20. 161, 162 21. TXT 22. logs.log 23. 62078 24. subdomains_ 25. 1812 26. 25, 465, 587 27. nmap 28. 1521 29. dns-brute 30. 23 31. 143, 993 32. scripts.json 33. 3306 34. jq 35. 5060 36. 110, 995 37. cut 38. 1433 39. sort 40. 1985
detayli_sh.txt
# Detaylı Bash Script Teknikleri 1. Port Tarama ve Network İşlemleri Bash # Fonksiyon tanımlama ve parametre kullanımı check_port() { local port=$1 # Yerel değişken tanımlama local service=$2 local result=$(nmap -p$port -sV $IP | grep "$port/tcp") # Koşullu kontrol ve string içerik arama if [[ $result == *"open"* ]]; then echo "Port $port açık: $service" fi } # IP ve subnet işlemleri get_local_ip() { ip route get 1 | awk '{print $7; exit}' # AWK ile veri ayıklama } local_ip=$(get_local_ip) subnet=$(echo $local_ip | cut -d. -f1-3) # String bölme 2. JSON Veri İşleme Bash # Yapılandırılmış JSON çıktı oluşturma generate_json() { cat << EOF { "scan_time": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")", "target": "$IP", "ports": { "open": [ $(format_port_list) ] } } EOF } # jq ile JSON parse etme ve filtreleme parse_json() { local json_data=$1 echo $json_data | jq -r '.specific.path | select(.value != null)' } 3. Gelişmiş Log ve Hata Yönetimi Bash # Log fonksiyonu log() { local level=$1 shift local message=$@ echo "[$(date +'%Y-%m-%d %H:%M:%S')] [$level] $message" >> "$LOG_FILE" } # Hata yakalama set -e # Hata durumunda scripti durdur trap 'handle_error $? $LINENO' ERR handle_error() { local exit_code=$1 local line_number=$2 log "ERROR" "Script failed at line $line_number with exit code $exit_code" } 4. DNS ve Ağ Sorgulama Teknikleri Bash # Farklı DNS kayıt türleri sorgulama check_dns_records() { local domain=$1 local types=("A" "MX" "TXT" "NS" "CNAME") for type in "${types[@]}"; do local records=$(dig +short $type $domain) if [ ! -z "$records" ]; then log "INFO" "Found $type records for $domain" echo "$records" fi done } # Zone transfer deneme try_zone_transfer() { for ns in $(dig +short NS $domain); do dig @$ns $domain AXFR +noall +answer done } 5. Regular Expression ve Metin İşleme Bash # Email adres validasyonu validate_email() { local email=$1 if [[ $email =~ ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ ]]; then return 0 fi return 1 } # Metin dönüştürme ve filtreleme process_text() { # sed ile çoklu değişiklik sed -e 's/^[[:space:]]*//' \ -e 's/[[:space:]]*$//' \ -e 's/[^[:alnum:]]/_/g' } 6. Dosya ve Dizin İşlemleri Bash # Recursive dizin tarama scan_directory() { local dir=$1 local depth=${2:-1} find "$dir" -maxdepth $depth -type f -name "*.log" | while read file; do process_file "$file" done } # Dosya arşivleme archive_logs() { local dir=$1 local archive_name="logs_$(date +%Y%m%d).tar.gz" tar -czf "$archive_name" -C "$dir" . if [ $? -eq 0 ]; then log "INFO" "Successfully archived logs to $archive_name" fi } 7. Paralel İşlem ve Process Yönetimi Bash # Background process yönetimi MAX_PROC=4 current_proc=0 parallel_process() { while [ $current_proc -ge $MAX_PROC ]; do current_proc=$(jobs -p | wc -l) sleep 1 done ("$@") & current_proc=$((current_proc + 1)) } # Sonuçları bekle wait_completion() { wait log "INFO" "All processes completed" } 8. API ve Network İstekleri Bash # Retry mekanizması make_request() { local url=$1 local max_retries=3 local retry_count=0 while [ $retry_count -lt $max_retries ]; do response=$(curl -s -w "%{http_code}" "$url") if [ $? -eq 0 ]; then echo "$response" return 0 fi retry_count=$((retry_count + 1)) sleep 2 done return 1 } Bu teknikler modern bash scripting'in temel yapı taşlarıdır. Her biri: - Modüler kod yapısı - Hata yönetimi - Performans optimizasyonu - Güvenlik önlemleri içermektedir.
ek_puan.txt
Ek Punli Istekler: # Bash Scripting Senaryo Soruları 1. Senaryo: Web sunucusu log dosyalarını analiz eden bir script yazın. - En çok istek yapan IP'leri listeleyin - 404 hatası veren sayfaları raporlayın - İstek sayılarını saatlik gruplandırın - Şüpheli SQL injection denemelerini tespit edin - Sonuçları JSON formatında kaydedin 2. Senaryo: Sistem yedekleme otomasyonu oluşturun. - Belirtilen dizinleri sıkıştırın - Yedekleri tarih-saat ile isimlendirin - 7 günden eski yedekleri otomatik silin - Yedek boyutlarını kontrol edin - Yedekleme sonrası durum raporu mail atın 3. Senaryo: Veritabanı bakım scripti yazın. - Tablo boyutlarını kontrol edin - Yavaş sorguları tespit edin - Veritabanı yedeklemesi alın - Gereksiz indeksleri tespit edin - Bakım raporu oluşturun 4. Senaryo: SSL sertifikası izleme sistemi kurun. - Sertifika son kullanma tarihlerini kontrol edin - 30 günden az kalanları raporlayın - Sertifika bilgilerini parse edin - DNS kayıtlarını kontrol edin - Kritik durumda SMS alert gönderin 5. Senaryo: Docker container monitoring scripti yazın. - Container CPU/RAM kullanımlarını ölçün - Çalışmayan containerları tespit edin - Log dosyalarını analiz edin - Network trafiğini ölçün - Prometheus metriklerini toplayın 6. Senaryo: Güvenlik duvarı log analizi yapan script yazın. - Engellenen IP'leri listeleyin - Port tarama denemelerini tespit edin - Geoip verisi ekleyin - Blacklist kontrolü yapın - Son 24 saat raporu oluşturun 7. Senaryo: API endpoint izleme scripti geliştirin. - Endpoint yanıt sürelerini ölçün - HTTP durum kodlarını kontrol edin - JSON response validasyonu yapın - Rate limit kontrolü ekleyin - Grafana dashboard için veri hazırlayın 8. Senaryo: Log rotasyon ve temizleme scripti yazın. - Log dosyalarını sıkıştırın - Boyuta göre rotasyon yapın - Eski logları arşivleyin - Disk alanını kontrol edin - Temizlik raporu gönderin 9. Senaryo: Git repo yedekleme scripti oluşturun. - Tüm branchleri yedekleyin - Commit geçmişini kaydedin - Issues/PR verilerini alın - Wiki sayfalarını yedekleyin - Yedekleri şifreleyin 10. Senaryo: Sunucu performance monitoring scripti yazın. - CPU/RAM/Disk metriklerini toplayın - Running process analizi yapın - Network bağlantılarını kontrol edin - Service durumlarını izleyin - Anomali tespiti yapın
sh_icerigi.txt
# Kod İçeriği Soruları 1. ip_scan.sh betiğinin port taraması fonksiyonu nasıl çalışır? - [ ] check_port() fonksiyonu nmap ile belirtilen portu tarar ve "Açık" veya "Kapalı" döndürür - [ ] check_port() fonksiyonu TCP bağlantısı kurar - [ ] check_port() fonksiyonu ping atar - [x] check_port() fonksiyonu nmap -sV parametresi ile servis versiyonunu tespit eder 2. website_dns_lookup.sh hangi DNS sunucularını kullanır? - [x] 8.8.8.8, 1.1.1.1, 9.9.9.9 - [ ] 8.8.4.4, 1.0.0.1, 9.9.9.10 - [ ] 8.8.8.8, 8.8.4.4, 1.1.1.1 - [ ] 1.1.1.1, 1.0.0.1, 8.8.8.8 3. website_email_scanner.sh hangi mail portlarını tarar? - [ ] 25, 110, 143 - [x] 25, 465, 587, 110, 995, 143, 993 - [ ] 25, 587, 993 - [ ] 25, 110, 995, 143 4. app.py içinde scripts.json dosyası nasıl yüklenir? - [ ] read_json() fonksiyonu ile - [ ] parse_json() fonksiyonu ile - [x] json.load() fonksiyonu ile - [ ] json.loads() fonksiyonu ile 5. website_subdomain_finder.sh alt alan adı tespiti için hangi yöntemi KULLANMAZ? - [ ] DNS Zone Transfer - [ ] Certificate Transparency - [ ] DNS Brute Force - [x] DNS Recursion 6. ip_switch_scan.sh betiği hangi router protokol portlarını tarar? - [x] BGP(179), RIP(520), HSRP(1985) - [ ] BGP(179), OSPF(89), RIP(520) - [ ] RIP(520), EIGRP(88), BGP(179) - [ ] OSPF(89), IS-IS(124), BGP(179) 7. website_email_scanner_katana.sh çıktılarını nereye kaydeder? - [ ] katana_output.txt - [x] katana_mail_info_[domain].txt - [ ] mail_scanner.txt - [ ] email_results.txt 8. network_local_scan.sh yerel IP adresini nasıl alır? - [ ] ifconfig komutu ile - [ ] hostname -I komutu ile - [x] ip route get 1 komutu ile - [ ] ip addr show komutu ile 9. scripts.json içindeki hangi kategori boş bırakılmıştır? - [ ] network - [ ] website - [x] firewall - [ ] enumeration 10. git_yukleme.sh içindeki commit mesajı nedir? - [ ] "update" - [x] "yorum" - [ ] "commit" - [ ] "changes" 11. website_dns_lookup.sh çıktısını hangi formatta verir? - [ ] XML - [x] JSON - [ ] YAML - [ ] Plain text 12. ip_scan.sh hangi veritabanı portlarını taramaz? - [ ] MySQL(3306) - [ ] PostgreSQL(5432) - [ ] MongoDB(27017) - [x] Redis(6379) 13. website_email_scanner.sh hangi DNS kaydını kontrol etmez? - [ ] MX - [ ] SPF - [ ] DMARC - [x] SRV 14. app.py'da hata kayıtları nereye yazılır? - [ ] error.log - [x] logs.log - [ ] debug.log - [ ] app.log 15. ip_switch_scan.sh hangi SNMP portlarını tarar? - [x] 161(SNMP), 162(SNMP Trap) - [ ] 161(SNMP), 163(SNMP) - [ ] 162(SNMP), 163(SNMP Trap) - [ ] 161(SNMP), 164(SNMP Trap) 16. website_subdomain_finder.sh hangi yaygın alt alan adlarını kontrol eder? - [x] www, mail, ftp, admin, blog, dev, stage, test - [ ] www, mail, blog, forum, shop, app, api - [ ] www, mail, ftp, admin, forum, app, test - [ ] www, mail, admin, dev, test, beta, staging 17. scripts.json'da network kategorisinde kaç script vardır? - [x] 2 - [ ] 3 - [ ] 4 - [ ] 5 18. website_email_scanner_katana.sh'nin çalışması için gerekli OLMAYAN tool hangisidir? - [ ] dig - [ ] jq - [x] whois - [ ] katana 19. ip_scan.sh iOS için hangi portu tarar? - [ ] 5900 - [ ] 5555 - [x] 62078 - [ ] 548 20. app.py'da script çalıştırma fonksiyonu hangi kütüphaneyi kullanır? - [ ] os - [x] subprocess - [ ] sys - [ ] commands
sh_ve_cozumleri.txt
> Q: # Bash Script Kullanım Senaryoları ve Çözümleri (Amatörler İçin) 1. Senaryo: Log Dosyası Analizi "Sunucudaki access.log dosyasında en çok istek yapan IP'leri bulmam gerekiyor." #!/bin/bash # access.log analizi echo "En çok istek yapan 10 IP:" cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10 # 404 hataları echo "404 Hata veren sayfalar:" grep "404" access.log | awk '{print $7}' | sort | uniq -c | sort -nr # Saat bazlı analiz echo "Saatlik istek sayısı:" cat access.log | awk '{print $4}' | cut -c 14-15 | sort | uniq -c 2. Senaryo: Otomatik Yedekleme "MySQL veritabanı ve web sitesi dosyalarını her gün yedeklemek istiyorum." #!/bin/bash # Tarih formatı DATE=$(date +%Y%m%d) BACKUP_DIR="/backups" # MySQL yedek mysqldump -u username -ppassword database > $BACKUP_DIR/db_$DATE.sql # Web dosyaları yedek tar -czf $BACKUP_DIR/www_$DATE.tar.gz /var/www/html/ # Eski yedekleri temizle find $BACKUP_DIR -type f -mtime +7 -delete # Mail gönder echo "Yedekleme tamamlandı" | mail -s "Backup Report" admin@example.com 3. Senaryo: Sistem Monitoring "CPU, RAM ve Disk kullanımını kontrol etmek istiyorum." #!/bin/bash # CPU kullanımı CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}') # RAM kullanımı MEMORY_USAGE=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2}') # Disk kullanımı DISK_USAGE=$(df -h | awk '$NF=="/"{printf "%s", $5}') # Sonuçları yazdır echo "CPU Kullanımı: $CPU_USAGE%" echo "RAM Kullanımı: $MEMORY_USAGE" echo "Disk Kullanımı: $DISK_USAGE" # Kritik durum kontrolü if [ ${DISK_USAGE%?} -gt 90 ]; then echo "Disk dolmak üzere!" | mail -s "Disk Uyarı" admin@example.com fi 4. Senaryo: Güvenlik Taraması "Sistemde şüpheli dosya ve processler var mı kontrol etmek istiyorum." #!/bin/bash # SUID dosyalarını bul echo "SUID Dosyaları:" find / -type f -perm -4000 2>/dev/null # Açık portları listele echo "Açık Portlar:" netstat -tuln # Root processler echo "Root Processler:" ps aux | grep root # Son 10 başarısız login echo "Başarısız Loginler:" grep "Failed password" /var/log/auth.log | tail -10 5. Senaryo: Web Site Kontrolü "Web sitemizin ayakta olup olmadığını kontrol etmek istiyorum." #!/bin/bash SITE="https://example.com" TIMEOUT=5 check_site() { response=$(curl -s -w "%{http_code}" -o /dev/null --connect-timeout $TIMEOUT $SITE) if [ $response -eq 200 ]; then echo "Site çalışıyor" else echo "Site yanıt vermiyor!" | mail -s "Site Down!" admin@example.com fi } # Her 5 dakikada kontrol et while true; do check_site sleep 300 done 6. Senaryo: Dosya Organizasyonu "Downloads klasörümü dosya türlerine göre otomatik organize etmek istiyorum." #!/bin/bash DOWNLOADS="$HOME/Downloads" PICTURES="$HOME/Pictures" DOCUMENTS="$HOME/Documents" ARCHIVES="$HOME/Archives" # Resimleri taşı find "$DOWNLOADS" -type f -name "*.jpg" -o -name "*.png" -exec mv {} "$PICTURES" \; # Dökümanları taşı find "$DOWNLOADS" -type f -name "*.pdf" -o -name "*.doc" -exec mv {} "$DOCUMENTS" \; # Arşivleri taşı find "$DOWNLOADS" -type f -name "*.zip" -o -name "*.tar.gz" -exec mv {} "$ARCHIVES" \; # Boş klasörleri temizle find "$DOWNLOADS" -type d -empty -delete 7. Senaryo: User Yönetimi "Yeni kullanıcı oluşturup temel ayarları yapmak istiyorum." #!/bin/bash read -p "Kullanıcı adı: " USERNAME # Kullanıcı oluştur useradd -m -s /bin/bash $USERNAME # Şifre oluştur PASS=$(openssl rand -base64 12) echo "$USERNAME:$PASS" | chpasswd # SSH key oluştur su - $USERNAME -c "ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa" # Yetkileri ayarla usermod -aG sudo $USERNAME echo "Kullanıcı oluşturuldu" echo "Şifre: $PASS" 8. Senaryo: Update ve Cleanup "Sistemi güncellemek ve gereksiz dosyaları temizlemek istiyorum." #!/bin/bash # Güncelleme apt update apt upgrade -y # Önbellek temizliği apt clean apt autoclean # Eski kernelleri temizle apt autoremove -y # Temp dosyaları temizle rm -rf /tmp/* rm -rf /var/tmp/* # Cache temizliği journalctl --vacuum-time=7d 9. Senaryo: Network Analizi "Ağdaki aktif cihazları bulmak istiyorum." > Q: #!/bin/bash NETWORK="192.168.1" # Ping scan for ip in $(seq 1 254); do ping -c 1 $NETWORK.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" & done # Port scan echo "Açık portlar:" for host in $(cat active_hosts.txt); do nmap -F $host done 10. Senaryo: Dosya İzleme "Bir klasördeki değişiklikleri izlemek istiyorum." #!/bin/bash WATCH_DIR="/path/to/directory" LOG_FILE="changes.log" inotifywait -m -r -e create,modify,delete $WATCH_DIR | while read path action file; do echo "$(date): $action $path$file" >> $LOG_FILE # Yeni dosya oluşturulduğunda if [ "$action" = "CREATE" ]; then echo "Yeni dosya: $file" | mail -s "Dosya Değişikliği" admin@example.com fi done Her senaryo için önemli notlar: - Root yetkisi gerekebilir - Path'leri kendi sistemine göre düzenle - Değişkenleri kendi ihtiyacına göre ayarla - Hata kontrolü ekle - Log tutmayı unutma
Komutlar ve Açıklamalar
Komut Ekle
Amaç
Komut
Açıklama
İşlem