记一次通过实际项目对客户端测试从0到1的学习
2022-9-28 00:5:3 Author: 白帽子(查看原文) 阅读量:39 收藏

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.1

前言

本文是结合一次实际小项目与自学延伸以面向此方面纯小白的,关于PC客户端测试的入门向文章。

No.2

工具一栏

常用工具概述:

IDA pro(收费)    

OllyDbg(免费)    

Burp suite(免    

BinScope Binar
Analyzer(免费)    

Fiddler(免费)    

WinHex(免费)    

HxD(免费)    

dbgview(免费)    

windbg(免费)    

AKLT(免费)    

PE Explorer(免费)    

IOCTL Fuzzer(免费)    

API Monitor(免费)    

ComRaider(免费)    

VNC(免费)    

屏幕录像专家
CamStudio(免费)    

此文所用到工具:

SigcheckGUI    

Detect It Easy 2.04    

PESecurity-master    

Universal Extractor    

PEID V0.95    

IDA_Pro_v7.0_Portable    

OllyDBG    

FredUnYP    

DllHijackAuditor    

oCam    

Wireshark    

No.3

PC客户端检测流程

一般针对客户端的检测,都有标准且具体的流程,作为菜鸟需要明白的就是记住测试流程,明白每一步检测的意义和对应工具的使用方法。

流程图如下:

No.4

实操

静态测试项

●文件数字签名检测

意义:数字签名可以表明文件的发布日期,还能减少杀毒软件的误报。此项操作是为了检查待测程序文件是否存在数字签名,被非法串改后的文件其数字签名将会被破坏,从而被检测出来以防止伪冒。

工具:SigcheckGUI

SigcheckGUI :微软 Sysinternals 工具Sigcheck

的可视化版本,可以用来批量检查文件的数字签名。

操作:将待待测客户端文件夹直接进SigcheckGUI

识别结果,绿色√文件存在数字签名,
 红色!表示不存在数字签名

修复:建议对所有的组件全部进行签名,以免DLL 文件有被劫持、篡改的风险

●编译器版本是否过低

意义:检测 CS 客户端编译器版本情况,如果编译器版本在 VS2005 之前版本,则存在风险。

工具:Detect It Easy

Detect it Easy是一个多功能的PE-DIY工具,主要用于壳侦测。支持文件直接拖放,可添加到右键菜单。

正常情况,文件拖入,会得到以上信息,但如果编译器版本高或其他情况,会得到下图结果,则代表着无风险

●编译器安全选项是否打开

意义:开启DEP(数据执行保护),ASLR(地址空间布局随机化),能够有效的减少缓冲区溢出漏洞的危害。这些机制是微软提供的高级系统防护机制,可以有效的避免代码植入等问题。如果未开启,攻击者可以很容易的通过缓冲区溢出进行代码植入。

工具:PESecurity-master

一个Powershell的模块,用来检查EXE/DLL文件编译选项,包括:ASLR, DEP, SafeSEH, StrongNaming, Authenticode。

PESecurity GitHub地址:https://github.com/NetSPI/PESecurity

使用方法,打开powershell,运行下方第一个命令,随后根据待检测的类型(文件夹/单个文件)选择对应的命令。

Import-Module .\Get-PESecurity.psm1Get-PESecurity -file "file_path"Get-PESecurity -directory "dir_path"

操作:运行powershell,cd命令进入PESecurity-master文件夹,运行Import-Module .\Get-PESecurity.psm1,出现报错

根据报错语句进行查询,发现报错原因是:没有权限执行脚本。

解决办法:在powershell 键入 set-executionpolicy remotesigned     //修改安全策略,赋予用户执行脚本的权限

随后,以管理员身份打开powershell,即可正常执行脚本

参考博客:https://blog.csdn.net/ebzxw/article/details/85019887

问题解决,正常键入命令,得到以下结果

存在DEP(数据执行保护),ASLR(地址空间布局随机化)为同时的打开的文件

修复:建议在程序文件编译时,开始默认的全部编译选项。或者对客户端程序进行加壳处理, 通过外部壳的功能,对客户端文件进行保护。

●安装包是否有捆绑文件

意义:以排除恶意软件混在用户需要的软件安装包。

工具:Universal Extractor

 Universal Extractor 是近乎于万能的文件提取器.可以用来unpack 许多的exe安装包格式,特别是用来分离安装包中的流氓软件特别有效。

操作:双击程序,选择提取,然后打开待提取程序压缩包,

随后在提取到的文件里进行人工审查,判断是否存在与源程序无相关性的可执行程序。

动态测试项

●逆向分析/反编译防护

意义:使用IDA对程序文件逆向分析,观察IDA能否获取到程序的反汇编代码。对于能力高超的攻击者来说,没有静态分析防护的程序可以更加容易的针对程序制定攻击计划,分析程序中的缺陷代码。攻击程序中的漏洞,甚至截获操作信息。

工具:PEID 、FredUnYP、IDA_Pro

PEID :一款著名的查壳工具,几乎可以侦测出所有的壳

FredUnYP:针对yoda's Protector v1.02的脱壳机。

IDA Pro:一款功能强大的交互式反汇编工具

操作:

1.将待测客户端的可执行文件拖入PEID

2.得到程序的壳yoda's Protector v1.02,随后在网上找到此壳的脱壳工具FredUnYP

3.将前文所脱壳的程序,导入FredUnYP,发现脱壳失败,分别找了两个可运行的yoda's Protector v1.02脱壳机,都未能脱壳,猜测是壳做了伪装,则子项检查判断为安全

4.正常能脱壳的走向

脱壳后可被用ida获取到关键函数的反汇编代码和逻辑,如此则为存在风险。

修复:使用商业壳对程序进行加壳处理

●动态调试防护

意义:客户端程序应具有抗动态调试的安全防护措施,提高攻击者对客户端程序进行调试、分析和篡改的难度。

工具:OllyDBG

OllyDBG:Ollydbg(简称OD)是Windows平台下Ring3级的程序调试利器(程序调试有静态调试和动态调试两种)。

工具学习博客:https://blog.csdn.net/vicroad2014/article/details/82726003

操作:简单来说这一项测试,就看客户端可执行程序能否靠OllyDBG打开。所以第一步将可执行程序拖进OD(如果registers模块下开始出现程序数据则代表第一步成功)

随后客户端会在OD的调试下正常打开,如下图。则说明该客户端程序不具有抗动态调试的安全防护措施。

另:如有抗动态调试的安全防护措施,则会显示无法启动xxxx.exe文件。

修复:建议对客户端程序增加花指令混淆等防护动态调试的安全措施。或者对客户端程序进行加壳处理

●进程注入安全

意义:客户端程序运行后在计算机上会创建进程,木马可以通过获取其进程句柄信息进而读取其在内存保存的交易账号或交易信息。远程注入也是攻击者经常利用的手段之一,通过远程注入将攻击者编写的模块注入到交易客户端进程中,直接从交易客户端获取敏感信息。应用程序在加载dll文件时,只指定了dll文件名称,而没有指定绝对路径,此时应用程序就会在整个磁盘中搜索该dll文件,如此便有可能会执行攻击者事先编写好的同名dll文件。

工具:DllHijackAuditor

DllHijackAuditor:有助于发现Windows应用程序中存在漏洞的的DLL

操作:打开DllHijackAuditor.exe,点击红圈处导入客户端文件夹

随后,程序会自动存在结果,以此完成判定

●屏幕截图防御

●键盘记录保护

意义:这两项相似,可以放在一起说明。以检测客户端程序输入账号密码时,是否有防键盘记录与防截屏保护。

工具:oCam、AntiTest

oCam:免费录屏工具

AntiTest:可以用来客户端程序登陆时,输入密码是否能被记录。

操作:首先打开oCam工具,然后模拟登陆。看录屏文件是否可以录取到登陆界面操作(经测试,可以)

然后:打开AntiTest.exe,启动keylogging test

随后在登陆界面进行随便输入,发现软件可以捕捉到键盘在登陆框的输入

修复:

1.建议程序在输入密码时对截屏/屏幕录制操作进行特殊处理,如屏蔽截屏录制行为

2.建议对密码输入过程进行键盘防护,防护方法可以参考网银控件的方式,在驱动层面进行修复,可以获取较好的效果

漏洞测试项 

●危险函数调用

意义:使用 IDA Pro 对程序进行静态分析。查看是否存在比较危险的函数,例如:strcpy、printf、sprintf 等危险的函数调用与格式化字符串问题,防止溢出问题的存在。

工具:IDA Pro

操作:因为我实操的项目无法脱壳反编译,所以此项检测参考动态测试-逆向分析/反编译防护

敏感信息测试

日志安全

意义:客户端将敏感信息打印至日志文件,存在很大的安全风险,可能导致信息泄露

工具:UniExtract

实操:利用解压缩工具,完全解压待测客户端压缩包,然后在解压后的文件夹里找寻日志相关的文件,找不到则判定为无风险

No.5

结语

由于所测项目到此结束,所以本文就暂且更在这里,后续有机会再进行深入的测试研究。

招聘启事

安恒雷神众测SRC运营(实习生)
————————
【职责描述】
1.  负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2.  负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3.  参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4.  积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5.  积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。

【任职要求】 
 1.  责任心强,性格活泼,具备良好的人际交往能力;
 2.  对网络安全感兴趣,对行业有基本了解;
 3.  良好的文案写作能力和活动组织协调能力。

简历投递至

[email protected]

设计师(实习生)

————————

【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。

【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;精通photoshop/illustrator/coreldrew/等设计制作软件;
3、有品牌传播、产品设计或新媒体视觉工作经历;

【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽

简历投递至 

[email protected]

安全招聘
————————

公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京

工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…

【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案

【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)

【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;

岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至 

[email protected]


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246370&idx=1&sn=7dbdbca0f870c86e50d6273e03dfc67e&chksm=82ea574bb59dde5dd1b504da39af311ce05164b71c0cbd3d7cb8d86ddb413b1f342e27df4800#rd
如有侵权请联系:admin#unsafe.sh