2018年8月9日,斯瓦蒂·汗德瓦爾(Swati Khandelwal
image.png
社交媒體監(jiān)控軟件Trustwave的安全研究人員發(fā)布了新的開源工具喊括,該工具使用面部識別技術(shù)在大量社交媒體網(wǎng)絡(luò)中定位目標(biāo)鸵膏。
面部識別工具:Social Mapper伶丐,可自動搜索八個社交媒體平臺的目標(biāo)木柬,包括Facebook间学,Instagram拒担,Twitter嘹屯,LinkedIn,Google +从撼,俄羅斯社交網(wǎng)站VKontakte州弟,以及中國的微博和豆瓣 - 基于他們的名字和圖片钧栖。
該工具的創(chuàng)建者聲稱他們開發(fā)了Social Mapper情報收集工具,主要用于幫助滲透測試者和紅客進(jìn)行社會工程攻擊婆翔。
盡管可以手動執(zhí)行名稱和圖片的搜索拯杠,但Social Mapper可以更快地自動執(zhí)行此類掃描,并且可以同時大規(guī)模的處理數(shù)百或數(shù)千人啃奴。
“在線進(jìn)行情報收集是非常耗時的過程潭陪,通常首先嘗試在各種社交媒體網(wǎng)站上找到的在線狀態(tài),”Trustwave在一篇詳細(xì)介紹該工具的博客文章中解釋道最蕾。
Social Mapper通過三個階段運行:
階段1 - 根據(jù)您提供的輸入創(chuàng)建目標(biāo)列表(由名稱和圖片組成)依溯。該列表可以通過CSV文件中的鏈接,文件夾中的圖像或LinkedIn上注冊到公司的人員瘟则。
階段2 自動開始在線搜索社交媒體網(wǎng)站以獲得目標(biāo)黎炉。
建議通過良好的互聯(lián)網(wǎng)連接在夜間運行該工具,因為搜索可能需要超過15個小時才能獲得1000個人的列表并使用大量帶寬醋拧。
階段3 - 搜索之后慷嗜,社交映射器的第三階段開始生成報告,例如包含指向目標(biāo)列表的配置文件頁面的鏈接的電子表格丹壕,或者包含用于快速檢查和驗證結(jié)果的照片的更直觀的HTML報告洪添。
Trustwave已經(jīng)在GitHub上提供了Social Mapper,并且免費提供給所有人雀费。 Social Mapper available on GitHub
Trustwave的Jacob Wilkin本周將在Black Hat USA會議上展示Social Mapper干奢,IBM Research到也會詳細(xì)介紹其AI驅(qū)動的惡意軟件 DeepLocker.
實現(xiàn):Python selenium,代碼比較適合練習(xí)爬蟲
參考資料
- 本文涉及的python測試開發(fā)庫 請在github上點贊盏袄,謝謝忿峻!
- 本文相關(guān)書籍下載
- 原文地址:https://thehackernews.com/2018/08/social-mapper-osint.html
- 工具github地址
- 討論qq群144081101 591302926 567351477 釘釘免費群21745728
代碼示例
比如針對豆瓣的爬蟲
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from pyvirtualdisplay import Display
from time import sleep
import sys
import json
import os
from bs4 import BeautifulSoup
class Doubanfinder(object):
timeout = 10
def __init__(self,showbrowser):
display = Display(visible=0, size=(1600, 1024))
display.start()
if not showbrowser:
os.environ['MOZ_HEADLESS'] = '1'
self.driver = webdriver.Firefox()
self.driver.delete_all_cookies()
def doLogin(self,username,password):
self.driver.get("https://www.douban.com/login")
self.driver.execute_script('localStorage.clear();')
if(self.driver.title.encode('utf8','replace').startswith("登錄")):
print "\n[+] Douban Login Page loaded successfully [+]"
wbUsername = self.driver.find_element_by_id("email")
wbUsername.send_keys(username)
wbPassword = self.driver.find_element_by_id("password")
wbPassword.send_keys(password)
#self.driver.find_element_by_id("login_button").click()
#self.driver.find_element_by_css_selector('a.submitBtn').click()
self.driver.find_element_by_css_selector('input[type=\'submit\']').click()
sleep(5)
if(self.driver.title.encode('utf8','replace').startswith("豆") == False):
print "[+] Douban Login Success [+]\n"
else:
print "[-] Douban Login Failed [-]\n"
def getDoubanProfiles(self,first_name,last_name):
#try:
url = "https://www.douban.com/search?cat=1005&q=" + first_name + "+" + last_name
self.driver.get(url)
sleep(3)
searchresponse = self.driver.page_source.encode('utf-8')
soupParser = BeautifulSoup(searchresponse, 'html.parser')
picturelist = []
for element in soupParser.find_all('div', {'class': 'pic'}):
try:
badlink = element.find('a')['href']
link = badlink.split('?url=', 1)[1].split('&query', 1)[0].replace("%3A",":").replace("%2F","/")
badprofilepiclinksmall = element.find('img')['src']
profilepic = badprofilepiclinksmall.replace("/icon/u","/icon/ul")
picturelist.append([link,profilepic,1.0])
except Exception as e:
print "Error"
print e
continue
return picturelist
#except Exception as e:
# picturelist = []
# print "Error"
# print e
# return picturelist
def kill(self):
self.driver.quit()