m0nst3r's blog

Hello, Bugs

0%

source code

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

$MY = create_function("","die(`cat flag.php`);");
$hash = bin2hex(openssl_random_pseudo_bytes(32));
eval("function SUCTF_$hash(){"
."global \$MY;"
."\$MY();"
."}");
if(isset($_GET['func_name'])){
$_GET["func_name"]();
die();
}
show_source(__FILE__);

思路

匿名函数并不是真的没有名字。。。
%00lambda_%d

参考资料

https://www.jianshu.com/p/19e3ee990cb7
https://github.com/orangetw/My-CTF-Web-Challenges
http://php.net/manual/zh/book.phar.php
http://blog.jobbole.com/91920/
https://yq.aliyun.com/ziliao/55320
https://www.zhihu.com/question/23786410

Read more »

Reference

https://security.stackexchange.com/questions/9908/multibyte-character-exploits-php-mysql
https://www.erich-kachel.de/unicode-issues-on-php/
https://vigilance.fr/vulnerability/MySQL-SQL-injection-via-multi-byte-characters-5885
http://shiflett.org/blog/2006/addslashes-versus-mysql-real-escape-string
https://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string/12118602#12118602

http://eleves.ec-lille.fr/~couprieg/post/Bypass-addslashes-with-UTF-8-characters

Read more »

简介

JSON Web Tokens 或者JWTs可以作为传统sessioncookies一个替代方案。由于JWTs是无状态的,并且是签名的,所以针对JWTs有一些特有的安全问题。本文介绍了几种可以检测JWT实现是否安全的方法。

关于JWTs

一个JWT(Json Web Token)串中包含了一个签名的数据结构,一般用作认证。JWT中包含一个密码签名,比如一个数据的HMAC签名。正是如此,只有服务器可以创建和更改令牌(Token)。

什么是JWT

分辨JWT

攻击JWTs

检测JWT中的敏感信息

更改签名算法

将签名算法变为none

Read more »

[TOC]

概述

测试目的

通过模拟黑客的渗透测试,评估目标系统是否存在可以被攻击者真实利用的漏洞以及由此引起的风险大小,为制定相应的安全措施与解决方案提供实际的依据。

分析客户WEB应用系统的安全现状,检测WEB应用系统的漏洞和安全问题,并验证其他已知的脆弱点。对系统的任何弱点、技术缺陷或漏洞的主动分析,并且以有利于攻击为目的而对漏洞加以利用。从而全面了解和掌握WEB应用系统的信息安全威胁和风险,为WEB应用系统开展安全调优及加固建设提供依据,并指导客户实施调优及加固工作,具体的目标包括:

  1. 帮助客户理解应用系统当前的安全状况,发现在系统复杂结构中的最脆弱链路;
  2. 通过改进建议,保证WEB应用系统和相关基础设施满足标准的安全性基线;
  3. 降低WEB应用系统信息安全事件发生的可能性;
  4. 保障WEB应用系统的安全、可靠、稳定运行。

测试范围

序号 系统名称 地址 权限
1 test http://test.com 普通用户

测试团队详细信息

序号 姓名 联系方式
1 宋鑫磊 18888888888
Read more »

[TOC]

渗透测试流程规范

为规范渗透测试当中的工作流程,方便团队协作与管理,特制定本规范。

信息收集

信息收集的目的是为了全面的了解目标网站/系统,从而可以确定潜在攻击面以及攻击方法。

信息收集工作内容包括但不限于:

  1. whois信息
  2. 域名/IP地址
  3. 目标域名/IP开放端口
  4. (若在测试范围)子域名/IP信息
  5. 目标网站信息,如服务器操作系统,使用的变成语言,使用的Web服务器及版本,后端可能的数据库服务器
  6. 目标网站/系统敏感目录文件
  7. 目标网站/系统登录后台

前渗透

前渗透主要工作是拿到目标网站/系统的数据或权限,并以此为突破口进行后续流程。

前渗透的工作内容包括但不限于:

Read more »

介绍

之前,已经介绍过了利用INF文件的下载执行远程SCT脚本来绕过的技术。总体来看,这些方法可以被用来绕过应用程序白名单策略(AWL)(比如Default AppLocker策略),阻止主机上安装的安全产品的拦截并且达到隐秘持久化的目的。另外,还提到了一些其他的下载并执行的技术,用来做环境探测,也提到了作为防御者应该考虑的一些方面。
如果你还没有阅读之前的一篇文章,我建议你先读一下,因为我们会在展示如下技术、方法前使用到前面文章中提到的技术:

  • InfDefaultInstall
  • IExpress
  • IEadvpack.dll (LaunchINFSection)
  • IE4uinit

复习下Setupapi.dll (InstallHinfSection) 和 Advpack.dll (LaunchINFSection)

Read more »

简介

开发exp背后真正的功夫跟选择的编程语言没有什么关系,而是要我们精确理解在调试时程序是如何处理一个用户输入,并利用它获得控制权的。
关键词就是“调试”。
你的逆向技术就是真正的功夫。但是,如果你的目的不是仅仅弹一个计算器,而是想要武器化,要能获得一些东西,并且想要在现实中有用,那我们需要一个开发框架,这也就是metasploit的由来。它是免费开源的,并且在世界各地都有贡献者。所以,当我们写一个metasploit的exp的时候,我们不用担心任何依赖问题,或者版本错误问题,或者担心在渗透测试时没有足够的payload可选。metasploit只需要你关注正在编写的exp上。

