OSINT的历史及获取情报的渠道

公开资源情报计划(Open source intelligence ),简称OSINT,是美国中央情报局(CIA)的一种情报搜集手段,从各种公开的信息资源中寻找和获取有价值的情报。OSINT不同于一般的调查,可以为特定的个人或团队量身定制特定的信息支持。

公开源情报工作开始于1941年,以美国外国广播监测处(Foreign Broadcast Monitoring Service, FBMS)创立为标志。其发展过程实际上就是情报界观念的改变过程,即注意力从秘密情报转向公开源情报的过程。分析人员最初认为公开源 情报只能作为验证秘密情报的一种辅助用具。后来,随着其在海量信息供应、解析他国文化、链接信息碎片、掩护情报来源等多方面价值的体现,公开源情报逐步成为一项专门工作。据美国中央情报局统计,2007年的情报收集总数中超过80%来自公开源情报。中国菜刀

获取情报的5种公开渠道

1.媒体:报纸(newspapers)、杂志(magazines)、电台( radio)、电视节目(television)、基于计算机的信息(computer-based information)。

2.基于网络社区(Web-based communities)和用户创造的内容(user generated content):社交站点(social-networking sites)、视频分享站点(video sharing sites)、维基百科(wikis)、博客(blogs)、通俗分类(folksonomies)。

3.公开数据(Public data):政府报告(government reports)、官方数据(official data )如预算(budgets)、人口统计资料(demographics)、听证会(hearings)、立法辩论(legislative debates)、新闻发布会(press conferences)、演讲(speeches)、海洋和航空的安全警告(marine and aeronautical safety warnings)、环境影响图片( environmental impact statements)、合同签订(contract awards)。

4.观察(Observation)和报告(reporting):利用业余观察家们的成果,如某些人通过对谷歌地球(Google Earth)进行标注、上传某一地区的照片,从而大量借此扩展出了许多有价值的情报信息。

5.专家(Professional)和学者( academic):会议(conferences)、研讨会(symposia)、专业组织(professional associations)、学术论文(academic papers)、专家(subject matter experts)

6.地理信息数据:地图(maps)、地图集(atlases)、地名录( gazetteers)、港口规划(port plans)、重力数据(gravity data)、航空数据(aeronautical data)、导航数据(navigation data)、人类分布数据( human terrain data ,如文化和经济上的)、环境数据(environmental data)、商业影像(commercial imagery)、激光雷达(LIDAR ,Light Detection And Ranging)、超多光谱数据(hyper and multi-spectral data)、机载成像(airborne imagery)、地理名称(geo-names)、地理特征(geo-features)、城市地形(urban terrain)、垂直阻塞的数据(VOD, vertical obstruction data)、界标数据(boundary marker data)、地理空间聚合(geospatial mashups)、空间数据库(spatial databases)、web服务(web services)。许多信息都可以利用地理信息系统(GIS)进行整合、分析、聚合的。

仿照OSINT模式进行渗透测试

为了验证OSINT收集情报的威力,我们会在本文中采用黑盒测试的办法。同白盒测试相比,黑盒测试比较费时,同时对技术要求比较高。在安全业界的渗透测试眼中,黑盒测试能更逼真地模拟了一次真正的攻击过程。黑盒测试依靠测试人员的能力探测获取目标系统的信息,作为一次黑盒测试的渗透测试者,通常不需要找出目标系统的所有安全漏洞,而只需要尝试找出并利用可以获取目标系统访问权代价最小的攻击路径,并保证不被检测到。奇热看片

本文,我将以谷歌的官网https://www.google.com/为例,来进行机密数据收集与发掘。

Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。

所以我们的第一步就是设置浏览器代理及burp suite代理设置从历史记录读取数据,另外我还安装了根SSL证书。

如果你查看的是BurpSuite的侧栏,则位于目标>站点地图> https://www.google.com/下。此时,我们已经可以快速浏览网站的详细文件结构和加载的脚本。注意,这只是情报侦察阶段,我们需要在这个阶段保持谨慎,躲避任何的检测。

如果你使用的是BurpSuite Professional,你可以点击右键选择“被动扫描此主机”选项,此时,它将搜索你现有的请求页面代码,以查找已知漏洞,泄露的电子邮件等。

根据常识,至少80端口或443端口是开放的,至于还有什么在运行?你可以打开Shodan,或者你可以使用非常酷的nmap脚本。

