banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập [Thảo luận]Bypass Apache Tomcat's security policy  XML
  [Question]   [Thảo luận]Bypass Apache Tomcat's security policy 30/07/2008 08:04:37 (+0700) | #1 | 144090
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
Hi,

Boom muốn tìm hiểu về vấn đề này nên hi vọng ai biết có thể chỉ cho mình nha. Vì khi nói về thâm nhập thì có vẻ tấn công server apache cài php là phổ biến nhất.
Mình có tìm hiểu Documentation của Apache Tomcat thì thấy rằng việc cấp permission trong Apache Tomcat 5.5 được thực hiện thông qua file policy
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html 


Vậy có thể có cách nào để bypass những settings này? Chẳng hạn như trong settings thì không có quyền thao tác với file, mà mình muốn viết 1 trang JSP có thể làm đc việc này? Cũng nói cụ thể thêm trường hợp giả định là
- apache tomcat chạy dưới quyền root --> nếu có file-access permission thì khá nguy hiểm đó.
- Apache có cài thêm php 5.2.5, safemode off, no disable function
- deicated server, mỗi vhost có tương ứng 1 user. Các user này cùng nằm trong 1 group inetuser. Thư mục chứa web của từng user đều được cấp quyền 705 --> những người cùng group không thể thực hiện "local attack" để truy cập vào các file của người khác được.
- server mysql không nằm trên localhost
- kẻ tấn công đã có 1 con shell php
- OS linux ko có lỗi kernel để nâng quyền

Vậy suy nghĩ ban đầu của mình là làm cách nào đó từ con shell php với safemode off và no disable function thì thay đổi được policy chạy jsp, rồi upload 1 file jsp để thao tác (dưới quyền root). Mọi người có gợi ý gì ko?

Thanks
[Up] [Print Copy]
  [Question]   [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 00:49:57 (+0700) | #2 | 144247
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

boom_jt wrote:
Hi,

Boom muốn tìm hiểu về vấn đề này nên hi vọng ai biết có thể chỉ cho mình nha. Vì khi nói về thâm nhập thì có vẻ tấn công server apache cài php là phổ biến nhất.
Mình có tìm hiểu Documentation của Apache Tomcat thì thấy rằng việc cấp permission trong Apache Tomcat 5.5 được thực hiện thông qua file policy
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html 


Vậy có thể có cách nào để bypass những settings này? Chẳng hạn như trong settings thì không có quyền thao tác với file, mà mình muốn viết 1 trang JSP có thể làm đc việc này? Cũng nói cụ thể thêm trường hợp giả định là
 

OK.

boom_jt wrote:

- apache tomcat chạy dưới quyền root --> nếu có file-access permission thì khá nguy hiểm đó.
 

Tại sao phải chạy tomcat dưới quyền root?

boom_jt wrote:

- Apache có cài thêm php 5.2.5, safemode off, no disable function
 

tomcat có liên quan gì đến safemod đâu mà on với off?

boom_jt wrote:

- deicated server, mỗi vhost có tương ứng 1 user. Các user này cùng nằm trong 1 group inetuser. Thư mục chứa web của từng user đều được cấp quyền 705 --> những người cùng group không thể thực hiện "local attack" để truy cập vào các file của người khác được.
 

vhost này nằm trên tầng apache hay nằm trên tầng tomcat?

boom_jt wrote:

- server mysql không nằm trên localhost
 

Không quan trọng mà quan trọng là connect đến mysql bằng cách nào.

boom_jt wrote:

- kẻ tấn công đã có 1 con shell php
 

Con shell đó ăn thua gì nếu .php không được biên dịch mà chỉ được xử lý như .txt?

boom_jt wrote:

- OS linux ko có lỗi kernel để nâng quyền
 

Có cách nào invoke được cái unix shell đâu mà phải lo chuyện nâng quyền do lỗi kernel?

boom_jt wrote:

Vậy suy nghĩ ban đầu của mình là làm cách nào đó từ con shell php với safemode off và no disable function thì thay đổi được policy chạy jsp, rồi upload 1 file jsp để thao tác (dưới quyền root). Mọi người có gợi ý gì ko?

Thanks 

tomcat thì dáng gì đến php shell và safemod off?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 00:56:38 (+0700) | #3 | 144249
nbthanh
HVA Friend

Joined: 21/12/2001 14:51:51
Messages: 429
Offline
[Profile] [PM]
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver.
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 01:04:56 (+0700) | #4 | 144252
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

nbthanh wrote:
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver. 

Tôi có cái link này trong bookmark: /hvaonline/posts/list/13731.html
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 06:00:02 (+0700) | #5 | 144333
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]

