[Discussion] Nhật ký hacking |
15/08/2011 11:41:01 (+0700) | #1 | 245044 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Chào bà con,
Công việc của mình chủ yếu là hacking suốt ngày. Hôm nay trong lúc "trà dư tửu hậu" với gamma95 mới nảy ra ý mở một chủ đề nói về những dạng lỗi hay vấn đề mà mình gặp hàng ngày trong công việc, vừa như là ghi chép cá nhân để khi nào cần thì xem lại, vừa để chia sẻ và trao đổi với các bạn ở HVA.
Bữa nay mở đầu bằng một câu hỏi như sau:
1. Giả sử trong phần gửi mail, GMail có tính năng cho phép người dùng nhập vào một URL, rồi GMail sẽ tải cái URL đó về và biến nó thành một cái attachment. Câu hỏi là:
a) Có những rủi ro gì trong cách làm này? Nếu bạn kiểm thử cái tính năng này, thì bạn sẽ làm những bài kiểm tra nào?
b) Làm sao để đảm bảo an toàn cho một tính năng như thế?
-m
|
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 11:49:50 (+0700) | #2 | 245045 |
mv1098
Member
|
0 |
|
|
Joined: 18/07/2009 14:19:13
Messages: 119
Offline
|
|
a)
- Có những rủi ro gì trong cách làm này?
Dễ bị hacker chèn mã độc vào trong email rồi gửi cho victim
- Nếu bạn kiểm thử cái tính năng này, thì bạn sẽ làm những bài kiểm tra nào?
Mình thử add 1 url html đơn giản trong đó có popup để test, xem khi mở email popup có được load không.
b) Làm sao để đảm bảo an toàn cho một tính năng như thế?
mình đang nghĩ ... update sau |
|
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 13:18:23 (+0700) | #3 | 245049 |
jin9x
Member
|
0 |
|
|
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
|
|
mình ko nghĩ vấn đề nằm ở nguy hiểm cho người nhận mà là nguy hiểm cho server mail
lần đầu mình nghĩ đến việc attacker có thể lợi dụng điều này để tải mã độc lên server mail, nhưng nghĩ lại thì thấy form upload attachment cũng có thể làm việc này chứ ko đặc biệt phải là tải từ url
tiếp theo mình nghĩ đến liệu có thể dùng nó để DOS ko nhỉ ? vì nó cũng request đến server khác (cái url của mình), nhưng việc DOS qua port 80 (http) thì có vẻ là ko hiệu quả lắm, hoặc có thể là mình ko biết cách làm sao để hiệu quả (có lẽ chỉ tốn bw của victim thôi). |
|
tiền là giấy ,thấy là lấy ... |
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 17:02:21 (+0700) | #4 | 245063 |
|
secmask
Elite Member
|
0 |
|
|
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
|
|
Chung ý kiến với jin9x, cách này còn giúp download được một url mà không lộ mình là ai giống như sử dụng proxy.
Mình nghĩ đến một trường hợp hơi vòng vèo tí, kiểu như hva chẳng hạn, nếu như anh conmale có làm thêm email server trên cùng server với forum, trên forum có policy là chỉ cho phép user admin được truy cập được từ localhost, thì có thể nhờ cái email với attachment này truy vấn vào localhost. |
|
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 19:36:13 (+0700) | #5 | 245067 |
|
angel-pc
Member
|
0 |
|
|
Joined: 01/01/2011 01:15:32
Messages: 63
Offline
|
|
Công việc của mình chủ yếu là hacking suốt ngày.
Ước gì mình được như bạn |
|
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 19:42:05 (+0700) | #6 | 245068 |
|
angel-pc
Member
|
0 |
|
|
Joined: 01/01/2011 01:15:32
Messages: 63
Offline
|
|
Còn mình thì nghĩ đến khả năng người nhận bị đánh cắp cookie, vì với attachment thì gmail có cho phép người dùng xem trong ngữ cảnh nó là một phần trên server nên mình suy đoán vậy
Lưu ý: mình chỉ suy đoán trên cơ sở logic, chứ chưa kiểm tra thực tế, nói sai thì thôi đừng lôi ra chém
Về phần đảm bảo an toàn thì theo mình gmail cần có chính sách filter những nội dung có khả năng bị attacker khai thác, chỉ đơn giản thế thôi
|
|
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 20:06:33 (+0700) | #7 | 245070 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
a. Ờ cái này giống web2mail hồi xưa SV hay dùng để down 1 số thứ độc hại, vì vậy tui nghĩ cái rủi ro đầu tiên sẽ là một dạng by pass corporate policy.
Sau đó là nguy cơ DoS từ Gmail lên server chứa file, và nguy cơ tăng load của server Gmail do down file quá lớn hoặc user cố ý kêu Gmail down trúng tarpit
Nếu Gmail cho preview html của file down về thì sẽ có thể dính CSRF đối với site attached vào mail, hoặc bị XSS vào chính Gmail
b.1 Policy restriction trước tiên để hạn chế việc attach file remote: chỉ attach từ một số domain nhất định chẳng hạn (ví dụ Google Docs).
b.2 Nếu có preview html thì render html -> image rồi cho preview cho chắc ăn, hoặc phải sanitize trong trường hợp render trực tiếp.
b.3 Scan virus + pattern matching nội dung file sẽ attach để tránh các nội dung xấu
b.4 size limit & time limit cho việc download
Tạm thời tui nghĩ được nhiêu đó, mong anh em góp ý thêm.
Nhớ thời hồng hoang dial up xài web2mail quá đi thôi.
|
|
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 20:29:30 (+0700) | #8 | 245072 |
|
secmask
Elite Member
|
0 |
|
|
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
|
|
Tui hiểu không lầm thì cái việc download này chỉ thực hiện một(vài) lần, và ở phía người gửi thư lúc soạn thư dưới dạng file đính kèm, nên nếu có vấn đề gì với cookie hay XSS thì nó xảy ra với người gửi chứ không phải người nhận, chắc không có hách cơ nào tự đi chôm cookie của chính mình |
|
|
|
|
[Discussion] Nhật ký hacking |
15/08/2011 23:34:21 (+0700) | #9 | 245082 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
mình tổng kết lại một số điểm mà các bạn nói nha:
1. quét cổng/truy cập các dịch vụ bên trong (vd_, secmask): nhập vào http://localhost/ để thử xem có GMail sẽ trả về cái gì. cách làm này có thể được sử dụng để xác định dãy IP cũng như quét cổng dịch vụ của chúng trên hệ thống mạng nội bộ của GMail.
2. dùng làm proxy (nhiều bạn): tấn công DoS hoặc là khai thác các lỗi ứng dụng web phổ biến trên một ứng dụng của bên thứ ba. thực ra thì cái này cũng giống như cái thứ nhất, chỉ khác mục tiêu, nhưng cách làm là giống nhau.
cả hai điểm này đều là lợi dụng GMail để tấn công một ứng dụng khác. bây giờ mình hỏi: có cách nào để tấn công trực tiếp cái ứng dụng GMail như trên không? bạn vd_ đưa ra hai điểm hay là:
vd_ wrote:
b.3 Scan virus + pattern matching nội dung file sẽ attach để tránh các nội dung xấu
b.4 size limit & time limit cho việc download
- b.3 giúp chặn virus, nhưng mà b.3 có tạo thêm rủi ro gì không?
- tại sao lại cần b.4? nếu không có b.4 thì có rủi ro gì ở đây? nếu chỉ chặn dung lượng, mà không chặn thời gian, thì có rủi ro gì? và ngược lại?
-m
PS: đây là những câu hỏi mở, không hẳn đã có sẵn câu trả lời, nên các bạn cứ thoải mái mà đưa ý kiến. |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 07:06:28 (+0700) | #10 | 245088 |
jin9x
Member
|
0 |
|
|
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
|
|
1. mình nghĩ rủi ro ở đây là mất khách hàng thôi
VD như việc những IT gửi cho nhau những mẩu virus để thảo luận, có thể đính kèm trực tiếp vào email chứ ko lằng nhằng đi upload lên 1 bên thứ 3
Giờ nó check virus kiểu này thì chắc gây khó chịu đôi chút
2.
a. chặn dung lượng, không chặn thời gian:
Mình nghĩ đến việc sẽ thử nhập 1 link down từ host của mình, nhưng đã hạn chế tốc độ download của nó (xuống còn 1 b/s chẳng hạn), thì việc download dai dẳng này có thể gây overload CPU
b. ngược lại, mình cũng sẽ nhập vào 1 link down mà dung lượng không giới hạn (nếu là server của google thì chắc tốc độ khủng lắm nên trong thời gian ngắn có thể download 1 file bự chảng chắc là dễ thôi) => gây ra điều gì thì mình ko biết được
Ps: cả 2 dạng link down mình lấy làm ví dụ mình có thể (và đã) dùng php để làm, chứ ko phải nói suông đâu |
|
tiền là giấy ,thấy là lấy ... |
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 09:50:21 (+0700) | #11 | 245097 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
b3. Scan & pattern matching có thể bị buf overflow hoặc dùng escape string để by pass nên chỉ có tác dụng một phần, không phải là giải pháp chắc chắn 100%
b4. Như jinx9 có nói, nếu yêu cầu gmail down về 1 file mà trúng server config tarpit rule thì sẽ tốn network resource để maintain connection. Hoặc là netcat /dev/random thì biết chừng nào mới down xong -> nếu để time limit thì sẽ hạn chế được long download. Trường hợp target server cố ý chỉ support http 1.0 nên gmail serrver không biết được lúc nào mới hết file.
Trường hợp target server support range (http 1.1) thì hạn chế size down để hạn chế disk usage cho server gmail.
Ý của mrro trong trường hợp 1 là để gmail scan port của chính gmail? hoặc các internal server của google?
|
|
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 10:12:08 (+0700) | #12 | 245100 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
b3. Scan & pattern matching có thể bị buf overflow hoặc dùng escape string để by pass nên chỉ có tác dụng một phần, không phải là giải pháp chắc chắn 100%
b4. Như jinx9 có nói, nếu yêu cầu gmail down về 1 file mà trúng server config tarpit rule thì sẽ tốn network resource để maintain connection. Hoặc là netcat /dev/random thì biết chừng nào mới down xong -> nếu để time limit thì sẽ hạn chế được long download. Trường hợp target server cố ý chỉ support http 1.0 nên gmail serrver không biết được lúc nào mới hết file.
Trường hợp target server support range (http 1.1) thì hạn chế size down để hạn chế disk usage cho server gmail.
Ý của mrro trong trường hợp 1 là để gmail scan port của chính gmail? hoặc các internal server của google?
b3. đúng rồi. giờ hỏi thêm là, làm sao để khai thác lỗi buffer overflow nếu có của bộ quét virus? đương nhiên muốn trả lời câu này thì phải trả lời làm sao xác định được bộ quét virus nào đang được sử dụng.
b4. câu trả lời xuất sắc của bạn jinx9 và vd_.
---> đúng rồi. ví dụ như mình nhập vào http://localhost:22 chẳng hạn, rất có thể phần mềm sẽ báo một lỗi gì đó, khiến mình biết được là có dịch vụ lắng nghe ở cổng 22 của máy chủ GMail, đúng không? hoặc như mình nhập vào http://x.y.z.t:w/ thì mình sẽ xác định được có cái máy nào ở địa chỉ x.y.z.t lắng nghe ở cổng w hay không, đúng không? đương nhiên là khai thác được hay không và khai thác như thế nào là chuyện đi vào chi tiết của ứng dụng, nên mình không bàn ở đây. ở đây mình chỉ đang bàn đến những cái rủi ro trong việc thiết kế một tính năng như trên.
ngoài cái ý (chưa trọn vẹn) khai thác lỗi của bộ quét virus ở trên, có bạn nào có những ý tưởng nào khác có thể dùng tấn công trực tiếp vào máy chủ GMail không?
-m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 10:41:07 (+0700) | #13 | 245105 |
|
gamma95
Researcher
|
Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
|
|
một số ý kiến:
1. Cho một cái URL dạng live streaming, máy chủ google cứ tải cái file đó hoài và crash vì hết đĩa
2. Cho 1 cái URL để download một cái file có tên là \..\..\..\..\..\boot.ini chẳng hạn, nếu có có dùng AV để quét hoặc gì đó hoặc attachfile lên cho mềnh thì ngon.
3. URL nó hỗ trợ protocol nào thì mình test cái đó, VD mình nhập file:///etc/passwd chẳng hạn, file attach mình nhận đc sẽ là file /etc/passwd của google.
.... còn nữa |
|
Cánh chym không mỏi
lol |
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 19:51:24 (+0700) | #14 | 245124 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
b3. cái vụ bo này thì tui chỉ tạm biết là nếu giờ cho load file đủ lớn chứa toàn là AAAA hay gì đó, nếu gmail temporarily out of service sau khi attach -> crash service -> có khả năng stack/mem bị overwrite ở đâu đó -> rồi ROP hay gì đó nữa.
chi tiết hơn tui phải nghiên cứu thêm về RoP và đọc thêm về BO mới rõ được, còn trên chỉ là nguyên lý tui nhớ mang máng
@gamma95: ý 2&3 rất hay -> sẽ phải sanitize user input. Mà thường nguyên lý là không bao giờ tin user input nên việc kiểm tra bad url sẽ được thực hiện đầu tiên -> việc malicious server host valid url sẽ có hiệu quả hơn.
nhân tiện đặt thêm câu hỏi: url valid trong trường hợp này sẽ là gì? nếu kiểm tra valid url (http/https only, no port, no user@pass) thì có thể fix được một số vấn đề đang thảo luận hay không? |
|
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 22:33:12 (+0700) | #15 | 245134 |
|
gamma95
Researcher
|
Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
|
|
vấn đề giờ là lúc này gmail coi như là 1 client và đang "duyệt web" của attacker(vì attackers đang bắt gmail phải chạy những URL mà mình input vào ), tiếp theo là:
1. Tui cho gmail vô cái link http://gamma-dep-trai.com và sniff lại thử coi gmail đang dùng "cái gì" để __browse__ vô web của tui. Việc thứ 2 là coi "browser" của gmail nó có chạy được mấy cái scripting language ở client như js, vb, flash ... như những browser khác hay ko. Nếu con crawler thông minh quá có thể chạy đc cả js chẳng hạn thì có nhiều chuyện để nói lắm nha
2. Khi tui biết cái ip của con crawler gmail rồi thì vấn đề tiếp theo tui sẽ ráng dùng những patterns có sẵn của để tấn công webserver, web app, etc và bắt crawler của gmail đập vào những ip cùng subnet với nó (nhiều khả năng là những server khác của google).
3. thử test coi gmail có download 1 file nhiều lần hay ko? (có thể để tối ưu hoá thời gian ngồi chờ, nó thấy file nào nó đã down rồi thì ko down nữa). Nghĩa là nếu nó checksum nếu thấy cái file đó trong db rồi thì ko cần down nữa mà lấy file cũ attach lên ... khi đó có thể đoán xem nó checksum file bằng cách nào (md5, sha-1) để làm một file khác bị collision với file cũ và sẽ tồn tại 1 url mà gmal sẽ ko bao giờ thèm download ...
|
|
Cánh chym không mỏi
lol |
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 23:29:43 (+0700) | #16 | 245138 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
gamma95 wrote:
1. Cho một cái URL dạng live streaming, máy chủ google cứ tải cái file đó hoài và crash vì hết đĩa
2. Cho 1 cái URL để download một cái file có tên là \..\..\..\..\..\boot.ini chẳng hạn, nếu có có dùng AV để quét hoặc gì đó hoặc attachfile lên cho mềnh thì ngon.
3. URL nó hỗ trợ protocol nào thì mình test cái đó, VD mình nhập file:///etc/passwd chẳng hạn, file attach mình nhận đc sẽ là file /etc/passwd của google.
vấn đề giờ là lúc này gmail coi như là 1 client và đang "duyệt web" của attacker(vì attackers đang bắt gmail phải chạy những URL mà mình input vào ), tiếp theo là:
4. Tui cho gmail vô cái link http://gamma-dep-trai.com và sniff lại thử coi gmail đang dùng "cái gì" để __browse__ vô web của tui. Việc thứ 2 là coi "browser" của gmail nó có chạy được mấy cái scripting language ở client như js, vb, flash ... như những browser khác hay ko. Nếu con crawler thông minh quá có thể chạy đc cả js chẳng hạn thì có nhiều chuyện để nói lắm nha
5. Khi tui biết cái ip của con crawler gmail rồi thì vấn đề tiếp theo tui sẽ ráng dùng những patterns có sẵn của để tấn công webserver, web app, etc và bắt crawler của gmail đập vào những ip cùng subnet với nó (nhiều khả năng là những server khác của google).
6. thử test coi gmail có download 1 file nhiều lần hay ko? (có thể để tối ưu hoá thời gian ngồi chờ, nó thấy file nào nó đã down rồi thì ko down nữa). Nghĩa là nếu nó checksum nếu thấy cái file đó trong db rồi thì ko cần down nữa mà lấy file cũ attach lên ... khi đó có thể đoán xem nó checksum file bằng cách nào (md5, sha-1) để làm một file khác bị collision với file cũ và sẽ tồn tại 1 url mà gmal sẽ ko bao giờ thèm download ...
cuối cùng thấy không thể trốn được nữa thì gamma95 đã xuất hiện he he he.
1. ý này trùng với ý đã được đưa ra ở trên.
2. ý hay. câu hỏi là:
2a. làm sao khiến máy chủ GMail tải về một cái file có tên như thế?
3. ý hay. thư viện tải file có thể hỗ trợ nhiều giao thức khác nhau, nên tốt nhất là thử hết.
4. ý rất hay. muốn tấn công cái gì thì trước tiên phải biết nó là cái gì đã đúng không . câu hỏi là:
4a. làm sao để xác định được GMail dùng "cái gì" để tải file về?
4b. làm sao để xác định cái đó có hỗ trợ Javascript hay không? nếu có thì có những chuyện gì để nói?
4c. ngoài ra nếu đã xác định được GMail dùng "cái gì" để tải file về, thì về nguyên tắc chúng ta nên làm gì tiếp theo để có thể tấn công vào máy chủ GMail?
5. không hiểu ý này của gamma95. chú ý là IP của crawler mà gamma95 thấy là IP không thuộc lớp IP quy định trong RFC 1918.
6. nếu GMail không thèm download thì có vấn đề gì nguy hiểm ở đây?
-m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
16/08/2011 23:36:17 (+0700) | #17 | 245139 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
vd_ wrote:
b3. cái vụ bo này thì tui chỉ tạm biết là nếu giờ cho load file đủ lớn chứa toàn là AAAA hay gì đó, nếu gmail temporarily out of service sau khi attach -> crash service -> có khả năng stack/mem bị overwrite ở đâu đó -> rồi ROP hay gì đó nữa.
chi tiết hơn tui phải nghiên cứu thêm về RoP và đọc thêm về BO mới rõ được, còn trên chỉ là nguyên lý tui nhớ mang máng
@gamma95: ý 2&3 rất hay -> sẽ phải sanitize user input. Mà thường nguyên lý là không bao giờ tin user input nên việc kiểm tra bad url sẽ được thực hiện đầu tiên -> việc malicious server host valid url sẽ có hiệu quả hơn.
nhân tiện đặt thêm câu hỏi: url valid trong trường hợp này sẽ là gì? nếu kiểm tra valid url (http/https only, no port, no user@pass) thì có thể fix được một số vấn đề đang thảo luận hay không?
b3. cách làm này hơi vội. trước tiên bạn phải xác định được bộ phát hiện và diệt virus nào đang được sử dụng đã. ngược lại ở vị trí phòng thủ, bạn làm sao để che dấu thông tin về bộ phát hiện và diệt virus mà bạn đang sử dụng?
---> bạn đưa ra một ý hay là phần user@password, làm mình nhớ đến một hướng lợi dụng tính năng này là dùng nó để dò tài khoản trên các máy chủ khác sử dụng HTTP Basic Authentication.
---> bạn nghĩ nếu kiểm tra URL thì nên có những quy định nào? một cách kiểm tra thông thường là dùng biểu thức chính quy, vậy cụ thể ở đây biểu thức chính quy nào nên được sử dụng? nếu chỉ dùng biểu thức chính quy không thì có đủ hay không?
-m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
17/08/2011 01:27:18 (+0700) | #18 | 245148 |
kutruoi
Locked
|
0 |
|
|
Joined: 15/08/2011 12:47:31
Messages: 22
Offline
|
|
mình có mấy ngu kiến như sau :
a) nếu Gmail cho phép add một URL vào mail và "tải" về rồi "biến nó" thành một cái attactment thì có thể có những khả năng "xấu" sảy ra như sau :
-> quá trình "tải" về URL dưới dạng một transaction thông thương không được encrypt cẩn thận thì nguy cơ tiềm ẩn những "bùm" của những URL "bệnh" cho chính mail server của Gmail.( bệnh thế nào thì các bác đã viết rất rõ phía trên rồi ) .
-> quá trình "biến nó" thành một attacthment hoàn chỉnh theo policies của họ nếu kô không thận trọng thì cũng bùm với URL bệnh này .
b) giải pháp hoang tưởng của mình là tốt nhất là trước khi tải các định dạng URL về server họ nên "biến nó" thành dạng hình ảnh, sau đó encrypt nó một lần nữa . rồi áp dụng các chuẩn an toàn atachments của họ. như quét virut, lọc mã injected v.v..v rồi mới send back lại cho receiver dưới dạng "ảnh" URL . người tiếp nhận URL lúc này chỉ có cách copy và paste URL nếu muốn sử dụng. không được trực tiếp click hoạt tại hòm mail .
xin các bác cho ý kiến . |
|
mời bạn ghé xem site này hay quá ! http://danlambaovn.blogspot.com |
|
|
|
[Discussion] Nhật ký hacking |
17/08/2011 06:46:33 (+0700) | #19 | 245152 |
jin9x
Member
|
0 |
|
|
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
|
|
mrro wrote:
4a. làm sao để xác định được GMail dùng "cái gì" để tải file về?
4b. làm sao để xác định cái đó có hỗ trợ Javascript hay không? nếu có thì có những chuyện gì để nói?
4a. Cho GMail request đến server của mình, ở server mình cho sniff để lấy những thông tin của kết nối đó, sau đó dựa vào những thông tin đó để "đoán" (nhưng chắc là đoán không ra vì nhiều khả năng Gmail sử dụng công cụ riêng của họ)
4b. Để kiểm tra thì chỉ càn cho nó "xem" một đoạn javascript có chức năng gửi một request đến server mình và cho sniff thôi.
có request => đoạn js được thực thi => "cái gì đó" hiểu được js
Vấn đề này có thể nảy sinh nhiều vấn đề bảo mật khác, có thể áp dụng khai thác XSS, CRSF ... vào js mà |
|
tiền là giấy ,thấy là lấy ... |
|
|
|
[Discussion] Nhật ký hacking |
17/08/2011 07:51:13 (+0700) | #20 | 245155 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
@jin9x
4a. dùng passive finger printing (p0f) có thể đoán được 1 tí, nếu traffic từ gmail đủ lớn. Tuy nhiên không quá tin cậy được.
4b. Vấn đề nếu gmail chỉ đơn giản là down về chuyển thành attachment, không có render để preview thì gmail đâu có parse & thực thi js
@mrro
b3. việc phát biện bộ quét virus có thể sử dụng 1 cách đơn giản là sử dụng các mẫu đặc biệt mà 1 engine này phát hiện, nhưng engine khác không phát hiện (virustotal?). Không dễ, nhưng tui nghĩ là khả thi. Về phía defense, sử dụng 2 engine hoặc là sử dụng 1 engine, nhưng hiển thị cho user là engine khác cũng có 1 ít tác dụng (ví dụ yahoo nói sử dụng Norton, nhưng sao biết chắc là nó sử dụng Norton?)
regex viết nhanh (chưa đầy đủ) của url /^https?:\/\/[a-zA-Z0-9_\.-]+\/[a-zA-Z0-9_\.-\/~]+/
biểu thức chính quy vẫn có rủi ro đối với bản thân parser & execution engine của regex (lỗi BO?) . Còn một vấn đề nữa là hình như url giờ có utf8 (non-English) nên regex sẽ khá phức tạp nếu muốn user có thể sử dụng được dịch vụ ở mọi nơi.
tui có 1 ý nghĩ là sao ko dùng các technique của AI: machine learning, pattern recognition (neuron network, empirical analysis, ....) để cho điểm và đánh giá nội dung attachment. Ví dụ sau khi phân tích, ta có điểm 4/10 -> hiện ra visual notification cho user là attachment này likely - unlikely harmful để tự bản thân user chọn -> adjust điểm (giống crowd sourcing)
|
|
|
|
|
[Discussion] Nhật ký hacking |
18/08/2011 02:37:54 (+0700) | #21 | 245219 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
jin9x wrote:
4a. Cho GMail request đến server của mình, ở server mình cho sniff để lấy những thông tin của kết nối đó, sau đó dựa vào những thông tin đó để "đoán" (nhưng chắc là đoán không ra vì nhiều khả năng Gmail sử dụng công cụ riêng của họ)
4b. Để kiểm tra thì chỉ càn cho nó "xem" một đoạn javascript có chức năng gửi một request đến server mình và cho sniff thôi.
có request => đoạn js được thực thi => "cái gì đó" hiểu được js
--->Vấn đề này có thể nảy sinh nhiều vấn đề bảo mật khác, có thể áp dụng khai thác XSS, CRSF ... vào js mà
4a. ý kiến hay lắm. chuyện đoán ra hay không thì tùy trường hợp, ở đây mình chỉ bàn đến phương pháp thôi, và ý kiến của bạn là rất chính xác. thế bây giờ giả sử bạn thấy họ dùng thư viện của Java để tải file về, thì bạn sẽ làm gì tiếp theo?
4b. xuất sắc . giờ câu hỏi là làm sao để xác định được họ dùng bộ xử lý Javascript nào để thực thi Javascript? sau khi đã xác định được bộ xử lý Javascript rồi, thì nên làm gì tiếp theo?
---> cụ thể là khai thác thế nào? hi hi từ đầu đến giờ nếu bạn nào để ý sẽ thấy là mình yêu cầu mỗi lời nói ra đều phải có dẫn chứng cụ thể, rành mạch, không cho phép nói suông.
-m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
18/08/2011 02:53:06 (+0700) | #22 | 245220 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
vd_ wrote:
@jin9x
@mrro
b3. việc phát biện bộ quét virus có thể sử dụng 1 cách đơn giản là sử dụng các mẫu đặc biệt mà 1 engine này phát hiện, nhưng engine khác không phát hiện (virustotal?). Không dễ, nhưng tui nghĩ là khả thi. Về phía defense, sử dụng 2 engine hoặc là sử dụng 1 engine, nhưng hiển thị cho user là engine khác cũng có 1 ít tác dụng (ví dụ yahoo nói sử dụng Norton, nhưng sao biết chắc là nó sử dụng Norton?)
regex viết nhanh (chưa đầy đủ) của url /^https?:\/\/[a-zA-Z0-9_\.-]+\/[a-zA-Z0-9_\.-\/~]+/
biểu thức chính quy vẫn có rủi ro đối với bản thân parser & execution engine của regex (lỗi BO?) . Còn một vấn đề nữa là hình như url giờ có utf8 (non-English) nên regex sẽ khá phức tạp nếu muốn user có thể sử dụng được dịch vụ ở mọi nơi.
tui có 1 ý nghĩ là sao ko dùng các technique của AI: machine learning, pattern recognition (neuron network, empirical analysis, ....) để cho điểm và đánh giá nội dung attachment. Ví dụ sau khi phân tích, ta có điểm 4/10 -> hiện ra visual notification cho user là attachment này likely - unlikely harmful để tự bản thân user chọn -> adjust điểm (giống crowd sourcing)
- ý kiến sử dụng virustotal để xác định bộ lọc virus của bạn rất hay! về phần phòng thủ thì bạn nghĩ sử dụng 2 bộ lọc thì người ở ngoài sẽ không thể xác định hai bộ lọc đó là gì? cá nhân mình cho rằng sử dụng càng nhiều bộ lọc thì càng giảm độ an toàn, đơn giản vì mỗi bộ lọc giống như một dịch vụ, càng bày ra nhiều thì càng có nguy cơ cao. thành ra cứ tạm thời cho là kẻ tấn công sẽ biết được bộ lọc virus đang được sử dụng và rất có thể bộ lọc virus có lỗi, vậy có cách nào giảm thiểu thiệt hại hay không?
- nếu chỉ sử dụng biểu thức chính quy mà bạn đưa ra, thì kẻ tấn công vẫn có thể nhập vào chẳng hạn như http://127.0.0.1:22/ hoặc http://192.168.1.1:80/ để quét cổng như đã nói ở trên. vậy nên sửa lại như thế nào bây giờ?
- bạn có thể giải thích cái ý hình như url giờ có utf8 (non-English)? hi hi như đã nói ở trên, nên cẩn thận khi trả lời câu hỏi, nếu mà chưa nắm vững thì tốt nhất là không nên nói ra.
- các ý về AI của bạn đưa ra rất lý thú. bài toán này mà có thể xem là bài toán phân loại, một ứng dụng hết sức phổ biến của AI. câu hỏi là: thực hiện cụ thể làm sao? mô hình của bạn là gì? bạn sẽ sử dụng thuật toán nào?
-m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Discussion] Nhật ký hacking |
18/08/2011 10:31:34 (+0700) | #23 | 245228 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
@mrro
- Đồng ý càng nhiều code xử lý sẽ càng có nhiều lỗ hổng tiềm tàng, tuy nhiên việc này giống con gà và quả trứng: muốn giảm rủi ro thì cần nhiều control & handler -> lại càng nhiều code -> lại có thể có lỗi tiềm tàng. Tui nghĩ đến nhiều engine là thiết kế theo dạng multi layer (giống bộ lọc số - filter pass), mỗi engine sẽ được chạy trong 1 isolate container (lxc chẳng hạn), như vậy thì engine này miss thì engine khác sẽ có thể capture được. Hoặc là nếu 1 engine bi crash thì sẽ không ảnh hưởng đến engine khác. Nếu có thêm watchdog service để watch các isolate container thì sẽ kiểm tra được các sự kiên bất thường. Tuy nhiên, vấn đề la gmail là free, nên có cần phải overkill vậy hay không -> quay trở lại việc đánh giá rủi ro: nếu thấy đáng giá thì nên làm, không thì đành vậy
- regex đã viết không có : trong phần domain nên chắc các url dạng domain:port sẽ không match.
Còn về vấn đề url utf8 là tui nhầm lẫn, chuẩn không cho phép, chỉ có browser tự động encode non-ascii về ascii. Sorry, my bad.
- Cách thực hiện phân tích file download về bằng các giải thuật AI thì hiện giờ tui cũng chỉ mới ở mức ý tưởng, cũng chưa có thời gian đào sâu. Chắc phải suy nghĩ thêm mới có thể trả lời cho mrro được.
Tui lấy ý tưởng từ việc nhận dạng chữ viết/giọng nói. Đối với việc nhận dạng trong AI, bài toán đặt ra là làm sao biết được chuỗi binary tương ứng với ngữ nghĩa gì. Ở đây nếu mình coi file (hoặc network session) là một chuỗi binary, thì mình sẽ phải dựa vào các giải thuật AI để đưa ra quyết định chuỗi binary đó là độc hại hay không.
|
|
|
|
|
[Discussion] Nhật ký hacking |
18/08/2011 11:57:54 (+0700) | #24 | 245231 |
|
WinDak
Researcher
|
Joined: 27/01/2002 11:15:00
Messages: 223
Offline
|
|
Xin đóng góp 1 chút cho câu hỏi này của anh mrro:
b) Làm sao để đảm bảo an toàn cho một tính năng như thế?
Để trả lời câu hỏi này, theo mình cần phải có 1 giả thiết về hệ thống của google. Mình giả sử google làm những thao tác sau ngay khi hoàn thành quá trình nhập dữ liệu XYZ
1) Thực hiện download file trong liên kết XYZ
a) phân giải domain, tìm hiểu giao thức authentication (nếu có).
b) thực hiện kết nối và yêu cầu XYZ gửi file theo protocol
c) lưu trữ file vào một thiết bị lưu trữ (HDD)
2) Biến file đã download thành attachment
a) ghi nhớ file và các liên kết dữ liệu vào cơ sở dữ liệu.
b) trả lại gói dữ liệu về thông tin của file cho client
+ trong thông tin của file có thể có preview của file
c) Browser nhận dữ liệu và thay đổi trạng thái của người dùng (thay giao diện,v.v.)
Để thực hiện bảo mật, mình nghĩ cần phải thiệt lập bảo vệ ở toàn bộ các bước 1a,1b,1c, 2a,2b,2c, đảm bảo dữ liệu vào là an toàn, và dữ liệu ra cho bước tiếp theo là hợp lệ. Cụ thể ví dụ ở bước
1a) Kiểm tra liên kết có thuộc "white list" bằng regular expression, domain hoặc IP có cái nào trong "black list" hay không, các giao thức có trong "white list" hay không.
1c) khi lưu trữ phải có limit cho kích thước nhận được và thời gian đã nhận. Lưu trữ xong kiểm tra file có an toàn không (quét virus) trước khi chuyển sang bước tiếp theo.
2a) khi ghi nhớ vào CSDL phải kiểm tra các thông số như tên file, kích thước file, loại file có hợp lệ hay không, loại bỏ các rủi ro như lưu trữ tên file có kí tự đặc biệt hay script vào CSDL
2b) Ở bước này, tuỳ thuộc vào yêu cầu lúc gửi lại browser có những gì mà cần phải bảo mật ở từng bước.
+ Chẳng hạn như HTML được cho là hợp lệ ở bước 2a và cần đưa preview lại ở bước 2c thì ta cần thiệt lập các bảo vệ cần thiết cho 1 previewer application, cái này thì lại 1 phạm trù khác, tuỳ mục đích của previewer mà có thể đưa ra những luật khác nhau. Ví dụ như không cho script đưa kết nối ra ngoài mạng, thực hiện preview trên 1 máy hoàn toàn cách biệt và chỉ lấy screenshot.
Sau đó đảm bảo những thông tin trả về client là hợp pháp bằng cách lựa chọn càng nhiều những output được định sẵn càng tốt như ID, option number, các variable như tên file có thể thay đổi thành dạng đặc biệt nếu không cần hiển thị.
Mình nghĩ nếu đưa ra được process hoàn chỉnh của việc download -> attachment thì hoàn toàn có thể kiện toàn các phương án bảo mật.
|
|
-- w~ -- |
|
|
|
[Discussion] Nhật ký hacking |
21/08/2011 20:13:12 (+0700) | #25 | 245505 |
mv1098
Member
|
0 |
|
|
Joined: 18/07/2009 14:19:13
Messages: 119
Offline
|
|
Đây là Header khi em soạn 1 email mới
Request URL:https://mail.google.com/mail/channel/bind?VER=8&at=AF6bupPWZqn_VPaWtTjjINbu01b7AgGRzQ&it=2070&SID=6DEF817EE40C411A&RID=82527&AID=37&zx=xyobxx4yuyse&t=1
Request MethodOST
Status Code:200 OK
Query String Parametersview URL encoded
VER:8
at:AF6bupPWZqn_VPaWtTjjINbu01b7AgGRzQ
it:2070
SID:6DEF817EE40C411A
RID:82527
AID:37
zxyobxx4yuyse
t:1
Request Payload
count=1&ofs=62&req0_type=cf&req0_focused=0&req0__sc=c
Response Headersview source
cache-control:no-cache, no-store, max-age=0, must-revalidate
content-length:11
content-type:text/plain; charset=utf-8
date:Sun, 21 Aug 2011 14:06:37 GMT
expires:Fri, 01 Jan 1990 00:00:00 GMT
pragma:no-cache
server:GSE
status:200 OK
version:HTTP/1.1
x-content-type-options:nosniff
x-xss-protection:1; mode=block
Đây là 1 đoạn js trong khi em test
Code:
try{Q(N.Ja(),"lb");function Uad(b,a){return b.aa.xw("SELECT 1 FROM SQLITE_MASTER WHERE TYPE=? AND NAME=?","table",a)!=l}function Vad(b){this.Pa=b;this.ha=!!Gn("GMAIL_BAK")}function A5(b,a){a&&(dd(a,"$a",b.aa,!1,b),a.Ha())}
function Wad(b){if(!kza())return!1;var a=ep();if(!a||!a.hasPermission)return!1;a=0;try{var c=new Sq(sk,dw+"-b","lsb");H(c,"$a",b.aa,!1,b);if(!Uad(c.ia,"Messages"))return A5(b,c),!1;a=c.xw("SELECT count(*) FROM Messages");if(a==0)return A5(b,c),!1}catch(d){return A5(b,c),!1}A5(b,c);try{var e=new Sq(sk,dw,"lsb");H(e,"$a",b.aa,!1,b);if(!Uad(e.ia,"PendingHistory")||!Uad(e.ia,"History"))return A5(b,e),!0;var f=e.xw('SELECT count(*) FROM (SELECT MessageId from History WHERE HandledTime IS NULL AND (Action="ls-svmsg" OR Action="ls-sndmsg") UNION SELECT MessageId FROM PendingHistory WHERE Action="ls-svmsg" OR Action="ls-sndmsg")');
A5(b,e);return a>f}catch(g){}A5(b,e);return!0}function Xad(){};w(Vad,Nb);Vad.prototype.ea=l;
Vad.prototype.ia=function $2Cd(){if(this.ea==!1)return l;this.ea=Wad(this);if(!this.ea)return kxa("GMAIL_BAK"),l;var a;if(this.ha)a=l;else{a={href:"html/en/lsdisplaymsgs.html#dbname="+encodeURIComponent(sk+"-"+dw)};var c=new T;c.append("There seems to have been a failure to sync some of your drafts or sent messages. "+('<a target=_blank href="'+a.href+'">Recover pending messages</a> <span id="link_backup_hide" idlink tabindex="0" role="link">Hide</span>'));a=new eh(c.toString(),
1,-1)}return a};Vad.prototype.Bk=function $3Cd(a){return a=="backup_hide"?(this.ha=!0,Dn("GMAIL_BAK"),!0):!1};Vad.prototype.aa=function $4Cd(a){Ho.aa(a.ia,a.ha,a.aa,a.ea)};w(Xad,Oe);Qe(Se(N.Ja(),"lb"),Xad);Xad.prototype.ed=function $5Cd(a){Zf(a,"Ta",function(a){return new Vad(a)})};O(N.Ja(),"lb");R(N.Ja(),"lb");}catch(e){_DumpException(e)}
// Copyright 2002-2011 Google Inc.
//@ sourceURL=?ui=2&view=jsm&name=lb&ver=IQRmh2PhfnM.en.&am=!Ck1jWlssh0j7gv37BXTUQ8fRnde3xWGyMOOvSd45T82VmatF-RGsQEjImVrwRSDs
Em bỏ 1 link live stream vào khi test nó trả về Ulititled
Em test bằng http://192.168.1.1:80 nó trả về cái địa chỉ modem của em
@anh mrro anh cho em xin cái hình về cái vụ add link thành file attachment được không à, em tìm hoài không được |
|
|
|
|
|
|
|
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|
|
|