dd Image mounten

Wenn man es mal wieder geschafft hat, ein Image mittels dd zu erstellen, muss man das Image ja vllt. auch mal wieder herstellen.
Ein einfaches
mount image.dd /mnt
tut es meistens nicht.
Dann hilft folgendes:

root@kali:~/pi# file image.dd
image.dd: DOS/MBR boot sector; partition 1 : ID=0xc, start-CHS (0x0,0,2), end-CHS (0x3d0,2,9), startsector 1, 125000 sectors; partition 2 : ID=0x83, start-CHS (0x3d0,2,10), end-CHS (0x3ff,3,32), startsector 125001, 6018999 sectors

oder

root@kali:~/pi# fdisk -l image.dd

Disk image.dd: 15 GiB, 16155410432 bytes, 31553536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000782e5

Device Boot Start End Sectors Size Id Type
image.dd1 1 125000 125000 61M c W95 FAT32 (LBA)
image.dd2 125001 6143999 6018999 2,9G 83 Linux

Dann kann man das Image mounten, wenn mann den Startsektor mit der Sektorgröße multipliziert.
In diesem Fall also 512*125001=64000512.
Manchmal hakt der normale mount-Befehl aber:

root@kali:~/pi# mount -o ro,loop,offset=64000512 image.dd /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.

Dann hilft meist:

root@kali:~/pi# losetup --offset 64000512 /dev/loop1 image.dd

Danach sollte das Image eingebunden sein und man kann auf die Daten zugreifen…

Blattschutz bei Excel entfernen

Dokument aufrufen, mit Alt-F11 den Visual Basic Editor aufrufen,

Rechte Maustaste in das Projektfeld auf der linken Seite, Einfügen -> Modul.

Dort diesen Text einfügen:

Sub Blattschutz_entfernen()
     On Error Resume Next
         For i = 65 To 66
         For j = 65 To 66
         For k = 65 To 66
         For l = 65 To 66
         For m = 65 To 66
         For n = 65 To 66
         For o = 65 To 66
         For p = 65 To 66
         For q = 65 To 66
         For r = 65 To 66
         For s = 65 To 66
         For t = 32 To 126
         
     ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & _
     Chr(n) & Chr(o) & Chr(p) & Chr(q) & Chr(r) & Chr(s) & Chr(t)
        Next t
         Next s
         Next r
         Next q
         Next p
         Next o
         Next n
         Next m
         Next l
         Next k
         Next j
         Next i
         MsgBox "PW removed"
 End Sub

Dann auf Ausführen (kleiner grüner Pfeil) gehen und warten, am Ende ist der Blattschutz weg.

OpenSSL-HowTo

EDIT: Cool, irgendwie in den Entwürfen wiedergefunden, passt ja zum vorherigen Thema…: Link

Hier mal die (für mich) wichtigsten Infos über OpenSSL, CAs, Zertifikate und was weiß ich zusammengefasst:

Dateiarten:
*.csr:

*.pem:
Base64 kodiert, enthält den Schlüssel und das Zertifikat in einer Datei, beginnt (für den Schlüssel) mit „—–BEGIN RSA PRIVATE KEY—–“ und endet mit „—–END RSA PRIVATE KEY—–“, darauf folgt (für das Zertifikat) „—–BEGIN CERTIFICATE—–“ und endet mit „—–END CERTIFICATE—–“
*.crt:

*.key

*.der

Umwandlung von Zertifikaten:

Aufbau einer CA
openssl.cnf editieren, so dass die Einstellungen passen ,z.B. default_bits = 2048 (Setzt die Schküssellänge auf 2048Bit, default 512, oder 1024)
Verzeichnisse anlegen, die in der openssl.cnf beschrieben sind (ich mache es meist im Verzeichnis /etc/ssl/RootCA)
Unterverzeichnisse anlegen:
cd ./RootCA
mkdir newcerts certs crl private
# 2 separate Dateien anlegen
touch index.txt serial
# serial-Datei „befüllen“
echo „01“ > serial

Root-Zertifikat der CA erstellen
# Erst den Key
openssl genrsa -out -aes256 /etc/ssl/RootCA/private/RootCA.key.pem 2048
# Wenn -aes256 nicht angegeben wird, wird der Schlüssel unverschlüsselt (und ohne PW) abgespeichert
# 2048 am Ende steht für die Schlüssellänge

# Jetzt das Zertifikat (öffentlicher Teil)
openssl req -new -x509 -days 1027 -key private/RootCA.key.pem -out ./RootCA-cert.pem
# Das PW für den private Key muss angegeben werden
# mit
openssl x509 -in RootCA-cert.pem -text -noout | less
das Zertifikat überprüfen, die Seriennummer muss 0 sein

Jetzt ist das Zertifikat für die RootCA erstellt, es können nun Zertifikatsanforderungen gestellt werden, die die CA signieren muss
cd RootCA
# Erst den Key (wenn mit PW, dann -aes256 angeben) sonst wird kein PW hinterlegt (z.B. für Server)
openssl genrsa -out NAME.key.pem 1024
# Dann den CSR
openssl req -new -key NAME.key.pem -out NAME.req.pem
# Dann signieren
cd /etc/ssl/
openssl ca -name CA_NAME -cert ./RootCA/RootCA-cert.pem -keyfile ./RootCA/private/RootCA.key.pem -in ./RootCA/certs/ZERTIFIKAT.req.pem -out ./RootCA/certs/ZERTIFIKAT.cert.pem -outdir ./RootCA/newcerts/

Das Zertifikat wird in ./RootCA/newcerts abgelegt

CSR erstellen

Signieren

SSL-Verbindung mit sslsniff

Falls ich es mal wieder brauche:

CA und Konsorten erstellen:

CA-Key:
openssl genrsa -aes256 -out ca-key.pem 2048
Root-Cert:
openssl req -x509 -new -nodes -extensions v3_ca -key ca-key.pem -days 1024 -out ca-root.pem -sha512
Zertifikat erstellen:
openssl genrsa -out zertifikat-key.pem 4096
CSR für das Zertifikat:
openssl req -new -key zertifikat-key.pem -out zertifikat.csr -sha512
Beim CN auf den richtigen CN achten
Zertifikat erstellen:
openssl x509 -req -in zertifikat.csr -CA ca-root.pem -CAkey ca-key.pem -CAcreateserial -out zertifikat-pub.pem -days 365 -sha512

IPtables anpassen:
iptables -t nat -A PREROUTING -p tcp –-dport 443 -j REDIRECT –-to-ports 4433
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j MASQUERADE

sslsniff starten:
sslsniff -a -c /root/zertifikat-pub.pem -s 4433 -w /tmp/https.log

OpenVSwitch und VirtualBox

Für meine Tests spiele ich viel mit Virtualbox rum. Um noch etwas flexibler zu sein, habe ich jetzt auf meinem Linux-Notebook OpenVSwitch (OVS) installiert und so konfiguriert, dass VirtualBox (VB) sich mit den Bridges verbinden kann.

sudo ip tuntap add mode tap vnet0
sudo ip link set vnet0 up
sudo ovs-vsctl add-br vbox
sudo ovs-vsctl add-port vbox vnet0
sudo ip link set vbox up

In VB verbinde ich die VM nun einfach mit vnet0.
vnet0 ist irgendwas mit ethX in der VM (zum. bei einer Linux-VM) und erhält dort von mir per
ip addr add 10.0.0.1/24 dev eth0
eine IP.

Auf meinem Notebook mache ich das gleiche, nur mit vbox und ner anderen IP.
An diese OVS-Bridge kann ich nun beliebig viele VMs dranhängen, die alle miteinander kommunizieren können. Die VMs benötigen nur eine vNIC, die am vSwitch angeschlossen ist…

OpenVSwitch virtelle Testumgebung

Um schön mit OVS spielen zu können und alle Features losgelöst von irgendwelchen VMs, Hypervisoren und Konsorten zu testen, helfen die Network Namespaces von iproute2 weiter.
Ein einfaches Szenario zum Testen
host1 OVS host2
lässt sich so realisieren:

ip netns add ns1
ip netns add ns2
ovs-vsctl add-br BRIDGE
ip link add tap1 type veth peer name ovs-tap1
ovs-vsctl add-port BRIDGE ovs-tap1
ip link set tap1 netns ns1
ip netns exec ns1 ip link set dev tap1 up
ip link set dev ovs-tap1 up

ip link add tap2 type veth peer name ovs-tap2
ovs-vsctl add-port BRIDGE ovs-tap2
ip link set tap2 netns ns2
ip netns exec ns2 ip link set dev tap2 up
ip link set dev ovs-tap2 up

per

ip netns exec ns1 bash

wird in den Namespace ns1 gewechselt und es kann nun hin- und her gepingt werden.
Nimmt man ein ovs-tap* aus dem Switch raus, ist die Verbindung weg und nüscht geht mehr…