nbthanh wrote:
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver. 


Vài thông tin thêm từ bài của bác nbthanh.

Tomcat là application server, đóng vai trò chính trong việc thực thi một web application, làm việc trực tiếp với database server. Ngoài Tomcat, có thể kể đến như GlassFish, JBoss... hỗ trợ được Java EE.
Hibernating
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 06:25:43 (+0700) | #6 | 144340
nbthanh
HVA Friend

Joined: 21/12/2001 14:51:51
Messages: 429
Offline
[Profile] [PM]

Z0rr0 wrote:

nbthanh wrote:
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver. 


Vài thông tin thêm từ bài của bác nbthanh.

Tomcat là application server, đóng vai trò chính trong việc thực thi một web application, làm việc trực tiếp với database server. Ngoài Tomcat, có thể kể đến như GlassFish, JBoss... hỗ trợ được Java EE. 

Đính chính chút: Tomcat chỉ là servlet container (search lại toàn bộ các bài của bác conmale với từ khóa là Tomcat xem smilie ) chứ không phải là 1 application server.
Và Application Server host các "application" nói chung chứ không phải là 1 mình web-application.
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 06:51:05 (+0700) | #7 | 144346
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cảm ơn bác nbthanh, thông tin bác đưa chính xác.
Sở dĩ tui nghĩ và ghi nhập nhằng như trên vì nhiều lúc vẫn dùng Tomcat với vai trò của một app server, vì có lẽ tui chưa gặp yêu cầu nào khác phức tạp ngoài khả năng phục vụ của Tomcat smilie. Nhiều lập trình viên mới bước vào thế giới Java EE cũng nhầm lẫn như vậy.
Hibernating
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 08:53:40 (+0700) | #8 | 144375
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
hi, thanks các bác đã reply. Hôm nay mất điện cả ngày ko làm gì được smilie

Đầu tiên boom xin trả lời về Apache và Tomcat mà mọi người nhắc tới nha: trong trường hợp này Apache và Apache Tomcat đồng thời chạy cùng nhau!

Khi đọc Response Headers thì nhận được trường Server chỉ có 1 chuỗi đơn giản là "Apache". Tuy nhiên tại mọi thư mục, đều có thể chạy cả script php và jsp.

Khi chạy phpinfo() thì nhận được :
_SERVER["SERVER_SIGNATURE"] : Apache/1.3.33 Server
_SERVER["SERVER_SOFTWARE"] : Apache

Trong các directory listing thì hiện theo kiểu Apache tomcat và có dòng sau ở cuối trang:
Apache Tomcat/5.0.27

Tomcat được đặt trong thư mục /web/tomcat
php.ini được đặt trong thư mục /web/conf

Ok, h boom trả lời tiếp bài của bác conmale nha:

conmale wrote:
Tại sao phải chạy tomcat dưới quyền root?  

Đó là cấu hình trên server đó, cũng có thể coi là 1 trường hợp giả định như thế, nên ta mới đặt ra mục tiêu làm sao có được các permission của tomcat để có được quyền root.

conmale wrote:
tomcat có liên quan gì đến safemod đâu mà on với off?  

Đúng thế, vì vậy boom mới viết safemode off ở dòng liên quan đến PHP đó bác. Thông tin này được lấy ra từ phpinfo()

conmale wrote:
vhost này nằm trên tầng apache hay nằm trên tầng tomcat?  

Có lẽ là của apache, document-root của mỗi user có dạng: /home/u/s/r/user/html
chứ không phải là /web/tomcat/webapps/ hoặc liên quan j tới tomcat

conmale wrote:
Không quan trọng mà quan trọng là connect đến mysql bằng cách nào.  

