渗透测试

渗透测试过程
【根据渗透测试执行标准PTES】
1.前期交互阶段
2.情报搜集阶段
3.威胁建模阶段
4.漏洞分析阶段
5.渗透攻击阶段
6.后渗透攻击阶段
7.报告阶段

1.前期交互阶段:
测试团队与客户讨论,明白需求,确认测试的范围、目标、限制条件、授权(书面)

2.情报搜集阶段:
进行信息收集、漏洞打点

3.威胁建模阶段:
团队成员商讨,根据的收集到的信息进行【威胁建模theat modeling】与攻击计划

4.漏洞分析阶段:
进行漏洞分析

5.渗透攻击阶段:
渗透攻击(Exploitation),利用安全漏洞进行攻击、入侵、获取权限

6.后渗透阶段:
后渗透攻击post exploitation,测试团队根据目标防御计划的特点,实施获取敏感数据,进一步拓展、实施跳板

7.报告阶段:
交付给客户,拿到钱,写报告

dc1的实验完成了前五步,前期搜集到资产,进行了主机发现,搜集到足够信息后分析出可以利用的漏洞,然后利用工具实现漏洞的利用,拿到系统权限,拿到数据库的数据。但是没有进行进一步的内网渗透。
在这些步骤,我认为很大程度上在信息收集阶段就可以决定一次渗透测试的效果。因为我们必须对资产边界一类问题了解清楚,才能合法的进行测试,并且,由于安全问题遵从短板效应,只有详细的了解到相关信息,才能得到突破口。再者,当我们遇到漏洞或者其他可以利用的地方时,我们除了发现,还要能识别,比如被加密的数据,被编码的数据,他们的加密方式是什么,他们的编码方式是什么,比如一眼能看出来md5,sha-1编码等。这样,在渗透测试的过程中才能把精力花在正确的方向,不至于一开扫之后就啥都不懂了。

渗透工具有很多,我们的老朋友kali集成了许多工具。搞渗透嘛,离不开虚拟机和工具,想起这几年东密歇根大学的DR.lee还有班菲尔德教授给我们带来的实验课,真实而有趣,第一次玩虚拟机,装win8是在大一的那个夏天哈哈,第一次装kali则是信安协会的培训装的,后面几个学期DR.lee的课玩服务器,我也算是windows xp、win7、win8、win10、windows2008、windows2012、centos7、kali(debian)、ubuntu都玩过的,vm15.5从班菲尔德教授上课一直用到现在,坚挺得很,我可谓是太会装虚拟机了,下面是遇到安装或者启动的时候虚拟机黑屏没反应的措施:
1.首先把虚拟机关闭,把vm关闭,把进程关了,重启一遍,然后物理机cmd,输入一下命令:
netsh winsock reset 这条命令相当于重启一下网络,因为虚拟机可能出现了接口的冲突
2.安装新的虚拟机时,除了稍后再配置光盘映射,启动时最好在【选项】虚拟机启动项里选择启动,然后再bios界面把光盘的位置通过方向键拉到第一位

然而当我想做实验买来有嗅探功能的网卡,开开心心插进电脑,不是kali死机就是物理机死机,gg了。我的小愿望是电脑能正常运行kali然后被我插上网卡进行试验。

渗透测试框架
工具:Metasploit:是一个开源的渗透测试框架,也是漏洞研究与渗透代码开发平台

这个工具可以在渗透测试的各个阶段发挥一定的作用
1.在情报搜集的阶段:
metasploit有自己的扫描探测,也有插件利用其它工具比如:Nmap、Nessus

2.威胁建模阶段:
支持数据库命令将信息汇总到MYSQL数据库,帮助找出最可行的攻击路径

3.漏洞分析阶段:
提供大量协议的Fuzz探测器与Web应用漏洞探测模块

4.后渗透阶段:
metasploit有一个名为 Meterpreter 的工具,该工具可以驻留在内存并且具有面纱能力,是个高级的后门程序,比其他工具更出色(BO、BO2K、冰河、灰鸽子

5.报告生成阶段:
可生成报告

之前玩DC-1靶场的时候就有用到Metasploit,具体看看它的一些命令和操作。

该工具在kali就有,可以用kali进行实验,下面是一些常用命令:
1.msf>back
算错模块可以返回
2.msf>show exploits
显示工具中所有的可用的渗透攻击模块,exploits可以分为 主动型 和 被动型 ,被动型等待连接之后才能用,一般用于浏览器,ftp等
3.msf>search
用于查找特定的渗透攻击、辅助或攻击载荷模块。比如要搜索跟sql有关的模块
msf>search sql
如果是搜索特定漏洞,如
msf>search MS08_067

4.msf>show auxiliary
显示所有辅助模块以及用途
5.msf>show options
显示参数,并且显示yes的参数是需要配置的,比如DC-1要用到的命令需要配置RHOST才能使用
6.msf>show payloads
将当前模块的攻击载荷显示出来
7.msf>use
找到需要使用的攻击载荷或者模块之后,用use命令加载它们,这个时候提示符会变成该模块的命令提示符,通过配合show options来配置参数进行利用
8.msf>show targets
可以列出受漏洞影响的目标系统的类型
9.msf>info
显示更加详细的信息
10.msf>setunset
所有的参数只有set和unset两个状态,有些参数时必填的
11.msf>check
检测目标主机是否存在指定漏洞

渗透实践

一、信息搜集

被动信息搜集:通过搜索引擎、社交媒体等进行搜集,如通过 whois信息,dns信息等
1.搜索引擎查询:
掌握一些hacking语法
site: 指令:只显示来自某个目标域名(例如xx.com)的相关结果
intitle: 指令:只显示网页标题包含搜索关键字的结果
inurl: 指令:只显示在URL中有关键字的结果,比如找后台网页
【上述命令可以组合使用】


2.IP查询
一般ping一下。但是很多企业的waf是阻止ping的,还有当企业使用CDN(conten delivery netwo)内容分发网络技术的时候,ping到的只是部署的静态页面的服务器,这个时候可以试试用外国ip来ping,因为CDN主要针对国内加速。或者比如目标时www.xx.com的时候不妨把www去掉再ping,因为一级域名没有被解析到CDN服务器上。


3.WHOIS搜集
除了站长之家一类的网站可以查看信息,如果使用linux,使用 whois xxx.com可以查询目标域名的whois 信息


4.DNS信息搜集
Linux的 host 命令可以查询DNS服务器,如
host -t ns xxx.com


5.旁站查询
子域名爆破,或者用必应搜索引擎,输入:
ip:%xxx.xxx.xx.xx来查看


主动搜集:会与目标主机进行交互,会留下记录
1.发现主机
使用Nmap工具进行扫描,如扫描网络在线的主机
nmap -sP 192.168.xx.xx 或者 nmap -sP 192.168.1.0/24
[-sP的意思是用ping命令扫描,但是不扫描端口,应该是基于字典的一个遍历扫描]

2.端口扫描
使用Nmap其他命令,如
namp -p 1-65536 192.168.1.x扫描目标主机开放的端口

3.指纹探测
使用Nmap其他命令,如
nmap -O 192.168.1.x 扫描主机的系统或者版本

4.Web指纹探测
使用Nmap其他命令,如
nmap -sV 192.168.1.x 扫描一个web容器的信息,因为很多时候不同的容器默认的错误页显示都是不一样的,从很多地方的特征可以判断出容器的信息。打个比方,同样是错误页,apache就跟nginx显示的404不一样。

5.Web敏感目录扫描
通过字典来扫描的,可以使用:
【工具:dirb】需要自己提供一些敏感文件的字典
【工具:Webscarab】一款Web爬行工具,可以用来爆破目录

二、扫描

学一个工具:Nessus
这是一个漏洞扫描程序,其漏洞库一直更新,可同时在本机或者远端遥控,甚至可以在手机使用。
扫描阶段有很多工具可以使用,及进行测试的时候应该根据情况选择

三、漏洞利用
用呗

四、后渗透攻击
1.挖掘用户名和密码
学习过程中,很多密码是经过加密的,或者是被编码了,因此拿到了权限拿到了数据还不能马上利用。这就要求我们懂得辨认加密或者编码的方法了,比如:
windows系统存储哈希值一般为:
LAN Manger(LM)、NT LAN Manger(NTLM)、NT LAN Manger v2(NTLMv2)

在LM存储方式中,用户输入密码,或者更新密码,密码都会转换为哈希值。但是由于哈希长度会限制,就会把密码分为7个字符一组的哈希值,比如:
password123456 会被拆成password123456来存储。NTLM则不考虑长度,将密码作为整体加密。
【操作】提取系统用户名和哈希值
【工具】meterpreterhashdump模块
命令行: meterpreter>hashdump

然后想办法得到明文。

2.获取控制权
shell命令获取目标主机控制台


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注