20199310 2019-2020-2 《网络攻防实践》第7周做业

做业课程: https://edu.cnblogs.com/campus/besti/19attackdefense
做业要求: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612
课程目标: 学习《网络攻防技术与实践》教材第七章,并完成课后做业
本次做业实现目标: 学习Windows操做系统安全攻防

做业正文:

1 知识点梳理

1.1 Windows操做系统的基本结构

Windows操做系统的基本结构
分为运行于处理器特权模式(ring0) 的操做系统内核,以及运行在处理器非特权模式(ring 3)的用户空间代码。Windows与包括UNIX在内的现有大多数商业操做系统同样, 采用宏内核(monolithic) 模式来进行架构,即大量的内核模块与设备驱动程序共享内核态内存空间,这使得任意的内核模块或设备驱动程序均可能破坏其余内核模块数据,这种宏内核机制也使得Windows操做系统容易遭受以驱动方式植入内核的Rootkit 的危害。html

Windows操做系统内核的基本模块
Windows执行体,Windows内核体,设备驱动程序,硬件抽象层,Windows窗口与图形界面接口内核实现代码。
Windows操做系统在用户态的代码模块
系统支持进程,环境子系统服务进程,服务进程,用户应用软件,核心子系统DLL。
Windows系统安全体系结构
Windows操做系统基于引用监控器模型来实现基本的对象安全模型,系统中全部主体对客体的访问都经过引用监控器做为中介,由引用监控器根据安全访问控制策略来进行受权访问,因此访问记录也都引用监控器生成审计日志。
web

  • SRM是内核态中的安全引用监控器,LSASS是用户态中的本地安全受权子系统服务,实现主体用户的身份认证机制、对全部资源对象的访问控制机制,来肯定安全主体身份的真实性;
  • Winlogon进程与LSASS中的Netlogon分别负责Windows本地和远程登陆用户的身份认证,利用LSASS所提供的身份验证服务,来肯定安全主体身份的真实性;
  • 内核中的安全引用监控器做为Windows资源宝库的看门人,根据LSASS服务配置的安全访问控制策略,负责对全部安全主体访问Windows资源对象的受权访问控制;
  • 安全引用监控器根据LSASS服务配置的安全审计策略,对访问过程当中关注的事件进行记录,并由EventLog生成系统审计日志。

1.2 windows三个基本安全功能特性:

1.2.1 身份认证机制

Windows操做系统中以安全主体概念来包含全部进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类,对于每一个安全主体,以时间和空间上都全局惟一的SID安全标识符来进行标识,程序代码的执行环境,而帐户权限的根本做用就是限制这些帐户内运行程序对系统资源对象的访问。Windows系统中拥有一些内建帐户,如拥有最高权限的本地Administrator帐户,做为自动运行系统进程环境的SYSTEMLocalSystem帐户,具备相对极少权限的Guest图
名访客用户,以及IUSR_ Machinename IIS服务的匿名网络访问帐户等。而这些帐户在黑客眼中,本地Administrator和SYSTEM帐户拥有最高的权限,是他们攻击的终极目标。
用户组是为了简化用户管理而引入的用户帐户容器,经过将用户帐户添加入特定的用户组,就可使得该用户拥有用户组配置的所有权限,有效地使用用户组,可使得系统管理员对权限控制的配置工做量大大减小。
Windows用户帐户的口令通过加密处理以后被保存于SAM或者活动目录AD中,其中本地用户帐户口令信息通过不可逆的128位随机密钥Hash加密后存储在SAM文件中,SAM存储于%systemroot%\system32\config\sam文件系统路径位置,并在注册表的HKEY_LOCAL_MACHHINE\SAM存有副本,Windows内核对SAM文件加上了一个持久性的文件锁,通常只有LocalSystem帐户权限才能够读取,黑客们已经提出了多种技术能够对SAM加密口令字进行暴力破解。
shell

1.2.2 Windows受权与访问控制机制

Windows的受权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM做为安全主体访问对象资源时的中介,根据设定的访问控制列表进行受权访问。在用户等安全主体通过认证以后,Windows系统会赋予用户一个访问令牌,在这个令牌中保存了一份与登陆用户帐户有关的安全主体SID标识符列表,包括用户帐户自己的SID,所属用户组的SID列表,同时还包含该用户所拥有的一- 些系统特权列表。在Windows服务器操做系统中,用户能够执行内建的whoami命令来查看当前用户的访问令牌信息,好比查询本机的用户访问令牌信息:

认证用户在启动进程执行特定操做时,进程在它的进程控制块结构中也将包含-一个安全访问令牌( Security Access Token),继承了启动进程的用户帐户中所拥有的访问令牌,并做为对一个进程安全环境的完整描述。windows

1.2.3 Windows安全审计机制

Windows安全审计机制的实现方式也比较清晰明了。系统审计策略在本地安全策略中由系统管理员定义,来肯定系统对哪些事件进行记录。Windows系统审计策略的配置如图所示:

LSASS服务将保存审计策略,并在对象启动审计功能后,在对象安全描述符中的SACL列表中进行保存; SRM安全引用监控器在进行对象访问受权时,也将依据对象的SACL列表配置,对指定的对象访问和操做事件进行审计记录,发送给LSASS服务;由LSASS服务补充审计记录细节信息后,再将这些审计记录发送给EventLog事件日志服务; EventLog 服务最后将事件日志写入日志文件中,并经过事件查看器工具展现给系统管理员,也能够做为第三方审计日志分析工具的分析输入数据源。Windows系统审计事件日志查看器:
api

1.2.4 Windows其余安全机制

Windows操做系统中还实现了大量其余安全机制,来保护用户更加安全地使用Windows系统,如图所示:

在此集成了对于保护Windows系统安全稳定运行最为关键的三项安全措施——防火墙、补丁自动更新以及病毒防御。除安全中心以外,Windows的安全特性还包IPSec加密与验证机制、EFS加密文件系统、Windows 文件保护机制、捆绑的IE浏览器所提供的隐私保护与浏览安全保护机制等。浏览器

2 实验内容

2.1 Windows远程安全攻防技术

Windows远程攻击技术:
远程口令猜想与破解攻击:远程渗透攻击Windows系统最简单的方法仍然是猜想或破解出系统的登陆口令,从Windows 操做系统诞生以来一直存在的口 令暴力破解、基于字典的猜想以及中间人身份认证欺骗攻击技术,仍对如今的Windows网络构成现实的威胁。
攻击Windows网络服务:不管Windows自身独有的SMB、MSRPC、NETBIOS等网络服务,仍是IIS、MSSQL等各类互联网服务在Windows系统上的具体服务实例,都不可避免地存在着可致使远程代码执行的高危性安全漏洞,攻击者也一直在利用这些漏洞来对Windows网络服务实施远程渗透攻击,从而获得Windows系统的访问权。
攻击Windows 客户端及用户:最近几年来在微软公司Windows XP/Vista/Windows 7等操做系统的开发过程当中,都应用了SDL安全软件开发生命周期,从而有效地提高了Windows系统及自己服务的安全性,同时引入了DEP数据执行保护、ASLR地址空间布局随机化机制、UAC用户帐户控制等安全特性,这都使得攻击者愈来愈难以利用传统的攻击渠道来远程攻陷Windows系统。在这种背景下,针对Web浏览器、第三方应用软件的客户端渗透攻击变得很是流行,此外,攻击者还会结合社会工程学技巧诱骗终端用户来帮助他们执行假装目的的恶意代码或流氓软件。
Winodws系统的安全漏洞生命周期:安全漏洞发现,安全漏洞渗透攻击,安全监测防护机制升级,安全漏洞消亡。
Metasploit:是一款很是优秀的、彻底开源的渗透测试软件,提供了CLI、Console、 Web和GUI四种不一样的用户交互接口,其中Console终端是比较经常使用的方式,能够在终端中输入help命令来查询所支持的各类命令,其终端的主要命令列表:

在后面的实践中咱们主要用到search,show,set,exploit/run等命令。安全

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

  • 1.在SMB服务决定授予网络用户对所请求的共享文件或打印机的访问权以前,它会先对用户身份进行验证,这就须要网络用户输入正确口令,而攻击者在此时就能够对系统实施远程口令字猜想攻击;
  • 2.攻击者一般使用SMB默认开放的隐藏共享卷做为攻击点,而后攻击者须要目标系统的用户名单做为猜想对象,而用户名单能够经过会话查点技术进行收集;
  • 3.攻击者经过攻击工具来自动执行Windows远程口令猜想。在命令行终端中输入“net use \HOSTIPC$ * /u:Administrator”,而后根据提示输入所猜想进行远程口令猜想攻击。

远程口令字交换通讯窃听与破解:窃听网络上的口令字交换通讯实施破解。Windows系统在对网络用户进行身份认证时,须要在网络上交换信息,来确认网络用户是否拥有预先设置的口令字秘密信息。Windows不一样版本在进行网络身份认证时,使用了LanMan、NTLM和Kerberos三种认证协议。
针对这几种Windows网络认证协议中存在的弱点,一些口令破解工具能够在线窃听到Windows SMB服务中交换的口令密文信息实施破解,如Cain and Abel,L0phtcrack。网络

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

  • 1.尽可能关闭没必要要开放的易受远程口令猜想攻击网络服务,包括TCP 139/445端口的SMB服务、TCP 135端口的WMI服务、TCP 3389端口的TS终端服务以及TCP 1433端口的MSSQLServer服务等;
  • 2.配置主机防火墙来限制对应端口的服务,尤为是访问这些服务的源IP地址范围;
  • 3.利用网络防火墙来限制这些服务的访问;
  • 4.保持Windows补丁的自动更新,并设置符合长度限制和复杂度限制的用户口令;
  • 5.指定和实施强口令字策略,设置帐户锁定阈值,对用户帐户进行一端实践的锁定,也能够在系统上激活帐户登陆失败实践审计功能,经过按期查看实践日志报告,或利用第三方日志分析工具来发现攻击者的远程口令猜想攻击。

动手实践:Metasploit Windows Attack

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

实践步骤:

1. 启动metasploit软件,可根据我的喜爱使用msfconsole. msfgui. msfweb 之一
使用命令msfconsole启动metasploit:

2. 使用exploit: windows/smb/ms08_067_netapi 渗透攻击模块
输入search ms08_067_netapi,会显示出找到的渗透模块:

输入use exploit/windows/smb/ms08_067_netapi,进入该漏洞模块的使用,show payload会显示出有效的攻击载荷,其中有个shell_reverse_tcp是通用命令shell,可以实现反向TCP内联。

show targets能够显示目标攻击的全部操做系统类型,其中咱们使用Windows XP SP1的虚拟机,IP地址为192.168.200.9:

3. 选择攻击PAYLOAD为远程shell, (正向或反向链接都可)
设置攻击有效载荷set payload generic/shell_reverse_tcp为反向链接:

4. 设置渗透攻击参数( RHOST, LHOST, TARGET等)
设置targets,即为目标嗅探靶机的类型为2,即Windows XP SP1:

设置靶机和攻击机的IP地址:

5 执行渗透攻击
输入exploit开始攻击:

6. 查看是否正确获得远程Shell,并查看得到的权限
输入enter键就能够进入靶机shell,也就是cmd,能够查询在靶机上用net user查看全部用户:

当前打开的cmd为C:\WINDOWS\system32下的cmd.exe,并且靶机仅存在Administrator用户,所得到的权限也是Administrators管理员用户组的权限。

2.2 Windows本地安全攻防技术

在攻击者得到Windows系统上的受限用户权限以后,他们将当即着眼于得到终极特权:Administrator或Local System 帐户。从受限用户权限尝试得到特权帐户的攻击技术也被称为特权提高( Privilege Escalation),业内简称为“ 提权”。Windows 系统上进行特权提高的攻击途径主要是经过DLL注入和破解本地程序安全漏洞。须要注意的是,从技术上来讲,得到了Administrator 权限并不意味着得到了Windows系统的最高权限,Local System 帐户比Administrator帐户的权限更高,好比Administrator不能在系统运行时刻读取SAM位置注册表键值,而Local System 却能够。
本地获取口令字密文的主要途径

  • 1.从另外一操做系统启动后拷贝文件系统中的口令密文文件,这须要攻击者对目标系统拥有物理访问权限,可以在物理主机设备上插入可启动光盘或U盘,并重启系统,经过攻击者控制的操做系统对系统磁盘上的密文文件进行获取。这种攻击途径在远程攻击中没法实施;

  • 2.利用硬盘修复工具包中的rdisk工具,执行“rdisk/s-” 命令建立SAM备份文件副本;

  • 3.使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文。
    Windows消灭踪影

  • 1.Windows Resource Kit工具包里的auditpol程序能够关闭审计功能。

  • 2.经过远程桌面控制目标系统,使用Event Viewer事件查看器来打开、读取和清除这台主机上的事件日志,另外一种elsave程序可以根据攻击者输入的命令行参数把符合条件的日志记录进行清除;

3.实践做业

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

来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为: lab.wiretrip.net), 这是一次很是典型的针对NT系统的攻击,并且咱们有理由相信攻击者最终识别了蜜罐主机,所以这将是一个很是有趣的案例分析挑战。你的分析数据源只有包含整个攻击过程的二进制记录文件,而你的任务就是从这个文件中提取并分析攻击的所有过程。
1.攻击者使用了什么破解工具进行攻击?
首先,咱们能够经过snort提供的命令来查看网络日志文件中和攻击机213.116.251.162相关的数据包,命令为snort -vdr snort-0204\@0117.log host 213.116.251.162 > ./config/snort.txt

接下来能够采起上一周实验snort生成alert文件的方法snort -r snort-0204@0117.log -c /etc/snort/snort.conf -K ascii -l ./log用已知入侵方法进行检测,其中-l指定生成alert文件路径,必须提早新建一个log文件夹,能够看到生成了342个alert信息:

进入log文件目录,能够发现生成了以IP命名的文件夹,里面存在的alert信息,能够经过snort官网查询。

这条上网查到的貌似是检测到非标准超文本协议或事件,可能须要更新规则库才能检测出。

这条是检测出ftp服务登陆出现错误,说明攻击机尝试经过ftp服务链接靶机。

这条是检测出目录列举和监听。

这条是经过ping进行探测。

这条是一个来自运行L3的主机的Retriever1.5安全扫描器的主机的回波请求,包含消息请求中的惟一有效负载。

这条是Web目录遍历警报。

这条是web403访问限制错误消息。

这条是msadcs.dll访问,该DLL为MDAC RDC控件服务程序,在3.x和4.x中存在已知的安全漏洞,这个漏洞使得远程攻击者能够执行任意命令。

这条是在Microsoft数据访问组件(MDAC)2.1到2.6的远程数据服务(RDS)组件和InternetExplorer5.01到6.0中基于Heap的缓冲区溢出,容许远程攻击者经过对数据块的格式错误的HTTP请求进行MDAC溢出攻击。

这条是cmd远程shell访问。

这条是文件拷贝。

这条是nc.exe后门程序访问。
以上对于日志的分析能够得出攻击机主要利用了WEB-MISC http directory traversalWEB-IIS MDAC Content-Type overflow attempt这两个漏洞,前者(MS00-078)是微软IIS 4.0和5.0都存在利用扩展UNICODE字符取代"/"和"\"而能利用"../"目录遍历的漏洞,(MS03-026)也能够利用远程过程调用(Remote Procedure Call,RPC)的接口(具体位于RemoteActivation()函数)进行缓冲区溢出攻击。后者(MS02-065)是MS MDAC缓冲溢出缺陷容许执行任意指令(Q32Array414)的漏洞。攻击机经过nc.exe后门程序远程链接了目标蜜罐主机的shell链接。

2.攻击者如何使用这个破解工具进入并控制了系统?
了解了alert信息,咱们如今在用wireshark打开日志文件,而后用ip.addr == 172.16.1.106 and http过滤靶机的http信息:
攻击机首先请求访问了蜜罐主机的http://lab.wiretrip.net/