Boom chưa rõ ý câu hỏi này lắm, khi boom nói mysql nằm ở host khác là ý muốn nói không thể dùng các hàm thao tác file trên server này thông qua mysql được

conmale wrote:
Con shell đó ăn thua gì nếu .php không được biên dịch mà chỉ được xử lý như .txt?  

Shell php và jsp đều chạy được như boom đã giải thích ở trên (có điều shell jsp do bị cấm nhiều quyền như đã nói ở bài đầu tiên nên không có tác dụng)

conmale wrote:
Có cách nào invoke được cái unix shell đâu mà phải lo chuyện nâng quyền do lỗi kernel?  

Cái này thì có chứ bác, 1 số shell đều có chức năng bind port và cả back connect.

Mong mọi người chỉ giáo
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 12:08:08 (+0700) | #9 | 144404
nbthanh
HVA Friend

Joined: 21/12/2001 14:51:51
Messages: 429
Offline
[Profile] [PM]

Z0rr0 wrote:
Cảm ơn bác nbthanh, thông tin bác đưa chính xác.
Sở dĩ tui nghĩ và ghi nhập nhằng như trên vì nhiều lúc vẫn dùng Tomcat với vai trò của một app server, vì có lẽ tui chưa gặp yêu cầu nào khác phức tạp ngoài khả năng phục vụ của Tomcat smilie. Nhiều lập trình viên mới bước vào thế giới Java EE cũng nhầm lẫn như vậy. 

"Server" có nghĩa rất rộng, tại trong nhiều trường hợp mình cữ mặc định nghĩ nó là "web server" nên nó mới nhập nhằng smilie

J2EE compliance (không biết compliance dịch là gì nữa smilie ) là 1 trong những yếu tố chính khi xem xét 1 Java Application Server (ở đây phải ghi rõ là Java Application Server chứ ghi application server chung chung thì nó có thể không dính gì tới Java lẫn J2EE).
Và ở đây Tomcat đáp ứng một phần (đó là phần web) của yếu tố J2EE compliance nhưng chưa đủ.
Web chỉ là 1 phần của J2EE (nhưng cái phần này nghiệt cái là nó "phơi" ra bên ngoài, end user tiếp cận với nó trực tiếp smilie), J2ee còn nhiều thứ lắm.
Do vậy Tomcat không phải là 1 Java Application Server nếu xem xét kỹ ở mọi góc độ smilie
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 12:59:05 (+0700) | #10 | 144407
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]
@boom_jt: mình không hiểu rõ câu hỏi của boom lắm. Phải chăng ý của boom là từ một con shell php leo sang chơi một site chạy trên tomcat ở cùng một host với nhau.

Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 13:10:17 (+0700) | #11 | 144413
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
hi K4i, ý của mình là từ con shell php có thể tung tăng (trong phạm vi) với safemode off và no disable functions... làm sao để chỉnh sửa cái security policy của tomcat, từ đó làm cho con shell jsp của mình cũng có thể ..."tung tăng" smilie mà jsp lại đc chạy với quyền root, cho nên nó có thể "xâm phạm" vào nhiều chỗ lắm ^^ (hiện tại do các security policy của tomcat mà shell jsp nè ko có tác dụng)
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 13:17:32 (+0700) | #12 | 144414
nbthanh
HVA Friend

Joined: 21/12/2001 14:51:51
Messages: 429
Offline
[Profile] [PM]

boom_jt wrote:
hi, thanks các bác đã reply. Hôm nay mất điện cả ngày ko làm gì được smilie

Đầu tiên boom xin trả lời về Apache và Tomcat mà mọi người nhắc tới nha: trong trường hợp này Apache và Apache Tomcat đồng thời chạy cùng nhau!

Khi đọc Response Headers thì nhận được trường Server chỉ có 1 chuỗi đơn giản là "Apache". Tuy nhiên tại mọi thư mục, đều có thể chạy cả script php và jsp.

Khi chạy phpinfo() thì nhận được :
_SERVER["SERVER_SIGNATURE"] : Apache/1.3.33 Server
_SERVER["SERVER_SOFTWARE"] : Apache

