THM: Writeup krautinc

This room is about NFS, DNS, SSH and Mail. So take your time and enumerate carefully.

Step 1) Read the attached MEMO carefully
Read the provided PDF. Who could be leaking data?

Step 2) Deploy the VM and start enumerating
Lets start with nmap and see which ports are open:
nmap -sV -sC <IP>
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
111/tcp open rpcbind
2049/tcp open nfs


Lets start with the NFS-Share:
showmount -e <IP>
/srv/secret 192.168.230.0/255.255.255.0,10.0.0.0/255.0.0.0

Ok, there is a share /srv/secret lets mount it
mount <IP>:/srv/secret /mnt

Lets check what we can find there
drwxr-xr-x 5 root root 4096 Dec 13 15:18 .
drwxr-xr-x 19 root root 4096 Dec 13 03:55 ..
d——— 3 root root 4096 Dec 11 07:07 …
drwxr-xr-x 2 root root 4096 Dec 13 14:59 images
-rw-r–r– 1 root root 22899 Dec 13 15:04 jail.conf
-rw——- 1 root root 16384 Dec 13 15:17 .jail.conf.swp
drwxr-xr-x 2 root root 4096 Dec 11 06:28 jail.d
-rw——- 1 root root 385 Dec 13 15:02 security-note-txt
-rw-r–r– 1 1004 1004 86 Dec 13 15:05 telefon.txt
-rw-r–r– 1 root root 27818 Dec 13 15:18 .unkown.png

There are many interesting things on that share. And somewhere is a flag 🙂

  • .unknown.png looks interesting. There seems to be some hint regarding DNS. We will try this out in a minute.
  • images seems to be interesting too.
  • security-note-txt looke some base64 stuff

Step 3) Analyze the content of the nfs share. Fire up your first DNS query
We will try out the DNS. Looks like there are some TXT records in the zone. Lets try it:
dig dieter.kraut.thm TXT @<IP>

will give you a password – maybe for the user dieter?

Step 4) Access the VM via ssh
Lets SSH in the machine
ssh dieter@<IP> with the given password.

We will get a hint about a default password. Now we need to think about which user this could be. Remember the note about fail2ban.
Which user should we use to test this? Remember the telefon.txt This will give us a short list. We can remove Dieter and Hans from that list.
Since Peter is the CEO he should not work with the default password. This leaves us with:
karl
wolfgang
markus

Which we will put in a list named /tmp/user
Lets start hydra then:
hydra -L/tmp/user -p „logmein!42“ ssh://<IP>

markus is the user who has still the default password.

Step 5) It is Mail-Time
enumerate the VM after log in as markus
You have new mail.
markus@kraut:~$

That looks interesting. Lets have a look if we can find something useful there:
mail will give us three unread emails

one email is from „wurst“ whoever that is and contains an private key:
—–BEGIN RSA PRIVATE KEY—–
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,EA107208EE6B3469EB5651115721E91E

8QUr9Q2+Alcq98MuKIk8bRKov5tg+arPoKV9fzBqHP+EGhFBzqEfD0DSVnymLV8X

83xzBVAa47GVh+ypSZz0aqubq7Xq3kPumQ43XoF9/I01OflDA47ty/lsKhSdBH3/
—–END RSA PRIVATE KEY—–

Lets use ssh2john and john to crack the password for this key.

After cracking the password we might have an ssh key to another user account. Maybe hans or root?

Step 6) getting root
After getting root access (there are two ways one via ssh and the other via priv escalation) we could start searching some flags:

1st flag: nfs-share .../.../.../.flag.txt
2nd and 3rd flag somewhere in the home directory of Dieter and Karl (not used)
4th flag in the home of Hans Mail/sent
5th flag in a zone file inside of /etc/bind (not used)
6th flag in the root-home (not used)
7th flag in the root mailbox
8th flag in the base64-code (not used)

Step 7) Who has leaked the information?

Who has leaked the information? Hans or Markus?

  • Look at the QR-Code and read some mails from the mailboxes of Hans, Markus and maybe Peter.

echo“VGh…yYXV0IHRobXthbHdheXNfb25fa3JhdXR9Cg==“ | base64 -d

relax-and-recover

Wir machen doch DevOps und brauchen die ganzen persistenten Daten doch gar nicht, oder?

Linuxsysteme kann man ja ganz einfach über ein Vollbackup sichern und restoren, oder?

Wer schonmal den Fall hatte, daß ein paar Systeme auf dem einem Storage lagen, daß gerade Probleme macht und es jetzt zauberhaft wäre, die einfach irgendwo hin zu schieben => rear ist Dein Freund.

Wer schonmal einen Systemwechsel P2V oder V2V machen wollte und sich über die ganzen Tools geärgert hat => rear ist Dein Freund.

Wenn man rear in seine Datensicherung integriert oder gleich die Datensicherung mit rear auf Netzwerkshares macht, bekommt eine relativ simple Diaster Recovery Lösung. Einfach vom ISO booten und rear kümmert sich um das Mapping von Festplatten und Netzwerkkarten. Das System kommt hoch und kann dann über einen simplen Aufruf das System wieder herstellen. Auch von Xen auf KVM oder von KVM auf VMware.

Ein Beispiel kann man hier sehen.

Geheimnisse

Am Anfang einer Beziehung gibt es wenig Geheimnisse. Man offenbart sich, hat viel Zeit für Gespräche mit dem anderen. Das schafft Vertrauen. Dann passiert das Wunder des Lebens, aus zwei Personen werden mehrere. Die eigenen Bedürfnisse geraten in den Hintergrund – überdeckt von einer unglaublichen Gefühlsdichte. Das neue Leben erfordert neue Strukturen. Der Überlebensmodus ist gefordert. Die Anpassung ist unvermeidbar. Gefühle schwanken zwischen bedingungsloser Liebe und absoluter Eifersucht.

Das Rad des Lebens dreht sich Jahr um Jahr. Man wird besser darin auch einmal an sich selbst zu denken,  an das Uns – und auch an die Bedürfnisse des Partners. Die Liebe ist da, wird aber mehr und mehr Alltagsgut. Sie verändert sich.

Es keine Zeit mehr da. Die eigenen Bedürfnisse im Kontext der gemeinsamen Familie schaffen Konflikte. Die kosten Zeit und Energie und füttern das eigene schlechte Gewissen. Und so beginnt Mann Konflikte zu vermeiden. Die kleinen Konfliktpotentiale zu umschiffen. Was ich mitteile kann ich kontrollieren. Warum streiten, wenn es nicht so wichtig ist. Warum den anderen mit den eigenen Überlegungen nerven. Man kann ja drüber sprechen, wenn es wirklich wichtig ist.

Und so passiert es immer öfter, daß die wichtigen, eigenen Sachen nebenbei Erwähnung finden. Das führt zu Kränkung, war der Partner früher Bestandteil der Entwicklung, so wird heute über die Ergebnisse/Erlebnisse berichtet.

So beginnt ein schleichender Prozess. Das Gefühl der Verheimlichung entsteht. Schön wenn man dann trotzdem noch die Basis für das vertrauensvolle Gespräch findet. Das Uns hat viel mit Vertrauen und Kommunikation zu tun.

Konfirmation oder was?

Gestern war Anmeldung zum Konfa-Unterricht. Es war angenehm unaufdringlich, sehr kurz und irgendwie trotzdem ernsthaft.

Der Tenor:  „Die Eltern halten jetzt mal den Rand, es geht um die Jugendlichen. Die sollen heute entscheiden, ob sie zum Konfa-Unterricht kommen und ob sie sich danach für die Konfirmation entscheiden. Sie sind nach dem Ende der Konfazeit religionsmündig und sollen diese (allein) Entscheidung treffen“.

Ich war ziemlich überflüssig und das hat mir gezeigt, daß der Große der Große ist und sich mehr und mehr auf eigenen Füßen durchs Leben bewegt. Und das ist gut so.

Möge er sich entscheiden – ich werde diese Entscheidung respektieren können, auch weil er sich Gedanken macht und gemacht hat.

Und ich muss nicht 20 mal in den Gottesdienst gehen 🙂

 

 

… wenn einer für immer weg ist.

Mich beschäftigt der Gedanke, warum mich der (überraschende) Tod von anderen Menschen, mit denen ich eigentlich wenig zu tun hatte, so umhaut.