获取Shodan API密钥后,将其放置在以下nmap命令行中运行:

nmap --script=shodan-api --script-args 'shodan-api.apikey=XXXXXX'google.com

虽然过程很简单,但却能获得很多有价值的情报,比如以下内容:

-sn:禁用端口扫描;

-Pn:跳过主机发现,不ping主机;

-n:跳过DNS解析

然后Nmap会意识到它没有什么可做的,并将运行shodan-api脚本。 此时,Shodan API脚本将被发送到shodan.io并检索它所知道的有关主机的所有信息,其中就包括主机版本和端口号。

DNS暴力破解

在进行DNS暴力破解之前,我们需要先研究一下DNS区域传送,DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库。区域传送最初是一种用于服务器管理员的工具,允许它们轻松复制DNS数据库,例如转移到新域名。如果要攻击的公司曾经迁移过他们的网站,并且几乎没有做任何安全措施,那么暴力攻击的效果最明显。一般来说,DNS区域传送操作只在网络里真的有备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息,所以说允许不受信任的互联网用户执行DNS区域传送(zone transfer)操作是后果最为严重的错误配置之一。

区域传送漏洞的危害是:黑客可以快速的判定出某个特定zone的所有主机,收集域信息,选择攻击目标,找出未使用的IP地址,黑客可以绕过基于网络的访问控制。

我们可以使用名为dnsenum的工具轻松进行域名转移,它是用Perl编写的。它是一个非常可靠的渗透测试工具,可以发现了一些有关主机的有趣内容,比如:

1.主机地址:这是你在域上执行简单nslookup时将获得的IP;

2.通配符主机(Wild Card Host):这是当你调用随机子域(例如kttfvatukbld)时将返回的IP,它通常是来自你的DNS提供商或ISP的IP。

3.域名服务器(Nameserver):NameServer的主要功能是为整个MQ集群提供服务协调与治理,具体就是记录维护Topic、Broker的信息,及监控Broker的运行状态,这些可能是非常有用的信息。

4. 邮件交换记录 (MX record):邮件交换记录 (MX record)是域名系统(DNS)中的一种资源记录类型,用于指定负责处理发往收件人域名的邮件服务器。现在这些信息很容易被忽略。它将揭露域的MX服务器,企业、的许多业务都是使用外部托管的电子邮件,如Outlook,这些记录往往包含公司的整个工作流程。

接着,我会使用Aiodns,它是一个DNS解析器,可以通过异步介质进行同步调用。简而言之,这意味着你可以在每次请求后无需关闭连接的情况下有效地进行多次调用。

接着,我会使用Aiodnsbrute(一个DNS异步暴力破解程序),它可以在1.5-2分钟内提供了大约10万个DNS解析。

此时,我们在google.com上看到以下内容:

$ aiodnsbrute google.com

可以看到,DNS解析器会发现有很多以92开头的IP地址。还记得以上我说过在DNS中查找通配符吗?它也具有相同的IP。我们可以使用以下grep命令轻松解决这个问题。

aiodnsbrutegoogle.com | grep -v "the resolver IP"

抓取邮件

Harvester是一个邮箱挖掘器,它会抓取谷歌搜索结果、标题、描述、元数据,并查找类似电子邮件地址./theHarvester.py-d companydomain.com -b google的所有内容。

为了方便讲解,我使用了protonmail.com。

总共抓取了16000个结果,我们可以从中分析出电子邮件的常见模式。

我们可以使用这些信息做很多事情,比如可以将它加载到电子邮件程序中并发送钓鱼电子邮件,也可以使用一种被称为“密码喷洒(Password Spraying)”的技术来进行测试和攻击。

Weleakinfo.com 

还记得Adobe、LinkedIn和MySpace的数据泄露吗?这些泄露的数据目前仍然存在与网络中,虽然你仍然可以找到零星的数据,但是要将数据还原,就不是那么容易了。

而Weleakinfo会将所有这些零星的数据编译成一个大的、可以快速搜索的数据库,你甚至可能在其中找到一些旧密码。黑客甚至不需要攻击目标的服务器,就已经有了他们的账户密码了。

分析16000电子邮件最好的方式就是进行使用Weleakinfo进行自动化分析。实际上,Weleakinfo提供了一个公共API ,它允许每秒3个请求,如果你想更快,可以试试ProxyDock 这样的工具。