Trong các directory listing thì hiện theo kiểu Apache tomcat và có dòng sau ở cuối trang:
Apache Tomcat/5.0.27 

Tôi hiểu ý bạn thế này không biết có đúng không?

1. Apache Webserver và Tomcat được cài song song chạy cùng lúc với nhau

2. Bạn đã có 1 con shell PHP

3. Giờ lợi dụng con shell PHP này bạn "tạo" ra 1 con shell JSP để chạy trên Tomcat vì bạn suy đoán, hoặc bằng cách nào đó bạn biết được Tomcat đang chạy dưới quyền 1 account có thể thâm nhập sâu hơn vào hệ thống, hoặc Tomcat này đang được cấu hình "hơi lỏng lẻo"?

Có phải thế không?
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 13:30:34 (+0700) | #13 | 144416
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
hi bác nbthanh,

1. đúng ^^
2. đúng ^^
3. đúng smilie Bài trả lời K4i của boom có thể giải thích rõ hơn 1 chút đó bác. Boom nói rõ thêm là 1 trang jsp bình thường có thể chạy được, nhưng nếu đụng tới đọc file, hay exec gì là nó báo lỗi permission liền ^^
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 13:41:42 (+0700) | #14 | 144419
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

boom_jt wrote:
hi bác nbthanh,

1. đúng ^^
2. đúng ^^
3. đúng smilie Bài trả lời K4i của boom có thể giải thích rõ hơn 1 chút đó bác. Boom nói rõ thêm là 1 trang jsp bình thường có thể chạy được, nhưng nếu đụng tới đọc file, hay exec gì là nó báo lỗi permission liền ^^ 


Hi, boom

Nói thật là PHP là tớ chưa từng code cái gì ngoài cái phpinfo() nhưng cũng xin lạm bàn một chút. Nếu như boom có php shell trên một *nix server chạy cả Apache và Tomcat chẳng hạn. Thì nếu như người cấu hình Tomcat sử dụng một cái config mặc định và chmod không cẩn thận thì boom hoàn toàn có thể sử dụng php shell để sửa file policy của Tomcat smilie theo ý mình (theo mình nhớ thì r57 hoặc c99 đều có chức năng edit file thì phải). Điều này hoàn toàn dễ dàng. Nhưng vấn đề ở đây là việc apply toàn bộ cái policy mới này cho Tomcat thì đòi hỏi boom phải có quyền restart được Tomcat (theo những gì mình đã từng làm với Tomcat thì khi thay đổi một vài Settings của Tomcat đều phải restart lại Tomcat để apply lại policy mới).

Nếu như bồ có quyền restart được Tomcat rồi thì cần quái gì phải up một cái JSP shell lên làm gì smilie
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 13:46:37 (+0700) | #15 | 144420
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
hì hì đây đây, đấy là điều đầu tiên boom nghĩ tới : chỉnh sửa trực tiếp file policy của tomcat smilie
nhưng khốn nỗi file này đã chmod kĩ rồi, view còn ko đc nà ^^
về quyền restart thì ta cứ từ từ đã, có thể áp dụng cách này cách nọ, ko có cách hay thì cũng sẽ có cách nào đó gọi là "hạ sách" smilie
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 13:55:18 (+0700) | #16 | 144422
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]
Tạm tóm tắt thế này nhé:
Mục tiêu: sửa lại policy của Tomcat để up shell JSP lên
How: can thiệp vào file policy của Tomcat
Method: sửa trực tiếp hay còn trò gì khác. smilie

hì, mình cảm tưởng là boom mới làm việc với tomcat 1, 2 lần gì đó thì phải. Toàn bộ các file cấu hình của Tomcat được viết dưới dạng xml. Nên làm trò gì được khác đây khi chmod cẩn thận đến mức view cũng không xong huống chi đến chỉnh sửa. Hết sách roài.
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 14:00:35 (+0700) | #17 | 144423
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
mình thì ko nghĩ thế, đôi khi người ta vẫn có thể có "trick" nào đó để bypass đó K4i smilie và chính mục "how" và "method" là cần phải bàn nè, có khi là cả "mục tiêu" nữa ý chứ smilie
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 14:09:51 (+0700) | #18 | 144425
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]
Hì, nếu như có trick thì mình hoàn toàn muốn đc biết thêm để mở rộng tầm mắt smilie. Dạo này suy nghĩ cứng quá roài smilie
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 31/07/2008 23:28:41 (+0700) | #19 | 144450
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

