教材《网络攻防技术》第七章的学习
一、Windows操作系统基本框架
1.windows基本结构分为运行于处理器特权模式的操作系统内核以及运行在处理器非特权模式的用户,即为内核态和用户态。
2.内核态:windows执行体、windows内核体、设备驱动程序、硬件抽象层、windows窗口与图形界面接口。
3.用户态:系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。
4.核心机制:进程和线程管理机制、内存管理机制、文件管理机制、注册表管理机制、网络管理机制。
5.网络管理机制:网卡硬件驱动程序(物理层)、NDIS库以及miniport驱动程序(链路层)、TDI传输层(网络协议驱动)(网络层和传输层)、网络APID以及TDI客户端(会话层和表示层)、网络应用程序和服务进程(应用层)。
二、安全体系结构和机制
1.监控器模型:主体到客体的访问都通过监控器作中间,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录都由监控器生成审计日志。
2.核心:SRM安全引用监控器(内核中)、LSASS安全服务(用户态)、winlogon/netlogn、以及Eventlog
3.身份认证机制:
-
安全主体:用户、用户组、计算机
-
身份认证:本地身份认证(winlogon进程、GINA图形化登录窗口与LSASS服务)、网络身份认证(NTLM、Lanman、kerberos)
4.授权与访问控制机制:
-
对象:文件,目录,注册表键值,内核对象,同步对象,私有对象,管道,内存,通信接口。
-
属性组成:Owner SID,Group SID,DACL自主访问控制列表,SACL系统审计访问控制列表。
5.安全审计机制
6.其他安全机制:安全中心(防火墙、补丁自动更新、病毒防护),IPsec加载和验证机制,EPS加密文件系统,windows文件保护机制,捆绑的IE浏览器所提供的隐私保护和浏览器安全保护机制。
三、远程安全攻防技术
1.包括远程口令猜解攻击、windows网络服务攻击,windows客户端和用户攻击。
2.生命周期:
-
windows安全漏洞发现,利用与修补过程
-
安全漏洞公开披露信息库:CVE,NVD,SecyrityFocus,OSVDB
-
针对特定目标的渗透测试攻击过程:漏洞扫描测试、查找针对发现漏洞的渗透代码、实施渗透测试
-
使用metasploit软件实施渗透测试:用户接口(CLI、Console,web,GUI)
3.远程口令猜解攻击: -
远程口令猜解:SMB协议(tcp445、tcp139),其他包括WMI服务、TS远程桌面终端服务,MY SQL数据库服务、SharePoint。工具包括:Legion、enum、smbgrind、NTScan、XScan、流光
-
远程口令字交换通信窃听与破解:NTLM、Lanman、NTLMV2和kerberos网络认证协议的弱点。
-
远程口令猜解的防范:关闭不必要的易受攻击的网络服务、配置主机防火墙来限制某些端口服务、网络防火墙限制这些服务的访问、禁用过时且有安全缺陷的Lanman和NTLM、指定强口令策略。
4.网络服务远程渗透攻击:针对NETBIOS服务的著名漏洞和攻击、针对SMB服务的著名漏洞和攻击、针对MSRPC服务的著名漏洞和攻击、针对windows系统上微软网络的远程渗透攻击、针对windows系统上第三方服务的远程渗透攻击。
防范措施:最基本的是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞。
四、本地安全攻防技术
1.本地提权攻击:利用操作系统内核、特权用户启动程序中安全缺陷与漏洞,原因是服务器和桌面系统没有即时进行补丁更新。
2.敏感信息窃取:
- windows系统口令密文提取技术(拷贝口令密文文件、rdisk工具备份、pwdumpx从SAM文件或者活动目录中提取口令密文)
- windows系统口令字破解技术(L0phtCrack、John the Ripper、Cain)
- 用户敏感数据窃取:find、findstr、grep、meterpreter
- 本地敏感信息窃取防范:选择高强度、高防御的口令,使用更安全的加密明文算法,安全配置策略。
五、windows消灭踪迹
1.消灭踪迹关闭审计功能、清理事件日志。
防范措施:事先设置系统审计和网络服务审计,日志记录在不可擦除的CDROM上。
2.远控和后门程序
- 远控:命令行远控工具(Netcat,psexec,meterpreter),图形化远控工具(VNC,RemoteAdmin,PCanyware)
- 后门程序:国外(BO、BO2K),国内(冰河、灰鸽子、广外女生、PCshare、磁碟机、机器狗等)
- 防范措施:后门检测软件、杀软、rootkitrerealer、IcSword。
视频学习
Kali 漏洞利用之检索与利用
1.searchsploit
searchsploit 会通过本地的 Exploit-DB查找漏洞信息。需要注意的是,searchsploit 使用 AND 运算符,使用的术语越多,滤除的结果越多。
2.ikat自动化开启不同的exp,等待目标访问中招。
3.termineter旨在评估智能电表的安全性。
KaliSecurity 漏洞利用之Metasploit基础
1.启动服务:
在kali中使用metasploit,需要先使用命令service postgresql start开启PostgreSQL数据库服务,使用命令msfconsole开启metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录。
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 |gre[ "windows"这样的命令查询。-o选项可以列出payload所需的参数。
msfencode:msf中的编码器,早期用来绕过AV(杀毒软件),现常用msfpayload与它编码避免exploit的坏字符串。
msfconsole:开启metasploit的console。
输入msfconsole,打开msf。
4.测试示例
首先用nmap -sV扫描目标主机和端口上运行的软件的版本。结果显示目标主机运行着ftp服务器,且版本为ftpd 5.0(此版本存在着漏洞,攻击者可以远程获取目标主机的root权限)
下面我们利用metasploit实施攻击。命令行输入msfconsole开启metasploit的console,然后输入search Microsoft ftpd 5.0,搜索与ftpd 5.0匹配的模块。
生成Meterpreter后门
打开MSF,开启监听(选择exploit/multi/handler)。
Kali漏洞利用之Metasploit后渗透测试
在跳板获取一定权限后需要积极地向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的Meterpreter后门,可以使系列的操作更容易。
1、查看当前网卡、网段信息(使用ifconfig)。可查看到三个网卡,一个是本地网卡,另一个是我们能访问的网卡,还有一个网卡具有内网IP(访问不到,可以ping以下试试)。
2、添加路由表run autoroute -s 10.0.0.1可以使用msf中的模块跨网段攻击或扫描。可通过脚本autoroute快速添加。
3、开socket代理,通过使用auxiliary/server/socks4a模块,创建一个socks代理,可以为浏览器,sqlmap,nmap使用。通过代理即可访问内网计算机。
4、通过background和session -i可以自由切换进入session。
5、输入run可以看到在meterpreter上可以做的很多命令。
6、通过run post/可以看到后渗透测试模块
7、获取内网信息run arp_scanner -r 10.0.0.1/24
8、也可以上传文件,做端口转发后进行后续测试,例如upload lcx.exe c:传送文件到c盘根目录。
Kali 漏洞利用之BeEF
1.BeEF
对XSS漏洞往往需要一个强大的框架支持,如网络上的XSS平台,在KALI下,BeEf是一款丝毫不逊于XSS平台的工具。BeEf是浏览器攻击框架的简称,是一款专注于浏览器的渗透测试工具,它扩展了跨站漏洞的利用,能hook很多浏览器并可以执行很多内嵌命令。
命令行输入beef-xss,浏览器自动访问页面http://127.0.0.1:3000/ui/authentication,默认用户名和密码都为beef,登录后进入主界面。
我们假设被测试主机由于XSS漏洞请求到页面http://127.0.0.1:3000/demod/basic.html,这是一个测试页面,如果通过XSS把该页面加入页面请求中,也就是说每个访问某个页面的人都会访问该页面,则访问者就会被BeEF hook 到,即加入到 Online Browsers中。
这样在主界面左端就可以看到一个在线主机。右侧 Current Browser 标签页中显示一系列信息。
HOOK持续的时间为关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令。
我们以MISC下的Raw JavaScript模块为例进行测试,右端输入 Javascript code 给目标弹出窗口,点击Excute进行攻击。
如果成功,会弹出窗口提示:
这时 Command results 显示result=It worked!
下面介绍BeEF的Proxy功能。选中目标主机,点击右键,在菜单中选中use as Proxy。
在Rider选项卡中的 Forge Request 编辑并发送想要发送的内容,这里我们保持默认。
点击send,在History选项卡中会显示执行请求的信息。
执行完毕后(Processed显示complete)点击该条目,查看包的细节。借助于此,可以让目标访问特定的页面,如果特定页面有漏洞,就会中招 。
以上就是依赖目标做一个代理,然后请求一个特定页面的过程。BeEF还能够配合Metasploit进一步渗透主机。BeEF 默认不加载 Metasploit,如果要使用 Metasploit 丰富的攻击模块,需要做以下配置。
首先进入目录/usr/share/beef-xss/,修改 config.yaml 文件,将metasploit设置为true。
然后进入目录/usr/share/beef-xss/extensions/metasploit,修改 config.yaml 文件,host和callback_host设置成本机IP地址,然后再修改Custom路径即可。
设置完成后打开msfconsole,输入命令load msgrpc ServerHost=192.168.199.162 Pass=abc123。
此时进入目录/usr/share/beef-xss/,执行./beef -x命令,重新加载metasploit模块。
service beef-xss start命令重启服务,然后重新登陆 BeEF,metasploit下增加了很多可以使用的模块,现在就可以使用metasploit的模块进行攻击了。