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,代码比较适合练习爬虫
参考资料
- 本文涉及的python测试开发库 请在github上点赞,谢谢!
- 本文相关书籍下载
- 原文地址:https://thehackernews.com/2018/08/social-mapper-osint.html
- 工具github地址
- 讨论qq群144081101 591302926 567351477 钉钉免费群21745728
代码示例
比如针对豆瓣的爬虫
# -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.firefox.options import Optionsfrom pyvirtualdisplay import Displayfrom time import sleepimport sysimport jsonimport osfrom bs4 import BeautifulSoupclass 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()