从User-Agent中能够获取浏览器信息,以及操做系统为Windows NT 5.0,安装了MSIE5.01和Hotbar2.0插件,而后攻击机向蜜罐主机请求了一些gif图,这里没有能分析出什么有价值的信息。
在第108条中出现了以下的信息:

这里%C0%AF是“/”字符的Unicode表示方式,也就是上面所说的(MS00-078)漏洞,第128条中出现了msadcs.dll也就是利用上面分析到的RDS(MS02-065)漏洞,远程攻击者能够执行任意命令。:

第137条中利用上述漏洞使用SQL注入,执行cmd /c echo werd>>c:\fun命令,在查询语句中仍是用了dbq=c:\winnf\help\iis\htm\tutorial\btcustmr.mdb,能够查询到这是经过msadc2.pl渗透攻击工具进行了攻击。

咱们能够经过wireshark中统计的http请求中来看到后续的信息,这种方式虽然比一条一条查找内容要简便,可是上面的数据顺序可能有必定的改变,大致上攻击者经过ftpcom这个程序将nc.exe,pdump.exe,samdump.dll等下载到蜜罐主机上,而后攻击机貌似尝试用6868,6968,6969三个端口分别尝试,构建了远程shell通道,即攻击机能够直接调用蜜罐主机的cmd.exe:

3.当攻击者得到系统的访问权后作了什么?
第1361条数据,显示将c:\Program Files\Common Files\system\msadc\pdump.exe > yay.txt,这里攻击者尝试使用pdump直接从注册表中提取口令密文,可是失败了。

第1704条数据,显示攻击机经过shell的net user在查蜜罐主机的用户信息:

第1753条数据,显示攻击机经过shell的net session在与查蜜罐主机创建会话的主机信息:

第2320条数据,显示攻击机经过shell的net localgroup Domain Admins IWAN_KENNY /ADD尝试将IUSER用户加入Domain Admins组,提高权限至Administrator:

4.咱们如何防止这样的攻击?
首先是及时获取Unicode和RDS两个漏洞的补丁,其次是增强防火墙管理,再有就是禁用用不着的RDS远程桌面服务,防止被黑客渗透攻击。

5.你以为攻击者是否警觉了他的目标是一台密罐主机?若是是,为何?
攻击机察觉了它是蜜罐主机,攻击者将如下内容写入文件rfp.txt:

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

攻防对抗实践内容:攻击方Metasploit Windows Attack,防护方: wireshark 捕获攻击流,分析出攻击哪一个安全漏洞,从官方网站上下载该安全漏洞补丁进行修补,给出攻防过程报告。
攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,得到控制权。
防守方:使用tcpdunp/wireshar/snort 监听得到网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间,攻击利用漏洞、攻击使用shellcode, 以及攻击成功以后在本地执行的命令输入等信息。团队共同合做完成渗透攻击与分析实验报告。
咱们借用实践一的漏洞攻击,在攻击机开始攻击后用wireshark进行监听,前两条数据包是arp广播和回复,而后3-5条TCP数据包创建三次握手,咱们能够看到攻击者IP地址192.168.200.7,目标IP192.168.200.7和端口445、攻击发起时间Apr 13, 2020 09:39:56.50,MS08-067漏洞是经过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,因此用到了大量SMB协议:

而后在攻击机中靶机的界面输入net user查询靶机用户,能够在wireshark追踪流中显示:

根据补丁连接进行漏洞补丁修补。

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

  • 问题1:wireshark捕获数据包数据分析
    问题1解决方案:一开始真的是一个数据包一个数据包检查过去,后面才发现能够用分析->追踪流->TCP流来检查一个完整数据流的ascii内容,这样效率提升不少。


  • 问题3:对于大量数据包的取证分析
    问题3解决方案:感受能够先用snort检测报警信息,而后查询snort官网,找出最主要的漏洞和渗透技术。而后对数据包进行TCP流分析,了解整个渗透过程。

5.学习感悟和思考

本次学习内容主要为Windows操做系统的操做系统安全攻防,主要学习了metasploit这个软件的操做,而且经过求证明践对wireshark有了进一步的掌握。

参考资料

相关文章
相关标签/搜索