20169214 2016-2017-2 《网络攻防实践》第七周学习总结
20169214 2016-2017-2 《网络攻防实践》第七周学习总结
教材学习知识点总结
-
Windows操作系统基本模型
- 内核模式:内核代码运行在处理器特权模式
- 用户模式:应用程序代码运行在处理器非特权模式
-
设计目标:一致的、健壮的、基于对象的安全模型;一台机器上多个用户之间安全地共享资源。
-
Windows下的进程和线程
- 可执行程序:静态指令序列
- 进程:一个容器,包含至少一个执行线程
- 线程:进程内部的指令执行实体
-
堆和栈
- 堆:动态分配变量(malloc);向高地址增长
静态内存区间:全局变量、静态变量 - 栈:向低地址增长。是单线程进程
- 每个线程对应一个用户态的栈和堆
- 堆:动态分配变量(malloc);向高地址增长
-
Windows 安全主体:用户、用户组、计算机
-
用户安全主体中的Windows内建帐户
- 本地Administrator帐户:最高权限
- SYSTEM/LocalSystem:技术角度最高权限,自动运行程序所使用的运行环境
- Guest帐户:相对极少的权限
- IUSR_machinename: IIS匿名网络访问帐户,Guest组
- IWAM_machinename: IIS应用程序运行帐户
- 黑客眼里的Windows帐户:本地Administrator和SYSTEM帐户拥有最高权限,是终极目标
-
审计内部机制
- LSASS:保存审计策略;传递给SRM.对象启动审计功能后,分配SACL表保存
- SRM:生成审计记录,发送回LSASS
- LSASS:补充审计记录细节信息后,发送给EventLog(事件日志)
- EventLog写入日志文件
视频学习总结
kali漏洞利用之Metasploit基础
-
1.启动服务
使用前,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录。
启动命令:
service postgresql start
service metasploit start
如果不想每次开机都手工启动服务,可以配置系统启动,命令如下:
update-rc.d postgresql enable
update-rc.d metasploit enable
-
2.路径介绍
- 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就在这里。
-
3.基本命令
- msfpayload:用来生成payload或者shellcode。
搜索的时候可以用msfpayload -l|grep "windows"这样的命令查询。 - -o选项可以列出payload所需的参数
- msfencode:msf中的编码器,早期为了编码绕过AV,现在常用msfpayload与它编码避免exploit的坏字符串
- msfconsole:开启Metasploit的console
- msfpayload:用来生成payload或者shellcode。
-
4.测试示例:发现漏洞,搜索exploit
- 以使用msfconsole对一个漏洞进行远程溢出或攻击测试为例。首先,需要发现一个漏洞。通过 -sV 对目标主机(Metasploitable2)进行服务版本扫描,如下:
发现21端口是开放的,使用的服务是ftp,版本为vsftpd 2.3.4。 - 下面,在msf中借助search对该版本进行漏洞搜索:
发现刚好针对vsftpd2.3.4版本有一个匹配项。 - 下面,将针对上述漏洞进行测试。
进入exploit后,设置远程ip地址:
默认端口号为21 - 选择payload
- 测试示例:执行攻击测试
输入exploit即可进行攻击测试,如果成功,将返回一个shell:
如上,即可查看其ID、ip等信息。
- 以使用msfconsole对一个漏洞进行远程溢出或攻击测试为例。首先,需要发现一个漏洞。通过 -sV 对目标主机(Metasploitable2)进行服务版本扫描,如下:
漏洞分析之Meterpreter介绍
- Meterpreter简介
Meterpreter是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。
作为后渗透模块有多种类型,并且命令由核心命令和扩展命令组成,极大地丰富了攻击方式。
功能强大,如添加一个用户、隐藏一些东西、打开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 - 攻击测试
- 首先,查看当前ip为:192.168.110.139
- 用msfconsole查看参数:
- 设置ESP,用于接收返回的连接:
- 设置payload,并查看参数:
- 右上图,可看到有两个参数,其中LPORT为4444,改为2333:
- 生成后门:
通过查看,door.exe已存在 - 开启handler
设置参数:
监听本地ip的端口,等待返回的payload链接:
此时,点击door.exe,但并未出现预想结果,door.exe不能正常执行,如下:
监听未能实现,正在解决中...
漏洞利用之BeEF
- 打开命令:
beef-xss
可见,端口号为3000 - 默认的登录名beef,密码beef
- 测试界面demos
可见,主页面菜单栏处多了一个选项。 - 点击上述选项,即可显示各种详细信息,相当于被控制住了,直到关闭。
- 另外,还可以发送攻击命令,在Commends模块,可以完成很多任务。其中,4种颜色分别表示:
绿色:该攻击模块可用,且隐蔽性强;
灰色:该攻击模块可用,但隐蔽性差;
橙色:该攻击模块是否可用还有待验证;
红色:该攻击模块不可用 - 测试:
点击excute后,demo界面会返回一个结果,效果图如下:
- Proxy功能(代理功能)
选中目标主机,右键选中Use as Proxy,然后在Rider选项卡中的Forge Request编辑并发送想要的内容。
- 配置,使beef加载metasploit目录
- 打开beef-xss目录:
cd /usr/share/beef-xss
- 编辑:
nano config.yaml
- 修改:将metasploit修改为true
- 修改ip地址,确保为主机地址。并修改custum路径:
- 打开msfconsole
输入命令:load msgrpc ServerHost=192.168.110.139 Pass=abc123(默认密码)
- 在beef-xss根目录下执行:./beef -x
- 加载完成后重启服务:
service beef-xss restart
- 打开beef-xss目录:
至此,已完成加载metasploit目录的任务。
学习中的问题和解决方法
- 问题:在kali漏洞利用之Metasploit基础学习时,在使用前,需要先开启PostgreSQL数据库服务和metasploit服务,但却出现以下问题,未能正常开启。
- 解决方法:由于使用的kali版本是Rolling版,已经没有metasploit服务了,需要利用以下方法打开带数据库支持的MSF服务:
1、启动postgresql数据库:/etc/init.d/postgresql start 或者 service postgresql start;
2、初始化MSF数据库:msfdb init;
3、运行msfconsole:msfconsole;
4、在msf中可以查看数据库连接状态:db_status。
上述操作完成后,就可以通过命令 msfconsole 进入msf了。如下:
- 另外,如下图,Msfpayload找不到的问题也是由于版本问题,改为集成后的命令msfvenom即可。
上周考试错题整理
- 1.Netwox可以产生的数据报文有(IP TCP UDP)
- 2.在类Unix和Windows平台下,攻击者都可以通过使用(原始套接字)绕过TCP/IP协议栈的报文封装处理和验证,伪造报文。
- 3.网络安全事件响应过程中涉及的关键技术有(计算机取证、攻击追溯与归因、备份恢复与灾难恢复)。
- 4.下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容?
- A .od -b -tx1 Hello.java
- B .od -tcx1 Hello.java
- C .od -tc -tx1 Hello.java
- D .od -tbx1 Hello.java
答案解析:选BC,因为 -b 是以八进制输出。
学习进度条
教材学习 | 视频学习 | 博客量(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 12章 | 20篇 | ||
第一周 | 《Linux基础入门》 | 1/1 | 初识Linux,并学会使用博客园、码云、实验楼的学习平台 | |
第二周 | 第一、二章 | 5个kali视频 | 2/3 | 了解了网络攻防技术的基本情况和实验环境 |
第三周 | 第三章 | 5个kali视频 | 1/4 | 深入学习了kali linux下的几种重要工具 |
第四周 | 第四章 | 5个kali视频 | 1/5 | 学习网络嗅探和协议分析,了解漏洞分析阶段的几种重要工具 |
第五周 | 第11、12章 | 5个kali视频 | 1/6 | 学习了web应用程序和web浏览器的安全攻防,并继续学习工具 |
第六周 | 第5、6章 | 5个kali视频 | 1/7 | 学习了网络协议攻击和安全防范,并对密码攻击工具进行了解并实践 |
第七周 | 第7章 | 5个kali视频 | 1/8 | 学习了Windows操作系统的安全防范,并继续学习kali漏洞分析工具 |
参考资料
《网络攻防技术与实践》教材
kali视频