boom_jt wrote:
hi, thanks các bác đã reply. Hôm nay mất điện cả ngày ko làm gì được smilie

Đầu tiên boom xin trả lời về Apache và Tomcat mà mọi người nhắc tới nha: trong trường hợp này Apache và Apache Tomcat đồng thời chạy cùng nhau!

Khi đọc Response Headers thì nhận được trường Server chỉ có 1 chuỗi đơn giản là "Apache". Tuy nhiên tại mọi thư mục, đều có thể chạy cả script php và jsp.

Khi chạy phpinfo() thì nhận được :
_SERVER["SERVER_SIGNATURE"] : Apache/1.3.33 Server
_SERVER["SERVER_SOFTWARE"] : Apache

Trong các directory listing thì hiện theo kiểu Apache tomcat và có dòng sau ở cuối trang:
Apache Tomcat/5.0.27

Tomcat được đặt trong thư mục /web/tomcat
php.ini được đặt trong thư mục /web/conf
 

Nói một cách khác, server này có apache 1.3.x cho phép chạy php. Đồng thời nó cũng hỗ trợ jsp, có tomcat.


boom_jt wrote:

Ok, h boom trả lời tiếp bài của bác conmale nha:

conmale wrote:
Tại sao phải chạy tomcat dưới quyền root?  

Đó là cấu hình trên server đó, cũng có thể coi là 1 trường hợp giả định như thế, nên ta mới đặt ra mục tiêu làm sao có được các permission của tomcat để có được quyền root.
 

Những ai "chuyên" một tí với *nix thì không bao giờ chạy 1 dịch vụ với chủ quyền root. Dịch vụ nếu cần open privilege port (< 1024) thì mới cần root, tomcat thường dùng port > 1024 (mặc định là 8080) thì không việc gì phải chạy bằng root cả. Nếu cần phải open privilege port thì nên (và thường) drop privildge từ root xuống 1 account bình thường sau khi đã mở port xong (apache là 1 trường hợp điển hình - chạy bằng account nobody hoặc tương tự sau khi mở cổng 80).


boom_jt wrote:

conmale wrote:
tomcat có liên quan gì đến safemod đâu mà on với off?  

Đúng thế, vì vậy boom mới viết safemode off ở dòng liên quan đến PHP đó bác. Thông tin này được lấy ra từ phpinfo()
 

Cái này chỉ có giá trị cho php và chỉ cho php mà thôi. Nó không có liên quan gì đến jsp cả.


boom_jt wrote:

conmale wrote:
vhost này nằm trên tầng apache hay nằm trên tầng tomcat?  

Có lẽ là của apache, document-root của mỗi user có dạng: /home/u/s/r/user/html
chứ không phải là /web/tomcat/webapps/ hoặc liên quan j tới tomcat
 

Cái này là "real path" đến virtualhost chớ không phải là virtualhost configuration. Tìm hiểu thêm về virtualhost config cho apache và tomcat (trên server.xml).


boom_jt wrote:

conmale wrote:
Không quan trọng mà quan trọng là connect đến mysql bằng cách nào.  

Boom chưa rõ ý câu hỏi này lắm, khi boom nói mysql nằm ở host khác là ý muốn nói không thể dùng các hàm thao tác file trên server này thông qua mysql được
 

Sao không được? Nếu php hoặc jsp có một config nào chứa DB account (username, pass, db host, db port, db name...) thì vẫn có thể chạy mysql command ngay trên host chạy apache đó để truy cập vào DB. Nếu không thì làm sao php, jsp truy vấn được DB?


boom_jt wrote:

conmale wrote:
Con shell đó ăn thua gì nếu .php không được biên dịch mà chỉ được xử lý như .txt?  

Shell php và jsp đều chạy được như boom đã giải thích ở trên (có điều shell jsp do bị cấm nhiều quyền như đã nói ở bài đầu tiên nên không có tác dụng)
 

