+ All Categories
Home > Technology > Linux command-line-magic-jdnl15

Linux command-line-magic-jdnl15

Date post: 15-Jul-2015
Category:
Upload: peter-martin
View: 348 times
Download: 0 times
Share this document with a friend
Popular Tags:
78
Joomladagen 2015 Joomladagen 2015 > Linux Command Line Magic Peter Martin www.db8.nl / @pe7er 1
Transcript

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.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

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)

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

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 [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:

[email protected] ~ $

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]

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 variabeleSTRING="Hallo Joomladag!"

# print variabele op het schermecho $STRING

6. Backup

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

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 plaatjes1. maak SQL dump & 2. vergelijk bestanden in /images/ met SQL dump

Script "jfindfiles" van Rene Kreijveldhttps://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 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/

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 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


Recommended