【ARTS】01_01_左耳听风-20181112~1116

每周至少作一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)html

Algorithm

作一个 leetcode 的算法题面试

771. Jewels and Stones

1)problem

https://leetcode.com/problems/jewels-and-stones/算法

ou're given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want to know how many of the stones you have are also jewels.sql

The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so "a" is considered a different type of stone from "A".windows

Example 1:api

Input: J = "aA", S = "aAAbbbb"
Output: 3

Example 2:安全

Input: J = "z", S = "ZZ"
Output: 0

Note:网络

  • S and J will consist of letters and have length at most 50.
  • The characters in J are distinct.

2)answer

设定一个数字变量,判断单个字符是否在一个字符串中。使用双重for循环进行判断,若是相同就将数字变量加1,不然就跳过。最后返回数字变量的值就是手中宝石的数量。tcp

3)solution

#include<stdio.h>
#include <string>
using std::string;

class Solution {
public:
	int numJewelsInStones(string J, string S) {
		int num = 0;
		for (auto J_value : J)
		{
			for (auto S_value : S)
			{
				if (J_value==S_value)
				{
					num++;
				}
			}
		}

		return num;
	}
};


int main() 
{
	Solution solu;
	int ret;
    ret  = solu.numJewelsInStones("aA", "aAAbbbb");
	printf("%d \n", ret);
	ret = solu.numJewelsInStones("z", "ZZ");
	printf("%d \n", ret);
	return 0;
}

Review

本周阅读的英文技术文章ide

利用BurpSuite到SQLMap批量测试SQL注入

https://www.exploit-db.com/docs/english/45428-bulk-sql-injection-using-burp-to-sqlmap.pdf

1)场景

测试大门户的SQL注入漏洞

2)问题难点

SQLMap只能对URL单一测试

3)解决问题的方法

经过Python脚本把Burp的HTTP请求提取出来交给SQLMap批量测试,提高找大门户网站SQL注入点的效率。

4)方法细节

文章里提到的方法是提取出来Brup对HTTP的请求,但只能是手动对网站访问后Burp的历史纪录。若是是GET请求倒还好,若是是POST并且是伪静态类型,参数就检测不出来了。在burp的target选项卡也有扫描URL的,能够用Burp自带的爬虫方法爬行一遍以后再提取出URI进行测试。

5)总结

除此方法外,也可使用burp的插件实现批量测试的效果。

渗透神器合体:在BurpSuite中集成Sqlmap
https://www.freebuf.com/sectool/45239.html

Tip

安全分析-MuddyWater

  • 英文原文

MuddyWater expands operations https://securelist.com/muddywater/88059/

  • 译文

详细分析MuddyWater APT组织新型攻击技术 https://www.anquanke.com/post/id/161789

1)场景

监测到大量的鱼叉式网络钓鱼邮件

2)问题难点

经过宏的方式运行VBA代码,而后投放创建C&C通讯的PowerShell代码,向C&C发送被感染用户系统信息,而后接收恶意软件支持的命令。

3)恶意代码分析

启用宏的Office 97-2003 Word文件,为了防止静态分析,该宏受密码保护。

一、宏投放INF、SCR和文本文件
二、宏投放VBS和文本文件

4)方法细节

  • 宏Payload分析

通过Base64编码后的宏Payload,执行如下操做:

一、将2-3个文件放入ProgramData文件夹。Payload会将文件放置到ProgramData文件夹的根目录或子目录中,这些文件的文件名根据恶意软件不一样版本而变化。

EventManager.dll
EventManager.logs
WindowsDefenderService.inil

二、在当前用户的RUN密钥(HKCU)中添加一个注册表项,以便在用户下次登陆时可以运行。在某些状况下,宏会当即生成恶意Payload或恶意进程,而无需等待用户的下次登陆。注册表项中的可执行文件名称会根据不一样版本而变化。

名称:WindowsDefenderUpdater
类型:REG_EXPAND_SZ
内容:c:\windows\system32\rundll32.exe advpack.dll,LaunchINFSection C:\ProgramData\EventManager.logs,Defender,1,

在用户下次登陆时,投放的Payload将会运行。所选的可执行文件专门用于绕过白名单解决方案,由于这些文件所有来自Microsoft,极可能已经在白名单之中。这些文件的类型多是INF、SCT和文本文件(3个文件的状况),也多是VBS和文本文件(2个文件的状况)。

  • 宏投放INF、SCR和文本文件