Geo2IP 

现在你已经知道主机的位置了,但却不知道它的确切细节。这时你可以使用Geo2Ip,它会找出该主机的坐标位置。然后,你再将这些内容提供给nslookup工具(由微软发布用于对DNS服务器进行检测和排错的命令行工具),以发现与主机关联的所有信息。

反向域名Whois查询

此时你可以用到reverse whois,现在,你可以使用这些工具输入公司名称、电子邮件地址或注册者名称(从以前的侦察中获得的),然后对新获得的电子邮件、域名和其他信息执行相同的步骤。

至此,你已经获得了目标设备的全部信息,它们都是日常OSINT中要用到的至关重要的信息。

以LinkedIn为例,进行电子邮件信息收集。

找到电子邮件地址

在此你可以使用hunter.io神器来搜索公司的电子邮件地址,它甚至可以分析出使用当前的公司使用的电子邮件结构类型。

第1阶段:找出命名约定(naming conventions) 

以google.com为例,现在我们假设发现了一些格式为hsimpson@google.com的电子邮件,使用hunter.io我们很快就能了解公司使用的电子邮件结构类型,通常是{firstinitial}{lastname}@{companyname}.com,这可能因组织不同而异。但是我们很快就能找到命名约定,然后我们进入第2阶段。

第2阶段:获取员工信息并生成电子邮件

如果我们能得到在公司工作的每个人的姓名列表,那么我们就可以将这些信息输入python脚本,并根据命名约定生成电子邮件地址,通常情况下我们可以很容易地通过google dorking获得它们的名称,Google Dorking,该工具可以识别出存在漏洞的系统,并发现它们在互联网上的特定位置。不过我用的是GoogLinked,当与ProxyDock 结合使用时,效果比Google Dorking要好很多。

在运行此操作之前,你要做的一件事是修改脚本。现在它使用Microsoft和microsoft.com作为参数,所以你要将其修改为“公司名称”(如LinkedIn所示)和公司电子邮件域名。在上面的示例中,我会将所有结果导入到一个文件中。

返回了很多电子邮件地址:

正如你所看到的,有一些生成的电子邮件地址。然后,采用run_search()函数中定义的格式。

请注意,names.each部分。根据你发现的公司格式修改它,在本文的示例中,tarr[0]和tarr[-1]分别被修改为firstname和lastname。注意,当引入中间名时,渗透测试可能会出现一点意外,所以此处请留意。

如果你想制作一个PR来添加自定义功能,请随意。现在你有了这些电子邮件,把它们传到weleaksinfo.com,就可以进行情报获取了。

进一步的数据挖掘

在2000年以后,暴力破解是每个渗透测试人员都在做的事情。他们会在Web服务或RDP之类的远程访问服务上找到一个有效的帐户,并使用诸如rockyou.txt之类的密码表对其进行破解。如今,供应商也变得重名了,他们会检测失败的登录尝试,记录它们,如果有人对这些账户进行连续过多的登录尝试,则锁定这些帐户。

不过,供应商通常会在锁定帐户前,允许4-5次连续的错误密码尝试。另外即使供应商没有锁定帐户,他们也开始实施密码复杂性规则、密码轮换策略等,这些都让暴力破解无法施展。

所以根据目前的安全形势,密码喷洒才是最佳的数据挖掘打开方式。

对密码进行喷洒式的攻击,这个叫法很形象,因为它属于自动化密码猜测的一种。这种针对所有用户的自动密码猜测通常是为了避免帐户被锁定,因为针对同一个用户的连续密码猜测会导致帐户被锁定。所以只有对所有用户同时执行特定的密码登录尝试,才能增加破解的概率,消除帐户被锁定的概率。

通过密码喷洒可以探测到以下情报:

1.了解目标公司的业务结构(这个通过电子邮件可以了解的最详细);

2.得到目标中有效的电子邮件地址列表;

3.了解密码复杂性规则;

4.了解常用密码;

分析出一家公司的业务结构是相当容易的,你可以使用DNSDumpster(DNSdumpster可以为给定的域名找到大量的子域名。),并输入你的目标域名并检查MX记录和TXT记录,它们都是Microsoft.com格式。

如果你正在与一家使用Office 365处理电子邮件的公司打交道,你会看到microsoft-com.mail.protection.outlook.com和TXT记录等内容。

