Download - Linux command-line-magic-jdnl15
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
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
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
rm
Verwijder bestand of map (remove)
rm /var/www/joomla-cms/configuration.phprm -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)
sudo chown iemand:groep bestandsnaam.txt
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)
eigenaarrw-
r(4)+w(2)
groepr--
r(4)
publiekr--
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
[email protected]:/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]
[email protected]:~$ ln -s /var/www/joomla-cms joomla-test
[email protected]:~$ ls -aldrwxr-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.txtlrwxrwxrwx 1 peter pc Nov 7 15:50 joomla-test -> /var/www/joomla-cms
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 [email protected]
Joomladagen 2015Joomladagen 2015
SSH
peter@computer:~$ ssh [email protected]
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 [email protected]'s password:
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 [email protected]
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 variabeleSTRING="Hallo Joomladag!"
# print variabele op het schermecho $STRING
Joomladagen 2015Joomladagen 2015
Backup bestanden
Synchronisatie met andere locatie– rsync van “bron” naar “doel”
$ rsync -arv [email protected]:~/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
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 plaatjes1. maak SQL dump & 2. vergelijk bestanden in /images/ met SQL dump
Script "jfindfiles" van Rene Kreijveldhttps://gist.github.com/renekreijveld/
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
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 Cloud
Kant-en-klaar virtuele omgevingen
● Zoek omgeving op https://vagrantcloud.com/
bijv Debian 7 64 bithttps://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 projecte.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=vagrantexport 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 wgethttps://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/
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 PhotosTitle 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 Photos3. 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 Photos6. 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 Photos8. 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