一、INF经过advpack.dll的LaunchINFSection函数启动;
二、INF经过scrobj.dll(Microsoft Scriptlet库)注册SCT文件;
三、借助WMI(winmgmt),SCT文件中的JavaScript或VBScript代码会生成只有一行的PowerShell程序,最终造成文本文件。
  • 宏投放VBS和文本文件

VBS文件首先将自身进行解码,随后调用mshta.exe,将只有一行的VBScript代码传递给它,以后生成一个PowerShell单行程序,最终造成文本文件(一般是通过Base64编码后的文本)。

  • 恶意PowerShell代码分析

读取在ProgramData中投放的(通过编码的)文本文件,而后对其进行解码,所生成的代码具备多层混淆。 检查系统正在运行的进程。若是找到,就会强制重启计算机。列表中的进程名称一般都与研究人员使用的各种工具相关。

“win32_remote“,”win64_remote64“,”ollydbg“,”ProcessHacker“,”tcpview“,”autoruns“,”autorunsc“,”filemon“,”procmon“,”regmon“,”procexp“,”idaq“,”idaq64“,”ImmunityDebugger“,”Wireshark“,”dumpcap“,”HookExplorer“,”ImportREC“,”PETools“,”LordPE“,”dumpcap“,”SysInspector“,”proc_analyzer“,”sysAnalyzer“,”sniff_hit“,”windbg“,”joeboxcontrol“,”joeboxserver“
  • C&C通讯

经过 https://api.ipify.org/ 网站来获取被感染用户的公网IP

  • 攻击者溯源

MuddyWater使用的PowerShell代码进行反混淆后,该代码相似于此前发现的恶意PowerShell脚本。攻击所使用的多个文档中,还带有嵌入的路径,其中包含做者的主机用户名称。这些路径在特定状况下会由Office嵌入到文档中,例如在将二进制对象(OLE控件,例如文本框或命令按钮)添加到Word文档中,就会附带其路径。这些路径具体以下:

C:\Users\leo\AppData\Local\Temp\Word8.0\MSForms.exd
 C:\Users\poopak\AppData\Local\Temp\Word8.0\MSForms.exd
 C:\Users\Vendetta\AppData\Local\Temp\Word8.0\MSForms.exd
 C:\Users\Turk\AppData\Local\Temp\Word8.0\MSForms.exd

5)总结

MuddyWater样本的来源是邮件系统,经过对office类样本分析获得宏代码执行后的行为,获取文件生成的路径、用户名称、反调试方式、代码类似度、CC通讯指令。对攻击者来源、行为猜想。

Share

在乙方学会的东西是要真切落实到实际的场景中,才算是有效的学习。工做了几年,不少基础知识怎么学习,怎么出成果,已经掌握了思路。可是仅仅是广度达到。不少方法论适用于固定动做的安全检查,可是落实到实际仍是有问题。

读文《浅谈大型互联网的企业入侵检测及防御策略》

1)场景

忽然以为很迷茫,不知道本身5年后该成为哪样的人。因为本身以前从渗透测试换了二进制的方向,大城市的就业机会虽然多。可是面试的岗位职能都不同,

2)问题难点

次选择工做的时候,同一个名称的安全岗位职责和需求能力都不同。甲方公司重视开发能力、创业公司重视综合能力、还有一些公司重视知识的广度和深度。

本身从渗透->测评->恶意代码分析三个阶段都经历了一遍,从技术、文档到分析。不知道本身该选怎样的方向进行职业规划。

3)解决思路

找了前辈进行交流,寻求意见。其中印象比较深的两个前辈说的。

乙方学到的东西,都须要甲方兑现,在能够选择的前提下,选择最大的平台,作点成绩出来。

筛选岗位最重要的三个级别,一是熟练级别,工做能够作。而后在某个领域进行积累,发表过具备影响力和深度的paper。最后是在某些重要的会议发表过议题演讲。

4)方法细节

最近一段时间梦醒就是思考怎样打造本身的竞争力。把经验积累。

安全领域发展多年,不少测试方法都经过逐渐的发展变成了工具化、平台化。

安全检查根据网络设备品牌型号、主机的经常使用命令。总结起来成了基线检查工具

安全测试根据应用系统的漏洞和特征成了漏洞扫描工具。

基于“攻防对抗”的考量,从防守方对于安全运营会有很高的要求。

经过美团技术团队的分享文中感觉到做者这些年工做积累的经验和成绩感到本身要走的路还有很长。

《浅谈大型互联网的企业入侵检测及防御策略》

http://netsecurity.51cto.com/art/201811/586498.htm?mobile

