2018年8月9日,斯瓦蒂·汗德瓦尔(Swati Khandelwal
image.png
社交媒体监控软件Trustwave的安全研究人员发布了新的开源工具,该工具使用面部识别技术在大量社交媒体网络中定位目标。
面部识别工具:Social Mapper,可自动搜索八个社交媒体平台的目标,包括Facebook,Instagram,Twitter,LinkedIn,Google +,俄罗斯社交网站VKontakte,以及中国的微博和豆瓣 - 基于他们的名字和图片。
该工具的创建者声称他们开发了Social Mapper情报收集工具,主要用于帮助渗透测试者和红客进行社会工程攻击。
尽管可以手动执行名称和图片的搜索,但Social Mapper可以更快地自动执行此类扫描,并且可以同时大规模的处理数百或数千人。
“在线进行情报收集是非常耗时的过程,通常首先尝试在各种社交媒体网站上找到的在线状态,”Trustwave在一篇详细介绍该工具的博客文章中解释道。
Social Mapper通过三个阶段运行:
阶段1 - 根据您提供的输入创建目标列表(由名称和图片组成)。该列表可以通过CSV文件中的链接,文件夹中的图像或LinkedIn上注册到公司的人员。
阶段2 自动开始在线搜索社交媒体网站以获得目标。
建议通过良好的互联网连接在夜间运行该工具,因为搜索可能需要超过15个小时才能获得1000个人的列表并使用大量带宽。
阶段3 - 搜索之后,社交映射器的第三阶段开始生成报告,例如包含指向目标列表的配置文件页面的链接的电子表格,或者包含用于快速检查和验证结果的照片的更直观的HTML报告。
Trustwave已经在GitHub上提供了Social Mapper,并且免费提供给所有人。 Social Mapper available on GitHub
Trustwave的Jacob Wilkin本周将在Black Hat USA会议上展示Social Mapper,IBM Research到也会详细介绍其AI驱动的恶意软件 DeepLocker.
实现:Python selenium,代码比较适合练习爬虫
参考资料
代码示例
比如针对豆瓣的爬虫
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_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):
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
def kill(self):
self.driver.quit()