教材学习第七章
1、Windows操作系统的基本框架
- Windows操作系统分为运行于处理器特权模式的操作系统内核,以及运行在处理器非特权模式的用户空间代码。
- 采用宏内核模式来进行构架,这使得任意的内核模块或设备驱动程序都可能破坏其他内核模块数据,这种宏内核机制也使得Windows操作系统容易遭受以驱动方式植入内核的Rootkit的危害。
- Windows操作系统内核基本模块:Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、
Windows窗口与图形界面接口内核实现代码。
Windows操作系统在用户态的代码模块:系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。
Windows操作系统内核中实现的核心机制:Windows进程和线程管理机制、Windows内存管理机制、Windows文件管理机制、Windows注册表管理机制、Windows的网络机制。
2、Windows操作系统的安全体系结构与机制
Windows安全体系结构:Windows操作系统基于引用监控器模型来实现基本的对象安全模型。
Windows身份认证机制:Windows操作系统中以安全主题概念来包含所有进行系统资源访问请求的实体对象,有用户,用户组,和计算机三大类。
Windows授权与访问控制机制:Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施。在Windows服务器操作系统中,用户可以执行内建的whoami命令来查看当前用户的访问令牌信息。
Windows对于系统中所有需保护的资源都抽象成对象,具体类型包括文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存、通信接口等,而对每个对象会关联一个SD安全描述符,对象安全描述符由如下主要属性组成:Owner SID、Group SID、DACL自主访问控制列表、SACL系统审计访问控制列表。
Windows安全审计机制:系统审计策略在本地安全策略中由系统管理员定义,来确定系统对那些事件进行记录。
3、Windows远程安全攻防技术
Windows远程攻击技术可以分为以下几大类:远程口令猜测与破解攻击、攻击Windows网络服务、攻击Windows客户端及用户。
Windows系统的安全漏洞生命周期:Windows安全漏洞发现、利用与修补过程、安全漏洞公开披露信息库、针对特定目标的渗透测试攻击过程、使用Metasploit软件实施渗透测试。
Windows远程口令猜测与破解攻击:远程口令自猜测、远程口令字交换通信窃听与破解、远程口令猜测与破解防范措施。
4、Windows本地安全攻防技术
Windows本地特权提升:在攻击者获得Windows系统上的受限用户权限之后,他们讲立即着眼于获得终极特权:Administrator或者Local System账户。从受限用户权限尝试获得特权账户的攻击技术也被称为特权提升。Windows系统上进行特权提升的攻击途径主要是通过DLL注入和破解本地程序安全漏洞。
Windows消踪灭迹:①关闭审计功能(Windows Resource Kit工具包里的auditpol程序可以让他们轻易地关闭审计功能)②清理事件日志(使用Event Viewer事件查看器来打开、读取和清除这台主机上的事件日志)
Kali视频学习
Metasploit基础
Metasploitable在渗透测试中经常被用到,实际上这套软件包括了很多工具,这些工具组成了一个完整的攻击框架。
1、启动服务
在Kali中使用metaaploie,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据查询exploit和记录。
service postgresql start
service metasploit start
如果不想每次开机都手工启动服务,可以配置随系统启动。
update-rc.d postgresql enable
update-rc.d metasploit enable
2、路径介绍
Kali中msf的路径为/usr/share/metasploit-framework
Auxiliary:辅助模块,
encoders:供msfencode编码工具使用,具体可以使用 msfencode –l
exploits:攻击模块 每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录下。
payloads:其中列出的是攻击载荷,也就是攻击成功后执行的代码。比如我们常设置的windows/meterpreter/reverse_tcp就在这个文件夹下。
post:后渗透阶段块,在获得meterpreter的shell之后可以使用攻击代码。比如常用的hashdump、arp_scanner就在这里。
3、基本命令
msfpayload:用来生成payload或者shellcode
搜索的时候可以用msfpayload -l |grep "windows"这样的命令查询。-o 选项可以列出payload所需的参数。
msfencode:
msf中的编码器,早期为了编码绕过AV,现常用msfpayload与它编码避免exploit中的坏字符串。
msfconsole:开启metasploit的concle
Meterpreter介绍
meterpreter 是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出成功后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个meterpretershell.
meterpreter作为后渗透模块有多中类型,并且命令由核心命令和扩展库命令组成,极大地丰富了攻击方式,其有很多有用的功能,如,添加一个用户,隐藏一些东西,打开shell,得到用户密码,上传下载远程主机的文件,运行cmd.exe,捕获屏幕,得到远程控制权,捕获按键信息,清除应用程序,显示远程主机的系统信息,显示远程及其的网络接口和IP地址等信息。
常见的命令:
background:将当前会话放置后台
load/use:加载模块
interact:切换进一个信道
migrate:迁移进程
run:执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本。
resource:执行一个已有的rc脚本常用的meterpreter类型为:payload/windows/meterpreter/reverse_tcp
攻击步骤:
1、生成Meterpreter后门
2、打开MSF,开启监听,选择exploit/multi/handler
3、在目标机器上执行door.exe
4、通过help命令查看可执行的命令
5、常见命令使用,包括系统信息,抓取屏幕截图与抓取HASH等。
6、目录浏览
7、键盘监听
8、扩展工具,load/use之后再输入help,就可以了看到有关这个模块的命令的说明了
9、扩展工具之Minikatz,抓取本地密码明文
Metasploit渗透测试
怎样设置跳板机?
在跳板机获取一定权限后,需要积极地向内网主机权限发展,获取指定的目标信息,探查系统的漏洞,借助Msf已经得到的Meterpreter后门,可以使后续操作更容易。
1、查看当前网卡、网段信息
先控制一台跳板机,查看相关网卡网段信息
2、添加路由表 run autoroute -s 10.0.0.1
3、开Socks代理 通过使用 auxiliary/sever/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:
BeEF
对XSS漏洞需要强大框架的支持,如网上的XSS平台。在Kali下,BeeF是一个不逊色于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。
1、命令行下启动Beef beef-xss 此时浏览器自动访问此页面:http://127.0.0.1:3000/ui/authentication 使用默认用户名beef与默认密码beef登录:
2、假设被测试主机由于XSS漏洞请求到 http://192.168.11.152:3000/demos/basic.html
3、HOOK持续的时间为关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commands模块,我们可以完成很多任务:
选取MISC下Raw JavaScript模块作为测试用例:
执行,查看返回结果,成功则显示:
4、代理Proxy功能
选中目标主机,点右键,在菜单中选中Use as Proxy;然后在Rider选项卡中的Forge Request编辑并发送想要发送的内容。