Thứ Ba, 18 tháng 7, 2017

[PHÂN TÍCH + THẢO LUẬN] LÀM GÌ KHI CÓ MẬT KHẨU DẠNG HASH

DOCUMENT:
Link: https://www.sans.org/reading-room/whitepapers/testing/pass-the-hash-attacks-tools-mitigation-33283
Link: https://en.wikipedia.org/wiki/Pass_the_hash

PENTEST:
Đa số chúng ta khi vô tình hoặc cố tình có được Database của một hệ thống nào đó thì mật khẩu thường được lưu dưới dạng Hash mặc dù cũng gọi là không liên quan đến mấy cái link ở trên cho lắm. :v
Theo như The Reindeer nhận định thì thường chia làm 2 trường hợp:
1. Dữ liệu được hash trên Server:
Như các ví dụ trong link:
https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html
Dữ liệu được truyền vào dưới dạng text và được mã hóa trên Server.
Trong hình thức này thì mình sẽ sử dụng biện pháp Brute Force Hash. =.=
2. Dữ liệu được hash trên Client:

Thông qua các hàm hash trên Client.
Trong hình thức này attacker sẽ trực tiếp gửi giá trị hash lên server bằng cách loại bỏ hàm hash trong source.
Ví dụ:
Với shell b374k khi tải trên mạng về và không biết mật khẩu của shell.
Xem source ta thấy đoạn:
$GLOBALS['pass'] = "fb621f5060b9f65acf8eb4232e3024140dea2b34"; // sha1(md5(pass))

$your_pass = sha1(md5($p['pass']));

Với dòng 1 ta có thể chèn lại hash của mình vào. -- Done.
Với dòng 2 khi sửa lại thành: $your_pass = $p['pass']; thì mật khẩu sẽ được lưu dưới dạng text nguyên bản.

Ví dụ:
Với azshop.net.vn
Sau một thời gian nghịch ngợm ta thu được.
Mật username và mật khẩu lưu dưới dạng Hash:
('5', 'huy.nd', 'a99442d2a736365f5fe637e299b0e339', 'Nguy?n ??c Huy', 'huy.nd@azshop.net.vn', '2015-11-26 13:11:28', '2017-03-27 15:28:03', '1', '3');



Tìm kiếm trang đăng nhập


Source trang đăng nhập


Source jquery 1.10.2



Đăng nhập


Đăng nhập

KỊCH BẢN TẤN CÔNG:
- Lấy mật khẩu admin.
- Upshell từ đó tiến hành tấn công local attack.
BIỆN PHÁP KHẮC PHỤC:
- Tránh Brute Force mật khẩu bằng cách sử dụng mật khẩu với độ bảo mật cao.
- Tránh lộ lột Database bằng cách phân quyền hợp lý.
- Nên hash mật khẩu trên server.
TIMELINE:
- 15:00 25/06/2017 - Phát hiện lỗi trên azshop.net.vn
- 15:30 27/06/2017 - Thông báo cho azshop.net.vn
- xx:xx  18/07/2017 - Fixed.

Thứ Ba, 27 tháng 6, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] Stored XSS - Em tôi đã hack didongthongminh.vn như thế nào? :v

DOCUMENT:
CTF link: https://www.root-me.org/fr/Challenges/Web-Client/XSS-Stored-1
Docment link: https://doc.lagout.org/security /Cross%20Site%20Scripting%20Attacks%20Xss%20Exploits%20and%20Defense.pdf
PENTEST:
Dạo một vòng tìm mua cái điện thoại phụ phát được 4G thì tìm được didongthongminh.vn với cái máy như thế này:
http://didongthongminh.vn/fujitsu/fujitsu-arrrow-f-08d-p2101.html
Giá thành rẻ hơn cả một bộ phát 4G lại còn rất nhiều chức năng. ^^
Nhìn thấy khung coment nhập email và username không cần xác nhận. Thử Stored XSS xem sao.
Với thẻ image cơ bản:
<IMG SRC=/ onerror="alert(1)"></img>
-- Done. :D
 


Tên user trong hình: TÙng
KỊCH BẢN TẤN CÔNG:
Bước 1: User sử dụng lỗi Stored XSS với link lừa đảo.
Bước 2: User khác hoặc Admin click vào link tìm kiếm điện thoại trên, hộp thoại với nội dung lừa đảo được đưa ra.
Bước 3: Trong site lừa đảo có docment.cookie, khi lấy được cookie của admin thì rất nhiều khả năng có thể được đưa ra như: thống kê khách đặt, thống kê khách hàng, thay đổi nội dung site...
BIỆN PHÁP KHẮC PHỤC:
          Xử lý input trong comment, xác nhận khi đăng ký, đăng nhập, comment.
TIMELINE:
15:00 23/06/2017 - Được thằng em phát hiện nó hổng và thông báo.
20:00 23/06/2017 - Liên hệ với didongthongminh.vn và gửi Report.
xx:xx 24/06/2017 - didongthongminh.vn xác nhận lỗ hổng và tiến hành fix.
xx:xx 25/06/2017 - Nhận được 1 voucher từ didongthongminh.vn ^^
09:30 27/06/2017 - Xác nhận didongthongminh.vn đã fix và viết writeup.
 


