20169214 2016-2017-2 《网络攻防实践》第七周学习总结

20169214 2016-2017-2 《网络攻防实践》第七周学习总结

教材学习知识点总结

  • Windows操作系统基本模型

    • 内核模式:内核代码运行在处理器特权模式
    • 用户模式:应用程序代码运行在处理器非特权模式
  • 设计目标:一致的、健壮的、基于对象的安全模型;一台机器上多个用户之间安全地共享资源。

  • Windows下的进程和线程

    • 可执行程序:静态指令序列
    • 进程:一个容器,包含至少一个执行线程
    • 线程:进程内部的指令执行实体
  • 堆和栈

    • 堆:动态分配变量(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
  • 4.测试示例:发现漏洞,搜索exploit

    • 以使用msfconsole对一个漏洞进行远程溢出或攻击测试为例。首先,需要发现一个漏洞。通过 -sV 对目标主机(Metasploitable2)进行服务版本扫描,如下:

      发现21端口是开放的,使用的服务是ftp,版本为vsftpd 2.3.4。
    • 下面,在msf中借助search对该版本进行漏洞搜索:

      发现刚好针对vsftpd2.3.4版本有一个匹配项。
    • 下面,将针对上述漏洞进行测试。
      进入exploit后,设置远程ip地址:

      默认端口号为21
    • 选择payload
    • 测试示例:执行攻击测试
      输入exploit即可进行攻击测试,如果成功,将返回一个shell:

      如上,即可查看其ID、ip等信息。

漏洞分析之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

至此,已完成加载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视频

posted on 2017-04-15 18:06  20169214姚静  阅读(245)  评论(2编辑  收藏  举报