Массовый поиск геотэгов на сайтах и в локальном хранилище

Массовый поиск геотэгов на сайтах и в локальном хранилище

https://t.me/Hack_Tools1

#Обучение

На этапе разведки, а также при криминалистическом исследовании, метаданные – это очень хороший источник информации. При этом нужно понимать и оценивать риск фальсификации данных, поскольку эта информация может быть легко подменена. 

Что прямо сейчас можно почитать про исследование метаинформации: 

  •  Как просмотреть или отредактировать метаданные pdf или изображениях из командной строки Linux 
  •  Как удалить метаданные файла на Linux 
  •  Insiderer (мощная программа по извлечению всей возможной метаинформации) 
  •  mat (набор инструментов анализа/удаления метаданных) 
  •  Геолокация фотографий по GPS меткам в метаданных (онлайн сервис) 

Здесь же я хочу поговорить про геотэги. Фактически, геотэги – это метаинформация, полученная от GPS датчика о географических координатах, где сделана фотография. Вы можете использовать уже названные программы для просмотра геотэгов, также обязательно стоит упомянуть jhead и exiv2 [на моих тестовых фотографиях эта программа не показывает геотэги]. Особенно полезна exiv2 для модификации метаинформации. 

Причём я хочу поделиться наработками не просто по исследованию геотэгов, а по: 

  • массовому поиску GPS информации в фотографиях на локальном диске; 
  • поиске GPS информации в фотографиях на сайтах. 

Начнём с установки программ, которые нам понадобятся. 

В BlackArch: 

sudo pacman -S httrack jhead bc 

В Kali Linux: 

sudo apt-get install httrack jhead bc 

Посмотреть метаинформацию, в том числе и о GPS, легко, в дополнение к методам, описанных в статьях, на которые даны ссылки выше, это можно сделать, например, так: 

jhead файл

Нас интересуют здесь: 

GPS Latitude : N 48d 8m 37s
GPS Longitude: E 17d 6m 31s

Визуализировать информацию о большом количестве фотографий можно, например, добавив их координаты на карту. Отсюда у нас возникают две новые задачи: 

  • конвертировать запись координат (из вида дни – минуты – секунды) в более понятный для карты вид; 
  • сформировать список, удобный для автоматизированного импорта в карту. 

Теперь я покажу как это сделать с любым количеством фотографий. А потом мы будем искать геотэги в фотографиях на сайтах. 

Создайте файл latandlon.sh и скопируйте в него: 

#!/bin/bash
 
t1=$( jhead "$1" | grep -E 'GPS Latitude' | sed 's/GPS Latitude : //' );
 
if [ "$t1" ]; then
    d1=$( echo $t1 | cut -d ' ' -f 2 | sed 's/d//' )
    m1=$( echo $t1 | cut -d ' ' -f 3 | sed 's/m//' )
    s1=$( echo $t1 | cut -d ' ' -f 4 | sed 's/s//' )
    lat=$( echo "$d1 + $m1/60 + $s1/3600" | bc -l )
 
    if [ $( echo $t1 | cut -d ' ' -f 1 | sed 's/d//' ) == 'S' ]; then
        lat=-$lat
    fi
 
    t2=$( jhead "$1" | grep -E 'GPS Longitude' | sed 's/GPS Longitude: //' );
    d2=$( echo $t2 | cut -d ' ' -f 2 | sed 's/d//' )
    m2=$( echo $t2 | cut -d ' ' -f 3 | sed 's/m//' )
    s2=$( echo $t2 | cut -d ' ' -f 4 | sed 's/s//' )
    lon=$( echo "$d2 + $m2/60 + $s2/3600" | bc -l )
 
    if [ $( echo $t2 | cut -d ' ' -f 1 | sed 's/d//' ) == 'W' ]; then
        lon=-$lon
    fi
 
    t10=$( echo $1 | sed 's/\///g' )
    echo "['$t10', $lat, $lon],"
 
else
    echo "$1:nothing"
fi

Эта программа делает довольно простые вещи: 

  • очищает геоданные от другой информации; 
  • конвертирует координаты; 
  • выводит информацию в удобном для импорта в карту виде. 

Запускать так: 

bash ./latandlon.sh "файл_изображения"

