工具癖软件测试Python专家之路

免费人脸识别工具可以跟踪社交媒体网站上的人

2018-08-14  本文已影响24人  python测试开发

2018年8月9日,斯瓦蒂·汗德瓦尔(Swati Khandelwal

image.png

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.

image.png

实现:Python selenium,代码比较适合练习爬虫

参考资料

代码示例

比如针对豆瓣的爬虫

# -*- 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()
上一篇下一篇

猜你喜欢

热点阅读