πŸ•΅ Π― ΡƒΠ·Π½Π°ΡŽ тСбя ΠΈΠ· тысячи: поиск кибСрпрСступников с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maltego. ΠžΠΏΡ‹Ρ‚ REG.RU

Π’ REG.RU ΠΌΡ‹ часто сталкиваСмся с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ случаями ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ активности: ΠΎΡ‚ спама ΠΈ рСгистрации Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π΄ΠΎ Π²Π·Π»ΠΎΠΌΠΎΠ² Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΡƒΠ³ΠΎΠ½ΠΎΠ² Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². НСкоторыС случаи Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ расслСдования ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°, Π² Ρ‚ΠΎΠΌ числС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ПО. БСгодня ΠΌΡ‹ расскаТСм ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Maltego, ΠΈ ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Ρ‘ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ мошСнника. Π­Ρ‚ΠΎ Π½Π΅ рСкламная ΡΡ‚Π°Ρ‚ΡŒΡ. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ кСйсы Π²Ρ‹ΠΌΡ‹ΡˆΠ»Π΅Π½Ρ‹, совпадСния случайны.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Maltego?

Maltego – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников ΠΈ дальнСйшСго прСдставлСния Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ графичСском Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π³Π΄Π΅ наглядно Π²ΠΈΠ΄Π½Ρ‹ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся Π² расслСдованиях ΠΈ Ρ€Π°Π·Π²Π΅Π΄ΠΊΠ΅ Π½Π° основС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ…/Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… источников.

Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ Maltego:

  • БСсплатныС Maltego CaseFile, Maltego Community Edition
  • ΠŸΠ»Π°Ρ‚Π½Ρ‹Π΅ Maltego Professional, Maltego Enterprise

Вся информация Π² Maltego прСдставлСна Π² Π²ΠΈΠ΄Π΅ Π³Ρ€Π°Ρ„Π° (схСмы с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡƒΠ·Π»ΠΎΠ² ΠΈ связСй).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прСдставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Maltego

Π’ Π³Ρ€Π°Ρ„Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Entities). ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: IP-адрСс, Π΄ΠΎΠΌΠ΅Π½, email, Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ЀИО, организация ΠΈ Ρ‚.Π΄. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ связями (Links).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² Maltego

Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ связи ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ автоматичСски, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ трансформации (Transforms) – скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ‰ΡƒΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источниках ΠΈ выводят Π΅Ρ‘ Π½Π° Π³Ρ€Π°Ρ„ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π’Π°ΠΊΠΆΠ΅ Π² Maltego Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ встроСнных трансформаций. НапримСр, для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± IP-адрСсС Π΅ΡΡ‚ΡŒ большой Π½Π°Π±ΠΎΡ€ встроСнных трансформаций: ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Whois, мСстополоТСния, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎ Π±Π°Π·Π°ΠΌ Ρ„Ρ€ΠΎΠ΄ΠΎΠ² ΠΈ спискам Π½ΠΎΠ΄ TOR.

Врансформации ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· маркСтплСйса Transforms Hub Π² самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Maltego Transforms Hub

Для скачивания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трансформаций ΠΈΠ· Ρ…Π°Π±Π° потрСбуСтся API-ΠΊΠ»ΡŽΡ‡ для сСрвисов, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ информация. Для этого потрСбуСтся Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° самих этих сСрвисах.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС трансформации, Ρ‡Ρ‚ΠΎ пригодится для поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ источникам.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² расслСдованиях

ВозмоТности Maltego ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для расслСдований ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большиС ΠΎΠ±ΡŠΡ‘ΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ взаимосвязи ΠΈ Π½Π°ΠΉΡ‚ΠΈ ΡƒΠ»ΠΈΠΊΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ, Π½ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ расслСдования.

РасслСдованиС: Π½Π°ΠΉΡ‚ΠΈ создатСля Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²Ρ‹Ρ… сайтов

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ: ΠŸΠΎΡΡ‚ΡƒΠΏΠΈΠ»Π° ΠΆΠ°Π»ΠΎΠ±Π° Π½Π° Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΉ сайт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ сайт Π±Π°Π½ΠΊΠ° ΠΈ Π²ΠΎΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚. Π”ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя сайта MOB-VTB24.RU ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½ Π±Π°Π½ΠΊΠ° Π’Π’Π‘. Π‘Π°ΠΉΡ‚, располоТСнный Π½Π° этом Π΄ΠΎΠΌΠ΅Π½Π΅ внСшнС ΠΏΠΎΡ…ΠΎΠΆ Π½Π° сайт Π±Π°Π½ΠΊΠ° Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ банковской ΠΊΠ°Ρ€Ρ‚Ρ‹, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΠΈΡˆΠΈΠ½Π³Π°. Π‘Ρ€Π°Π·Ρƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ вряд Π»ΠΈ ΠΌΠΎΠ³ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠ³ завСсти нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ².