密码喷洒不仅限于电子邮件服务,它还会在Jira或其他类似的平台检查子域,JIRA 是目前比较流行的基于Java架构的管理系统。

电子邮件的抓取

以上我曾介绍过相关的方法,不过现在我要介绍一个更好的方法,使用我开发的工具——EmailGen 即可完成目的。

现在,你需要了解公司用于构建电子邮件地址的格式。我们可以手动执行此操作,或者使用https://hunter.io/。

一旦搜索结果被返回,hunter通常会返回我们可以输入到EmailGen中的格式,例如:{first}.{last}@{domain}。

在Microsoft环境中,我们将运行以下代码:

./EmailGen.rb -c "Microsoft" -d "microsoft.com" -f "{first}.{last}@{domain}" -o microsoft-emails.txt
Microsoft" -d "microsoft.com" -f "{first}.{last}@{domain}" -o microsoft-emails.txt

现在已经有了这些电子邮件地址,我们可以开始下一个阶段了。

查找泄露的信息

对于外行人来说,WeLeaks是一个收集漏洞信息并对其进行索引的服务平台。Dropbox、AdultFriendFinder、MySpace、LinkedIn等服务都曾一度遭到黑客攻击,用户信息也遭到了泄露。所以以前大家都可以使用WeLeaks搜索这些信息,不过现在这个平台已经不好用了。

现在,行家都会使用一种被称为“密码填充”的技术,即先获取被泄露的数据,并尝试用泄露的密码登录用户的账户。实际上,我个人就受到了这个攻击的影响,当时,我的MacBook Pro电脑就通过这种方式被远程锁定。

既然WeLeaks不好用了,建议大家使用我开发的一个名为CredCatch的工具,它使用Selenium(浏览器自动化测试框架)来抓取WeLeaks付费帐户以获取明文凭据。

可以通过WeLeakInfo或breachcompile手动获取泄露的数据,获得此类数据后,将电子邮件和密码放入如下文件中。

alice@example.org:breachedPass123
alice@example.org:breachedPass33
bob@example.org:mysupersecretleakedpass

稍后,我们会用到这些文件。

生成密码喷洒列表

我编写了一个工具,称为X-Prey。X-Prey会将你之前创建的密码列表以及电子邮件列表放在一起,生成一个专门用于喷洒的密码列表。生成此组合列表后,你就能够在喷洒活动中利用潜在的密码重用。

根据密码喷洒,我们已经实现了以下一些信息的获取:

1.生成电子邮件列表;

2.发现泄露的密码;

3.生成一个用于喷洒的密码列表;

如果一切顺利,你的密码列表应该如下:

wordlist.txt
(Truncated)
alice@example.org:NaviSec2019!
alice@example.org:Pa$$w0rd!
sean@example.org:12345
sean@example.org:Spring2019
sean@example.org:Spring2019!
sean@example.org:Pa$$w0rd!
dcuthbert@example.org:DontCallMeDanny
dcuthbert@example.org:NaviSec2019
dcuthbert@example.org:Pa$$w0rd!

让我们把这个密码列表分成两部分,这样我们就可以将它提供给BurpSuite:

cat wordlist.txt | sed 's/:/ /g' | awk '{ print $1 }' >> wordlist_users.txt && cat demo_wordlist.txt | sed 's/:/ /g' | awk '{ print $2 }' >> wordlist_passes.txt

使用BurpSuite继续挖掘

打开Burpsuite后,确保代理配置正确,并且浏览器安装了根SSL证书。

1.现在访问你的目标站点并尝试登录,我通常使用admin:password;

2.右击代理请求,选择“发送给入侵者”;

3.进入“发送给入侵者”选项后,在顶部导航菜单中选择“位置”,将“攻击类型”设置为“Pitchfork”,确保位置设置正确;

4. 现在就可以加载你的用户名和密码列表,然后点击开始;

此时,喷洒的所有结果都会出现。由于以上所讲的是一个纯粹用于演示目的的服务器,所以在这个示例中没有进行身份验证。

如何仿照OSINT模式进行机密信息的收集与发掘相关推荐

  1. Kubernetes(K8s)容器设计模式实践案例 – 分散收集模式

    <Kubernetes与云原生应用>专栏是InfoQ向轻元科技首席架构师王昕约稿的系列 文章.本专栏包含8篇内容,将会从介绍和分析Kubernetes系统以及云原生应用 入手,逐步推出基于 ...

  2. 覆盖分类的方法_老罗讲分类|垃圾分类回收模式到底用哪种好?

    普通桶?垃圾房?智能设备?关于垃圾分类的回收模式,到底用哪种模式好? 不管是普通垃圾桶,垃圾房,还是智能的垃圾分类回收设备,老罗认为,不管采用哪种垃圾分类回收模式,首先都要让居民可以非常清楚地知道垃圾 ...

  3. jvm系列二之GC收集器

    目录 参考 概念理解 并发和并行 吞吐量 GC垃圾收集器 Serial New收集器 Parallel New(并行)收集器 Parallel Scavenge(并行)收集器 Serial Old(串 ...

  4. python编程模式_Python编程中的反模式

    原标题:Python编程中的反模式 这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题. 本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段. 对 ...

  5. 敏捷模式下的研发产能度量

    最近与一些 X-Developer 试用申请者.使用者交流,针对开发者的绩效评估,需求的分解与度量依然是难点.客户认为,如果在需求上无法做到均匀,那么针对需求个数的统计就是不公平的,但是要做到需求的均 ...

  6. java hotspot 默认垃圾回收器_怎么查看服务器默认的垃圾的收集器是哪个?生产环境上如何配置垃圾回收收集器?谈谈你对垃圾收集器的理解?...

    上篇:https://zhuanlan.zhihu.com/p/165998261​zhuanlan.zhihu.com 一.查看默认的垃圾收集器 1.如何查看默认的垃圾收集器 (1)代码演示: pa ...

  7. JVM----------垃圾收集器详解

    垃圾收集算法 标记-清除算法 最基础的收集算法是"标记-清除"(Mark-Sweep)算法,分两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象. 不足: ...

  8. 流集数据收集器最新消息

    最新消息 3.10.0 中的新增功能 数据收集器版本 3.10.0 包括以下新功能和增强功能: 起源 此版本包括以下新源: Groovy 脚本 - 运行 Groovy 脚本以创建数据收集器记录. 脚本 ...

  9. SpiderFoot(信息收集)

    介绍 SpiderFoot 是另一个免费的开源工具,可以自动化 OSINT 流程.它能够收集有关 IP.域.网络和人员的信息.SpiderFoot 是用 Python 编写的,具有简单易用的用户界面. ...

最新文章

  1. 名词解释_名词解释的答题技巧
  2. 如何在Flutter(2021)中创建过滤器搜索列表视图
  3. mysql可以使用dataguard_逻辑DataGuard的配置
  4. Redis Desktop Manager 利用ssh连接 Redis
  5. gettype拿不到值_拼多多场景实操——这样实操场景推广有效拿高投产【下篇】...
  6. linux下shell的工作原理
  7. linux字符设备驱动之字符之异步通知
  8. leetcode 242 有效的字母异位词 C++
  9. JAVA 实现FTP功能_在Java程序中实现FTP功能
  10. 二维均匀分布的边缘密度函数_理解概率密度函数
  11. 公文写作与计算机应用,德阳市事业单位《计算机应用和公文写作》真题.doc
  12. sql server一对多怎么查询_Vlookup函数查找最后一个值和一对多查询
  13. vue3新增Suspense组件
  14. xshell 自动断开解决方法
  15. pip和requests模块的安装
  16. 外部表改为内部表_2、从外部导入数据创建表(ACCESS图解操作系列)
  17. 找不到服务器或应用项目,word中文档时提示“找不到服务器应用程序、源文件或项目”有...-office软件找不到word文档,officewo...
  18. Kde桌面程序启动器程序图标无法显示
  19. 时间格式在ios不兼容的问题
  20. 面向集团客户云计算运营平台的市场情况及产品发展——之云计算运营平台方案(二)

热门文章

  1. 陪伴我成长的学习工作邮箱品牌——TOM邮箱
  2. 隐私计算 — 联邦学习 — Overview
  3. Eureka解密(1)------ 注册实例服务发现理解
  4. cocos2d-x apk 打包路径太深
  5. C# 操作Word批注(一) 插入、修改、删除Word批注
  6. ISA8051内部结构讲解
  7. Win11聚焦锁屏壁纸不更新了?Win11锁屏聚焦不更换解决教程
  8. opencv(c++)------图像分割(阙值、自适应阙值、grabCut、floodfill、wathershed)
  9. day13-面向对象进阶
  10. linux下常用软件列表