Cái gì khiến cho "shell" jsp cấm nhiều quyền và "shell" ít cấm?


boom_jt wrote:

conmale wrote:
Có cách nào invoke được cái unix shell đâu mà phải lo chuyện nâng quyền do lỗi kernel?  

Cái này thì có chứ bác, 1 số shell đều có chức năng bind port và cả back connect.
 

À... "shell" ở dạng này hả? nó là một "shell" giả, không set tty (tự tìm hiểu thêm) nên chỉ chạy lặt vặt vài lệnh cho vui chớ không thể exploit thật sự được. Dùng loại "shell" này chỉ hú họa may có 1 cái script nào do root own nhưng lại set mode là 777 thì còn họa may chấm mút chút đỉnh. Đó là chưa kể hầu hết các server ngày nay có firewall mặc định không cho phép truy cập vào các cổng không thông thường (như 25, 80, 443...) thì dùng có spawn 100 cái socket cũng không cách gì connect vào.

boom_jt wrote:

Mong mọi người chỉ giáo  

Thay chữ "chỉ giáo" bằng chữ "trao đổi" thì hay hơn smilie.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 01/08/2008 00:53:02 (+0700) | #20 | 144465
boom_jt
Member

[Minus]    0    [Plus]
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
[Profile] [PM]
okie thanks bác conmale, có 1 số điểm boom đã rõ hơn smilie 1 số thì cũng xin giải thích tiếp smilie

conmale wrote:
Sao không được? Nếu php hoặc jsp có một config nào chứa DB account (username, pass, db host, db port, db name...) thì vẫn có thể chạy mysql command ngay trên host chạy apache đó để truy cập vào DB. Nếu không thì làm sao php, jsp truy vấn được DB?  

Tất nhiên là mình có thể connect tới mysql server nhờ có tài khoản "lụm" được trong file config. Lúc trước boom vẫn nghĩ rằng trong trường hợp này, thì câu query sẽ được gửi tới cái remote mysql server kia, và nó phải được thực thi ở trên server đó. Do vậy các thao tác liên quan tới file (câu truy vấn kiểu như select load_file (...) ) nếu thực thì được thì cũng không phải là các file trên máy chủ mình đang cần khai thác mà là máy chủ chứa mysql kìa.
Tuy nhiên có vẻ như nhận định này đã sai, boom mới thử xong thì dường như kết quả trả về lại đúng là các file trên máy chủ mình cần khai thác. Điều này thì quả thật boom chưa hiểu, boom nghĩ rằng mysql server là thằng chịu trách nhiệm xử lý query chứ? Ai rõ về phần này chỉ cho boom với nha

Vậy hiện tại boom có thể dùng mysql để đọc file, nhưng cũng nằm trong quyền hạn đã config thôi, chớ ko đọc lung tung được smilie "into outfile" thì denied rùi ^^

conmale wrote:
Cái gì khiến cho "shell" jsp cấm nhiều quyền và "shell" ít cấm?  

/web/tomcat/conf/catalina.policy quy định policy cho Tomcat, còn /web/conf/php.ini chứa các thông số config cho PHP.
Cũng nói thêm (và đính chính) là file catalina.policy có quyền đọc (có lẽ lúc trước boom không để ý). Và boom để ý có dòng sau:

// ========== WEB APPLICATION PERMISSIONS =====================================


// These permissions are granted by default to all web applications
// In addition, a web application will be given a read FilePermission
// and JndiPermission for all files and directories in its document root

Như vậy phải chăng là dù có chạy với user root thì mặc định Tomcat đã không cho phép truy cập ngoài document-root?

conmale wrote:
À... "shell" ở dạng này hả? nó là một "shell" giả, không set tty (tự tìm hiểu thêm) nên chỉ chạy lặt vặt vài lệnh cho vui chớ không thể exploit thật sự được. Dùng loại "shell" này chỉ hú họa may có 1 cái script nào do root own nhưng lại set mode là 777 thì còn họa may chấm mút chút đỉnh. Đó là chưa kể hầu hết các server ngày nay có firewall mặc định không cho phép truy cập vào các cổng không thông thường (như 25, 80, 443...) thì dùng có spawn 100 cái socket cũng không cách gì connect vào.  

