基于theharvester的社程信息收集系统设计与实现

 2022-01-17 11:01

论文总字数:19049字

目 录

1 绪论 7

1.1项目的研究背景和意义 7

1.2项目的国内外研究现状 7

1.3项目的主要研究内容 7

2 Theharvester简介 8

2.1Theharvester概述 8

2.2Theharvester功能 8

3 Python集成环境及相关技术介绍 8

3.1 Python介绍 8

3.1.1核心库简介 8

3.2 wxPython 简介 8

3.3 Python特点 9

3.4 Python应用 10

3.5 Py2exe 简介 10

4 软件需求分析 10

4.1 可行性分析 11

4.2 基本功能模块分析 11

4.3系统GUI界面需求分析 11

4.4 软件性能需求分析 11

4.5 软件开发环境需求 12

5 总体结构设计 12

6 系统基本功能设计与实现 13

6.1 关于通信接口的解决方案 13

6.1.1 解决方案 13

6.1.2 方案实施 13

6.2 邮箱以及子域名收集原理与方法 14

6.2.1 解决方案 17

6.2.2 方案实施 17

6.3 子域名Fuzzing原理与研究 18

6.3.1 解决方案 19

6.3.2 方案实施 19

6.4 异常处理介绍 19

6.4.1 方法及实施 20

6.5 输入检查 20

6.5.1方法及实施 20

6.6 敏感文件收集原理与研究 20

6.7 社工库查找功能实现 21

6.8 生成报告 23

6.9 超时设置 23

6.10 GUI编程 23

6.10.1 主程序界面设计与实现 24

6.10.2 子窗口程序设计与实现 24

6.11 功能测试 25

6.11.1 用户界面 25

6.11.2 功能模块 26

6.11.3 兼容性 28

7 总结与展望 29

7.1 论文总结 29

7.2 问题和展望 29

参考文献 29

致谢 32

基于python的社会工程学信息收集系统设计与实现

金阳

,China

Abstract:Social Engineering Information Gathering System is designed for Penetration testers

and the website administrators to provide information of Individuals and businesses .In this paper ,the system conclusions kinds of ways to gathering information on the Internet and it is designed to be a new system.And it provides solutions for gathering information.Compared with the traditional social engineering,the system takes less time to find somewhere exists vulnerability to save much time for the manager of the Corporate websites and Social engineers to improve the security of the company.

Key words:Python;Social Engineering;Information Gathering System

1 绪论

1.1项目的研究背景和意义

社会工程学作为正式的学科出现是在上世纪六十年代左右,又被翻译为:社交工程学。人们通常对于广义社会工程学的定义为:建立理论并且通过利用社会和制度上的途径来逐步解决各种各样的复杂问题。

人们在关注信息安全的时候大部分的注意力都会放在以计算机网络技术为基础的攻击与防御上,却很少注意到人在整个信息安全系统中的重要性。入侵者通过对目标的信息收集,在得到某些关键的信息后来绕过安全防御系统。任意一个能够访问系统中某个部分的人都有可能对信息系统构成潜在的安全风险与安全威胁。但是人在计算机系统中是必不可少的一环,这就意味着这一项信息安全威胁或者说弱点不会受到系统平台、软件、网络等因素的影响,它是普遍存在于各个系统中的。

本课题旨在让全球的网民们能够懂得网络安全,提高警惕,防止没必要的个人财产以及公共财产的损失。

1.2项目的国内外研究现状

社会工程学是网络安全界或者说安全圈中常见的入侵方式,从国际网络攻防技术的发展趋势来看,“社会工程学”攻击在未来势必成为最有效的攻击方式。

社会工程学攻击,它在创建之初,与任何一门新兴的学科一样都不可避免的会存在一个关键的问题,那就是学科的合理性。换言之,人们在回答或者论证这一问题的过程中会不断的推进该学科理论体系的构建步伐,并通过学术共同体诸学者的自由竞争和一致努力来促进该学科发展。

1.3项目的主要研究内容

社会工程学是需要搜集大量针对目标的实际情况的真实有效的信息,从而进一步对目标进行心理战术获取其他信息的一种高级手法,它与普通人们所遇到的欺骗和诈骗是完全不同层次的手法。比如说一个电话号码、名字或者工作的ID号码,都有可能会被社会工程师所利用。无论在什么情况下,社会工程学攻击者在获取到所需的信息之前都必须:掌握大量相关的基础知识、花时间去进行资料的收集和必要的形如交谈性质的沟通行为。因此,在进行社会工程学攻击之前的前提和必要的一个步骤就是信息的收集。

