4. https://lynt.cz @smitka
Starší výzkumy a články
• Stav WordPress instalací v ČR
– https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
• Průzkum WordPress na Slovensku
– https://lynt.cz/blog/wordpress-v-sk-pruzkum
• Technické zpracování webů prezidentských kandidátů
– https://lynt.cz/blog/prezident-2018
• Nejčastější problémy moderních webů
– https://lynt.cz/blog/10-nejcastejsich-problemu-
modernich-webu
03.11.2018 4
16. https://lynt.cz @smitka
Scan - kde vzít cíle?
• IP rozsah
– Jej jich docela hodně (necelé 4 miliardy)
– Mnoho sdílených serverů
– Hodně Honeypotů
• Seznam domén
– Reálnější cíle
03.11.2018 16
17. https://lynt.cz @smitka
Kde vzít seznam domén?
• SK - https://sk-nic.sk/subory/domains.txt
• CZ - neveřejné, https://github.com/spaze/domains
• Globál
– Alexa Top 1M
• http://s3.amazonaws.com/alexa-static/top-1m.csv.zip
• Dobré pro statistické výzkumy, málo pro změnu.
– Rapid 7 OpenData
• https://opendata.rapid7.com/
– Certificate Transparency - CTL
• https://medium.com/cali-dog-security/parsing-certificate-
transparency-lists-like-a-boss-981716dc506
– Censys.io
• https://censys.io/
03.11.2018 17
21. https://lynt.cz @smitka
Jak to probíhalo?
• Test technologií - python + asyncio/aiohttp
• 4 týdny
• Maximum 18 malých VPS + 4 fyzické stroje
• 300$
• Přes 100 abuse (stížností), nejvíce z Jižní Korei
• To se příliš nelíbilo poskytovatelům VPS
03.11.2018 21
34. https://lynt.cz @smitka
Redukce false positive ve 2. várce
• Test nastavení remote origin na github
• Prověření indexu, zda obsahuje dynamické
soubory
03.11.2018 34
35. https://lynt.cz @smitka
😠 jednotky negativních reakcí
✋ několik desítek false positive notifikací
🗨🗨 > 100 pozitivních komentářů
❤️ > 3500 děkovných mailů z celého světa
03.11.2018 35
41. https://lynt.cz @smitka
Jaktože je tolik Python a Ruby?
• U většiny postižených webů šlo stáhnout
všechny soubory (.py, .rb)!!!
• Včetně souborů mimo repozitář
03.11.2018 41
42. https://lynt.cz @smitka
Špatně nakonfigurovaný websererver
# Serve static files and redirect any other request to Gunicorn
server {
listen 80;
server_name domain.com;
root /var/www/domain.com/;
# Check if a file exists at /var/www/domain/ for the incoming request.
# If it doesn't proxy to Gunicorn/Django.
try_files $uri @django;
# Setup named location for Django requests and handle proxy details
location @django {
proxy_pass http://django;
proxy_redirect off;
proxy_set_header Host $host;
}
}
03.11.2018 42
https://django-best-practices.readthedocs.io/en/latest/deployment/servers.html
46. https://lynt.cz @smitka
Díky za pozornost!
03.11.2018 46
Sledujte můj twitter @smitka.
Koukněte na mé starší prezentace na SlideShare.
Hlasování o nejlepší web hacking techniky:
https://portswigger.net/polls/top-10-web-hacking-techniques-2018
WordPress CTF k WordCamp Praha 2019
https://2019.prague.wordcamp.org/hacking-soutez-o-10-volnych-vstupenek-na-wordcamp/
Náměty na další výzkumy:
https://en.internetwache.org/scanning-the-alexa-top-1m-for-ds-store-files-12-03-2018/
https://infosec.rm-it.de/2018/08/19/scanning-the-alexa-top-1m-sites-for-dockerfiles/