Пример работы программы: 

Для автоматизации процесса давайте будем использовать команду find. Например, в моём случае: 

find imgs/ -type f -and \( -name '*.jpg' -or -name '*.JPG' \) -exec bash ./latandlon.sh "{}" ';'

Результат: 

Вместо imgs/ укажите ваш каталог с фотографиями. 

Давайте отфильтруем данные, которые всё равно не содержат геоинформацию: 

find imgs/ -type f -and \( -name '*.jpg' -or -name '*.JPG' \) -exec bash ./latandlon.sh "{}" ';' | grep -E -v ':nothing'

Результат работы: 

Чтобы сохранить данные в файл делаем так: 

find imgs/ -type f -and \( -name '*.jpg' -or -name '*.JPG' \) -exec bash ./latandlon.sh "{}" ';' | grep -E -v ':nothing' > gps.txt

Теперь создадим ещё один файл, назовём его genaratemap.sh и скопируем туда: 

#!/bin/bash
 
cat << _EOF_
<!DOCTYPE html>
<html> 
    <head> 
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
        <title>HackWare.ru: Geotagging</title> 
        <script src="http://maps.google.com/maps/api/js?sensor=false"
        type="text/javascript"></script>
    </head> 
    <body>
        <div id="map" style="width: 1900px; height: 1100px;"></div>
        <script type="text/javascript">
            var locations = [
                $( cat "$1" )
            ];
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 3,
                center: new google.maps.LatLng(0, 0),
                mapTypeId: google.maps.MapTypeId.ROADMAP
            });
            var infowindow = new google.maps.InfoWindow();
            var marker, i;
            for (i = 0; i < locations.length; i++) {
                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                    map: map
                });
                google.maps.event.addListener(marker, 'click', (function (marker, i) {
                    return function () {
                        infowindow.setContent(locations[i][0]);
                        infowindow.open(map, marker);
                    }
                })(marker, i));
            }
        </script>
    </body>
</html>
_EOF_

Запускать так (где вместо gps.txt ваш сгенерированный с помощью предыдущей команды файл): 

bash genaratemap.sh gps.txt > map.htm 

Теперь открываем файл map.htm любым браузером: 

Поиск геотэгов в фотографиях на сайтах 

Теперь, когда мы умеем искать геотэги в любом количестве файлов в каталогах любой вложенности и при этом наглядно представлять полученные данные, думаю, алгоритм поиска GPS информации на фотографиях сайтов понятен, поскольку он очень прост: 

  • мы делаем зеркало сайта на локальном диске; 
  • ищем геотэги в каталоге с зеркалом сайта как это описано чуть выше. 

Программ для создания зеркал много, я буду использовать утилиту командной строки HTTrack Website Copier. Подробную справку о ней вы можете найти здесь. 

В моём случае команда выглядит так: 

httrack miloserdov.org -O "/home/mial/websites/Miloserdov" -%v *.jpg 

Здесь: 

  •  miloserdov.org – адрес сайт, фотографии с которого меня интересуют; 
  •  -O "/home/mial/websites/Miloserdov" – каталог с файлами сайта 
  •  *.jpg – означает принимать все файлы формата jpg. 

Теперь ищем фотографии с GPS метками и генерируем карту: 

find websites/Miloserdov/ -type f -and \( -name '*.jpg' -or -name '*.JPG' \) -exec bash ./latandlon.sh "{}" ';' | grep -E -v ':nothing' > gps.txt
bash genaratemap.sh gps.txt > gps.htm 

Открываем полученную карту браузером. 

Заключение

 

Мы научились массово искать и добавлять на карту информацию о том, где сделана фотография. Мы можем это делать как на локальных хранилищах, так и на веб-сайтах. 

Нужно знать, что почти все программы, которые изменяют/пересохраняют изображения, отбрасывают геотэги. Это же касается и веб-приложений (фотографии после обработки на WordPress, из популярных социальных сетей). 

Смежные вопросы, которые не рассматривались: 

  • поиск геотэгов в изображениях отличных от .jpg; 
  • добавление на карту не только меток с именами файлов, но и самих фотографий; 
  • сбор и анализ другой метаинформации (время съёмки, камера и т.д.), которые могут значительно дополнить полученные данные. 




Report Page