Ist es die Tatsache, daran erinnert zu werden, daß man selbst und die wichtigsten Menschen im Leben nicht immer da sein werden?

Dieser eine Mensch wird nie wieder unter uns sein. Man wird sich nie wieder belanglos oder inhaltsvoll unterhalten können. Der Tod ist etwas sehr entgültiges und wie man seinen Kindern sagt: „Das gehört zum Leben dazu. Erinnere Dich an die schönen Augenblicke, dann wird dieser Mensch immer da sein – in deinem Herzen.“

Es ist egal, wie dieser eine Mensch von der Welt geht. Krankheit, Unfall oder schlimmer vielleicht sogar ein selbstbestimmter Tod – dieser Mensch wird niemals zurückkommen – er ist einfach weg und das finde ich nicht fair. Nicht für Familie, Freund und auch nicht für mich.

Und dann habe ich diesen wunderschöne, banalen Text gelesen.

Wenn Du abends zu Bett geht und noch am Leben bist, dann kannst Du echt froh sein. Jeden Tag sterben Menschen. Wenn man morgens aufwacht, kann man auch darüber sehr froh sein. Wenn das gleiche bei den Menschen der Fall ist, die für einen wichtig sind, dann ist das doch einfach nur noch toll, oder?

Es gibt also jeden Tag und jeden Abend so viele Anlässe froh zu sein. Trotzdem darf man auch traurig sein – finde ich.

 

Nextcloud und CODE als Paket

Wenn man eigene Fonts hat und diese nutzen will, muss man selbst einen Docker-Container bauen oder man kann z.B. auf einem Ubuntu die Pakete installieren.

Wenn man vorher Docker hatte, dann muss man nicht wirklich viel nach aussen ändern. Der Dienst läuft auf dem gleichen Port und die Config geht ähnlich.

Also! Docker Container runterfahren und Pakete installieren.

Schritt 1: Pakete installieren

Anleitung gibts hier

Schritt 2: Reverse Proxy wie gehabt

Anleitung gibts hier

Schritt 3: Startskripte und Config des Systems

Anleitung gibts hier

Und dann ab ins Getümmel – die sinnvolle Stelle sieht ungefähr so aus.

Bildschirmfoto 2018-09-18 um 20.55.25

Schritt 4: Fonts einkopieren

Die kommen nach

/opt/collaboraoffice5.3/share/fonts/truetype

Dann den loolwsd einmal neu starten. Hüstel einfach mal ein kill auf den Prozess machen, der starten dann wieder neu, wenn man den anderen Krams aus Schritt 3 befolgt hat.

 

Nextcloud und CODE

Eine Textverarbeitung ohne Windows im Browser und nicht bei google und Co.?

Wenn man sich den Podcast LibreOffice Online anhört, bekommt man richtig Lust das mal anzutesten. Man braucht zuerst Nextcloud oder Owncloud und baut sich dann einen WOPI-Server ein. Mein erster Versuch war alles auf einer VM zu betreiben, die ist dann an der Load gestorben.

Schritt 1: Nextcloud installieren auf PLESK

  • Subdomain und Datenbank einrichten und mit letsencrypt absichern.
  • Nextcloud latest.tar.b2 runterladen und dann im neuen webroot auspacken (Rechte und Besitzer anpassen).
  • Nextcloud installieren und einrichten

Schritt 2: APP „Collabora Online“ in Nextcloud aktivieren

Bildschirmfoto 2018-09-17 um 20.32.27

Schritt 3: CODE aufsetzen

  • Grundinstallation irgendein linux mit Docker auf einer 2. Maschine
  • Docker Container runterladen und installieren
  • Reverse Proxy nginx aufsetzen (gleich mit letsencrypt)
  • Docker starten (sepp1234.de ist der Hostname des Nextcloud-Servers)
  • docker run -t -d -p 127.0.0.1:9980:9980 -e „domain=sepp1234\\.de“ \ -e „username=admin“ -e „password=xxxxxx“ –restart always –cap-add MKNOD collabora/code
  • zum Testen Admin-Console aufrufen

Schritt 4: Nextcloud anpassen

Bildschirmfoto 2018-09-17 um 20.43.51

Schritt 5: Zusammenspiel testen

