1、信息收集

在划定了测试范围之后,就需要进入信息收集阶段。在这个阶段,渗透人员需要使用各种公共资源尽可能地获取测试目标的相关信息。他们从互联网上搜集信息的渠道主要有:
论坛、公告板、新闻组、媒体文章、博客、社交网络、其他商业或非商业性网站、GitHub、….此外,也可以借助各种搜索引擎中获取相关数据,如谷歌、雅虎、MSN必应、百度等。收集信息主要包括DNS 服务器、路由关系、whois 数据库、电子邮件地址、电话号码、个人信息以及用户账户。收集信息越多,渗透测试成功的概率越高

1.1、DNS信息

在收集DNS 信息的时候,主要关注域名或注册商,管理员联系方式,电话和邮箱,子域名等信息。

1.1.1、whois查询

whois是一个集成在kali 虚拟机中的小工具
whois工具可以用来查询域名注册信息。

1.1.2、子域名查询

可以查询子域名的网站[https://searchdns.netcraft.com/],这种方法查询大型网站比较有优势

1.1.3、域传送漏洞

DNS区域传送指的是一台备用服务器使用来自主服务器的数据刷新自己的域数据库。这为运行中的DNS 服务提供了一定的冗余度,其目的是为了防止主域名服务器因为意外故障变得不可用时影响到整个域名的解析。一般来说,DNS区域传送操作只在网络中真的有备用域名服务器的时候才有必要用到,但是许多DNS服务器却被错误的配置成只要有client 发出请求,就会像对方提供一个zone 的数据库的详细信息,所以说允许不受信任的英特网用户执行DNS区域传送操作是后果最为严重的错误配置之一。
可以使用dig 工具来检测域传送漏洞,命令如下
[dig axfr @dns.example.com example.com]

通过域传送漏洞
子域名信息
子域名对应的IP地址

1.1.4、子域名爆破

• 工具:子域名挖掘机
• dnsrecon
[dnsrecon -d vulnweb.co -D /root/dic/dns.dic -t brt]

1.2、工具:

1.2.1、layer(子域名挖掘机)

1.2.2、dnsrecon

dnsrecon -d vulnweb.com -D /root/tmp/dic/dns.dic -t brt
-d 指定域名 -D 指定字典 -t 指定模式

1.2.3、DNS2IP

通过DNS 解析找到IP地址

1.2.3.1、ping

非权威解答
ping testfire.net
65.61.137.117

ping baidu.com
39.156.69.79

ping www.baidu.com
39.156.66.18

1.2.3.2、nslookup

testfire.net 65.61.137.117

testfire.net
Server: 192.168.1.2
Address: 192.168.1.2#53

Non-authoritative answer:
Name: testfire.net
Address: 65.61.137.117


baidu.com
Server: 192.168.1.2
Address: 192.168.1.2#53

Non-authoritative answer:
Name: baidu.com
Address: 39.156.69.79
Name: baidu.com
Address: 220.181.38.148


www.baidu.com
Server: 192.168.1.2
Address: 192.168.1.2#53

Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 39.156.66.14
Name: www.a.shifen.com
Address: 39.156.66.18

1.2.3.3、dig

dig testfire.net

dig @8.8.8.8 testfire.net 指定dns服务器
dig +trace testfire.net 获取域名的详细解析过程

1.2.3.4、dnsenum

dnsenum testfire.net

此处推荐dnsenum,此工具在解析域名的时候
会自动检测域传送漏洞

1.2.3.5、 利用站长工具

http://tool.chinaz.com/dns/

路由追踪

1.3、CDN 加速问题

1.3.1、CDN 是内容分发网络

本意是进行节点缓存,是网站访问速度加快。一般情况下是没办法得到目标的网站的真实IP 的。关于SDN 加速可以作为一个课题。
参考资料如下:

https://www.t00ls.net/
http://www.91ri.org/6233.html
http://www.91ri.org/3563.html

1.3.2、IP 查询

1.3.2.1、IP 查询

http://ip.chinaz.com/65.61.137.117

1.3.2.2、同IP 网站查询

同一个IP 上的网站
1.1.1.1
A B
旁站(同一个服务器上的两个网站)

1.1.1.* C 段查询

1.3.2.3、IP whois 查询

1.3.2.4、IP2Location

65.61.137.117

1.3.2.5、查询IP 地址经纬度

https://www.maxmind.com/zh/home

得到IP地址的大致经纬度(40.9476, -73.8624)

1.3.2.6、通过GPS 查询物理位置

http://www.gpsspg.com/maps.htm

2、扫描

2.1、资产发现

发现目标环境中哪些资产,联网设备,主机,服务器,各种服务等。

2.1.1、扫描神器(nmap)

如果使用kali 中的nmap 扫描的时候,建议桥接
如果在没有指定端口的情况下,默认扫描top 1000 端口

端口扫描

开启的端口
端口上的服务
扫描方式

TCP 全链接扫描
SYN 半连接扫描

隐蔽扫描
  Null 扫描Xmas 扫描FIN  扫描

参数

-sP/-sn 不进行端口扫描
-p
-p 80
-p 1-80
-p 80,3389,8080
-p 1-65535
-p-
-sT TCP全连接扫描
建立完整的三次握手过程
-sS SYN半连接扫描
只进行三次握手的前两次
-sN Null扫描
-sX Xmas扫描
-sF Fin扫描
-sV 显示服务的详细版本
-O 获取操作系统类型(不太准确)
-oN/-ox 保存扫描结果,txt/xml
xpath 自学
-A 全面扫描
-T0 ~ -T5 时序选项

工具

wireshark

ipaddr == 10.0.105.1 and tcp.port == 80
过滤

Nessus NeXpose OpenVAS

OpenVAS http://www.openvas.org
OpenVAS使用方法:现在虚拟机里边安装,账密分别是 admin 空,之后按照提示的网址在浏览器打开,登陆即可,先在configuration里边设置目标,随后在Scans里边添加任务,随后开始任务即可。

3、口令破解

口令安全威胁

*口令安全概述

现在很多地方以用户名(账户)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等。

口令安全现状

弱口令

类似123456、654321、admin123 等这些常见的弱密码

默认口令

很多应用或者系统存在默认口令。比如phpstudy 的mysql 数据库默认账密[root/root], Tomcat 管理控制台默认账密[tomcat/tomcat]等。

明文传输

比如HTTP|FTP|TELNET
等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,有嗅探的风险。

破解方式

在线破解方式

账密,需要认证
hydra
-------参数--------
-l 指定一个用户名
-p 指定一个密码
-P 指定密码字典
-L 指定用户名字典
-vV 显示爆破细节
-o 保存爆破结果
-f 找到正确的密码就停止爆破
-t 线程
-e n null
s same
r reverse

用户名未知,密码未知
用户名已知,密码未知
用户名未知,密码已知

离线破解方式

密文,还原成明文的过程

暴力破解

暴力破解就是利用所有可能的字符组密码,去尝试破解。这是最原始,粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终会爆破出密码。下表根据不同的位数生成密码的空间大小
字符集 密码位数 密码空间
[0-9] 8 位 10^8=100000000
[0-9][a-z] 8位 36^8=2821109907456
[0-9][a-z] 8位 ??

字典破解

如果 能通过比较合理的条件,删选或者滤掉一些全字符组合内容,就会打幅度降低爆破的成本。我们把筛选出来的密码组成特定的字典。用字典爆破密码也是可以的,但是这样可能会漏掉真正的密码。密码字典大致分为以下几大类

弱口令字典

比如123456,admin 等这样的默认口令或弱口令

社工字典

人在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”
[zhangsan1992]
社工字典更具针对性,准确率也比较高。
我们可以根据个人信息生成密码字典。可以使用cupp工具、但是cupp工具是外国人发明的

apt-get update 更新软件列表
apt-get install cupp
cupp -i

[zhangsan|ajest|19920701|dnsec|123]
·字符集字典
如果能确定密码的字符集合,也将大大降低爆破的成本

crunch 工具

是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的定制自己的字典文件。
使用crunch 工具生成的密码可以输出到屏幕,保存文件或另一个程序。尤其是渗透测试需要爆破的时候,字典的编排等直接影响到我们的爆破速度,对整个渗透测试流程起着十分重要的作用。
kali 安装
crunch 为kali自带工具
[crunch]
查看帮助
[man crunch > crunch.help]
命令格式
crunch [] [options]
参数说明
min-len 设定密码的最小长度
max-len 设定密码的最大长度
charset string 字符集
oprions
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,记包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/usr/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-o 将密码保存到指定文件
-q 读取密码文件,即读取pass.txt
-r 定义重复一个字符串就重新开始
-s 指定一个开始的字符
-t 指定密码输出的格式
-u 禁止打印百分比
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
-l 生成特殊字符
-p 指定生成元素
查看库文件
[cat /usr/share/crunch/charset.lst]
特殊字符
% 代表数字
^ 代表特殊符号
@ 代表小写字母
, 代表大写字母

生成密码字典

生成1-8位密码字典,字符集合位小写字母,从a 开始到zzzzzzzz结束
[crunch 1 8]

生成1-6位的密码字典,字符集合位[abcdefg],从a 开始到gggggg结束
[crunch 1 6 abcdefg]

生成3 位密码字典,字符集合[ab ],从a 开始到 [ ]

生成指定字符串,比如生日的日期
[crunch 8 8 -t 199307%% -e 19930731]

生成元素的组合,比如123.com
[crunch 7 7 -t %%%.com -s 111.com -e 123.com]

在字典中输出特殊字符
[crunch 3 3 abc -t @@@ -l @aa]

以元素组合生成字典
[zhangsan|1993|0701]
[CRUNCH 4 4 -P AJEST 1992 0701]

保存字典文件
[crunch 11 11 -t 1700010%%%% -b 20mb -o START]

自定义字符集合
将自带字典进行备份

创建自定义字符集合[*.com] 字典文件
[crunch 5 5 -f charset.lst test -t @.com]

国内

亦思社会工程学字典生成器
真空密码字典生成器

简单介绍字典

子域名字典
默认账号密码字典
文件路径字典 (日志文件 Web 目录)
常用变量名字典
常用文件名字典
弱口令字典

Windows口令破解

windows口令远程爆破

hydra
[hydra -l administrator -P …/dic/pwd.dic 192.168.1.200 smb]
windows账户hash值破解
除了可以远程爆破windows密码,我们还可以从本地破解windows密码。
本地Windows 账户破解主要有两种方式
@ 从内存中读取windows 密码
我们可以用getpass 直接从Windows 系统内存中读取用户数据
@ Windows hash 值破解
Windows hash 值破解一共有两步操作。
首先我们使用QuarkPwDump 工具读取(导出)Windows 账户密码hash 值,
[C:\Users\Administrator\Desktop\QuarksPwDump.exe -dhl -t JOHN -o win2008.hash]
然后在使用 john 工具破解
[john win2k8.hash --format=NT --wordlist=/root/dic/winPass.dic]
[john --show win2k8.hash --format=NT]

linux 口令破解

linux 口令破解,也分远程破解和和本地破解。
远程破解主要是爆破ssh 服务,属于在线密码攻击。
本地破解需要拿到linux 的shadow 文件,进行hash 值破解,属于离线密码攻击

破解ssh 服务

我们使用hydra 攻击破解ssh 服务,hydra 攻击已经自动集成在kali 虚拟机中。
命令如下:
[hydra -l root -P …/dic/pwd.dic 192.168.1.150 ssh]
[hydra -L /root/dic/user.dic -P /root/dic/winPass.dic 127.0.0.1 ssh -e nsr -vV -o 127.ssh]

本地shadow 文件破解

内网渗透

我们可以使用john 工具,破解shadow 密码文件。
john 也是自动集成在kali 中。
john 破解的时候也需要准备一个字典。
[john shadow]

网络服务口令破解

在渗透测试中,我们同样会对服务的口令进行审计
·破解MSSQL 口令
[hydra -l sa -P /root/dic/test_pwd.dic 192.168.1.150 mssql -vV]

破解RDP 口令

[hydra -l administrator -P /root/dic/test_pwd.dic 192.168.1.150 rdp -vV]

破解FTP 口令

[hydra -L /root/dic/test_user.dic -P /root/dic/test_pwd.dic 192.168.1.150 ftp -vV]

渗透测试流程(一)(千峰学习笔记)相关推荐

  1. 千峰网络安全笔记(前三讲)

    典中典 <c语言从研发到脱发> <C++从入门到放弃> <Java从跨平台到跨行业> <Ios开发从入门到下架> <Android开发大全--从开 ...

  2. 渗透测试八个步骤【渗透测试流程】

    渗透测试遵循软件测试的基本流程,但由于其测试过程与目标的特殊性,在具体实现步骤上渗透测试与常见软件测试并不相同.渗透测试流程主要包括8个步骤,如下图所示: 下面结合上图介绍每一个步骤所要完成的任务. ...

  3. 第18节 渗透测试流程和简单案例

    渗透测试流程和简单案例 1渗透测试概述 2渗透测试大致流程 3简单实验 3.1扫描 3.2利用共享服务端口445漏洞之IPC$ 3.3修改用户名增加暴力破解难度的方式 3.4暴力破解密码 3.5漏洞利 ...

  4. 网络安全工程师千峰学习总结第四天

    网络安全工程师千峰学习总结第四天 前期回顾 1.虚拟化技术:vmware vsphere 2.格式化格式:NTFS FAT 3.ctrl+alt 4.企业 Enterprise 专业 professi ...

  5. 【CyberSecurityLearning 51】渗透测试方法论+渗透测试流程

    目录 渗透测试方法论 渗透测试(penetration testing,pentest) 渗透测试种类 * 黑盒测试 * 白盒测试 * 脆弱性评估与渗透测试 安全测试方法论 * 开放式web 应用程序 ...

  6. 渗透测试流程(单台服务器)

    渗透测试流程(单台服务器) 转载于:https://www.cnblogs.com/sky--/p/5781432.html

  7. 渗透测试入门17之一次完整的渗透测试流程

    一次完整的渗透测试流程 目录 渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对一个网站进行一步一步的渗透,发现 ...

  8. 渗透测试流程信息收集

    渗透测试是一种评估方法,一种通过模拟黑客的攻击方式,来评估网站安全的方法 渗透测试流程分为7个阶段 信息收集 漏洞扫描 漏洞利用 内网转发 内网渗透 痕迹清除 编写报告 但在这7个阶段之前还有一个前提 ...

  9. 渗透测试流程(基础理论)

    当时考nisp二级时所学的理论,记录下来复习使用. 渗透测试流程 1.专用术语介绍 ​ 1.脚本(asp.php.jsp) ​ 2.html (css.js.html) ​ 3.HTTP协议 ​ 4. ...

  10. 网络安全工程师千峰学习总结第八天

    网络安全工程师千峰学习总结第八天 本博客所写内容均是为了方便自己复习所使用,禁止转载或以博客中的命令手段攻击他人 服务器远程管理 一.远程管理类型 1.图形 2.命令行 二.远程桌面 三.telnet ...

最新文章

  1. python goto 用法
  2. C#基础知识整理:基础知识(10) 静态
  3. golang 遍历文件夹和文件
  4. Vagrant配置虚拟机
  5. [Qt]Qt程序发布:在ubuntu下打包成Debian包的过程
  6. C/C++之常用关键字
  7. [Angualr 2] Using FormBuilder
  8. python3 unicode_Python3 encode中的unicode-escape和raw_unicode_escape
  9. 两天,我把分布式事务搞完了!
  10. 05年的一个访谈记录
  11. nginx的指令root和alias的区别
  12. maven学习七之用户密码修改和添加用户
  13. 基于 Flink SQL CDC的实时数据同步方案
  14. sip协议详解_基于SIP协议的媒体录音规范12个应用场景-SIPREC/RFC6341详解
  15. 新内容创业时代,微博的造“星”哲学
  16. 第4章 序言的具体写法
  17. html的style不起作用,css样式不起作用是什么原因?
  18. 程序猿没有副业,太难了(个人经历不喜无视)
  19. IOT语义互操作性之标准与开源
  20. jQuery给元素增加属性

热门文章

  1. 分享五个最好的BT下载软件
  2. 使用ML.NET实现健康码识别
  3. 深入理解高级数据结构之红黑树
  4. Windows10自带的 录制音频 方法
  5. Spring MVC 第一个HelloWorld程序
  6. 分布式数据库TiDB在携程的实践
  7. NLP句子表征,NLP 的巨人肩膀(下):从 CoVe 到 BERT (转载)
  8. 【Love2d从青铜到王者】第十二篇:Love2d之碰撞检测(Detecting collision)
  9. 微信个人号有哪些好玩的自动回复?自动回复话术分享
  10. Nik Collection 4