2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用
攻击成果
主动攻击的实践
- ms17010eternalblue
- payload windows/x64/meterpreter/reverse_tcp(成功)
- payload generic/shellreversetcp(成功)
- ms17010psexec(成功且唯一)
攻击浏览器的实践
- ms14064olecodeexecution
- payload windows/meterpreter/reverse_tcp(成功)
攻击客户端的实践
- windows/fileformat/adobecooltypesing
- payload windows/meterpreter/bind_tcp(成功)
成功应用任何一个辅助模块
- scanner/http/backup_file
- windows/x64/shell/reverse_tcp (成功且唯一)
一、知识点总结
1.MSF攻击方法
- 主动攻击:扫描主机漏洞,进行攻击
- 攻击浏览器
- 攻击其他客户端
2.MSF的六种模块
- 渗透攻击模块Exploit Modules:攻击漏洞,把shellcode"背"过去
- 主动渗透攻击:攻击某个系统服务
- 被动渗透攻击:攻击某个客户端应用
- 辅助模块Auxiliary Modules:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提
- 网络服务的扫描与查点
- 探查敏感信息泄露、Fuzz测试发掘漏洞
- 收集登录密码
- 攻击载荷Payload Modules:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码
- 空字段模块Nop Modules
- 一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,即空指令(滑行区)
- 由于系统无法精确计算shellcode的起始地址,所以加入nops以增加攻击成功的概率
- 编码模块Encoders
- 改变payload形状,使得不出现特定字符
- 确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”
- 后渗透攻击模块Post:攻击成功之后,动态传输代码使其在被控机执行
- 查看六种模块源码目录/usr/share/metasploit-framework/modules
3.MSF的三种用户操作界面
- msfconsole
- 查看模块的具体信息info [exploits|auxiliary|post|payloads|encoders|nops]
- 查看设置信息show [options]
- 查看攻击目标类型show [target]
- 查找命令search
- 查找2016年产生的在windows平台下的漏洞search ms16 type:exploit platform:windows
- armitage
- 启动服务器service postgresql start
- 启动armitagearmitage
- webgui
二、攻击实例
主动攻击的实践
-
ms17010eternalblue
- payload windows/x64/meterpreter/reverse_tcp(成功)
- payload generic/shellreversetcp(成功)
-
-
-
ms17010psexec(成功且唯一)
-
攻击浏览器的实践
-
ms14064olecodeexecution
- payload windows/meterpreter/reverse_tcp(成功)
-
攻击客户端的实践
- windows/fileformat/adobecooltypesing
- payload windows/meterpreter/bind_tcp(成功)
- 漏洞功能:反弹连接获得靶机的shell
-
这里是利用漏洞生成pdf,pdf里面被注入了回连shellcode
-
成功应用任何一个辅助模块
- scanner/http/backup_file
- windows/x64/shell/reverse_tcp (成功且唯一)
-
漏洞功能:查找设置的路径里是否存在指定文件
-
实验总结
1.实验总结与体会
实验开始的时候在纠结如何去找漏洞,后来是去拿漏洞试靶机。熟练之后找漏洞还是比较快的。
msf是一个强大平台!
实验中有几点很有趣也很有使用价值,比如生成一个含有回连指令的PDF文件 、使靶机蓝屏,看起来干坏事也不是那么困难^_^。 对于MSF生成的PDF文件,可以拿来与正常的PDF文件作比较,看是在哪里注入了shellcode,然后我自己再去用perl命令往文件里注入shellcode。
2.离实战还缺些什么技术
- msf教了我们去使用已知的漏洞去进行攻击,但msf中集成的漏洞和载荷想必在我们今天会用的机器上是无法成功的。想要真的去做到攻击,就漏洞而言,首先要学会自己找漏洞,理解漏洞原理,理解如何去使用漏洞,而不是敲两下use命令和set命令。这实际上是很难的,可能需要去深入到内核代码层次,去测试内核代码的bug,头皮发麻。还有一点就是要学会自己写shellcode。
3.用自己的话解释什么是exploit,payload,encode.
- 就这次实验来看,exploit是个动作“去执行、去进行”;payload是所有“攻击武器”合集叫payloads;encode是个动作“去加密、去改变”
- exploit是要法庭决议要处决一个犯人
- payload是如何处决,枪毙&绞刑&注射&扔海里……
- encode是去伪装shellcode,让杀软发现不了它