Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

BSS19 - Co ukázal globální scan přístupných .git repozitářů

149 views

Published on

Slidy o problémech s přístupnými .git repozitáři a špatně nakonfigurovanými servery z BSS19. Stížnost od UOOU included.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

BSS19 - Co ukázal globální scan přístupných .git repozitářů

  1. 1. https://lynt.cz @smitka Vláďa Smitka vladimir.smitka@lynt.cz @smitka Lynt services s.r.o. 03.11.2018 1 Co ukázal globální scan přístupných .git adresářů?
  2. 2. https://lynt.cz @smitka03.11.2018 2
  3. 3. https://lynt.cz @smitka03.11.2018 3
  4. 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
  5. 5. https://lynt.cz @smitka Otevřené .git repozitáře • /.git/ => rekonstrukce zdrojového kódu • Přehlédnutí kvůli 403 • /.git/HEAD • /.git/config • /.git/index • /.git/logs/HEAD • https://lynt.cz/blog/globalni-scan-otevrenych-git- repozitaru 03.11.2018 5
  6. 6. https://lynt.cz @smitka03.11.2018 6
  7. 7. https://lynt.cz @smitka03.11.2018 7 /.git/index
  8. 8. https://lynt.cz @smitka03.11.2018 8 /.git/logs/HEAD
  9. 9. https://lynt.cz @smitka "V repozitáři přeci nikdo nemá citlivá data" 03.11.2018 9
  10. 10. https://lynt.cz @smitka Skutečnost? • Hesla k DB • API klíče • Hesla k SMTP 03.11.2018 10
  11. 11. https://lynt.cz @smitka03.11.2018 11
  12. 12. https://lynt.cz @smitka Další zajímavosti • Zálohy • Dočasné soubory • Dumpy DB • Inicializační DB • Zálohovací skripty • Obslužné skripty • .idea 03.11.2018 12
  13. 13. https://lynt.cz @smitka03.11.2018 13 /.idea/webServers.xml
  14. 14. https://lynt.cz @smitka Endpointy 03.11.2018 14 • File managery • Rozesílače e-mailů • Skrytá "API" • Adminer • Chyby v kódech a knihovnách
  15. 15. https://lynt.cz @smitka Novinka? • https://en.internetwache.org/dont-publicly- expose-git-or-how-we-downloaded-your- websites-sourcecode-an-analysis-of-alexas- 1m-28-07-2015/ • https://news.ycombinator.com/item?id=8389 81 (2009) 03.11.2018 15
  16. 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. 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
  18. 18. https://lynt.cz @smitka Rapid 7 - OpenData • FDNS Log - 150 GB JSON • 1 500 000 000 záznamů + vlastní zdroje • Redukce – Pouze A/CNAME – Domény 2. řádu – Subset TLD (.com, .eu, .cz,…) – Přeskakovat free domény (.tk, .ml, .ga, .cf, .gq) – Odstranit "strojová jména" (ip-8-8-8-8.net) – Tip: Pouze domény s existujícím MX 03.11.2018 18
  19. 19. https://lynt.cz @smitka Rozložení domén v původním datasetu 142 841 000 com 1 025 000 it 14 958 000 net 999 000 top 11 674 000 org 989 000 ch 9 067 000 de 964 000 cf 6 044 000 info 806 000 club 4 060 000 ru 803 000 ga 2 209 000 biz 797 000 cn 1 867 000 nl 713 000 online 1 770 000 us 651 000 gq 1 487 000 loan 640 000 pl 1 442 000 tk 635 000 ml 1 384 000 fr 630 000 cz 1 315 000 xyz 603 000 es 1 182 000 eu 572 000 be 1 032 000 ca 489 000 se 03.11.2018 19
  20. 20. https://lynt.cz @smitka 230 000 000 domén 03.11.2018 20
  21. 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
  22. 22. https://lynt.cz @smitka03.11.2018 22
  23. 23. https://lynt.cz @smitka 390 000 webů s přístupným .git adresářem 03.11.2018 23
  24. 24. https://lynt.cz @smitka /.git/logs/HEAD • E-maily přímo na vývojáře • 30% repozitářů neobsahuje nic co vypadá jako validní mail 03.11.2018 24
  25. 25. https://lynt.cz @smitka Security.txt 03.11.2018 25 https://securitytxt.org/ snadné nalezení kontaktu pro hlášení bezpečnostních problémů Pouze na 8 webech…
  26. 26. https://lynt.cz @smitka Oslovování • 100 000 e-mailů • Jak je poslat? – Bounce rate 10-30% => nelíbí se provozovatelům – Vlastní SMTP s podporou TLS, DKIM 03.11.2018 26
  27. 27. https://lynt.cz @smitka03.11.2018 27
  28. 28. https://lynt.cz @smitka Vývojáři jsou rádi, když je někdo na chybu upozorní 03.11.2018 28
  29. 29. https://lynt.cz @smitka03.11.2018 29
  30. 30. https://lynt.cz @smitka03.11.2018 30
  31. 31. https://lynt.cz @smitka03.11.2018 31
  32. 32. https://lynt.cz @smitka03.11.2018 32 /fabfile.py => 403 /fabfile.pyc => 200
  33. 33. https://lynt.cz @smitka03.11.2018 33
  34. 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. 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
  36. 36. https://lynt.cz @smitka 150 000 webů opraveno 2 měsíce od scanu 03.11.2018 36 👍 👎 240 000 zbývá…
  37. 37. https://lynt.cz @smitka03.11.2018 37
  38. 38. https://lynt.cz @smitka03.11.2018 38
  39. 39. https://lynt.cz @smitka03.11.2018 39
  40. 40. https://lynt.cz @smitka03.11.2018 40
  41. 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. 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
  43. 43. https://lynt.cz @smitka Další problematické konfigurace if (!-f $request_filename) { proxy_pass @app; break; } * https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#check-if-file-exists RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ http://app/$1 [P] 03.11.2018 43
  44. 44. https://lynt.cz @smitka Desítky tisíc webů má server nakonfigurovaný pro vracení všech existujících souborů! 03.11.2018 44 Co s tím uděláme?
  45. 45. https://lynt.cz @smitka Top 10 web hacking techniques of 2018 03.11.2018 45
  46. 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/

×