我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!!
(1)HTA简介:HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件没什么差别。
(2)HTA后门简介:HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。也就是说一个html应用程序,双击就能运行,若该HTA里面写入了一些反弹Shell的脚本,则就成为了HTA后门。
(3)HTA后门类型:根据HTA内嵌的不同反弹Shell的脚本语言类型可以把HTA后门分为三种
//如下图所示:分别是exe、powershell、vba三种类型
//Executable 将会在hta文件中内嵌一个PE文件(PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件)
//Powershell 将会在hta文件中内嵌一段Powershell代码
//VBA 将会在hta文件中内嵌一段VBA代码

(4)HTA后门常见场景:HTA木马一般配合网站克隆进行钓鱼攻击。
//下篇介绍
(1)exe文件简介:EXE File英文全名executable file ,译作可执行文件,可移植可执行 (PE) 文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行,是可在操作系统存储空间中浮动定位的可执行程序。如记事本程序notepad.exe ,可以用来编辑文档,如:测试.txt双击打开notepad.exe记事本程序来进行编辑处理。
(2)exe后门功能:反弹Shell
(1)Office宏简介:宏就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将宏作为一系列指令来编写。宏又分为局部宏和全局宏:全局宏对所有文档都有效,局部宏只对本文档有效。
(2)宏病毒:生成office宏病毒文件,此程序包生成一个VBA宏,您可以将其嵌入到Microsoft Word或Excel文档中。 此攻击适用于Windows上的x86和x64 Office。(需要注意的是:若使用WPS的word文档创建宏,则必须安装插件,否则默认的宏类型是js的,而不是vba宏)
(3)宏病毒后门功能:反弹Shell

(1)在cs上配置一个监听器,监听9527端口:点击配置监听-->点击Add-->填入监听器名字-->选择http beacon-->填写team server地址-->填写端口9527-->填写team server地址;
//如下图所示:成功配置监听器

(2)在cs上生成HTA后门:点击攻击-->点击生成后门-->点击HTML Application-->选择刚刚的1号监听器-->选择嵌入powershell类型的代码-->点击Generate生成后门并保存到本地evil-pw.hta;
//如下图所示:选择9527监听器和powershell类型的hta后门,其他两种类型不行

//如下图所示:保存到本地的hta后门文件夹内


(3)把hta后门放到130靶机,双击执行evil-pw.hta后门,cs成功获取会话
//如下图所示:靶机执行evil-pw.hta后门后会执行powershell恶意代码反弹Shell

//如下图所示:cs成功上线了靶机130

(1)cs新建监听器,监听9528端口:点击Add-->输入一系列信息;

(2)cs上生成exe后门并保存到本地:点击攻击-->点击生成后门-->点击Windows Executable-->选择9528监听器-->选择Windows EXE-->勾选x64-->点击Generate生成exe木马并保存到本地;
//如下图所示:生成exe后门


(3)把artifact.exe放到靶机并执行该后门,即可反弹会话到cs
//如下图所示:靶机上的artifact.exe成功运行
//如下图所示:cs上靶机成功上线,这里根据不同的pid来区分,刚刚的那个是5020,这个是4300

(1)cs上新建监听器,监听9529端口:点击Add–>填写一系列信息;
//如下图所示:

(2)cs上生成宏病毒后门:点击攻击-->点击生成后门-->点击MS Office Macro-->选择9529监听器-->点击Generate生成宏病毒后门代码-->点击Copy Macro可以复制生成的代码-->然后再根据给出的步骤进行操作;
//如下图所示:生成宏病毒
//如下图所示:点击Generate后会生成说明书和代码的复制按钮

(3)攻击者根据说明书创建宏病毒文件:新建艳照门.docx文件-->然后点击视图-->点击宏-->输入宏名-->选择宏位置-->然后点击创建;
//如下图所示:创建宏,但是此处的宏代码用的是js,我们要用的是vb类型的,所以我们要下载插件并安装

(4)下载WPS宏插件:地址传送门
(5)下载宏文件后,再次创建宏:
//如下图所示:下载插件并安装后,这里的宏就是VB类型的了

//如下图所示:成功创建宏文件

(6)保存宏病毒后门文件:在创建的宏病毒文件里面,把复制的宏病毒代码粘贴进去-->ctrl+s保存-->点击否-->选择位docm文件保存下来;
//如下图所示:粘贴代码进文件

//如下图所示:点击否

//如下图所示:另存为docm类型的文件,保存到本地

(7)靶机打开艳照门.docm文档的时候,就会执行宏病毒,从而反弹会话到cs
//注意:WPS要有vb宏就必须要安装插件,因此靶机也要安装插件。

很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby中使用两个参数异步运行exe吗?我已经尝试过ruby命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何rubygems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel