1001 Pen Test oraz Bug Bounty Tips & Tricks #5 – favicon.ico
Napisał: Patryk Krawaczyński
14/07/2020 w Pen Test Brak komentarzy. (artykuł nr 744, ilość słów: 367)
Ooprócz zewnętrznych serwisów, wpisów DNS, certyfikatów dla domen – istnieje jeszcze jeden zasób identyfikujący wspólne cechy: domen (firm) i webaplikacji – jest to ulubiona ikonka (ang. favicon.ico). Bardzo dużo firm posiada unikalne loga, które są pomniejszane do ikonek i wyświetlane przy pasku adresu / zakładkach przeglądarki. Zazwyczaj możemy znaleźć je pod adresem: http://domena/favicon.ico
chyba, że odpowiednimi tagami HTML wskażemy przeglądarce inną lokalizację. Bardzo wiele z tych ikonek jest unikalnych dla wybranych domen (firm) oraz webaplikacji. Dzięki tej zależności możemy przeszukiwać internet w celu namierzania różnych zasobów powiązanych z daną ikonką.
Na przykład znając hash ikonki skojarzony z daną firmą możemy spróbować znaleźć jej wszystkie domeny i subdomeny używające tej ikonki. Możemy też łączyć różne zależności. Jeśli wykonamy hash webaplikacji Spring możemy sprawdzić czy w danej domenie nie jest dostępna aplikacja napisana w tym środowisku. Do obliczania haszy możemy wykorzystać prosty skrypt napisany w języku Python 3:
import mmh3,requests,base64 response = requests.get('https://nfsec.pl/favicon.ico', verify=False) favicon = base64.encodebytes(response.content) hash = mmh3.hash(favicon) print(hash)
998931406
Jeśli teraz wykorzystamy wyszukiwarkę Shodan do zwrócenia wszystkich zasobów powiązanych z powyższą ikonką powinniśmy znaleźć serwer odpowiedzialny za domenę nfsec.pl:
http.favicon.hash:998931406
Hash dla zielonego listka Spring wynosi: 116323821. Wyszukanie wszystkich aplikacji Spring uruchomionych u publicznego dostawcy chmury obliczeniowej AWS będzie polegało na wykonaniu zapytania:
http.favicon.hash:116323821 org:"amazon.com"
Posiadając listę takich webaplikacji możemy przetestować ją np. na obecność wrażliwych punktów końcowych charakterystycznych dla Spring:
/actuator
/health
/trace
/logfile
/metrics
/heapdump
i wiele innych. Wyniki z wyszukiwarki możemy wyeksportować sobie do formatu JSON lub CSV, ale możemy także wykorzystać narzędzie shodan z linii poleceń:
shodan search org:"amazon.com" http.favicon.hash:116323821 \ --fields ip_str,port --separator " " | awk '{print $1":"$2}'
Tak zwrócone wyniki możemy przekazać do innego narzędzia, które podda nasze dane dalszym testom. Do masowego pobierania i przeliczania haszy favi-ikonek możemy wykorzystać narzędzie o nazwie FavFreak.
Więcej informacji: Weaponizing favicon.ico for BugBounties , OSINT and what not, REST API Pentester’s perspective, Exploiting Spring Boot Actuators