Thứ Năm, 8 tháng 6, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] Funny - SQL injection - authentication

Tiếp tục Seri Áp dụng CTF, hôm nay sẽ là một ví dụ rất cơ bản về SQL injection.
Link CTF: http://challenge01.root-me.org/web-serveur/ch9/
Ebook: http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Blackhat%20Europe%202009%20-%20Advanced%20SQL%20injection%20whitepaper.pdf
Link thực tế:
vcnc.co/login.php
Với login page này ta thử với:
User: '=' 'or'
Pass: '=' 'or'
Ta được:






Thực sự thì hiện tại lỗi này rất hiếm gặp do các dev-er đã fix hết đa số những ký tự đầu vào nhưng với nhiều câu lệnh truy vấn khác phức tạp hơn thì vẫn có thể bypass được.



Thứ Năm, 1 tháng 6, 2017

[PHÂN TÍCH] LỖI LOGIC ONONPAY

Bài viết hôm nay chủ yếu là về mặt logic còn vấn đề kỹ thuật cũng rất basic.
Mặc dù F.A, gấu không có nhưng chả hiểu sao tiền điện thoại thì vẫn cứ hết. Thẻ ngân hàng thì chỉ đăng ký VNTOPUP chứ không đăng ký BANKPLUS nên nạp tiền qua đó thì cũng mất 500đ tiền phí (::sad:: 500đ cũng phải tiết kiệm). Lang thang một vòng ở Appstore thấy cái tên lạ lạ ONONPAY với details:"Nạp tiền điện thoại". Xúc thôi, tải ngay về.
Review chút về ONONPAY:
- Logo rất đẹp, rất sáng tạo với 2 chữ o kết hợp 1 chữ p. =))
- Khá thân thiện với người dùng.
- Đăng ký nhanh chóng tiện lợi.
Xong phần PR miễn phí.
Ở ONONPAY có cơ chế đăng ký tài khoản thông qua email + xác nhận bằng mã OTP của điện thoại, ngoài ra thì cũng xác nhận mã OTP khi quên mật khẩu. Do đó với mã OTP thì ta có thể đăng ký tài khoản ONONPAY với bất kỳ số nào nếu ta nắm được mã OTP đó, ngoài ra khi nắm trong tay được mã OTP thì cũng có thể thay đổi mật khẩu của User đó, mà khi có User thì tha hồ có thẻ để nạp tiền gọi cho gấu cũng như nạp game rồi nhé. Hehe.

Cơ chế xác thực của ONONPAY là mã OTP sẽ được chuyển về Số điện thoại đăng ký và người dùng sẽ dùng mã OTP đó để đổi mật khẩu, với mỗi phần khẩu sẽ có timelife là 5 phút, nhưng những mật khẩu đó được nhập đi nhập lại rất nhiều lần trong vòng 5 phút. Mã OTP chỉ gồm có 4 ký tự số, đến đây thì chắc hẳn ai trong chúng ta cũng nghĩ đến BruteForce OTP rồi nhỉ, trong vòng 5 phút với 10000 lượt thì cũng không có gì quá khó khăn với mạng khỏe khỏe chút + mấy cái máy cái nhân tà tàng chạy nhiều luồng.


Tiếp tục chúng ta sẽ Decompile ứng dụng ONONPAY hoặc chặn bắt gói tin, rebuild lại một app dựa trên ONONPAY với đoạn code Brute Force để có thể dễ dàng viết một tools nho nhỏ để Burte Force người dùng. (Brute Force thì cũng lâu đấy, tốt nhất nên kết hợp với Social Engineer để xem ai dùng ONONPAY).

Một đoạn code Python nho nhỏ Auto Keyboard khai thác kèm với việc cài ứng dụng lên trên máy tính, đơn giản không cần phải Decompile, Capture Packet,...
import pyautogui
for i in range (1000,10000):
    pyautogui.typewrite(str(i))
    pyautogui.typewrite(["enter"])

Lưu ý: Tất cả các bài viết chỉ nhằm mục đích để các bạn Dev chú ý hơn, những kỹ thuật trong bài rất đơn giản chủ yếu do sự vô tình của các bạn, không ủng hộ việc sử dụng những kiến thức đơn giản này vào nhằm mục đích mưu lợi cá nhân.

Timeline:
14:00 30/05/2017: Phát hiện lỗi.
14:00 31/05/2017: Báo cho bên ONONPAY.
17:00 01/06/2017: Viết bài cảnh báo nhằm mục đích chia sẻ kinh nghiệm.

Thứ Ba, 30 tháng 5, 2017

[PHÂN TÍCH] GET CONPON VNTRIP.VN

Sau lần trước thì VNTRIP cũng đã khắc phục và xoá services "admin-services" bằng cách thay thế một services khác tạm gọi là "xxx" và tình trạng thì vẫn tương tự như "admin-services" trước kia.
Khi truy cập vào:
https://xxx.vntrip.vn/vntrip/