对此,该系统需实现的功能有:

1、对企业邮箱进行收集;

2、通过API对企业进行子域名查找;

3、对可发现的子域名进行模糊测试(Fuzzing),针对可能泄漏信息的目录进行爆破;

4、对暴露在公网的企业敏感文件进行收集下载;

5、针对企业调用社工库API进行社会工程学查找;

6、针对个人的社会工程学信息收集;

7、对信息收集结果生成报告。

2 Theharvester简介

2.1Theharvester概述

Theharvester是由python编写的一款社会工程学工具,它的作者为Christian Martorella,是在github上开源的系统,目前支持python2.7。

2.2Theharvester功能

theHarvester可以帮助渗透测试工作者在渗透测试的早期阶段对目标进行互联网资料采集,同时也可以帮助人们了解自己的个人信息是否在网络上泄漏。它通过搜索引擎如百度和shodan、包括他们的数据库以及PGP服务器收集用户的email,目标网站的子域名、开放端口等信息。

3 Python集成环境及相关技术介绍

3.1 Python介绍

一九八九年,Python被一位名为Rossum的国外学者所创造,它的计算机源码和直译器均遵从GNU通用公共许可协议 。

Python不但拥有简明的语法,并且还具有强大和丰富的库。在本人的社会工程学信息收集系统中同样也用到了非常多的pyhton的库,极大的方便了编程。

3.1.1核心库简介

urllib2

urllib2是python自带的一个库,主要用于访问网页及本地文件,并且提供了处理复杂情况下的功能,比如基本的身份验证、cookie和代理等。

re

re模块为python自带的正则表达式模块。它支持标准的正则表达式。在本系统中主要是用于实现提取筛选出关键字信息进行匹配,以及进行正则替换内容的功能。

subprocess

自python2.4起,为了代替某些旧模块的的方法,subprocess模块就已经被引入进来,它主要功能是用来管理子进程。它与传统的python的命令执行的模块的区别在于它以子进程的形式来调用系统命令并且获取回显结果。在系统中主要使用popen模块来执行调用theharvester。

3.2 wxPython 简介

wxPython是基于wxWindows的一款非常优秀的GUI图形库,并且支持跨平台,是个成熟而且特性丰富的包,Python程序员能够使用这个库去创建完一个功能完整的用户图形界面。

就像wxWidgets和Python一样,wxPython也是一款开源的软件,而且具有非常优秀的跨平台的能力,它能够支持运行在32/64位Windows、Macintosh OS X、类Unix系统或绝大多数的Unix下。

wxPython是跨平台的,这一点意味着同一个程序可以在多种平台上运行并且不需要经过修改。目前支持的平台有:32/64位Windows操作系统、苹果Mac OS X、大多数Unix或类Unix系统。

由于使用Python作为编程语言,wxPython易于理解并且编写简单。

3.3 Python特点

优点:

简单、易学:在学习Python时大多数在前期遇到的问题都可以通过查看它的说明文档来得到解决,因此python是一款非常适合编程新手的语言。而且有了好的python代码,程序员就不需要花费大量精力去弄懂语言自身,而是着重于解决当前问题。

免费、开源:Python属于FLOSS,即自由源码软件。FLOSS是一个在共享知识基础之上的概念。类似与github,允许python使用者们把它的一部分用于新的软件中、查看它的源代码或者对它做一些改动之后发布。

速度快:Python 的底层和很多第三方库和标准库均使用 C语言编写的,故使用Python程序的运行速度非常快。 

面向对象:Python支持面向对象和过程的编程。

可移植性:由于python源码为公开的并且它有强大的跨平台能力,因此它是可以被移植的,在包括Windows操作系统、Linux操作系统甚至Android平台等各个主流的操作系统都能看到python的身影。在运行程序时,可以直接从源代码运行程序。

可扩展性、可嵌入性:作为一个开发者,如果不希望自己程序中的某些算法被公之于众,那么就能用C 或者C代替Python进行编程,因为可以在Python中插入由C或C 编写的程序。

剩余内容已隐藏,请支付后下载全文,论文总字数:19049字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;