DNS
提供域名与IP地址之间的映射
大型企业网站运转核心
收集原因:
1.确定企业网站运行规模
2.可以从DNS中收集子域名、IP等
3.控制网站解析
子域名
例:mail.360.cn是360.cn的子域名
收集原因:
1.确定企业网站运行数量,从而进行下一步攻击准备
2.获得不同子域名所映射的IP,从而获得不同C段
C段
IPv4分为四段,从左到右,第一段相同表示A段相同,第二段相同表示B段相同,第三段相同表示C段相同,第四段相同表示D段相同。
收集原因:
1.确定C段主机数量
2.确定C段中主机的端口,服务,操作系统等
邮箱
收集原因:
1.通过分析邮箱格式和后缀可以得知邮箱命名规律和邮箱服务器
2.为爆破登录表单收集字典
3.发送钓鱼邮件,执行高级APT控制
指纹
(1)Web指纹
例:获取运行的脚本语言类型、开发框架、CMS、以及版本信息
(2)中间件指纹
例:获取中间使用的产品和版本;通过产品和版本查询是否有漏洞产生
(3)系统指纹
例:获取操作系统使用的产品和版本;可以在以后渗透中提供渗透基准
社工库
寻找指定目标的已经泄露的数据
例:邮箱,获取到企业内部人员已经泄露的密码,可以在撞库,爆破中使用;姓名,手机号,找回密码,重置信息
钓鱼攻击
邮件、链接、办公文件
构造鱼叉攻击和水坑攻击
绕过边界防御设备
从内部瓦解防御网络,直接反弹shell
DNS介绍
将域名和IP地址相互映射的一个分布式数据库
协议:以UDP为主,有时会用的TCP
端口:53
域名长度:每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
DNS原理
1.本机需要某网站的IP地址,先查询host文件,如果有,则返回;
2.如果host文件没有该映射,则查询本地的DNS服务器(网卡中存在一个DNS服务器地址)
3.本地DNS服务器查询自己的缓存,若缓存中有,则返回;若没有,则向上级DNS服务器进行进一步询问。
4.查询到后,本地DNS服务器缓存下来,并把IP地址返回给用户。
DNS记录
DNS A记录:域名对应的IP地址(IPv4)
查询方法:
(1)nslookup www.baidu.com
(2)dig www.baidu.com
DNS NS记录:域名服务器记录,用了来指定该域名由哪个DNS服务器来进行解析
查询方法:
(1)dig -t ns www.baidu.com
(2)dig www.baidu.com ns
(3)dig www.baidu.com ns +short
DNS TXT记录:一般指某个主机名或域名的说明
查询方法:
(1)dig -t txt www.baidu.com
(2)dig www.baidu.com txt
(3)dig www.baidu.com txt +short
DNS MX记录:邮件交换记录,它指向一个邮件服务器。用于电子邮件系统发邮件时根据收件人的地址后缀来定位邮件服务器。
查询方法:
(1)dig -t mx www.baidu.com
(2)dig www.baidu.com mx
(3)dig www.baidu.com mx +short
DNS CNAME记录:将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理。时常与CDN(内容分发网络)进行配合使用
查询方法:
(1)dig -t cname www.baidu.com
(2)dig www.baidu.com cname
(3)dig www.baidu.com cname +short
域名信息查询
whois:查询域名的IP以及所有者等信息的传输协议
查询方法:
whois www.baidu.com
在线查询网站:
whois.iana.org
www.arin.net
who.is
centralops.net/co/
www.17ce.com
子域名收集原因
(1)子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现几率。
(2)有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大漏洞。
(3)在同一个组织的不同域或应用程序中往往存在相同的漏洞。
子域名收集方法
(1)爆破
原理:通过字典匹配枚举存在的域名
kali:
dnsmap baidu.com -w wordlist
其中wordlist为字典,里面写一些前缀即可,如www,college等;有结果的就会返回IP地址。
Windows:
1)fuzzDomain
2)子域名挖掘机
(2)搜索引擎
原理:通过搜索引擎获取已经爬取的子域名
语法:
Site:baidu.com
1)theharvester
可以获取子域名,邮箱,主机,员工姓名,开放端口,banner
常用语法:theharverster -d baidu.com -b all
2) AQUATONE
不只通过简单的子域爆破,同时还会利用各种开放的互联网服务和资源来协助其完成子域枚举任务,增加成功率。
aquatone分成三个阶段:发现,扫描,收集
<1> aquatone-discover 发现
通过google、shodan、censys、爆破等多种方式获取目标存在的域名
常用语法:aquatone-discover -d baidu.com -t 10
<2> aquatone-scan 扫描
经过发现阶段获取到域名,然后扫描域名主机存活和开发端口
常用语法:aquatone-scan -d baidu.com -p 'port' -t 'threads'
<3> aquatone-gather 收集
经过扫描以后发现存活的域名和端口,aquatone-gather将自动访问存活的域名并截图
常用语法:aquatone-gather -d www.baidu.com
(3)域传送
DNS区域传送:一台备用服务器使用来自主服务器的数据刷新自己的域数据库。防止主服务器故障影响域名的解析。
DNS区域传送操作只在网络中真的由备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息,所以说允许不受信任的因特网用户执行DNS区域传送。
危害:黑客可以快速的判定出某个特定域的所有主机,收集域信息,选择攻击目标,找出未使用的IP地址,黑客可以绕过基于网络的访问控制。
收集方法:
1)dig @ axfr <被爆破的域名>
2)nslookup 进入交互 -> server dns <被爆破的域名> -> ls <被爆破的域名>
3)fierce -dns <被爆破的域名>
(4)在线网站
1)www.virustotal.com
2)dnsdumpster.com
C段扫描原因
(1)收集C段内部属于目标的IP
(2)内部服务只限IP访问,没有映射域名
(3)更多的探测主机目标资产
C段扫描方法
(1)Nmap
1)快速扫描大型网络
2)可以获得主机运行的端口、服务、系统指纹
3)上百个扩展脚本提供日常支持
Nmap-扫描C段主机存活
语法:
nmap -sn -PE -n 192.168.1.1/24 -oX out.xml
-sn 不扫描端口,只查看主机是否存活
-PE 不进行ICMP扫描
-n 不进行DNS解析
-oX 将结果输出到某个文件
Namp-定向端口扫描
语法:
nmap -sS -Pn -p 3389
-sS 扫描方法:半开放扫描
-Pn 不进行主机存活探测
-p 端口
Nmap-全端口扫描
语法:
nmap -sS -Pn -p 1-65535 -n
Nmap-服务扫描
语法:
nmap -sS -sV -p 1-65535 -n
显示出端口开发的服务
(2)Masscan
Masscan允许任意地址范围和端口范围,速度很快。
常用语法:
masscan -p 80 /24 -rate 10000 -oL ouput.txt
-p 设置端口
-rate 发包速率
-oL 输出位置
绕过特定ip地址语法:
masscan -p 80 --excludefile special.txt
目录扫描原因
(1)寻找网站后台管理
(2)寻找未授权界面
(3)寻找网站更多隐藏信息
目录扫描方法
(1)robots.txt
Robots协议(网络爬虫排除标准),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。同时也记录网站所具有基本的目录。
(2)搜索引擎
搜索引擎会爬取网站下目录,并且不需要触碰网站任何防御设备
语法:
site:www.baidu.com
(3)爆破
通过字典匹配网站是否返回相应正确状态码,然后列出存在的目录。
爆破可能会触发网站防火墙拦截规则,造成IP封禁。
工具:
1)dirb
DIRB是一个Web内容扫描程序
通过字典查找Web服务器的响应
DRIB只能扫描网站目录,不能扫描漏洞
语法:
dirb http://www.baidu.com
参数:
-a 设置User-Agent,告诉服务器,本地的一些信息。
-b 不扫描../或者./
-c 设置Cookie
-E 设置证书文件
-o outfile 保持扫描文件
前面出现+号,表示存在文件
前面出现==>,表示存在文件夹
2)dirbuster
DirBuster多线程Java应用程序
主要扫描服务器上的目录和文件名
扫描方式分为基于字典和纯爆破
OWASP 下开源项目
语法:
命令行下输入:disbuster,出现窗口界面
字典爆破使用步骤:
1.Target URL 输入URL
2.work method 选择Auto Switch
3.Number of Threads 线程数,根据环境设定
4.select scaning type 选择List based brute force
5.File with list of dirs/files 点击browse选择字典文件
6.select starting options 选择URL fuzz
7.URL to fuzz 输入 /{dir}
8.start
3)御剑
系统指纹识别
(1)方式1:通过发送TCP/IP数据包到目标主机,由于每个操作系统处理TCP/IP数据包都不相同,所以可以通过它们之间的差别判定操作系统。
方法:
nmap -sS -Pn -O
-O 启用操作系统探测
nmap识别操作系统指纹必须使用端口,所以不允许添加-sn参数。
(2)方式2:端口服务识别,每个操作系统都有特有的服务和端口,如:windows桌面连接使用的3389 RDP协议;windows的smb协议开启端口445;iis 80端口
方法:
nmap -sS -sV
中间件指纹识别
(2)方式2:通过端口服务探测中间件
常用端口:Tomcat、Jboss 8080,weblogic 7001
方法:
nmap -sS -Pn -sV
(3)方式3:通过构造错误界面返回信息查看中间件
主要通过构造不存在的路径和畸形数据
Web程序指纹识别
识别目标:开发语言、开发框架、第三方组件、CMS程序、数据库
(1)开发语言
1.后缀名识别:.asp、.php、.jsp
2.抓包查看与后台交互点,如:登录、查询等
3.http返回消息头:X-Powered-By字段
4.cookie信息:PHPSESSIONID -> php、JSPSESSIONID -> jsp、ASPSESSIONIDAASTCACQ -> asp
(2)开发框架
1.php的thinkphp框架识别方法:拥有特定ico图标
2.Action后缀90%几率为struts2或者webwork
3.do后缀50%几率spring mvc
4.url路径 /action/xxx 70%几率struts2
5.form后缀 60%几率spring mvc
6.Vm后缀90%几率VelocityViewServlet
7.jsf后缀99%几率Java Server Faces
(3)第三方组件
一般包括流量统计、文件编辑器、模板引擎
识别方法:一般为目录扫描
FCKeditor
CKEditor
(4)CMS程序
1.特定文件夹:dede/、admin/admin_Login.aspx
2.Powered by ***
3.网站favicon图标
(5)数据库
1.常规判断:asp -> sql server,php -> mysql,jsp -> oracle
2.网站错误信息
3.端口服务:1443 -> sql server,3306 -> mysql,1521 -> oracle
在线探测:
1.浏览器插件:wappalyzer
2.云悉 http://www.yunsee.cn/
防火墙指纹识别
识别方法:
1.nmap -p 80 -srcript http-waf-fingerprint
2.sqlmap -u <域名> -identify-waf
介绍
使用Google搜索引擎或其他Google应用程序通过特定语法来查找网站配置或代码中的安全漏洞
搜索登录后台、特定文件、漏洞页面、错误信息等等
逻辑运算符
+ 强制搜索其后的一个单词
- 把某个字忽略
~ 同意词(同一个意思的词语)
. 单一的通配符
* 通配符,可代表多个字母
"" 精确查询
|或OR 只要符合多个关键字中的任意一个的结果就予以显示
基本语法
intext:key 搜索网页带有关键字的页面
allintext:key 功能与intext相似,但是可以接多个关键字
intitle:key 搜索网页标题中是否由所输入的文字
allintitle:key 功能与intitle类似,可以接多个关键字,但是不能与别的关键字连用
cache:url 查看指定url快照
filetype: 搜索指定类型文件
info: 搜索输入url的摘要信息和其他相关信息,不能与其他关键词混用
inurl: 搜索输入字符是否存在于url中,可以于site结合找后台
site: 搜索特定网站或者子域名
related:url 搜索与该url相关的,同类的界面
4.案例
1.site:360.cn filetype:doc
2.site:360.cn intitle:登录
3.site:360.com inurl:/login
4.site:36.110.213.* (C段快速探测)
Google hacking语法收集网站:链接
可以借鉴上面的一些语法使用方法。
网络空间搜索引擎介绍
网络空间搜索引擎不同于搜索普通网页,而是直接搜索网络中存在主机,将主机信息汇聚成数据库,然后显示出主机的ip、端口、中间件、摄像头、工控设备banner、等其他网络设备信息。
常见搜索引擎:
国外:shodan
国内:zoomeye、fofa
shodan介绍
shodan可以搜索所有与互联网关联的服务器、摄像头、打印机、路由器等等。凡是连接到互联网的红绿灯、安全摄像头、家庭自动化设备以及加热系统等等都会被轻易的搜索到。
基本语法:
hostname:"baidu.com" 主机名
port:23 搜索端口
net:192.168.1.0/24 CIDR格式的IP地址(私网地址搜索不到,这里只是举个例子;要用公网地址,搜索C段时注意最后一位要设置为0)
city:"San Diego" 城市
product:"Apache httpd" 产品
version:"2.6.1" 软件版本
os:"Windows 7" 操作系统
country:"CN" 国家简写
org:"google" 组织
isp:"China Telecom" ISP服务商
geo:"38.4681,106.2731" 经纬度
kali上运行shodan
(1)安装shodan
pip install shodan
(2)初始化shodan
从官网上注册账号,然后点击右上角show API key
(3)使用shodan
1. 统计结果
shodan count net:ip/24
2. 下载数据,数据格式json
shodan downoad
例:shodan download baidu net:ip/24
3. 解析json数据
shodan parse [option]
例:shodan parse --fields ip_str,port baidu.json.gz
4. host搜索指定ip
shodan host[option]
例:shodan host ip
5. search 搜索内容
shodan search [option]
例:shodan search --fields ip_str,port net:ip/24
情报分析概念
广义上:情报分析对全源数据进行综合、评估、分析和解读,将处理过的信息转化为情报以满足已知或预期用户需求的过程。
实际上:网络空间情报分析主要是对于目标的ip、域名、电话、邮箱、位置、员工、公司出口网络、内部网络等等进行收集,然后进行综合判断整理汇聚成数据库。
maltego工具
对互联网上的信息进行收集、组织,并将这些信息进行直观展示反馈。
使用方法:
(1)新建任务及配置
1.单击标签“Machines”
2.选择“Run Machine”
3.弹出对话框选择Footprint L3,点击next
4.输入要进行收集的域名,点击finish
5.点击finish以后系统会自动收集关于该域名的互联网信息
(2)探测每个点
1.右键节点
2.点击All Transforms弹出下拉列表
3.点击想继续探测的内容
(3)添加其他搜集信息点
1.左侧界面中选中某个收集点拖放到右边的界面
2.双击,选择要探测的信息
3.右键选择该节点,在弹出的列表中选择探测方法
如果搜集到的信息和其他有关联的话, maltego会自动关联
(4)关联其他插件-shodan
shodan
1.安装插件
2.右键节点,点击与shodan相关的想要收集的信息
(5)导出数据
1.点击左上方的maltego图标
2.下拉列表中点击import | export
3.选择Generate Report
4.导出格式为pdf,输入名称,点击save
5.双击打开保存的信息,可以查看到信息异常丰富
社工库
将互联网泄露的信息汇聚成数据库
简单说:黑客数据库
构建社工库:
https://raidforums.com/Announcement-Database-Index-CLICK-ME
多维度信息收集
(1)app
设置代理,抓取敏感信息等
(2)微信公众号
(3)目标qq群
群文件,群消息记录
(4)威胁情报
已知的某些漏洞如何利用
(5)网站开发者角度
(6)运维角度
(7)架构师角度去获得目标相关信息
(8)web方面-评论处
1.评论处部分信息未加密
2.追加评论和商家回复,抓包获取未加密的数据
(9)web方面-搜索处
1.数据存放未设权限或者防爬处理造成搜索引擎爬取
例:wooyun-2014-069909
(10)web方面-转账
1.一般在转账处输入手机号或邮箱账户的旁边,有一个历史转账信息,点击以后可以看到转账信息,由于加密不全,可以抓包查看真实姓名
2.转账越权造成信息泄露
例:wooyun-2016-0168304
(11)web方面-客服处
客服未经过系统安全培训,当客户询问用户手机号,没有经过验证直接返回给用户
(12)越权-任意查看
平台没有对上传的文件进行复杂格式化处理。
例:XXX.com/xxx/xx/012313.jpg
文件极易造成任意读取或者爆破
(13)越权-任意修改
用户在进行订单交易时可以将ID修改成任意ID,然后服务器返回可以查看其他用户信息,如:收货地址
例:wooyun-2016-0203940
(14)接口-测试接口用户信息泄露
网站在上线的时候都忘记把测试时的接口进行关闭,从而导致这个接口可以查询大量用户信息
例:wooyun-2015-0116563
(15)员工信息泄露
1.各第三方平台
2.Github
3.wooyun-2016-0177720
(16)弱密码问题
1.内部系统员工密码为弱口令或默认密码
2.后台管理密码为开发密码
(17)APP信息泄露
1.隐私信息未做加密直接存放本地
2.前端信息正常,抓包发现过多信息返回,前后端开发不一致
Cobalt Strike介绍
渗透测试软件,分为客户端和服务端,服务端是一个,客户端可以有多个,可以进行团队分布式操作。
Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏diamagnetic生成,包括站点克隆获取浏览器的相关信息等。
Cobalt Strike使用
(1)配置监听器
1.点击上方Cobalt Strike选项,弹出的下拉菜单中选择listeners
2.在下方弹出区域中点击Add按钮
3.弹出的对话框中首先输入监听器名字,然后选择payload类型,主机位shell反弹接收主机,port反弹端口,然后点击save
(2)生成payload
1.点击attacks->packages->windows executable
2.弹出的对话框listener选择起初添加的监听器
3.output输出为靶机类型
4.点击generate,弹出的对话框中选择保存位置和输入payload名字
(3)主机上线
1.将生成的payload植入到靶机并运行
2.主机上线以后需要将默认心跳包改成0,cobalt strike为了维持链接,会每60秒发送一次连接,但是如果使用的话60秒会造成卡顿
3.修改方法:右键主机弹出的下拉菜单中选择session->sleep,弹出的对话框中输入0,点击确定
office钓鱼介绍
office钓鱼在无需交互、用户无感知的情况下,执行office文档中内嵌的一段恶意代码,从远控地址中下载并运行恶意可执行程序,例如远控木马或者勒索病毒等。
Cobalt Strike 实现office钓鱼
生成一段vba代码,然后将代码复制到office套件中,当用户启动office自动运行
操作:
(1)点击Cobalt Strike主界面中attacks->packages->ms office macro
(2)弹出界面选择Listener,单击确定
(3)对话框中给出每一步仔细操作,单击copy macro按钮
(4)将复制的内容粘贴到word文档中
(5)通过一定方式将该文档传给目标主机
(6)当目标机器运行文档以后,Cobalt Strike会接受到目标机器反弹的shell
(7)目标进程会增加一个rundll32.exe进程
CHM钓鱼
CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。
利用CHM钓鱼主要原因是因为该文档可以执行cmd命令。
CHM制作:
软件:EasyCHM
(1)首先创建一个根目录,文件名任意
(2)在文件内部创建两个目录和一个index.html文件
(3)两个文件夹内部创建任意文件名的html文件
(4)将写好的可编译的文件内容复制到index.html文件中
(5)启动EasyCHM软件
(6)点击工具栏新建按钮,弹出的对话框中点击浏览按钮,选择创建的根目录,文件类型保持一致,点击确定
(7)点击工具栏编译按钮,弹出的对话框中点击生成CHM按钮
(8)将生成的文件通过一定方式发送的目标机器
(9)在客户机运行
钓鱼文件生成:
(1)启动Cobalt Strike软件
(2)点击菜单attacks->web Drive by->scripted web Delivery
(3)弹出的对话框中,type类型设置powershell,单击launch按钮
(4)用代码将index.html中的calc.exe替换
替换注意问题:
1.需要将原有的单引号换成双引号
2.powershell.exe后面加入逗号
3.删除IEX前面的双引号
4.网址换成单引号
LNK钓鱼
lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常他以快捷方式放在硬盘上,以方便使用者快速的调用。
lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令
制作方法:
(1)创建两个文件
第一个文件为test.ps1,在里面写入以下代码:
第二个文件为test.txt,在里面写入:
/c calc.exe
(2)编译test.ps1文件内容,执行生成lnk文件,系统将打开计算器
钓鱼方法:
与CHM文件步骤类似。
HTA钓鱼
HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。
HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。
制作方法:
(1)打开Cobalt Strike
(2)点击attacks->packages->HTML Application
(3)弹出的对话框中method选择powershell点击generate
(4)弹出的窗口中选择保存位置,点击确定
网站克隆
(1)复制目标网站前端信息
(2)构造相似网页
(3)获取用户登陆数据
方法:
1.cobalt strike能够快速复制目标网站前端页面,并且复制相似度极高
2.cobalt strike同时还可以在复制的网站中插入恶意代码,如果本地浏览器带有漏洞的用户,可以直接控制目标机器
具体步骤:
1.点击cobalt strike 主页面选择attack-> Web Drive-by->Clone File
2.Clone URL:克隆目标网站的url
3.注意问题:URL需要添加http协议和端口(80)
4.Local url:本地克隆路径
5.Local host:本地主机ip
6.Local port:本地端口
7.Attack:克隆后目标网站执行脚本,如:flash漏洞
钓鱼邮件
钓鱼邮件指利用伪装的电邮,欺骗收件人将账号、口令等信息回复给指定的接收者;
或引导收件人连接到特制的网页,这些网页通常会伪装成和真是网站一样,如银行或理财的网页,令登录者信以为真,输入信用卡或银行卡好嘛、账户名称及密码等而被盗取。
方法:
工具:swaks
swaks是面向事务的SMTP测试工具。可向任意目标发送给任意内容的邮件
kali自带,官网:swaks
具体步骤:
1.swaks --to [email protected] 测试邮箱连通性
2.swaks --to [email protected] --from [email protected] --ehlo www.126.com --body “welcome MissGun” --header "Subject:welcome"
--to 收件人
--from 发件人
--ehlo 伪造邮件ehlo头
--body 发送正文
--header 邮件头信息 -subject:邮件标题
通过邮件伪造可以发送任意内容,如:重置连接,木马等。同时可以结合网站克隆制作钓鱼网页来进行高级钓鱼策略。