针对企业的入侵检测、常见的入侵手法应对、入侵检测的原则、产品主流形态、效果评价指标和关键要素进行了梳理。其中如何发现APT的方式部分结合目前的工做形态也确实如此。

  • 针对企业的入侵检测

入侵检测能够重点关注GetShell这个动做,以及GetShell成功以后的恶意行为。

  • 常见入侵手法与应对

高危服务入侵: 针对每个高危服务作入侵检测的成本较高,由于高危服务的具体所指很是的多,不必定存在通用的特征。因此,经过加固方式,收敛攻击入口性价比更高。禁止全部高危端口对互联网开放可能,这样可以减小90%以上的入侵几率。

WEB入侵: 针对Web服务的入侵痕迹检测,能够考虑采集WAF日志、Access Log、Auditd记录的系统调用,或者Shell指令,以及网络层面Response相关的数据,提炼出被攻击成功的特征。

0day入侵: 把精力聚焦在有黑客GetShell入口和以后的行为上,可能比关注漏洞入口更有价值。固然,具体的漏洞利用仍是要实际跟进,而后验证其行为是否符合预期。

办公终端入侵: EDR类的产品+邮件安全网关+办公网出口的行为审计+APT产品的沙箱等,联合起来,能够采集到对应的数据,并做出类似的入侵检测感知模型。

  • 入侵检测基本原则

某个单点的检测能力有缺失时,若是为了“政治正确”,在这个单点上进行无止境的投入,试图把单点作到100%能发现的能力,不少时候可能只是在试图制造一个“永动机”,纯粹浪费人力、资源,而不产生实际的收益。将节省下来的资源,高性价比的布置更多的纵深防护链条,效果显然会更好。

  • 入侵检测产品的主流形态

基于数据去建模,好比针对WebShell的检测,首先要识别Web目录,再对Web目录下的文件进行文本分析,这须要作一个采集器。基于Shell命令的入侵检测模型,须要获取全部Shell命令,这可能要Hook系统调用或者劫持Shell。基于网络IP信誉、流量payload进行检测,或者基于邮件网关对内容的检查,可能要植入网络边界中,对流量进行旁路采集。

我的理解是基于WEB日志、系统日志、流量日志进行检测。

  • 入侵检测效果评价指标

主动发现的入侵案例/全部入侵 = 主动发现率。这个指标必定是最直观的。

真实的入侵实际上是一个低频行为,大型的互联网企业若是一年到头成百上千的被入侵,确定也不正常。所以,若是好久没出现真实入侵案例,这个指标长期不变化,也没法刻画入侵检测能力是否在提高。

因此,咱们通常还会引入两个指标来观测:

- 蓝军对抗主动发现率
- 已知场景覆盖率
  • 影响入侵检测的关键要素

要让一个入侵事件被捕获,咱们须要入侵检测系统长时间、高质量、高可用的运行。

- 数据采集的完整性(全链路的对帐)。
- 每个策略时刻工做正常(自动化拨测监控)。
- 基础数据的准确性。
- 工单运营支撑平台及追溯辅助工具的便捷性。
  • 如何发现APT
- 木马免杀的,用沙箱+人工分析,哪怕效率低一些,仍是试图作出定性,并快速的把IOC(威胁情报)同步给其它客户,发现1例,全球客户都具有一样的感知能力。
- 流量加密变形对抗的,用异常检测的模型,把一些不认识的可疑的IP关系、payload给识别出来。固然,识别出来以后,也要运营人员跟进得仔细,才能定性。
- 攻击手法高级的,仍是会假定黑客就用鱼叉、水坑之类的已知手法去执行,而后在邮箱附件、PC终端等环节采集日志,对用户行为进行分析,UEBA试图寻找出用户异于日常的动做。
  • AI在入侵检测领域的正确姿式

针对一个具体的攻击场景,怎么样采集对应的入侵数据,思考这个入侵动做和正常行为的区别,这个特征的提取过程,每每决定了模型最终的效果。特征决定了效果的上限,而算法模型只能决定了有多接近这个上限。

5)总结

进甲方想法:这几天拜读了职业欠钱的《浅谈大型互联网企业入侵检测及防御策略》。

在乙方学到的东西,在甲方兑现,在能够选择的前提下,选择最大的平台,才有可能作出成绩。

研究方向:现目前区块链的研究与传统安全仍是类似。能够往漏洞分析方向发展,不过单纯的漏洞分析和审计能给企业带来什么价值,还有待思考。

相关文章
相关标签/搜索