Mọi nội dung trên test-services đều là thông tin test nên không có gì quan trọng nhưng thay vào đó thay các api của xxx vào services.
https://services.vntrip.vn/vntrip/orders/get-list-coupon-code/


Vậy là chúng ta đã có bộ COUPON của VnTrip.
Ngoài coupon ra thì trên api của VnTrip còn có một số nội dung như thông tin khách đặt vé, thông tin khách sạn, thông tin phòng...

Timeline:
10:00 - 04/05/2017: gọi điện cho VnTrip.
12:00 - 04/05/2017: gửi mail cho bộ phận tester bên VnTrip.
xx:xx - 05/05/2017: nhận được phản hồi và cảm ơn.
15:00 - 15/05/2017: kiểm tra lại và thấy lỗi chưa được vá gọi điện lại lên tổng đài, cũng như kỹ thuật.
21:00 - 07/06/2017: fixed.
Vì vậy mình viết bài này để cảnh báo.

Thứ Ba, 9 tháng 5, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] Google Hacking, Structure FrameWork

Laravel hiện là một trong số những FrameWork php rất được ưa chuộng.
https://quickadminpanel.com/blog/how-to-use-laravel-env-example-files/
http://challenge01.root-me.org/web-serveur/ch6/
Qua bài viết trên + cái tittle thì có lẽ các bạn cũng đã hình dung được một phần bài viết hôm nay rồi phải không? Tiếp tục nào.
Thử trên site của "ISAMCO".
Google Hacking với nội dung: inurl:"isamco.com.vn" ext:env
Ra đúng như chúng ta dự kiến.

Khi có DB_HOST, DB_USER, DB_PASSWORD thì việc còn lại dành có sự sáng tạo của các bạn. Như mình nghịch chút chút:

Update: Mới phát hiện thêm là hệ thống này ảnh hưởng tới toàn bộ hệ thống Website của Mitsubishi Việt Nam, hệ thống vẫn chưa được fix.
Timeline:
10:00:00 02/05/2017 - Thực hành và báo lỗi cho ISAMCO, MITSUBISHI-MOTOR
16:00:00 09/05/2017 - Viết bài cảnh báo.
14:00:00 31/05/2017 - Liên hệ được bạn IT, fixed.

Lại một vấn đề bảo mật cơ bản phải không?

Thứ Sáu, 5 tháng 5, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] HTTP directory indexing và việc đăng ký tài khoản trên các Website/ Ứng dụng Thương mại điện tử.

Bạn nào đã từng chơi root-me.org thì chắc cũng sẽ biết đến một trong số những bài đầu của Web Server : "HTTP directory indexing" hôm nay mình sẽ phân tích về vấn đề đó theo cách diễn tả của mình.
Bắt đầu nào, directory là thư mục vậy http directory indexing nói nôm na sẽ là thông qua http để truy cập vào thư mục thường được hiển thị ở site index.
Cũng như bài tập trên root-me, đầu tiên chúng ta tấn công dictionary để xem các directory thông qua các wordlist.
Các bạn có thể tự viết tools bằng nhiều ngôn ngữ, ví dụ như Python hoặc lên github cũng sẽ có rất nhiều tools cho các bạn. Ở đây tôi dùng luôn công cụ "dirb" trên Kali Linux.
Sau khi chạy "dirb" ta thu được.
Tiếp tục nào, thử nhập những link đó vào Brower xem sao:
Không bị hạn chế 403. :D :D :D
Lòng vòng bên trong cfco.com.vn và 1 số site do cfco tạo ra mình thu được một số thứ như, bộ tools với file manager, danh sách khách hàng, danh sách mạng lưới và một điều rất là thú vị nữa đó chính là "email" và "password" của một email quản lý.



Tiếp tục truy cập vào trong email nào.
Không gặp phải bất kỳ vấn đề xác thực nào. Cái này người dùng cần xác thực 2 lớp nhé.
Trong email thì mình phát hiện ra email này không chỉ quản lý mỗi một trang mà là rất nhiều trang :((
Mọi thông tin như số điện thoại khách hàng, tên tuổi, địa chỉ, hóa đơn đều trong này cả.
Thậm chí một số người dùng đăng ký tài khoản trên này lại trùng với tài khoản mạng xã hội như facebook, gmail...
Rất nhiều trang dịch vụ thương mại điện tử lớn đang sử dụng dịch vụ của A như: Zenda, Sevenam, goceva, senslim, ...

Timeline:
14:00:00 24/04/2017 - Thử nghiệm trên các site do cfco.com.vn thiết kế.
14:00:00 25/04/2017 - Gọi điện báo cho bên kỹ thuật của cfco.com.vn và nhận được sự phản hồi và sẽ thực hiện fix sau 30/04/2017, nghỉ lễ cái đã nhỉ. :D
14:00:00 26/04/2017 - Phát hiện có đối tượng khác truy cập vào mail của bên cfco.com.vn, tiếp tục thông báo để fix.
11:00:00 05/05/2017 - cfco.com.vn fixed.
12:00:00 05/05/2017 - Public để cảnh báo cho mọi người.