Joomladagen 2015Joomladagen 2015
> Linux Command Line Magic
Peter Martin
www.db8.nl / @pe7er
1
Joomladagen 2015Joomladagen 2015
1.Introductie
2.Commando's
3.Basis
4.Verbinden
5.Scripts
Linux Command
Line Magic
6.Backup
7.Bestanden zoeken
8.Hack herstellen
9.In a Box
1. Introductie
Joomladagen 2015Joomladagen 2015
Linux
● Cross-platform besturingssysteem
● Open Source & gratis
● Stabiel
– Multi user
– Multi tasking
● Populair
– Internet servers
● Ontstaan
– Minix (Unix-achtig besturingssysteem)
Joomladagen 2015Joomladagen 2015
● Debian .deb
– Debian
– Ubuntu
Distributies
● Red Hat .rpm
– Fedora
– CentOS
● Anders
– Slackware
– Arch Linux
– Gentoo
Joomladagen 2015Joomladagen 2015
● Commercieel
– BSD/OS
– Solaris
– Mac OS
Unix
● Gratis
– FreeBSD
– NetBSD
– OpenBSD
2. Commando's
Joomladagen 2015Joomladagen 2015
man
Online handleiding (manual)
man man
Joomladagen 2015Joomladagen 2015
ls
Toon (list) inhoud map
ls -al
List devices
lsusb
lspci
lsmod
Joomladagen 2015Joomladagen 2015
mkdir
Map aanmaken (make directory)
mkdir joomladagen2015
(rmdir = remove directory)
Joomladagen 2015Joomladagen 2015
cd
Ga naar map
(change directory)
cd joomladagen2015
cd ..
cd ~
cd /var/www/
Joomladagen 2015Joomladagen 2015
cat
Toon bestand (= concatenate files & print)
cat configuration.php
Joomladagen 2015Joomladagen 2015
nano
Wijzig bestand
nano configuration.php
Joomladagen 2015Joomladagen 2015
cp
Kopieer bestand (copy)
cp bestand.txt nieuwbestand.txt
Joomladagen 2015Joomladagen 2015
mv
Verplaats bestand (move)
mv bestand.txt nieuwe-naam.txt
Joomladagen 2015Joomladagen 2015
rm
Verwijder bestand of map (remove)
rm /var/www/joomla-cms/configuration.php
rm -R /var/www/joomla-cms/installation
Joomladagen 2015Joomladagen 2015
chmod
Verander permissies (change mode)
sudo chmod +x somescript.sh
Joomladagen 2015Joomladagen 2015
chown
Wijzig eigenaar (change ownership)
3. Basis
Joomladagen 2015Joomladagen 2015
Bestanden
Linux = “Files are us”
alles = bestand
Joomladagen 2015Joomladagen 2015
Bestanden
● Eigenaar
– Gebruikersnaam
– Naam van “proces” (bijv. Apache = www-data)
● Groep
– Gebruikers toegewezen aan groep hebben dezelfde rechten
● Permissies
– Lees (read (4))
– Schrijf (write (2))
– Uitvoeren (execute (1))
Joomladagen 2015Joomladagen 2015
Bestand
-rw-r--r-- 1 peter pc 1174 Nov 7 15:50 example_file.txt
read (4)
write (2)
execute (1)
eigenaar
rw-
r(4)+w(2)
groep
r--
r(4)
publiek
r--
r(4)
= 644
Joomladagen 2015Joomladagen 2015
Gebruikers
Gebruikers
– Gewone gebruikers: gebruiker@computer:~$
– Root gebruiker: root@computer:~#
– “whoami” (wiebenik)
– “groups” (welke groepen?)
Verander gebruiker:
– “su gebruikersnaam”
– “su root” of gewoon “su”
Joomladagen 2015Joomladagen 2015
Commando
uitvoeren
Commando + parameters
sh script uitvoeren:
script.sh met execute permissies, of
./script.sh
Commando uitvoeren als root gebruiker
– Sudo [commando]
Joomladagen 2015Joomladagen 2015
Basis
~ “tilde”
= standaard home map (“mijn documenten”)
cd ~
> “groter dan teken”
= stuur uitvoer naar nieuw bestand
ls -al > bestand-met-bestandslijst.txt
>> “dubbel groter dan teken”
= voeg uitvoer to aan eind van bestand
ls -al >> bestand-met-bestandslijst.txt
Joomladagen 2015Joomladagen 2015
Basis
| “pipe”
= commando's koppelen
ls | less
peter@example.com:/var/www/joomla-cms$
cat configuration.php | grep password
public $password = 'my-secret-db-password';
Joomladagen 2015Joomladagen 2015
Symbolic links
Aanmaken van symbolic link: ln
ln -s [TARGET DIR/FILE] [SHORTCUT]
peter@example.com:~$
ln -s /var/www/joomla-cms joomla-test
peter@example.com:~$ ls -al
drwxr-xr-x 2 peter pc 4096 Oct 26 20:34 .
drwxr-xr-x 56 peter pc 4096 Oct 26 19:29 ..
-rw-r--r-- 1 peter pc 0 Nov 7 15:50 example_file.txt
lrwxrwxrwx 1 peter pc Nov 7 15:50 joomla-test ->
/var/www/joomla-cms
4. Verbinden
Joomladagen 2015Joomladagen 2015
Terminal
Text Terminal
“TTY” TeleTYpewriter
Joomladagen 2015Joomladagen 2015
Terminal
Windows
– Programma voor SSH: PuTTY
Mac OSX
– Ingebouwd: “Terminal”
Linux
– Ingebouwd: Terminal Emulator
Joomladagen 2015Joomladagen 2015
SSH
Secure Shell
gebruikt public-key cryptografie
(authenticeren & beveiligen van data communicatie)
peter@computer:~$ ssh peter@192.168.0.10
Joomladagen 2015Joomladagen 2015
SSH
peter@computer:~$ ssh peter@example.com
The authenticity of host 'example.com (93.184.216.119)' can't
be established.
RSA key fingerprint is 10:51:ab:f5:d7:[..]:17:16:1f:22:33.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'example.com,93.184.216.119'
(RSA) to the list of known hosts.
peter@example.com's password:
peter@example.com ~ $
Joomladagen 2015Joomladagen 2015
Keyless login
Genereer public/private rsa
authenticatie sleutel paar:
$ ssh-keygen -t rsa
Op computer:
private key: ~/.ssh/id_rsa
public key: ~/.ssh/id_rsa.pub
Installeer publieke sleutel op server:
ssh-copy-id username@remote-server.org
5. Scripts
Joomladagen 2015Joomladagen 2015
Automatisering
● Automatiseer herhalende handelingen
– Automatiseer een aantal commando's
– Gebruik variabelen & input / output
● Automatische handelingen gebaseerd op tijd?
Crontab (ook wel: cronjob)
Joomladagen 2015Joomladagen 2015
Shell t.o.v. bash
Shell
The Bourne shell (sh)
command-line
interpreter
Scripts starten met:
#!/bin/sh
Vaak symbolic link
naar bash
Bash
“Bourne-again shell”,
gratis vervanging
voor de Bourne shell
(sh) met meer opties
en betere syntax
Scripts starten met:
#!/bin/bash
Joomladagen 2015Joomladagen 2015
Dash?
Op Ubuntu/Debian:
~$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 Mar 1 2012
/bin/sh -> dash
= Debian Almquist shell = standaard voor
/bin/sh
Bash is de standaard login shell
voor interactief gebruik
Joomladagen 2015Joomladagen 2015
Voorbeeld
voorbeeld.sh
#!/bin/bash
# declareer STRING variabele
STRING="Hallo Joomladag!"
# print variabele op het scherm
echo $STRING
6. Backup
Joomladagen 2015Joomladagen 2015
Backup bestanden
Synchronisatie met andere locatie
– rsync van “bron” naar “doel”
$ rsync -arv peter@voorbeeld.nl:~/joomla-cms/
/var/www/joomla-cms-backup/
username
@ server
: folder
username
@ server
: folder
Joomladagen 2015Joomladagen 2015
Backup database
MySQL Dump
$ mysqldump -u gebruikersnaam -p
databasenaam > een-sql-textbestand.txt
7. Bestanden
zoeken
Joomladagen 2015Joomladagen 2015
Zoeken
find → zoek bestanden
locate → zoek bestanden (snel, index in
database)
whereis → vind source/binary en handleidingen
which → wat is het path naar een bestand
Joomladagen 2015Joomladagen 2015
Bestand kwijt?
Zoek een specifiek bestand
find /var/www/ -name “configuration.php”
Joomladagen 2015Joomladagen 2015
Grootste
bstanden?
Toon de 15 grootste bestanden:
$ find . -type f -exec du -Sh {} + | sort -rh | head -n 15
Joomladagen 2015Joomladagen 2015
Recente
bestanden?
Toon nieuwe bestanden
van de laatste 7 dagen:
find . -type f -ctime -7
Joomladagen 2015Joomladagen 2015
Recent veranderd
Veranderd afgelopen 7 tot 3 dagen:
find . -type f -mtime -7 ! -mtime -3
Joomladagen 2015Joomladagen 2015
Ongebruikte
plaatjes
Scan naar ongebruikte plaatjes
1. maak SQL dump &
2. vergelijk bestanden in /images/ met SQL dump
Script "jfindfiles" van Rene Kreijveld
https://gist.github.com/renekreijveld/
8. Hack herstellen
Joomladagen 2015Joomladagen 2015
Hack herstellen
● Backup huidige situatie (zie 6. Backup)
● Analyse
– Gehackte bestanden
– Log files server
● Verwijder onveiligheid
● Schoon bestanden op
Joomladagen 2015Joomladagen 2015
Bestanden zoeken
● Nieuwe bestanden (laaste 10 dagen)
find images/ -name "*.php" -mtime -10
● Nieuwe mogelijke bestanden van hackers
find . -type f -newermt 2014-03-09 ! -newermt 2014-
03-11
→ bestand tijd & datum kan worden aangepast....
Joomladagen 2015Joomladagen 2015
Zoeken
● Zoek hacker scripts
grep -r "eval" /var/www/joomla-cms | grep
"base64_decode"
Joomladagen 2015Joomladagen 2015
NeoPi
Opsporen van verborgen scripts
(Python 2.6 nodig)
Installeren
$ git clone https://github.com/Neohapsis/NeoPI.git
Starten
$ /var/www/NeoPI/neopi.py -Aa /var/www/joomla-
cms
9. In a box
Joomladagen 2015Joomladagen 2015
VirtualBox
“Computer in Computer”
● Download https://www.virtualbox.org/
● Start Virtualbox
● Installeer besturingssysteem
– Bijv. via .iso image
– Installeren kost VEEL tijd
Joomladagen 2015Joomladagen 2015
Vagrant
Virtuele ontwikkelomgeving configureren &
managen
– “wrapper” om virtualizatie software
● Download http://www.vagrantup.com/
– Installeer op Debian Linux:
$ sudo dpkg –i vagrant_1.5.2_x86_64.deb
Joomladagen 2015Joomladagen 2015
Vagrant
gebruik Vagrant:
map + configuratie bestand “Vagrantfile”
Joomladagen 2015Joomladagen 2015
Vagrant Cloud
Kant-en-klaar virtuele omgevingen
● Zoek omgeving op
https://vagrantcloud.com/
bijv Debian 7 64 bit
https://vagrantcloud.com/chef/boxes/debian-7.8
● Install Vagrant Box
$ vagrant box add chef/debian-7.8
Joomladagen 2015Joomladagen 2015
Install Vagrant Box
● Map voor ieder project
e.g. ~/projecten/joomladag2015
● Initialeer Vagrant Box
$ vagrant init chef/debian-7.8
● Configuratie: “Vagrantfile”
config.vm.box = "chef/debian-7.8"
config.vm.network "forwarded_port", guest: 80, host: 8080
Joomladagen 2015Joomladagen 2015
Vagrant Box
● Start Vagrant Box
$ vagrant up
● Log in op Vagrant Box
$ vagrant ssh
Joomladagen 2015Joomladagen 2015
Apache
Handmatige installatie
$ sudo apt-get install apache2
Start/stop/herstarten
$ sudo service apache2 start
$ sudo service apache2 stop
$ sudo service apache2 restart
Installatie mod rewrite
$ sudo a2enmod rewrite
Joomladagen 2015Joomladagen 2015
Apache
● Probleem met .htaccess / Mod Rewrite?
$ sudo nano /etc/apache2/sites-enabled/000-default
AllowOverride None
→ AllowOverride All
● “Could not reliably determine the server's fully
qualified domain name, using 127.0.1.1 for
ServerName”
$ echo "ServerName localhost" | sudo tee
/etc/apache2/conf.d/fqdn
Joomladagen 2015Joomladagen 2015
Apache ownership
issues
Draai Apache onder gebruiker “vagrant” (niet op live site!)
$ sudo nano /etc/apache2/envvars
export APACHE_RUN_USER=vagrant
export APACHE_RUN_GROUP=vagrant
Fout met herstarten van Apache?
$ sudo rm -R /var/lock/apache2
Toewijzen van webroot & bestanden
aan gebruiker “vagrant”:
$ sudo chown -R vagrant:vagrant /var/www/
Joomladagen 2015Joomladagen 2015
Server Script – PHP
Installatie PHP + MySQL
$ sudo apt-get install php5 php5-mysql
Test:
$ sudo nano /var/www/test.php
<?php phpinfo(); ?>
Joomladagen 2015Joomladagen 2015
Database GUI –
phpMyAdmin
Installatie
$ sudo apt-get install phpmyadmin
Browser
http://localhost:8080/phpmyadmin/
Joomladagen 2015Joomladagen 2015
Joomla
Installatie
$ sudo wget
https://github.com/joomla/joomla-
cms/releases/download/3.4.1/Joomla_3.4.1-Stable-
Full_Package.zip
Unzip
$ sudo unzip Joomla_3.4.1-Stable-Full_Package.zip
Browser
http://localhost:8080/joomla/
Joomladagen 2015Joomladagen 2015
Kijk ook naar...
Linux Containers
https://linuxcontainers.org/
→ 1 “box” per applicatie & boxen verbinden
Docker
https://www.docker.com/
Conclusie
Joomladagen 2015Joomladagen 2015
1.Introductie
2.Commando's
3.Basis
4.Verbinden
5.Scripts
Conclusie
6.Backup
7.Bestanden zoeken
8.Hack herstellen
9.In a Box
Joomladagen 2015Joomladagen 2015
Vragen?
Peter Martin
e-mail: info at db8.nl
website: www.db8.nl
twitter: @pe7er
Presentatie: http://www.db8.nl
Joomladagen 2015Joomladagen 2015
Used Photos
Title sheet:
● Magic Wand - Open Clip Art Library, 2011
http://commons.wikimedia.org/wiki/File:Magic_Wand.svg
● GNU Linux - "Wipes Windows in seconds!"
http://www.schnews.org.uk/images/560-linux-large.jpg
● Raspberry Pi – Switched On Tech Design
http://www.sotechdesign.com.au/raspberry-pi-has-arrived/
● Wikimedia Servers-0051 16, Helpameout, 2012
http://commons.wikimedia.org/wiki/File:Wikimedia_Servers-0051_16.jpg
1. Computer
● 1. General
● IBM Electronic Data Processing Machine - GPN-2000-001881, NASA, 1957
● http://upload.wikimedia.org/wikipedia/commons/2/20/IBM_Electronic_Data_Processing_Machine_-
_GPN-2000-001881.jpg
2. Basics
● Lego Color Bricks, Alan Chia, 2007
http://commons.wikimedia.org/wiki/File:Lego_Color_Bricks.jpg
Joomladagen 2015Joomladagen 2015
Used Photos
3. Commands
●
US Navy 110913-N-DR144-348 Rig Captain Boatswain's Mate 2nd Class Christopher Cook gives orders as deck
department Sailors launch a rigid hull infl - James R. Evans, 2011
http://commons.wikimedia.org/wiki/File:US_Navy_110913-N-DR144-348_Rig_Captain_Boatswain
%27s_Mate_2nd_Class_Christopher_Cook_gives_orders_as_deck_department_Sailors_launch_a_rigid_hull_infl.jpg
●
CPM-Manual - Hubert Berberich, 2011
http://commons.wikimedia.org/wiki/File:CPM-Manual.jpg
● Red Book Dec 1915 Contents Page - Red Book Corporation, 1915
http://commons.wikimedia.org/wiki/File:Red_Book_Dec_1915_Contents_Page_-_Unbaited_Trap.jpg
●
Archive boxes 2 - Effeietsanders, 2009
http://commons.wikimedia.org/wiki/File:Archive_boxes_2.JPG
● Touch to exit - Tom Rolfe, 2007
http://commons.wikimedia.org/wiki/File:Touch_to_exit.jpg
● Neon sign, "CHANGE" - Felix Burton, 2005
http://commons.wikimedia.org/wiki/File:Neon_sign,_%22CHANGE%22.jpg
●
Cat November 2010-1a - Alvesgaspar, 2010
http://commons.wikimedia.org/wiki/File:Cat_November_2010-1a.jpg
●
CSIRO ScienceImage 1342 Nanotechnology - division, CSIRO, 2003
http://commons.wikimedia.org/wiki/File:CSIRO_ScienceImage_1342_Nanotechnology.jpg
●
Xerox Phaser 4600 - JackPotte, 2012
http://commons.wikimedia.org/wiki/File:Xerox_Phaser_4600.png
Joomladagen 2015Joomladagen 2015
Used Photos
●
Long Distance Movers - RoadWay Van Lines, 2014
http://commons.wikimedia.org/wiki/File:Long_Distance_Movers.jpg
● Vuilnisbak-Lebbeke - Volkov Vitaly, 2005
http://commons.wikimedia.org/wiki/File:Vuilnisbak-Lebbeke.JPG
●
TRTC Taipei Main Station No-bicycle-access notice - Solomon203, 2013
http://commons.wikimedia.org/wiki/File:TRTC_Taipei_Main_Station_No-bicycle-access_notice_20130324.jpg
●
Prva samopostrežna trgovina v Mariboru na Partizanski cesti 1960 - Jože Gal, 1960
http://commons.wikimedia.org/wiki/File:Prva_samopostre
%C5%BEna_trgovina_v_Mariboru_na_Partizanski_cesti_1960_(1).jpg
4. Connecting
●
Switchboard Manual - Peel Conner, Geez-oz, 2012
http://commons.wikimedia.org/wiki/File:Switchboard_Manual_-_Peel_Conner.JPG
● Bundesarchiv Bild 183-2008-0516-500, Fernschreibmaschine mit Telefonanschluss - Illger, Willi, 1930
http://commons.wikimedia.org/wiki/File:Bundesarchiv_Bild_183-2008-0516-
500,_Fernschreibmaschine_mit_Telefonanschluss.jpg
5. Scripts
● Binary Code, Cncplayer, 2013
http://commons.wikimedia.org/wiki/File:Binary_Code.jpg
Joomladagen 2015Joomladagen 2015
Used Photos
6. Finding Files
● Postcards and magnifying glass, Anna, 2007
http://commons.wikimedia.org/wiki/File:Postcards_and_magnifying_glass.jpg
● Bundesarchiv Bild 183-M0125-421, Fundbüro in Berlin - Klaus Franke, 1973
http://commons.wikimedia.org/wiki/File:Bundesarchiv_Bild_183-M0125-421,_Fundb
%C3%BCro_in_Berlin.jpg
●
DARPA Big Data - DARPA, 2013
http://commons.wikimedia.org/wiki/File:DARPA_Big_Data.jpg
●
Magnifying glass - Faberge - shakko, 2011
http://commons.wikimedia.org/wiki/File:Magnifying_glass_-_Faberge.jpg
●
Magnifying glass on antique table - Stéphane Magnenat, 2008
http://commons.wikimedia.org/wiki/File:Magnifying_glass_on_antique_table.jpg
● Unused Phonebooks - David Shankbone, 2013
http://commons.wikimedia.org/wiki/File:Unused_Phonebooks.JPG
7. Backup
● IBM 7330 on white background, Crisco 1492, 2013
http://commons.wikimedia.org/wiki/File:IBM_7330_on_white_background.jpg
Joomladagen 2015Joomladagen 2015
Used Photos
8. In a box
● Carton empty box - humusak2
http://www.freeimages.com/photo/1440365
●
Virtualbox logo, Oracle Corporation, 2010
http://en.wikipedia.org/wiki/File:Virtualbox_logo.png
● Vagrant - Fco.plj, 2013
● http://en.wikipedia.org/wiki/File:Vagrant.png
9. Recover hack
● Youve-been-hacked, Hanonen, 2014
http://commons.wikimedia.org/wiki/File:Youve-been-hacked.jpg
Conclusion
●
EquinoxeJuniorHighPac-Man - Equinoxe, 2012
http://www.c64-wiki.com/index.php/File:EquinoxeJuniorHighPac-Man.png