模块编写前的计划

不像编写一个POC那样,当我们编写一个metasploit模块时,我们需要考虑用户在真实环境中是如何使用的。隐密性通常是一个非常重要的事情。我们的exp能够在不生成文件的情况下执行代码吗?输入能不能看起来更随机一些从而不那么容易检测吗?是不是要加入混淆技术?exp程序有没有生成不必要的流量?它能不能在不使系统崩溃的情况下更加稳定一些呢?等等。

还要注意尽可能的对exp可利用的环境需求更加精准。

Read more »

本文已在丁牛网安实验室FreeBuf专栏 DigApis安全 中首发!引用转发请注明 “原文来自:m0nst3r@DigApis安全”字样,谢谢!

[TOC]

简介

通过对MSDN上一些处理不同COM脚本的调查和测试,结合网上的分享,我发现了一些有意思的东西,这些发现可能是远程调用执行脚本新方法。
其中最有意思的是LaunchINFSection

这篇文章主要讨论一下网上公开的利用INF Script的方法,并介绍下LaunchINFSection,最后再分享一些用法和作为防御者应该注意的事项。另外,还会给出一些其他远程执行脚本方法的参考。

INF Script执行方法

通过INF配置文件来执行脚本文件(.sct)的方法会涉及到InstallHinfSection(setipapi.dll)CMSTPLaunchINFSection(advpack.dll)

使用InstallHinfSection执行INF Script脚本

在DerbyCon 2017中KyleHanslovanChrisBisnett展示了一个非常有意思的东西,我已经将其翻译和整理过来(传送门:透过Autoruns看持久化绕过姿势的分享 )。他们展示 了一种通过INF 远程调用执行sct脚本文件的方法:
rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 [path to file.inf]

作者给出的INF文件如下:

Read more »

引用转发请注明 “原文来自:m0nst3r@DigApis安全”字样,谢谢!

[TOC]

简介

随着技术的更新换代,很多技术在Windows系统中被引进和弃用,但是有一种非常强大的技术却保留了下来,自Windows NT 4.0和Windows 95开始就一直延续下来,那就是Windows Management Instrumentation (WMI),即Windows管理工具。现在所有的Windows系统中都有这个工具,利用它包含的工具集,我们可以管理本地或远程的计算机。

它不仅仅被系统管理员熟知,更因为Stuxnet利用WMI来进行攻击的原因而被广大安全人员所知。由于WMI能够提供系统信息收集,防病毒检测,代码执行,横向移动,持久化和盗取数据的能力而很受黑客的欢迎。

随着黑客越来越多的使用WMI技术,了解WMI知识并为已所用,对防御者来说就非常重要。

这个文章主要向读者介绍WMI的主要功能,攻击者如何使用WMI,如何通过WMI绕过IDS以及如何通过WMI Repository做取证。

WMI Architecture(架构)

WMI是Windows对WBEMCID标准的实现。两个标准目的是在企业环境中提供一个行业无关的,用于收集和传输Managed Component(管理组件)信息的方法。
一个WMI的管理组件可以是一个进程,一个注册表的键,一个安装的服务或一个文件信息,等等。这些标准用来沟通确定实现者应该使用什么方法来query(查询),populate(填充),structure(构造),transmit(传输),perform actions on(执行操作)和consume data(处理数据)。

wmi-1.png

Read more »

本文已在丁牛网安实验室FreeBuf专栏 DigApis安全 中首发!引用转发请注明 “原文来自:m0nst3r@DigApis安全”字样,谢谢!

[TOC]

概要

在网络攻防的对抗中,对于攻击者而言,对目标系统的权限维持(也称持久化)非常重要;对于防御者来说,发现网络中的这些点也非常重要。

本文主要内容来自Kyle和Chris在DerbyCon 7中的分享,主要展示了一些半公开和尚未公开的技术,用于绕过Autoruns这个最常用的持久化枚举检查工具。

哪儿的问题?

Windows系统可能有成百上千种方法去加载/调用一些库或可执行程序,有时是在启动时,有时是在用户登陆时,也有时是当一个程序执行时。我们称这些点为ASEPs(Auto Start Entry Points),例如Skype,Skype一般会设置成“开机启动”,这样可以省去每次开机都要打开Skype的麻烦,Skype会告诉Windows系统,我是一个合法的程序,请每次开机的时候启动我。但攻击者也会从中受益,因为攻击者可以把恶意代码设置为一个服务,并设置为“开机启动”。

作为防御方,我们可能会想到一些自动检查这些ASEPs的工具,而且我们有MSDN可以查。但是有很多东西是无法MSDN文档中找到的,收集这些自启动点也是非常困难的。另外,攻击者一般会使用一些间接的方法来扰乱安全排查软件的视线。

Sysinternals Autoruns

Sysinternals Autoruns 是一款 由Mark Russinovich开发和维护的软件,它可以检查到的ASEP也是最多的,如:

Read more »