Bildschirmfoto 2018-09-17 um 20.45.09

 

Bildschirmfoto 2018-09-17 um 20.45.35

Fazit

Ist sehr schnell einzurichten, wenn man mit Docker arbeitet. Ein wenig Know How mit SSL-Zertifkaten, Docker und DNS sollte man schon mitbringen. Eine normale VM stirbt möglicherweise, wenn man beides auf einer Maschine fährt. Ich finde das Projekt echt spannend.

Gedanken zu Dir

Schwups, auf einmal warst Du da. Erst nur am Rande meines Lebens, dann mittendrin.

Egal was war, wir haben uns immer ohne Worte verstanden – wenn es zu viel war einfach nur funktioniert.

Du bist der Mensch, der zu mir durchgedrungen ist – vorbei an allen Schutzmauern, Ausflüchten und Ausreden.

Und trotzdem gibt es nach so vielen Jahren immer noch Dinge mit denen wir uns überraschen können. Gedanken und Geschichten, die wir niemals geteilt haben. Geheimnisse, die wir selbst nicht als solche erkannt haben.

Akzeptanz, wo andere nur den Kopf schütteln, die Schulter zum Anlehnen oder auch Ausweinen.  Die klare Ansage, wo sie Not tut.

Herausforderungen auf die wir keine einfachen Lösungen finden können – Fragen, die größer sind als wir beide. Und trotzdem habe ich mit Dir keine Angst davor.

Wir haben viel gelacht und manchmal auch geweint. Ich streite mich gerne mit Dir – auch wenn Du Recht hast. Möge es immer so bleiben.

Es gibt so unfassbar viele Gedanken und Gefühle, die ich Dir mitteilen möchte, ich kann es nicht in Worte fassen.

 

 

 

Steine umdrehen

Strandspaziergang:

 

Viel Sand, Wasser und Steine.

Manche Steine sind flach oder rund, andere sind schwer oder leicht. Manchmal sieht man nur die Spitze rausschauen. Sie sitzen ganz fest und tief im Sand. Einige fühlen sich toll an, andere sind scharf und spitz. Unter ein paar Steinen ist das Wasser klar – bei anderen ist es schlammig oder trocken.

Viele bieten einen festen und sicheren Weg. Andere liegen mitten im Weg oder wackeln wenn man darauftritt. Sie wollen erklommen bzw. umgangen werden.

Unter einige möchte man sofort drunterschauen – andere will man nicht anfassen.

Als Kind versucht man immer die großen Steine zu bewegen. Als Erwachsene denken wir schon vorher, daß dieser Stein da zu gross und schwer für uns ist. Wir versuchen es nicht mehr. Wir meinen auch das unseren Kindern klarmachen zu müssen, damit sie sich nicht verletzten oder scheitern. Dann bewegen sie die Steine, weil sie eben nicht nachlassen und aufgeben.

Unsere Handgriffe ändern wenig am Strand, aber viel an uns selbst. Wenn wir das zulassen …

 

 

 

Windows und ich brauche mal ein SSL-Zertifkat für einen Test

Kurz mal einen Windows Server aufsetzen in der Azure Cloud geht ja recht fix. Dann nochmal eben ein SSL-Zert draufpacken ohne sich noch weitere Software auf dem System installieren zu müssen. Für mich war dies der schnellste Weg:

  • Eine Ubuntu-VM aufsetzen
  • Netzwerksicherheitsgruppe anpassen, damit man per SSH und HTTP auf die VM kommt
  • DNS-Eintrag für die FQDNs auf die externe IP anpassen
  • per ssh auf der vm anmelden
  • nginx installieren und certbot nachziehen
  • https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx
  • certbot durchlaufen lassen, Zertifkate liegen dann im PEM-Format unter /etc/letsencrypt/live …
  • per openssl in ein PFX umwandeln
    • openssl pkcs12 export out certificate.pfx inkey privateKey.key in certificate.crt certfile more.crt
  • per scp das PFX von der VM kopieren
  • per RDP oder wie auch immer auf die Windows VM und das Zert draufpacken
  • Ubuntu-VM löschen

Vorteil: keine Kosten und keine Warnungen im Browser

Nachteil: Zertifkat läuft in 2 bis 3 Monaten ab.