Nếu đã bind port hay back connect thành công, và nếu kernel có lỗi, thì dựa trên exploit có sẵn, vẫn có thể thành root và giữ được session đó bác. Shell này có khả năng iteract.
Tuy nhiên, cũng xin nói thêm là server đã có firewall (or đứng sau router), vì thế bind port có thể thành công nhưng không thể kết nối tới được, và cũng ko back connect được luôn - cái này có lẽ do firewall. Sau khi thưc hiện back connect, boom thử netstat thì thấy báo ở dòng tương ứng là SYN_SENT.

Mong mọi người tiếp tục "trao đổi" smilie hì hì
[Up] [Print Copy]
  [Question]   Re: [Thảo luận]Bypass Apache Tomcat's security policy 01/08/2008 04:02:48 (+0700) | #21 | 144510
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]

boom_jt wrote:
Tất nhiên là mình có thể connect tới mysql server nhờ có tài khoản "lụm" được trong file config. Lúc trước boom vẫn nghĩ rằng trong trường hợp này, thì câu query sẽ được gửi tới cái remote mysql server kia, và nó phải được thực thi ở trên server đó. Do vậy các thao tác liên quan tới file (câu truy vấn kiểu như select load_file (...) ) nếu thực thì được thì cũng không phải là các file trên máy chủ mình đang cần khai thác mà là máy chủ chứa mysql kìa.
Tuy nhiên có vẻ như nhận định này đã sai, boom mới thử xong thì dường như kết quả trả về lại đúng là các file trên máy chủ mình cần khai thác. Điều này thì quả thật boom chưa hiểu, boom nghĩ rằng mysql server là thằng chịu trách nhiệm xử lý query chứ? Ai rõ về phần này chỉ cho boom với nha 


Muốn biết thằng mysql nào chịu trách nhiệm xữ lý các query thì check trên server xem 2 con server đó cái nào đã được cài đặt mysql server .

boom_jt wrote:
/web/tomcat/conf/catalina.policy quy định policy cho Tomcat, còn /web/conf/php.ini chứa các thông số config cho PHP.
Cũng nói thêm (và đính chính) là file catalina.policy có quyền đọc (có lẽ lúc trước boom không để ý). Và boom để ý có dòng sau:  


Như vậy là server này có các "món ăn bình dân" sau : Apache, Tomcat, PHP, Mysql . Tôi không hiểu ở chổ này những ứng dụng mà bro định Bypass Apache Tomcat's security policy thì đâu có liên quan gì đến thằng PHP đâu mà đem PHP vào đây !?

Tui đọc dòng này thì tui thấy chổ này nó nói File Permission cho tất cả các tập tin và thư mục trong thư mục document root của 1 tài khoản nào đó ví dụ như /home/giangho/webapps/WEB-INF/classes

Đây là tập tin gốc conf/catalina.policy
// These permissions are granted by default to all web applications
// In addition, a web application will be given a read FilePermission
// for all files and directories in its document root.
grant {
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";

permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";

permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.io.FilePermission "jndi:/WEB-INF/-", "read";
};  


Còn sau khi tôi đọc xong thì tui điều chỉnh
permission java.io.FilePermission "${catalina.home}/webapps/jse/WEB-INF/storage/*", "write";  


boom_jt wrote:
Tuy nhiên, cũng xin nói thêm là server đã có firewall (or đứng sau router), vì thế bind port có thể thành công nhưng không thể kết nối tới được, và cũng ko back connect được luôn - cái này có lẽ do firewall. Sau khi thưc hiện back connect, boom thử netstat thì thấy báo ở dòng tương ứng là SYN_SENT. 


TCP sử dụng phương thức "bắt cá 3 tay" smilie trạng thái SYN_SENT là đã gửi SYN và đang đợi ACK trạng thái này xuất hiện khi client đưa ra lệnh mở cổng chủ động (thay vì bị động như ở server) thì lúc đó nó đi vào trạng thái SYN_SENT

Mọi người cứ tiếp tục "trao đổi" smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|