Linux command-line-magic-jdnl15

  • 1.
  • 5.
    Joomladagen 2015Joomladagen 2015 1.Introductie 2.Commando's 3.Basis 4.Verbinden 5.Scripts LinuxCommand Line Magic 6.Backup 7.Bestanden zoeken 8.Hack herstellen 9.In a Box
  • 6.
  • 7.
    Joomladagen 2015Joomladagen 2015 Linux ●Cross-platform besturingssysteem ● Open Source & gratis ● Stabiel – Multi user – Multi tasking ● Populair – Internet servers ● Ontstaan – Minix (Unix-achtig besturingssysteem)
  • 8.
    Joomladagen 2015Joomladagen 2015 ●Debian .deb – Debian – Ubuntu Distributies ● Red Hat .rpm – Fedora – CentOS ● Anders – Slackware – Arch Linux – Gentoo
  • 9.
    Joomladagen 2015Joomladagen 2015 ●Commercieel – BSD/OS – Solaris – Mac OS Unix ● Gratis – FreeBSD – NetBSD – OpenBSD
  • 10.
  • 11.
    Joomladagen 2015Joomladagen 2015 man Onlinehandleiding (manual) man man
  • 12.
    Joomladagen 2015Joomladagen 2015 ls Toon(list) inhoud map ls -al List devices lsusb lspci lsmod
  • 13.
    Joomladagen 2015Joomladagen 2015 mkdir Mapaanmaken (make directory) mkdir joomladagen2015 (rmdir = remove directory)
  • 14.
    Joomladagen 2015Joomladagen 2015 cd Ganaar map (change directory) cd joomladagen2015 cd .. cd ~ cd /var/www/
  • 15.
    Joomladagen 2015Joomladagen 2015 cat Toonbestand (= concatenate files & print) cat configuration.php
  • 16.
    Joomladagen 2015Joomladagen 2015 nano Wijzigbestand nano configuration.php
  • 17.
    Joomladagen 2015Joomladagen 2015 cp Kopieerbestand (copy) cp bestand.txt nieuwbestand.txt
  • 18.
    Joomladagen 2015Joomladagen 2015 mv Verplaatsbestand (move) mv bestand.txt nieuwe-naam.txt
  • 19.
    Joomladagen 2015Joomladagen 2015 rm Verwijderbestand of map (remove) rm /var/www/joomla-cms/configuration.php rm -R /var/www/joomla-cms/installation
  • 20.
    Joomladagen 2015Joomladagen 2015 chmod Veranderpermissies (change mode) sudo chmod +x somescript.sh
  • 21.
  • 22.
  • 23.
    Joomladagen 2015Joomladagen 2015 Bestanden Linux= “Files are us” alles = bestand
  • 24.
    Joomladagen 2015Joomladagen 2015 Bestanden ●Eigenaar – Gebruikersnaam – Naam van “proces” (bijv. Apache = www-data) ● Groep – Gebruikers toegewezen aan groep hebben dezelfde rechten ● Permissies – Lees (read (4)) – Schrijf (write (2)) – Uitvoeren (execute (1))
  • 25.
    Joomladagen 2015Joomladagen 2015 Bestand -rw-r--r--1 peter pc 1174 Nov 7 15:50 example_file.txt read (4) write (2) execute (1) eigenaar rw- r(4)+w(2) groep r-- r(4) publiek r-- r(4) = 644
  • 26.
    Joomladagen 2015Joomladagen 2015 Gebruikers Gebruikers –Gewone gebruikers: gebruiker@computer:~$ – Root gebruiker: root@computer:~# – “whoami” (wiebenik) – “groups” (welke groepen?) Verander gebruiker: – “su gebruikersnaam” – “su root” of gewoon “su”
  • 27.
    Joomladagen 2015Joomladagen 2015 Commando uitvoeren Commando+ parameters sh script uitvoeren: script.sh met execute permissies, of ./script.sh Commando uitvoeren als root gebruiker – Sudo [commando]
  • 28.
    Joomladagen 2015Joomladagen 2015 Basis ~“tilde” = standaard home map (“mijn documenten”) cd ~ > “groter dan teken” = stuur uitvoer naar nieuw bestand ls -al > bestand-met-bestandslijst.txt >> “dubbel groter dan teken” = voeg uitvoer to aan eind van bestand ls -al >> bestand-met-bestandslijst.txt
  • 29.
    Joomladagen 2015Joomladagen 2015 Basis |“pipe” = commando's koppelen ls | less peter@example.com:/var/www/joomla-cms$ cat configuration.php | grep password public $password = 'my-secret-db-password';
  • 30.
    Joomladagen 2015Joomladagen 2015 Symboliclinks Aanmaken van symbolic link: ln ln -s [TARGET DIR/FILE] [SHORTCUT] peter@example.com:~$ ln -s /var/www/joomla-cms joomla-test peter@example.com:~$ ls -al drwxr-xr-x 2 peter pc 4096 Oct 26 20:34 . drwxr-xr-x 56 peter pc 4096 Oct 26 19:29 .. -rw-r--r-- 1 peter pc 0 Nov 7 15:50 example_file.txt lrwxrwxrwx 1 peter pc Nov 7 15:50 joomla-test -> /var/www/joomla-cms
  • 31.
  • 32.
    Joomladagen 2015Joomladagen 2015 Terminal TextTerminal “TTY” TeleTYpewriter
  • 33.
    Joomladagen 2015Joomladagen 2015 Terminal Windows –Programma voor SSH: PuTTY Mac OSX – Ingebouwd: “Terminal” Linux – Ingebouwd: Terminal Emulator
  • 34.
    Joomladagen 2015Joomladagen 2015 SSH SecureShell gebruikt public-key cryptografie (authenticeren & beveiligen van data communicatie) peter@computer:~$ ssh peter@192.168.0.10
  • 35.
    Joomladagen 2015Joomladagen 2015 SSH peter@computer:~$ssh peter@example.com The authenticity of host 'example.com (93.184.216.119)' can't be established. RSA key fingerprint is 10:51:ab:f5:d7:[..]:17:16:1f:22:33. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'example.com,93.184.216.119' (RSA) to the list of known hosts. peter@example.com's password: peter@example.com ~ $
  • 36.
    Joomladagen 2015Joomladagen 2015 Keylesslogin Genereer public/private rsa authenticatie sleutel paar: $ ssh-keygen -t rsa Op computer: private key: ~/.ssh/id_rsa public key: ~/.ssh/id_rsa.pub Installeer publieke sleutel op server: ssh-copy-id username@remote-server.org
  • 37.
  • 38.
    Joomladagen 2015Joomladagen 2015 Automatisering ●Automatiseer herhalende handelingen – Automatiseer een aantal commando's – Gebruik variabelen & input / output ● Automatische handelingen gebaseerd op tijd? Crontab (ook wel: cronjob)
  • 39.
    Joomladagen 2015Joomladagen 2015 Shellt.o.v. bash Shell The Bourne shell (sh) command-line interpreter Scripts starten met: #!/bin/sh Vaak symbolic link naar bash Bash “Bourne-again shell”, gratis vervanging voor de Bourne shell (sh) met meer opties en betere syntax Scripts starten met: #!/bin/bash
  • 40.
    Joomladagen 2015Joomladagen 2015 Dash? OpUbuntu/Debian: ~$ ls -al /bin/sh lrwxrwxrwx 1 root root 4 Mar 1 2012 /bin/sh -> dash = Debian Almquist shell = standaard voor /bin/sh Bash is de standaard login shell voor interactief gebruik
  • 41.
    Joomladagen 2015Joomladagen 2015 Voorbeeld voorbeeld.sh #!/bin/bash #declareer STRING variabele STRING="Hallo Joomladag!" # print variabele op het scherm echo $STRING
  • 42.
  • 43.
    Joomladagen 2015Joomladagen 2015 Backupbestanden Synchronisatie met andere locatie – rsync van “bron” naar “doel” $ rsync -arv peter@voorbeeld.nl:~/joomla-cms/ /var/www/joomla-cms-backup/ username @ server : folder username @ server : folder
  • 44.
    Joomladagen 2015Joomladagen 2015 Backupdatabase MySQL Dump $ mysqldump -u gebruikersnaam -p databasenaam > een-sql-textbestand.txt
  • 45.
  • 46.
    Joomladagen 2015Joomladagen 2015 Zoeken find→ zoek bestanden locate → zoek bestanden (snel, index in database) whereis → vind source/binary en handleidingen which → wat is het path naar een bestand
  • 47.
    Joomladagen 2015Joomladagen 2015 Bestandkwijt? Zoek een specifiek bestand find /var/www/ -name “configuration.php”
  • 48.
    Joomladagen 2015Joomladagen 2015 Grootste bstanden? Toonde 15 grootste bestanden: $ find . -type f -exec du -Sh {} + | sort -rh | head -n 15
  • 49.
    Joomladagen 2015Joomladagen 2015 Recente bestanden? Toonnieuwe bestanden van de laatste 7 dagen: find . -type f -ctime -7
  • 50.
    Joomladagen 2015Joomladagen 2015 Recentveranderd Veranderd afgelopen 7 tot 3 dagen: find . -type f -mtime -7 ! -mtime -3
  • 51.
    Joomladagen 2015Joomladagen 2015 Ongebruikte plaatjes Scannaar ongebruikte plaatjes 1. maak SQL dump & 2. vergelijk bestanden in /images/ met SQL dump Script "jfindfiles" van Rene Kreijveld https://gist.github.com/renekreijveld/
  • 52.
  • 53.
    Joomladagen 2015Joomladagen 2015 Hackherstellen ● Backup huidige situatie (zie 6. Backup) ● Analyse – Gehackte bestanden – Log files server ● Verwijder onveiligheid ● Schoon bestanden op
  • 54.
    Joomladagen 2015Joomladagen 2015 Bestandenzoeken ● Nieuwe bestanden (laaste 10 dagen) find images/ -name "*.php" -mtime -10 ● Nieuwe mogelijke bestanden van hackers find . -type f -newermt 2014-03-09 ! -newermt 2014- 03-11 → bestand tijd & datum kan worden aangepast....
  • 55.
    Joomladagen 2015Joomladagen 2015 Zoeken ●Zoek hacker scripts grep -r "eval" /var/www/joomla-cms | grep "base64_decode"
  • 56.
    Joomladagen 2015Joomladagen 2015 NeoPi Opsporenvan verborgen scripts (Python 2.6 nodig) Installeren $ git clone https://github.com/Neohapsis/NeoPI.git Starten $ /var/www/NeoPI/neopi.py -Aa /var/www/joomla- cms
  • 57.
  • 58.
    Joomladagen 2015Joomladagen 2015 VirtualBox “Computerin Computer” ● Download https://www.virtualbox.org/ ● Start Virtualbox ● Installeer besturingssysteem – Bijv. via .iso image – Installeren kost VEEL tijd
  • 59.
    Joomladagen 2015Joomladagen 2015 Vagrant Virtueleontwikkelomgeving configureren & managen – “wrapper” om virtualizatie software ● Download http://www.vagrantup.com/ – Installeer op Debian Linux: $ sudo dpkg –i vagrant_1.5.2_x86_64.deb
  • 60.
    Joomladagen 2015Joomladagen 2015 Vagrant gebruikVagrant: map + configuratie bestand “Vagrantfile”
  • 61.
    Joomladagen 2015Joomladagen 2015 VagrantCloud Kant-en-klaar virtuele omgevingen ● Zoek omgeving op https://vagrantcloud.com/ bijv Debian 7 64 bit https://vagrantcloud.com/chef/boxes/debian-7.8 ● Install Vagrant Box $ vagrant box add chef/debian-7.8
  • 62.
    Joomladagen 2015Joomladagen 2015 InstallVagrant Box ● Map voor ieder project e.g. ~/projecten/joomladag2015 ● Initialeer Vagrant Box $ vagrant init chef/debian-7.8 ● Configuratie: “Vagrantfile” config.vm.box = "chef/debian-7.8" config.vm.network "forwarded_port", guest: 80, host: 8080
  • 63.
    Joomladagen 2015Joomladagen 2015 VagrantBox ● Start Vagrant Box $ vagrant up ● Log in op Vagrant Box $ vagrant ssh
  • 64.
    Joomladagen 2015Joomladagen 2015 Apache Handmatigeinstallatie $ sudo apt-get install apache2 Start/stop/herstarten $ sudo service apache2 start $ sudo service apache2 stop $ sudo service apache2 restart Installatie mod rewrite $ sudo a2enmod rewrite
  • 65.
    Joomladagen 2015Joomladagen 2015 Apache ●Probleem met .htaccess / Mod Rewrite? $ sudo nano /etc/apache2/sites-enabled/000-default AllowOverride None → AllowOverride All ● “Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName” $ echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
  • 66.
    Joomladagen 2015Joomladagen 2015 Apacheownership issues Draai Apache onder gebruiker “vagrant” (niet op live site!) $ sudo nano /etc/apache2/envvars export APACHE_RUN_USER=vagrant export APACHE_RUN_GROUP=vagrant Fout met herstarten van Apache? $ sudo rm -R /var/lock/apache2 Toewijzen van webroot & bestanden aan gebruiker “vagrant”: $ sudo chown -R vagrant:vagrant /var/www/
  • 67.
    Joomladagen 2015Joomladagen 2015 ServerScript – PHP Installatie PHP + MySQL $ sudo apt-get install php5 php5-mysql Test: $ sudo nano /var/www/test.php <?php phpinfo(); ?>
  • 68.
    Joomladagen 2015Joomladagen 2015 DatabaseGUI – phpMyAdmin Installatie $ sudo apt-get install phpmyadmin Browser http://localhost:8080/phpmyadmin/
  • 69.
    Joomladagen 2015Joomladagen 2015 Joomla Installatie $sudo wget https://github.com/joomla/joomla- cms/releases/download/3.4.1/Joomla_3.4.1-Stable- Full_Package.zip Unzip $ sudo unzip Joomla_3.4.1-Stable-Full_Package.zip Browser http://localhost:8080/joomla/
  • 70.
    Joomladagen 2015Joomladagen 2015 Kijkook naar... Linux Containers https://linuxcontainers.org/ → 1 “box” per applicatie & boxen verbinden Docker https://www.docker.com/
  • 71.
  • 72.
  • 73.
    Joomladagen 2015Joomladagen 2015 Vragen? PeterMartin e-mail: info at db8.nl website: www.db8.nl twitter: @pe7er Presentatie: http://www.db8.nl
  • 74.
    Joomladagen 2015Joomladagen 2015 UsedPhotos Title sheet: ● Magic Wand - Open Clip Art Library, 2011 http://commons.wikimedia.org/wiki/File:Magic_Wand.svg ● GNU Linux - "Wipes Windows in seconds!" http://www.schnews.org.uk/images/560-linux-large.jpg ● Raspberry Pi – Switched On Tech Design http://www.sotechdesign.com.au/raspberry-pi-has-arrived/ ● Wikimedia Servers-0051 16, Helpameout, 2012 http://commons.wikimedia.org/wiki/File:Wikimedia_Servers-0051_16.jpg 1. Computer ● 1. General ● IBM Electronic Data Processing Machine - GPN-2000-001881, NASA, 1957 ● http://upload.wikimedia.org/wikipedia/commons/2/20/IBM_Electronic_Data_Processing_Machine_- _GPN-2000-001881.jpg 2. Basics ● Lego Color Bricks, Alan Chia, 2007 http://commons.wikimedia.org/wiki/File:Lego_Color_Bricks.jpg
  • 75.
    Joomladagen 2015Joomladagen 2015 UsedPhotos 3. Commands ● US Navy 110913-N-DR144-348 Rig Captain Boatswain's Mate 2nd Class Christopher Cook gives orders as deck department Sailors launch a rigid hull infl - James R. Evans, 2011 http://commons.wikimedia.org/wiki/File:US_Navy_110913-N-DR144-348_Rig_Captain_Boatswain %27s_Mate_2nd_Class_Christopher_Cook_gives_orders_as_deck_department_Sailors_launch_a_rigid_hull_infl.jpg ● CPM-Manual - Hubert Berberich, 2011 http://commons.wikimedia.org/wiki/File:CPM-Manual.jpg ● Red Book Dec 1915 Contents Page - Red Book Corporation, 1915 http://commons.wikimedia.org/wiki/File:Red_Book_Dec_1915_Contents_Page_-_Unbaited_Trap.jpg ● Archive boxes 2 - Effeietsanders, 2009 http://commons.wikimedia.org/wiki/File:Archive_boxes_2.JPG ● Touch to exit - Tom Rolfe, 2007 http://commons.wikimedia.org/wiki/File:Touch_to_exit.jpg ● Neon sign, "CHANGE" - Felix Burton, 2005 http://commons.wikimedia.org/wiki/File:Neon_sign,_%22CHANGE%22.jpg ● Cat November 2010-1a - Alvesgaspar, 2010 http://commons.wikimedia.org/wiki/File:Cat_November_2010-1a.jpg ● CSIRO ScienceImage 1342 Nanotechnology - division, CSIRO, 2003 http://commons.wikimedia.org/wiki/File:CSIRO_ScienceImage_1342_Nanotechnology.jpg ● Xerox Phaser 4600 - JackPotte, 2012 http://commons.wikimedia.org/wiki/File:Xerox_Phaser_4600.png
  • 76.
    Joomladagen 2015Joomladagen 2015 UsedPhotos ● Long Distance Movers - RoadWay Van Lines, 2014 http://commons.wikimedia.org/wiki/File:Long_Distance_Movers.jpg ● Vuilnisbak-Lebbeke - Volkov Vitaly, 2005 http://commons.wikimedia.org/wiki/File:Vuilnisbak-Lebbeke.JPG ● TRTC Taipei Main Station No-bicycle-access notice - Solomon203, 2013 http://commons.wikimedia.org/wiki/File:TRTC_Taipei_Main_Station_No-bicycle-access_notice_20130324.jpg ● Prva samopostrežna trgovina v Mariboru na Partizanski cesti 1960 - Jože Gal, 1960 http://commons.wikimedia.org/wiki/File:Prva_samopostre %C5%BEna_trgovina_v_Mariboru_na_Partizanski_cesti_1960_(1).jpg 4. Connecting ● Switchboard Manual - Peel Conner, Geez-oz, 2012 http://commons.wikimedia.org/wiki/File:Switchboard_Manual_-_Peel_Conner.JPG ● Bundesarchiv Bild 183-2008-0516-500, Fernschreibmaschine mit Telefonanschluss - Illger, Willi, 1930 http://commons.wikimedia.org/wiki/File:Bundesarchiv_Bild_183-2008-0516- 500,_Fernschreibmaschine_mit_Telefonanschluss.jpg 5. Scripts ● Binary Code, Cncplayer, 2013 http://commons.wikimedia.org/wiki/File:Binary_Code.jpg
  • 77.
    Joomladagen 2015Joomladagen 2015 UsedPhotos 6. Finding Files ● Postcards and magnifying glass, Anna, 2007 http://commons.wikimedia.org/wiki/File:Postcards_and_magnifying_glass.jpg ● Bundesarchiv Bild 183-M0125-421, Fundbüro in Berlin - Klaus Franke, 1973 http://commons.wikimedia.org/wiki/File:Bundesarchiv_Bild_183-M0125-421,_Fundb %C3%BCro_in_Berlin.jpg ● DARPA Big Data - DARPA, 2013 http://commons.wikimedia.org/wiki/File:DARPA_Big_Data.jpg ● Magnifying glass - Faberge - shakko, 2011 http://commons.wikimedia.org/wiki/File:Magnifying_glass_-_Faberge.jpg ● Magnifying glass on antique table - Stéphane Magnenat, 2008 http://commons.wikimedia.org/wiki/File:Magnifying_glass_on_antique_table.jpg ● Unused Phonebooks - David Shankbone, 2013 http://commons.wikimedia.org/wiki/File:Unused_Phonebooks.JPG 7. Backup ● IBM 7330 on white background, Crisco 1492, 2013 http://commons.wikimedia.org/wiki/File:IBM_7330_on_white_background.jpg
  • 78.
    Joomladagen 2015Joomladagen 2015 UsedPhotos 8. In a box ● Carton empty box - humusak2 http://www.freeimages.com/photo/1440365 ● Virtualbox logo, Oracle Corporation, 2010 http://en.wikipedia.org/wiki/File:Virtualbox_logo.png ● Vagrant - Fco.plj, 2013 ● http://en.wikipedia.org/wiki/File:Vagrant.png 9. Recover hack ● Youve-been-hacked, Hanonen, 2014 http://commons.wikimedia.org/wiki/File:Youve-been-hacked.jpg Conclusion ● EquinoxeJuniorHighPac-Man - Equinoxe, 2012 http://www.c64-wiki.com/index.php/File:EquinoxeJuniorHighPac-Man.png