ЦСль расслСдования: Найти всС Π΄ΠΎΠΌΠ΅Π½Ρ‹ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°, ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅, ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹. Π”ΠΎΠΌΠ΅Π½Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… администратора.

Π“ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹: Из Π»ΠΎΠ³ΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ IP-адрСса, значСния сookie, User-Agent Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ систСмы, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π² Π›ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ для рСгистрации Π΄ΠΎΠΌΠ΅Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ email, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ЀИО, адрСс ΠΈ паспортныС Π΄Π°Π½Π½Ρ‹Π΅.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, мошСнник ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ свой настоящий IP-адрСс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ proxy ΠΈΠ»ΠΈ VPN, ΠΈ Ρ‚Π΅ΠΌ самым Π²Ρ‹Π΄Π°Ρ‚ΡŒ сСбя. Или Π² ΠΎΠ΄Π½ΠΎΠΉ сСссии Π·Π°ΠΉΡ‚ΠΈ Π² Π΄Π²Π° своих Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, благодаря Ρ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΠ΄Ρ‘ΠΌ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ рСгистрационныС Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ email ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½. Π’Π°ΠΊΠΆΠ΅ косвСнныС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, использованиС спСцифичного ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ сСрвиса для рСгистрации большого количСства email.

Π§Π΅ΠΌ большС Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ обнаруТСния взаимосвязСй. Ручная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников (Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π»ΠΎΠ³ΠΎΠ²) ΠΈ ΠΈΡ… сопоставлСниС – довольно Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΈ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠ΅ занятиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° извСстный ΠΌΠ΅ΠΌ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ обратимся ΠΊ Maltego. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΈ сразу Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° Π½Π΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя MOB-VTB-24.RU.

Π’ Entity Palette доступСн список Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π½Π° Π³Ρ€Π°Ρ„. Найдём Ρ‚Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Domain ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠΌ Π΅Π³ΠΎ Π² основноС ΠΎΠΊΠ½ΠΎ Π³Ρ€Π°Ρ„Π° ΠΈ Π·Π°Π΄Π°Π΄ΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя.

Π’ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. Π’ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Maltego распознаёт автоматичСски. Если распознаваниС ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²Ρ‹Π±Ρ€Π°Π² Π² контСкстном мСню Change Type.

Π’ этом ΠΆΠ΅ контСкстном мСню ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ установлСнныС трансформации.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Entities

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π΄ΠΎΠΌΠ΅Π½Π° (ЀИО, email ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½) ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° User (для отобраТСния Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ трансформации для поиска Π΄ΠΎΠΌΠ΅Π½Π° ΠΏΠΎ Π±Π°Π·Π΅. ВсС запросы Π² Π±Π°Π·Ρƒ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Ρ‹, ΠΈ слуТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

Найдём Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Entities мастСр создания Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° User ΠΈ настроим основноС свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: user_id

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для написания трансформаций maltego_trx

Для написания трансформаций Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ maltego_trx (https://github.com/paterva/maltego-trx/) для Python вСрсии 3.6 ΠΈ Π½ΠΎΠ²Π΅Π΅.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

pip install maltego-trx

ПослС установки создаём Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

maltego-trx start new_project

ПослС создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ„Π°ΠΉΠ»Ρ‹ для Π½Π°ΡˆΠΈΡ… трансформаций Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ new_project/transforms/

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: трансформация GreetPerson

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ GreetPerson, которая ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅, ΠΎΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ привСтствиС:

new_project/transforms/GreetPerson.py
from maltego_trx.entities import Phrase
from maltego_trx.transform import DiscoverableTransform
 
class GreetPerson(DiscoverableTransform):
   """
   Returns a phrase greeting a person on the graph.
   """
   @classmethod
   def create_entities(cls, request, response):
       person_name = request.Value
       response.addEntity(Phrase, "Hi %s, nice to meet you!" % person_name)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ трансформации SearchDomain

Для трансформации Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΈ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ DiscoverableTransform, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ create_entities, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ вся Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎ поиску Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ добавлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° response.addEntity.

from maltego_trx.transform import DiscoverableTransform
import MySQLdb
 
# НаслСдуСм наш класс ΠΎΡ‚ DiscoverableTransform
class SearchDomain(DiscoverableTransform):
   """
   ВыполняСт поиск Π΄ΠΎΠΌΠ΅Π½Π°.
   """
 
   # ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ create_entities
   @classmethod
   def create_entities(cls, request, response):
       # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ входящСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
       email = request.Value
 
       # Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅
       db = MySQLdb.connect(host='database.host',
                           port='3306',
                           user='user',
                           passwd='password',
                           db='db',
                           charset="utf8")
       cursor = db.cursor(MySQLdb.cursors.DictCursor)
 
 
       # ВыполняСм поиск ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ domains
       cursor.execute("""select user_id, name, phone, email
                           from domain
                           where domain = %s
           """, [domain])
 
      rows = cursor.fetchall()
 
       # Π’ зависимости ΠΎΡ‚ поля добавляСм Π½Π° Π³Ρ€Π°Ρ„
       # ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²
       for row in rows:
           response.addEntity('yourorganization.User', row['user_id'])
           response.addEntity('maltego.Person', row['name'])
           response.addEntity('maltego.PhoneNumber', row['phone'])
           response.addEntity('maltego.EmailAddress', row['email'])
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅
Для добавлСния Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Unique Type Name, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡ€ΠΈ создании (yourorganization.User). Для встроСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ классы ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Maltego.
from maltego_trx.entities import Person
...
response.addEntity(Person, row['name'])

Для удобства ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Maltego. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ.

field_map = {
   'user_id': 'yourorganization.User',
   'name': 'maltego.Person',
   'phone': 'maltego.PhoneNumber',
   'email': 'maltego.EmailAddress'
}
for row in rows:
   for field in row:
       if field_map.get(field):
           response.addEntity(field_map[field], row[field])

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ трансформации Π² Maltego

Π‘ΠΊΡ€ΠΈΠΏΡ‚ нашСй трансформации Π³ΠΎΡ‚ΠΎΠ², Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Maltego.

Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Transforms Π½Π°ΠΉΠ΄Ρ‘ΠΌ мСню New Local Transform ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Π’ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Input Entity Type Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эту Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это Person.

Π—Π°Π΄Π°Π΄ΠΈΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ Python3:

  • project.py – это основной скрипт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • local ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ трансформация Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально (maltego_trx Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвСр трансформаций python project.py runserver).
  • searchdomain – это имя нашСй трансформации, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π°Π·Π²Π°Π»ΠΈ класс.
  • Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ класс создан ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ вывСсти список всСх трансформаций ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ python3 project.py list.

Запуск трансформаций

НаконСц ΠΌΡ‹ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π’ ΠΎΠΊΠ½Π΅ Output ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ вывСсти ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ссли Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² скриптС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² настройках трансформации Π² Transform Manager, ΡƒΠΊΠ°Π·Π°Π² Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Show debug info.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ:

АналогичноС дСйствиС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ трансформации ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

  • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊ;
from maltego_trx.maltego import BOOKMARK_CLRS
...           
...
           me = response.addEntity(
               'yourorganization.User', user_id
               )
           me.setBookmark(BOOKMARK_CLRS["red"])
  • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ.
me.setNote("РСгистрируСт Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹")

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ нашли Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, email ΠΈ ЀИО. МоТСм Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ поиск ΠΏΠΎ этим Π΄Π°Π½Π½Ρ‹ΠΌ. Для этого Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ трансформации ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с SearchEmail.

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ поиск

Поиск ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π²Ρ‹Π΄Π°Π» Π½Π°ΠΌ Π½ΠΎΠ²Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚. Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ всС Π΄ΠΎΠΌΠ΅Π½Ρ‹ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ подозрСния ΠΈ связаны ΠΎΠ½ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π±Π°Π½ΠΊΠ°ΠΌΠΈ, Π½ΠΎ ΠΈ с сСрвисом BlaBlaCar.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ² поиск, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΌΡ‹ выявили Π΅Ρ‰Ρ‘ 88 Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².

Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΠ² Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ адрСса элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² качСствС источника, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΎΠ³ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΉΠ΄Ρ‘ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ IP-адрСса, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π» Π²Ρ…ΠΎΠ΄ Π² Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡ шаги ΠΏΠΎ Π½ΠΎΠ²Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ†Π΅Π»ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ.

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ нСпонятно, Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² Π² Π³Ρ€Π°Ρ„Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ список Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² мошСнника/ΠΎΠ². Π”Π°Π»Π΅Π΅, исходя ΠΈΠ· ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹, Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ активности.

Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Maltego для расслСдований ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° большого количСства взаимосвязанной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. МоТно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ источники ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ скрипты трансформаций.

Однако Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ – оптимизация Ρ€Π°Π±ΠΎΡ‚Ρ‹ трансформаций с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Об этом Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Π½ΠΈΠΆΠ΅.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Maltego Professional ΠΈ Maltego Enterprise Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Однако, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Maltego Community Edition, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ограничСниями Π½Π° Π²Ρ‹Π²ΠΎΠ΄ количСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² – 12 ΡˆΡ‚ΡƒΠΊ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ нСсколько Ρ€Π°Π·. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ нюанс Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· выводится случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎ Π½Π΅ ΠΏΠΎ порядку, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ трансформация Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· ΠΌΠΎΠΆΠ΅Ρ‚ вывСсти Ρ‚Π΅ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π° Π³Ρ€Π°Ρ„Π΅. Π­Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

НСмного ΡΠ³Π»Π°Π΄ΠΈΡ‚ΡŒ этот нСдостаток ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π² скрипты трансформаций ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ порядку ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство запросов Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π° ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ поиски.

Π˜Ρ‚Π°ΠΊ, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ наши трансформации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ порядку ΠΏΠΎ 12 ΡˆΡ‚ΡƒΠΊ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС трансформации Π΄Π΅Π»Π°Π΅ΠΌ запрос Π² Π±Π°Π·Ρƒ.
  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° экран 12 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ сохраняСм Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ„Π°ΠΉΠ»Π΅.
  • ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… запусках считываСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ 12 ΡˆΡ‚ΡƒΠΊ. Для этого создадим ΠΎΠ±Ρ‰ΠΈΠΉ класс для трансформаций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с кэшСм. И ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ трансформации Π±ΡƒΠ΄Π΅ΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ.

CacheTransform

from maltego_trx.transform import DiscoverableTransform
import zlib
import json
 
class CacheTransform(DiscoverableTransform):
   # ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ основной ΠΌΠ΅Ρ‚ΠΎΠ΄,
   # ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° экран
   @classmethod
   def create_entities(cls, request, response):
       # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
       value = request.Value
 
       # ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ
       # Π² Ρ„Π°ΠΉΠ»Π΅. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°
       # Π½Π° основС ΠΈΠΌΠ΅Π½ΠΈ класса ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния
       transform = cls.__name__
       # Π’Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹
       # ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСбСзопасныС символы.
       # ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ посчитаСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму
       crc = zlib.crc32(bytes(value, 'utf-8'))
 
       filename = f"/tmp/maltego_{transform}{crc}"
 
       # Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ Π»ΠΈ ΡƒΠΆΠ΅
       # Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ записано Π² кэш
       cache = cls.extract_from_cache(response, filename)
 
       # Если Π² кэшС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°
       if cache is not None and len(cache) > 0:
           for entity in cache:
               response.addEntity(entity["entity_type"], entity["value"])
      
       # Если кэш Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½, Ρ‚ΠΎ выполняСм поиск
       else:
           entities = cls.search_entities(value)
           # Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° экран ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 12 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
           head = entities[:12:]
           for entity in head:
               response.addEntity(entity["entity_type"], entity["value"])
 
           # ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ сохраняСм Π² кэш
           tail = entities[12::]
           if len(tail) > 0:
               # Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π² ΠΎΠΊΠ½ΠΎ Output сообщСниС ΠΎ Ρ‚ΠΎΠΌ,
               # сколько элСмСнтов Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² кэш
               response.addUIMessage(f"Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² кэш {len(tail)} ΡˆΡ‚ΡƒΠΊ")
               with open(filename, 'w', encoding='utf-8') as w_file:
                   # Для бСзопасного сохранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
                   # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON
                   json.dump(tail, w_file)
 
   @staticmethod
   def extract_from_cache(response, filename):
       """
           Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 12 элСмСнтов ΠΈ удаляСт ΠΈΡ… ΠΈΠ· кэша
       """
       try:
           with open(f"{filename}", 'r', encoding='utf-8') as file:
               entities = json.load(file)
               if len(entities) > 0:
                   head = entities[:12:]
                   tail = entities[12::]
                   with open(f"{filename}", 'w', encoding='utf-8') as w_file:
                       response.addUIMessage(
                           f"ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π² кэшС {len(tail)} ΡˆΡ‚ΡƒΠΊ"
                       )
                       json.dump(tail, w_file)
                   return head
               else:
                   return []
       except FileNotFoundError:
           return None
 
   @staticmethod
   def search_entities(value):
       """
           ΠœΠ΅Ρ‚ΠΎΠ΄ для поиска Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… источниках
       """
       entities = list()
       for i in range(1, 15):
           entities.append(
               {
                   "entity_type": "maltego.Phrase",
                   "value": f"Test {i}"
               }
           )
 
       return entities

ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

Врансформация Π²Ρ‹Π²Π΅Π»Π° Π½Π° экран 12 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ 2 записала Π² кэш. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит Ρ„Π°ΠΉΠ» с кэшСм:

Врансформация SearchDomain (ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚Ρƒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ создали Π²Π½Π°Ρ‡Π°Π»Π΅.

from maltego_trx.transform import CacheTransform
import MySQLdb
# На этот Ρ€Π°Π· наслСдуСм ΡƒΠΆΠ΅
# ΠΎΡ‚ CacheTransform
class SearchDomain(CacheTransform):
   """
   ВыполняСт поиск Π΄ΠΎΠΌΠ΅Π½Π°.
   """
 
   # ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ search_entities
   @classmethod
   def search_entities(value):
       # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ входящСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
       email = value
 
       # Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅
       db = MySQLdb.connect(host='database.host',
                           port='3306',
                           user='user',
                           passwd='password',
                           db='db',
                           charset="utf8")
       cursor = db.cursor(MySQLdb.cursors.DictCursor)
 
 
       # ВыполняСм поиск ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ domains
       cursor.execute("""select user_id, name, phone, email
                           from domain
                           where domain = %s
           """, [domain])
 
       rows = cursor.fetchall()
 
       # Π’ зависимости ΠΎΡ‚ поля добавляСм Π½Π° Π³Ρ€Π°Ρ„
       # ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²
      
       field_map = {
       'user_id': 'yourorganization.User',
       'name': 'maltego.Person',
       'phone': 'maltego.PhoneNumber',
       'email': 'maltego.EmailAddress'
       }
      
       # БохраняСм Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² массив
       # А вся Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ
       # выполнится Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС
       entities = list()
       for row in rows:
           for field in row:
               if field_map.get(field):
                   entities.append({
                       "entity_type": field_map[field],
                       "value": row[field]
                       })

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли поиск Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ придётся снова ΠΈ снова Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы Π² Π±Π°Π·Ρƒ, ΠΌΠΎΠΆΠ½ΠΎ постСпСнно вывСсти всС элСмСнты Π½Π° экран ΠΈΠ· кэша.

***

Maltego ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс расслСдования благодаря Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска ΠΈ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² графичСском Π²ΠΈΠ΄Π΅. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ вСсь Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр, это ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡƒΠΆΠ΅ прСдставлСнной Π½Π° Π³Ρ€Π°Ρ„Π΅, возмоТности экспорта Π΄Π°Π½Π½Ρ‹Ρ…, объСдинСниС трансформаций Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Β«β€ŽΠΌΠ°ΡˆΠΈΠ½Ρ‹Β»β€Ž для Π΅Ρ‰Ρ‘ большСй ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ поиска. Всё это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для расслСдования Π½ΠΎ ΠΈ для Π·Π°Π΄Π°Ρ‡ поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ источникам (OSINT).

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
15 января 2018

Как ΡΡ‚Π°Ρ‚ΡŒ Ρ…Π°ΠΊΠ΅Ρ€ΠΎΠΌ: Π³Π°ΠΉΠ΄ ΠΏΠΎ основам для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

Π₯акСрство - это поиск уязвимостСй Π² сСти ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с Ρ†Π΅Π»ΡŒΡŽ получСния Π΄...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
06 мая 2017

8 ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ сСтям

ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ соврСмСнным сСтям, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ β€” ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ ΠΏ...
admin
11 фСвраля 2017

5 способов Π²Π·Π»ΠΎΠΌΠ° страницы Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅

Π’ нашС врСмя ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ доступ ΠΊ Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Ссли Π½Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ...