文章目录:
- 一.社会工程学
- 二.IP地址获取
- 三.IP物理定位
- 四.手机查找
- 五.其他技巧
- 六.APT攻击中的钓鱼攻击
一.社会工程学
1.什么是社会工程学?
世界第一黑客凯文·米特尼克在《欺骗的艺术》中曾提到,人为因素才是安全的软肋。很多企业、公司在信息安全上投入大量的资金,最终导致数据泄露的原因,往往却是发生在人本身。你们可能永远都想象不到,对于黑客们来说,通过一个用户名、一串数字、一串英文代码,社会工程师就可以通过这么几条的线索,通过社工攻击手段,加以筛选、整理,就能把你的所有个人情况信息、家庭状况、兴趣爱好、婚姻状况、你在网上留下的一切痕迹等个人信息全部掌握得一清二楚。虽然这个可能是最不起眼,而且还是最麻烦的方法。一种无需依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。
社会工程学(Social Engineering) 是一种通过人际交流的方式获得信息的非技术渗透手段。不幸的是,这种手段非常有效,而且应用效率极高。事实上,社会工程学已是企业安全最大的威胁之一。狭义与广义社会工程学最明显的区别就是是否会与受害者产生交互行为。广义是有针对性的去对某一单一或多一目标进行攻击的行为。
- 社工三大法宝:网络钓鱼、电话钓鱼、伪装模拟
- 狭义三大法宝:谷歌、社工库、QQ
- 社工师的分类:黑客、渗透测试、JD、GOV、公司内部员工、欺骗人员、猎头、销售人员、普通人
举个例子:
某黑客知道了小H的手机号,通常QQ号和手机号是一样的,然后我们可以获取小H的QQ昵称,家乡,性别,年龄等一些基本信息。这仅仅是刚开始,然后通过小H的QQ空间获取个人一些相册,自己写的一些文章,自己对别人的评论,别人最自己的评论,留言板等信息,这些可以进行小H的心里分析,看小H是一个怎样的。接着通过看小H的手机号,获取小H 的微信号,进一步获取更多个人信息,再然后通过网站获取小H的所有注册过的网站,通过各个网站进一步获取信息。现在要进行深一步的了解了,利用小H生日组合或者名字进行暴破,破解小H注册的一个垃圾网站的号码密码,然后登陆其他的网站。通常防范意识不高的,很多账号密码都是一样,可以获取小H的学历,还有小H里面其他所有的好友,名字,还有和别人的聊天记录,现在开始有交集了,把小H其他人进行收集。最后把小H的所有信息收集,不停的对比和整理。最后基本了解小H的信息了,可以将小H的信息进行倒卖甚至欺骗。
那么,信息是如何被泄露的呢?泄露的方式有很多,比如:
- 在网上注册时,垃圾网站被黑客攻入(服务器或者数据库被攻击),黑客获取信息
- 网站内部人员将信息贩卖,然后获取信息
- 通讯被窃听,http协议用post或者get提交时,使用火狐进行拦截
- 撞库,比如你在这个A网站注册时,使用了一个密码,在B网站也使用这个密码,知道A网站的密码,自己也可以用这个密码登录B网站,这就是撞库
为什么攻击者会选择社会工程学进行攻击行为?
因为它是最便捷的攻击方式。攻击者在搞定一个极其复杂的内网环境或者高度防御系统的时候,仅凭外网是很难找到突破口,外网的安全是相对安全的。但是,通过社工拿到一个泄露的账户和密码或者一个email来定位实施单一攻击(类似APT的水坑)。还有就说你是安全技术人员,招标公司的,运维,实在不行你就去问问路套路一下里面的员工和看门大爷,只要有机会接触到公司的内网,通过一些工具直接打穿内网,外网代理进内网,一首《凉凉》送给他们。在国内,由于社工造成的信息泄露事件不算多,多是直接sql注入脱库,可能是某些公司被攻击之后没有发现而已,也可能是法网恢恢。
2.社会工程学分类
社会工程学攻击包括四个阶段:
- 研究:信息收集(WEB、媒体、垃圾桶、物理),确定并研究目标
- 钩子:与目标建立第一次交谈(HOOK、下套)
- 下手:与目标建立信任并获取信息
- 退场:不引起目标怀疑的离开攻击现场
通常社会工程学攻击可以划分为两类:
- 基于人的社工:搭载、伪造身份、偷听、窃取、反社工、垃圾桶工程
- 基于计算机的社工:弹出窗口、内部网络攻击、钓鱼邮件、419尼日利亚骗局、短信诈骗
信息收集是社会工程的一个重要环节。信息收集同时也是一个最费时、最费事、最费力的阶段,但这往往是决定攻击周期内成败的关键要素,具体可以看一下《我是谁,没有绝对的安全》里面的关键环节。
- 常见信息包括:真实姓名、性别、出生日期、身份证号、身份证家庭住址、身份证所在公安局、快递收货地址、大致活动范围、QQ号、手机号、邮箱、银行卡号(银行开户行)、共同朋友的资料、支付宝、贴吧、百度、微博、猎聘、58、同城、网盘、微信、常用ID、学历(小/初/高/大学/履历)、目标性格详细分析、常用密码、照片EXIF信息。
- 常见可获取信息系统包括:中航信系统、春秋航空系统、12306系统、三大运营商网站、全国人口基本信息资源库、全国机动车/驾驶人信息资源库、各大快递系统(越权)、全国出入境人员资源库、企业相关系统、信息资源库等。
3.常见方法
(1) 交流模型
在通信交流中,是一个发送器发送给另一个接收器,而交流则是从一个实体传送到另一个实体的过程,交流是一个双向的过程,这个过程发生着信息的交换、传播以及处理。沟通是我们把别人带到思维空间,分享个人的信息,所有的参与者都必须有一种彼此的心理位置概念,他们中间存在一个可沟通的渠道。
人的交流会传送两个层次的信息:语言和非语言,社工就是利用这些语言和非语言的潜在信息,改变目标的感知,从而得到想要的结果。交流的基本含义是发送一个信息包给既定的接受者(通俗解释:说话),信息中会包含多个信息源,用来描述这个“事件”即:通信过程,有名的通信模型是——“Shannon-weaver模型”鼻祖模型。模型包含“信息源、信息、发送器、信号、信道、噪声、接收器、信息目的地、误差概率、编码、解码、信息率、信息容量”,此模型也被称为传递模型。
(2) 网络钓鱼
网络钓鱼(Phishing,与钓鱼的英语fishing发音相近,又名钓鱼法或钓鱼式攻击)是通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息(如用户名、口令、帐号 ID 、 ATM PIN 码或信用卡详细信息)的一种攻击方式。最典型的网络钓鱼攻击将收信人引诱到一个通过精心设计与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息,通常这个攻击过程不会让受害者警觉。它是“社会工程攻击”的一种形式。网络钓鱼是一种在线身份盗窃方式。
- 钓鱼阶段:信息收集-信息分析-钓鱼网络-下饵-上钩
- 钓鱼攻击:采用钓鱼的方式向某个特定的目标系统发起攻击,并最终成功获取到被攻击目标中的信息。比如:Adobe reader的漏洞、Word的漏洞、flash漏洞、IE漏洞。
钓鱼可以借助邮件或者信息传播途径,将含有恶意程序的文档发送给目标服务器中,使之有意或无意的点击恶意程序从而控制目标主机。常见的钓鱼手段包括:鱼叉式网络钓鱼攻击、水坑式网络钓鱼攻击、钓鲸、APT等。
(3) Maltego
Maltego作为一款成功的信息收集工具其功能强大,它不仅可以自动收集到所需信息,而且可以将收集的信息可视化,用一种图像化的方式将结果呈现给我们。
(4) 信息刺探
在入侵前,通常都会对目标进行一次较为全面的检测,所谓不打没有把握的仗,入侵前的信息刺探很重要,通过对目标主机的检测,我们可以知道对方主机操作系统类型,开放了哪些网络服务,是否存在漏洞等信息。将搜集到的信息整理起来将会对后面的入侵工作起到事半功倍的效果。同样,社工也需要在入侵前进行踩点。
- 通过QQ号获取信息,包括用户真实姓名、昵称。通过QQ空间获取照片、行为特征、好友。
- 通过社交网络微博、微信、知乎、贴吧、虎扑等获取用户相关信息。
- 通过手机号找出QQ号,腾讯QQ提供了匹配通讯录的功能,这一功能本意是想让你添加通讯录里的好友,但由于手机号匹配之后还是会显示你的部分信息,我们可以通过这部分信息来查找。
一般来说,越是设置得非主流的越容易查找,越是设置得大众的越难查,首先我们可以复制昵称,注意现在手机上的QQ是直接提供复制功能给用户的,如果查到的结果很多,我们可以限制搜索条件,比如年龄、性别等。
二.IP地址获取
前一篇文章详细讲解了Web信息采集基本知识,这里简单回顾下ThreatScan在线扫描工具。
- https://scan.top15.cn
- Whois站长之家:http://whois.chinaz.com/
- 微步在线:https://x.threatbook.cn/
- Lookup:http://whois.domaintools.com/
- Netcraft:http://toolbar.netcraft.com/site_report?url=
- Robtex DNS:https://www.robtex.com/
- 爱站查询:https://whois.aizhan.com/
- ...
本文以某信息系统为例,进行简单的测试,假设网址为:http://www.xxxxx.com
第一步:基础信息扫描
包括域名、IP地址、有无CDN、编程语言、是否存在WAF(Web应用防护系统)、操作系统、指纹框架、Web容器、网络权重等。注意,ThreatScan通过Web指纹识别,发现该网站采用Java进行开发。
- 获取的真实IP地址为:210.xxx.xxx.16
第二步:端口扫描
接着将IP地址填写到端口处,进行相关扫描。端口扫描是获取目标主机的端口信息显得十分有必要,通过一些常见端口,可以大致得出目标主机运行的服务,为后续渗透测试薄弱点提供参考。
第三步:旁站扫描
旁站扫描能扫描与该IP地址挂靠的其他网站,这有利于Web渗透,可能旁站存在漏洞。
第四步:信息泄露查询
同时,Namp软件可以获取IP地址拓扑图,方便观察网络跳数,尤其是大的网段。
PS:QQ可以通过木子李获取IP地址。
三.IP物理定位
IP物理定位可以通过百度地图开发者服务(web 服务API)、第三方接口、在线网站等进行定位,但不同的接口其精确度也会不同。下图展示内网和外网、服务商之间的关系,服务商通常会按照区域划分ip地址,凡是通过网络接入到服务器,就一定能获取ip和地址定位,从而获取目标的物理位置。
为什么要进行IP物理定位呢?
假设某人发了某个危害的帖子或从事相关活动,有关部门就需要抓他。此时,首先要获取他真实的IP地址,通过服务器对比,观察这个时间点它把IP分配给谁(通常实名制);再通过IP地址进行物理定位。后台日志通常会存储相关的IP地址及行为。现在,通过三大运营商数据、Wifi、基站、社交网络、视频等,都能进行一些更为智能精确的定位,从而维护整个社会的网络安全。
1.Python查询经纬度
为什么先介绍第一种方法呢?当我们做网站安全维护时,通常日志中会收集很多IP信息,此时需要自动化的方法定位其位置,这里先补充定位经纬度的方法。
方法一:调用本地文件实现
本地存在一个名叫GeoLiteCity.dat的文件,它包含了详细的地址对照信息,通过编写代码查询对应的值获取信息。这里以作者的博客地址为例,备案在阿里服务器上。
接着编写Python代码如下图所示,通过调用pygeoip库获取经纬度相关信息。输出结果为:
- [ ] Target: 60.xxx.xxx.36 Geo-located.
- [ ] Hangzhou, 02, China
- [ ] Latitude: 30.293599999999998, Longitude: 120.16140000000001
import pygeoip
#导入文件
gi = pygeoip.GeoIP('GeoLiteCity.dat')
#定义函数
def printRecord(ip):
rec = gi.record_by_name(ip)
city = rec['city']
region = rec['region_code']
country = rec['country_name']
long = rec['longitude']
lat = rec['latitude']
print('[ ] Target: ' ip ' Geo-located.')
print('[ ] ' str(city) ', ' str(region) ', ' str(country))
print('[ ] Latitude: ' str(lat) ', Longitude: ' str(long))
#查询数据
ip = '60.xxx.xxx.36'
printRecord(ip)
谷歌街景地图中输入纬度和经度,就可以看到定位的街景地图,但本地数据查询的精准度还是不太精确,所以接下来我们分享第二种Python访问在线网站查询的方法。
方法二:调用API在线查询
代码语言:javascript复制# -*- coding: utf-8 -*-
import urllib.request
import json
ip = input("please your ip address:")
url = "http://api.map.baidu.com/location/ip?ip=%s&ak=GrwQFVVB5qDWviGtSoB4VbU4KK10QVLy&coor=bd09ll"%ip
req = urllib.request.Request(url)
res_data = urllib.request.urlopen(req)
res = res_data.read().decode("unicode-escape") # 转格式
jsonaddress=json.loads(res)
#print res
print("城市:",jsonaddress['content']['address'])
print("省份:",jsonaddress['content']['address_detail']['province'])
print("区县:",jsonaddress['content']['address_detail']['district'])
print("街道:",jsonaddress['content']['address_detail']['street'])
print("经纬度:",jsonaddress['content']['point']['x'],",",jsonaddress['content']['point']['y'])
print("纬经度:",jsonaddress['content']['point']['y'],",",jsonaddress['content']['point']['x'])
输出结果如下图所示:
其原理就是调用百度API获取经纬度返回的Json结果。
再次调用谷歌街景即可,其结果还是比较精准的。
2.网站定位位置
下面作者将介绍在线的IP物理定位的方法,还是以上面获取的IP地址为例。
- 某网站IP地址:210.xxx.xxx.16
- 某博客IP地址:60.xxx.xxx.36
查询网址:
- https://www.opengps.cn/Data/IP/ipplus.aspx
- http://www.gpsspg.com/maps.htm
获取的地理位置如下图所示,其结果还是比较精确的。
Whois
whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。
- http://whois.chinaz.com/
比如作者的个人博客查询结果如下图所示:
同样,百度地图API也是能创建地理位置获取以及热点区域识别,希望感兴趣的同学可以阅读作者CSDN的Android开发文章。需要申请AK再实现相关应用。
- [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题
- [android] 百度地图开发 (二).定位城市位置和城市POI搜索
再比如某大佬的博客,是不是通过社会工程学发现了些知识。
- 备案邮箱
- 备案电话号码尾号:*92374
我们可以进一步通过邮件反查,获取更多知识,如下图所示。
安全建议如下:
- 在搭建个人网站时一定要保护好自己的邮箱和电话,尤其是注册某些不熟悉的网站时,一定要要保护好个人信息。
- 钓鱼邮件、短信、电话、软件都不要去点击,安装相关的杀毒软件,做好个人隐私保护。
- 如果是企业级公司,网站做好相关的安全防护,安装WAF、IP保护、系统日志、安全检测、弱口令、社工杜绝都非常重要。
四.手机查找
通过各大网站已知有价值的ID获取其他信息(如电话号码、QQ、微信),通过电话或QQ获取用户的登录账号,是常见的社会工程学手段。常用的步骤如下:
第一步:通过已知信息查找有价值的ID或其他信息。
- www.reg007.com
- www.zhaohuini.com
下图是在REG007网站通过QQ邮箱获取他注册过的网站,当然结果不一定准备,并且需要注册。还有很多类似且更好的网站,大家可以去查找。
第二步:用密码找回功能获取部分手机号信息
如下图所示,部分网站可能会手机的部分信息透露,比如开头182、结尾47。
同样支付宝转账之前能社工姓名。
第三步:找出所在城市获得手机号段
通过某些网站获取三大运营商不同城市的手机号段,比如贵阳市:
- http://www.guisd.com/ss/
我国手机号码为11位,各段有不同的编码方向:前3位—网络识别号;第4-7位—地区编码;第8-11位—用户号码。号码也就是所谓的MDN号码,即本网移动用户作被叫时,主叫用户所需拨的号码,它采取E.164编码方式;存储在HLR和VLR中,在MAP接口上传送。
第四步:用手机号码生成器或Python循环遍历生成手机号并导入手机
第五步:利用手机号码和物理位置来恶意获取信息,利用手机号继续查找信息
总之,我们需要防止社会工程学攻击手段,它会不断通过已知信息获取未知信息,获取的信息越多越好、其渗透越丰富。
接着补充一个神奇网站,这类网站很多,如下图所示,我们看看它能做什么呢?它其实可以保护我们的个人信息,尤其是某些不常登陆却要用一两次的网站。
- http://lothelper.com/cn
五.其他技巧
也许有些人经历过,在微信群里晒了一张并没有定位的自拍,却被不在现场的朋友们发现了你的位置,这就是照片原图泄露了你的位置,如下图所示。
其原因是智能手机在拍照的时候,都有一个叫Exif的东西。它包括快门、光圈、iso、白平衡、日期时间等各种图像数据,还有一个重要的信息——位置信息。如果不经过处理,这些Exif参数会一直存在。在拍照的时候软件调用了Exif中的GPS全球定位系统数据。同时,经过各种美图软件处理过的照片都会在相册中显示位置信息,而且不少美颜软件都自带定位功能,打开相机找到“保存地理位置”选项,并选择不打勾。
接着我们将经纬度进行解析,它是以度分秒的格式展示的(度分秒之间以“;”间隔),为了方便定位,我们需要将度分秒转换为度的格式。
- 纬度为:26;22;50.48263499999301,其计算方法为:26 (22 50.48263499999301/60)/60 = 26.3806896208
- 经度为:106;38;25.123901000013689,其计算方法为:106 (38 25.123901000013689/60)/60 = 106.64031219472223
接着进行位置定位,如下图所示。
安全建议:同样其他文件都会暴露一些信息,包括PPT、Word等,要学会保护自己的隐私及版权。社会工程学的本质是欺骗,不要轻易相信他人,不要到处留下自己的个人信息,要学会设置代理、短信验证、日志记录。
六.APT攻击中的钓鱼攻击
不仅仅黑客喜欢用这个方法,APT组织也喜欢用类似的方法,我们简单来看看。
1.海莲花(APT32)
海莲花(OceanLotus)是一个据称越南背景的APT组织,又称APT32、OceanLotus。该组织最早于2015年5月被天眼实验室所揭露并命名,其攻击活动最早可追溯到2012年4月,攻击目标包括我国海事机构、科研院所和航运企业,后扩展到几乎所有重要的组织机构,并持续活跃至今。
海莲花组织常用类社工的攻击方法:
- 构造诱饵文件欺骗用户点击
- 利用钓鱼邮件进行攻击,钓鱼关键字包括培训、绩效、监察等
- 采用恶意文件投递的鱼叉攻击
- CHM诱饵、白加黑诱饵、恶意Ink
- 利用CVE漏洞(如CVE-2018-20250绑定压缩包)
恶意文件投递的方式依然是最常用的鱼叉攻击的方式,钓鱼关键字包括干部培训、绩效、工作方向等。2019年投递的恶意诱饵类型众多,包括白加黑、lnk、doc文档、带有WinRARACE(CVE-2018-20250)漏洞的压缩包等,之后的攻击中还新增了伪装为word图标的可执行文件、chm文件等。
2.摩诃草(APT-C-09)
APT-C-09是南亚印度背景的APT组织,又名摩诃草、白象、PatchWork、 hangOver、The Dropping Elephat、VICEROY TIGER。摩诃草组织主要针对中国、巴基斯坦等亚洲地区国家进行网络攻击活动,其中以窃取重要信息为主。相关攻击活动最早可以追溯到2009年11月,至今还非常活跃。
摩诃草组织常用攻击方法:
- 主要以鱼叉邮件进行恶意代码的传播
- 采用水坑方式进行攻击
- 基于即时通讯工具和社交网络的恶意代码投递
- 使用钓鱼网站进行社会工程学攻击
- 投递带有恶意宏文件的xls文件
- 钓鱼网站用以捕获信息
- 使用带有诱饵文档通过点击下载托管于GitHub上的downloader样本
如下图所示,伪装成有关部门的文件。这是一个含有宏的xlsm电子表格文件,利用社会工程学诱使目标“启用内容”来执行宏恶意代码。
当目标启用内容后就会执行Workbook_Open的恶意宏代码,通过加载scrobj.dll,远程调用http://45.xxx.xxx.67/window.sct,这是利用Microsoft系统文件的LOLbin以绕过杀软的监测,达到远程执行代码。
3.蓝宝菇(APT-C-12)
360公司在2018年7月5日首次对外公开了一个从2011年开始持续近8年针对我国行政机构、科研、金融、教育等重点单位和部门进行攻击的高级攻击组织蓝宝菇(APT-C-12),英文名Blue Mushroom,该组织的活动在近年呈现非常活跃的状态。比如,通过向163邮箱发送鱼叉邮件,钓鱼邮件仿冒博鳌亚洲论坛向攻击对象发邀请函。攻击者通过诱导攻击对象打开鱼叉邮件云附件中的LNK文件,一旦攻击对象被诱导打开LNK快捷方式文件,会执行文件中附带的PowerShell恶意脚本来收集上传用户电脑中的重要文件,并安装持久化后门程序长期监控用。
蓝宝菇组织常用攻击方法:
- 主要以鱼叉邮件攻击为主
- 执行恶意PowerShell脚本收集信息
- 云附件LNK文件
- 安装持久化后门程序长期监控用户计算机
- 使用AWS S3协议和云服务器通信来获取用户的重要资料
- 投递带有恶意宏文件的xls文件
- 压缩包解压后包含名为beoql.g的DLL后门
- 横向移动恶意代码,C&C访问
360威胁情报中心确认多个政企机构的外部通信邮箱被投递了一份发自boaostaff[@]163.com的鱼叉邮件,钓鱼邮件仿冒博鳌亚洲论坛向攻击对象发送了一封邀请函,如下图所示。
邮件附件被放到163的云附件里,此附件即为攻击者的恶意Payload,这是一个通过RAR打包的快捷方式样本。接下来对同一波攻击中的另一个完全相同功能的样本进行详细分析,以梳理整个攻击过程。一旦攻击对象被诱导打开该LNK快捷方式文件,LNK文件便会通过执行文件中附带的PowerShell恶意脚本来收集上传用户电脑中的重要文件,并安装持久化后门程序长期监控用户计算机。
4.SideWinder(T-APT-04)
T-APT-04是国际知名的SideWinder“响尾蛇”组织,该南亚组织以窃取单位、能源、矿产等领域的重要信息为主,此前已对巴基斯坦和东南亚各国发起过多次攻击,但近两起的APT攻击却频繁指向了中国,一起是伪装成国家部门向各国驻华使馆发送虚假邀请函;另一起是针对某科技有限公司驻外代表处的攻击事件,攻击者向该公司驻外代表处发送了虚假的安全手册。据瑞星安全研究院分析,通过对攻击者使用的技术手法来看,断定与APT组织“响尾蛇”有着莫大的关系。
响尾蛇组织常用攻击方法:
- 利用Office远程代码执行漏洞(cve-2017-11882)
- 通过钓鱼邮件发起APT攻击
- 远程控制目标电脑并获取内部资料
- 使用钓鱼网站进行社会工程学攻击
- 诱饵文档进行载荷投递
七.总结
写到这里,网络安全系列第三篇文章就介绍完毕,大家一定要保护好个人信息,防止社工攻击,也希望文章对您喜欢。真心感觉自己要学习的知识好多,也有好多大神卧虎藏龙,开源分享。作为初学者,我们可能有差距,不论你之前是什么方向,是什么工作,是什么学历,是大学大专中专,亦或是高中初中,只要你喜欢安全,喜欢渗透,就朝着这个目标去努力吧!有差距不可怕,我们需要的是去缩小差距,去战斗,况且这个学习的历程真的很美,安全真的有意思。但切勿去做坏事,我们需要的是白帽子,是维护我们的网络,安全路上共勉。