Cách xâm nhập vào 1 trang web

Đây là bài bác dịch, bài bác cội những bạn cũng có thể xem tại chỗ này : https://hackernoon.com/how-i-hacked-40-websites-in-7-minutes-5b4c28bc8824

*

Tôi bắt đầu học về bảo mật thông tin lên tiếng và hacking trường đoản cú ngày hè thời gian trước. Sau một năm ghê qua những cuộc thi CTF, wargame, mang lập kiểm tra xâm nhập (penetration testing simulation), bây giờ tôi vẫn đang tiếp tục cải thiện kĩ năng hacking đồn thời học thêm những điều bắt đầu về vấn đề có tác dụng cố làm sao để để cho máy vi tính đi lệch ngoài phần lớn hành động dự kiến.

Bạn đang xem: Cách xâm nhập vào 1 trang web

Nói nđính thêm gọn, kinh nghiệm về bảo mật thông tin của tôi luôn luôn bị giới hạn trong các môi trường trả lập. Và bởi vì tức thì từ bỏ lúc đầu, tôi luôn trường đoản cú ý thức rằng mình là một trong hacker mũ white (fan tốt), cần ko lúc nào tôi nhúng mũi mình vào các bước của fan khác - khá là gồm đạo đức nhể.

Cho mang đến hôm nay thì phần nhiều chuyện sẽ khác. Sau đây là mẩu truyện cụ thể về phong thái mà lại tôi đang hachồng vào trong 1 hệ thống đang được dùng làm lưu trữ 40 (số lượng đúng chuẩn đấy) trang web cùng đa số kiến thức và kỹ năng tôi vẫn chiếm được.

Lưu ý: Một số kiến thức cơ phiên bản về kỹ thuật laptop là quan trọng nhằm bạn có thể hiểu được phần chuyên môn vào bài viết này

Một tín đồ chúng ta đang nhắn tin cho tôi rằng có một lỗi về XSS đã có kiếm tìm thấy làm việc trang web của anh ý ấy, cùng cậu ta muốn tôi mày mò sâu hơn về độ bảo mật nghỉ ngơi khối hệ thống anh ta vẫn sử dụng. Đây là một trong trải nghiệm quan trọng đặc biệt, cùng tôi sẽ phải bảo bạn chúng ta của chính mình trình diễn ước muốn của anh ý ta bên dưới dạng văn bản chính quy, rằng vẫn có thể chấp nhận được tôi bao gồm quyền được thực hiện một cuộc khám nghiệm toàn diện bên trên trang web cuả anh ta tương tự như bên trên hệ thống đã dùng để làm tàng trữ website kia. Và công dụng là anh ta Đồng ý.

*

Trang web của người tiêu dùng tôi sẽ được diễn đạt bên dưới dạng http://example.com trong toàn bộ phần sót lại của bài xích viết

Bước trước tiên mà tôi luôn luôn triển khai là liệt kê với tra cứu tìm càng những thông tin càng tốt về quân thù của bản thân - trong những lúc rời khiến chú ý không còn nấc hoàn toàn có thể.

Tại bước này tôi vẫn nhảy cỗ đếm thời gian và ban đầu quét.

$ nmaps --top-ports 1000 -T4 -sC http://example.comNmaps scan report for example.com redactedHost is up (0.077s latency).rDNS record for redacted: redactedNot shown: 972 filtered portsPORT STATE SERVICE21/tcp open ftp22/tcp open ssh| ssh-hostkey: | redacted80/tcp open http| http-methods: |_ Potentially risky methods: TRACE|_http-title: Victlặng Site139/tcp open netbios-ssn443/tcp open https| http-methods: |_ Potentially risky methods: TRACE|_http-title: Site doesn"t have sầu a title (text/html; charset=UTF-8).|_redacted445/tcp open microsoft-ds5901/tcp open vnc-1| vnc-info: | Protocol version: 3.8| Security types: |_ VNC Authentication (2)8080/tcp open http-proxy|_http-title: 400 Bad Request8081/tcp open blackice-icecapViệc Scan sống bên trên tốn của tôi không còn 2 phút.

Có tương đối nhiều port đang rất được open ngơi nghỉ trên server! Bằng vấn đề quan tiền gần kề thấy rằng cổng FTPhường (21) với SMB(139/445) đang open, bạn có thể đoán thù được hệ thống này được sử dụng để lưu trữ và chia sẻ file, mặt khác được thực hiện nlỗi một webserver (cổng 80/443 cùng proxies 8080/8081)

*

Chúng ta cũng hoàn toàn có thể lưu ý đến đến sự việc soát sổ các cổng UDPhường ví như như các thông báo thu được tự bước trên không đủ. Ở phía trên cổng tuyệt nhất mà lại chúng ta có thể ảnh hưởng (mà lại ko buộc phải xác thực) là 80/443.

Để không tốn thời hạn, tôi áp dụng gobuster để quét một trong những tệp tin có vẻ trúc vị trên webserver, trong những khi tiếp tục kiếm tìm kiỉm thêm thông báo bằng tay thủ công.

$ gobuster -u http://example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100/admin/loginKết trái nhận được là băng thông admin/ là nơi chứa admin tool dành cho tất cả những người sử dụng sẽ đúng đắn rất có thể biến hóa những yếu tố trên webhệ thống. Công gắng này những hiểu biết lên tiếng singin trong lúc chúng ta không tồn tại cả username lẫn password, nên tạm thời vẫn đặt ở đó (thực tiễn là gobuster chả tìm được gì thú vui cả

*

Ta tưởng rằng Khi upload tệp tin lên VPS, sẽ có một vài process đánh giá phần không ngừng mở rộng của tệp tin, thay thế bọn chúng thành các định dạng được đồng ý nhỏng .jpeg, .jpg nhằm tách Việc tiến hành code vì chưng kẻ tiến công lúc upload một file chứa mã độc, bởi vì những bạn các quyên tâm đến bảo mật cơ mà.

nhỉ? Nhỉ?... NHỈ?

`Copy image address` results in the following url being copied to lớn our clipboard:http://www.example.com/admin/ftp/objects/XXXXXXXXXXXX.phpXem ra là chúng ta vẫn gồm một webshell (ghnghiền từ website cùng shell -> chạy shell code trên website =) ) chuẩn bị để sử dụng:

*

Thấy rằng hệ thống sử dụng perl script (thiệt là perl luôn?), tôi đã mang một đoạn dịch ngược mã perl từ bỏ Cheatsheet ái mộ của bản thân mình, cấu hình thiết lập IP/Port cùng tạo thành được một shell bao gồm quyền truy vấn thấp - xin lỗi do không tồn tại ảnh chụp.

Gần 5 phút ít vẫn trôi qua, và họ bao gồm một shell nhằm địa chỉ - tuy nhiên quyền truy cập vẫn còn bị số lượng giới hạn.

Điều khiến tôi bất thần tuyệt nhất là, server không chỉ có được dùng để làm host 1 cơ mà cho tới những 40 trang web khác nhau. Thật buồn là tôi đang không cất giữ ảnh chụp của từng trang web một cơ mà output thì phong cách nhỏng này:

$ ls /var/wwwaccess.log site1/ site2/ site3/ ... the danh mục goes onquý khách hàng vừa biết là họ vẫn có cái gì rồi đó. Thật thú vị là bạn cũng có thể gọi được TOÀN BỘ mã mối cung cấp của các website đang được host trên server. Và tôi đã buộc phải số lượng giới hạn lại bạn dạng thân sống code của trang example.com.

Một điều đáng chú ý nữa là, làm việc trong thư mục cgi-admin/pages, toàn bộ perl script phần đông được liên kết với 1 mysql database cùng với quyền root. Đồng thời username với password nhằm truy cập cũng lồ lộ ở chỗ này bên dưới dạng phần lớn bé chữ thanh khiết cùng mời call. Hãy giả định rằng username/password là root:pwned42.

cũng có thể chắc chắc hẳn rằng server sử dụng MariaDB với tôi sẽ bắt buộc tìm hiểu thêm issue này trước lúc rất có thể truy vấn được vào DB. Sau cùng Lúc thực hiện lệnh:

mysql -u root -p -h localhost victimdbnamePassword: pwned42Chúng ta đang nghỉ ngơi trong Database cùng với người tiêu dùng root:

*
Sử dụng lệnh use databasename; đang được cho phép bọn họ truy vấn ngẫu nhiên db làm sao trong số 35 db này cùng coi + sửa văn bản của chúng.

Chỉ sau 7 phút ít, chúng ta đang có toàn quyền truy vấn, thêm sửa xoá mang lại ngôn từ của 35(!) database

Đạo đức công việc và nghề nghiệp vẫn buộc tôi đề nghị tạm dừng Việc khám (cùng phá) của bản thân ở đây, vày thiệt sợ sẽ trngơi nghỉ yêu cầu to lớn lắm rồi.

Những vật dụng nhưng kẻ tiến công có thể làm

Dump câu chữ của toàn bộ các database, để cho tài liệu của 35 chủ thể nai lưng trụi trên những tên miền chỗ đông người.Xoá toàn bộ những database, xoá sổ dữ liệu của toàn cục 35 công ty

Tôi cũng chú ý với chúng ta rằng tại đây process mysql được chạy dưới quyền root, cho nên vì thế tôi đã làm chạy lệnh ! whoamày để thử mang quyền root nhưng mà ko thành công.

Nghỉ giải lao chút thôi. Dừng chiếc đồng hồ thời trang đếm lại.

Xem thêm: Cách Tắt Ứng Dụng Đang Chạy Trên Win 10 (Update 2020), Toàn Tập Cách Tắt Ứng Dụng Chạy Ngầm Win 10

Liệu còn rất có thể làm được gì nữa?

Sau Lúc report lại kết quả tấn công của bản thân, tôi đã có phnghiền đào sâu không dừng lại ở đó.

Trước lúc search phương pháp để phát triển thành quyền truy vấn của chính mình thành root với tạo nên nhiều thiệt sợ hãi hơn nữa, tôi đang tìm kiếm tìm xem liệu bao gồm tệp tin làm sao nhưng mình rất có thể tận dụng được cùng với quyền truy vấn hiện tại hay là không.

Ở thời điểm này, tôi lưu giữ ra rằng cổng SMB cũng đang rất được mnghỉ ngơi. Điều đó có nghĩa là bao gồm một tlỗi mục như thế nào đó được share trong khối hệ thống cùng với toàn cục người dùng. Sau một vài lần chuẩn y hỗ tương, thì đấy là kết quả mà lại tôi tìm được vào tlỗi mục /home/samba/secured (xin máy lỗi cho Việc bịt hơi nhiều):

*

Trong thư mục này, có khá nhiều file của từng người dùng của bạn hosting. Nó chứa không ít ban bố nhạy cảm như là :

Các tệp tin .psd/.ai (Designer biết tầm quan trọng đặc biệt để giữ đông đảo tệp tin này private, vị cho dù sao kia cùng là các bước với tài năng của họ)Các file cookies sqliteHoá đơnEbook lậu (ahihi)Thông tin truy vấn Wifi SSIDs

Kẻ tấn công hoàn toàn có thể làm những gì tiếp?

Đứng ngay gần văn uống chống của doanh nghiệp hosting, đăng nhập vào mạng intranet của mình cùng tiến hành tổng thể các kiểu dáng tiến công độc đáo nhỏng làm việc mạng local (!!)Dump các câu chữ nhạy cảm làm việc bên trên cùng đăng lên public domain name.

Việc để mắt tới cùng nhận thấy các file này còn có câu chữ nhạy cảm ra sao tốn thời gian của tôi thêm một chút. Do kia ngủ chút sẽ.

Đòn cuối cùng

Sau Khi lượn lờ một vài ba vòng cùng với danh nghĩa user apađậy, tôi đưa ra quyết định sẽ bắt một mẻ mập, giỏi còn gọi là chiếm phần quyền truy vấn root. Tôi tham khảo trường đoản cú Cheatsheet thông dụng này với ban đầu search kiếm các tệp tin hệ thống bỏ thịt.

Trong quá trình hướng đến, tôi đang áp dụng phần đông các kĩ năng rất có thể tuy nhiên vẫn bắt buộc tìm thấy vật dụng gì khả dĩ nhằm rất có thể nâng bước chân của chính bản thân mình lên một tầm cao new.

Và đó là dịp cơ mà tôi gặp mặt ghi nhớ ra cái này. Trong một lượt nghịch CTF (Capture the Flag), hệ thống liên tiếp được update cùng thỉnh phảng phất có một vài ba lỗi server được cố ý thiết lập cấu hình không nên nhằm rất có thể hỗ trợ cho bạn quyền root giả dụ tìm ra chúng. Tuy nhiên vào thực tiễn, fan ta ko cập nhật hệ thống.

Cứ đọng test chú ý Equifax cơ mà xem

Đầu tiên tôi chất vấn Linux mà lại hệ thống đang dùng:

$ cat /etc/issueCentOS Linux release 7.2.1511 (Core)Và phiên bản của kernel là?

*

Phiên bản kernel xem ra hơi cũ

*
Hình ảnh trên có gợi cho mình mang đến vật gì không? Nếu câu vấn đáp là không, hãy tham khảo ở chỗ này (Rất nghiêm túc luôn)

Đồng thời tôi cũng tìm kiếm thấy bài xích blog này với nó vẫn thôi thúc tôi khám nghiệm kernel version coi tất cả bị tiến công vày cái script làm việc bài bác post bên trên không

*

Tiếp tục:

*

Trò chơi kết thúc

Ngay nhanh chóng tôi đã viết mail và thông báo đến những tác động cơ mà cuộc tấn công của tôi hoàn toàn có thể gây ra cùng với từng step được biểu hiện kĩ lưỡng nhỏng ngơi nghỉ bên trên, cùng khép lại một đêm độc đáo.

Trong thời điểm này, tổng sệt lại, thì kẻ tấn công hoàn toàn có thể có tác dụng được hầu như thiết bị sau đây:

Đọc/biến hóa TOÀN BỘ file bên trên serverĐể lại một cửa sau (giống hệt như với user apache)Cài với vạc tán malware mang lại mạng intranet của serverCài ransomwareDùng VPS nhằm đào tiền ảoDùng VPS nhỏng proxyDùng VPS nhỏng là 1 trong những C2C serverDùng server mang lại botnet... Tuỳ các bạn tưởng tượngrm -rf / (không chơi được đâu nhé)

Ngày hôm sau, các bạn của tôi vẫn liên lạc lại và thông tin rằng lỗi upload tệp tin đã được fix.

tl;dr

Tổng sánh lại, họ sẽ search thấy:

Một web phầm mềm gồm lỗ hổng ở trong phần upload file đã dẫn tới sự việc tạo thành một webshell với quyền truy cập cấp thấptin tức truy vấn vào mysql database, dẫn đến kỹ năng đọc/ghi mang lại 35 database.Rất những file đọc tin nhạy cảm

Và bọn họ cũng rất có thể tận dụng vấn đề kernel không được update nhằm chiếm phần quyền truy cập root.

Giải pháp - đề nghị

Hãy ban đầu cùng với lỗi upload file khiến cho chúng ta tất cả quyền truy vấn vào shell của server. Bởi do toàn bộ phần backkết thúc của web tiện ích được viết bởi Perl - trong khi tôi ko áp dụng Perl bắt buộc tôi thiết yếu đưa ra được giải pháp gì cho chỗ này.

Có một sự việc mà tôi hoàn toàn có thể ý kiến đề xuất được, đó là ko dùng Perl nghỉ ngơi năm 2017, tuy vậy kia chỉ với chủ kiến chủ quan và hoan nghênh chúng ta chứng tỏ rằng tôi không nên.

Với phần filesystem, tôi kiến nghị cần quản lý tệp tin permission một cách cảnh giác rộng cùng với user, tốt nhất có thể là bgiết hại theo qui định quyền về tối tđọc. Bằng cách này, kể cả nếu user gồm quyền truy cập phải chăng nlỗi apabít bị chiếm thì cũng khong thể phát âm ngẫu nhiên biết tin nhạy cảm như thế nào.

Hình như, câu hỏi chạy tất cả các website bên trên thuộc 1 server là 1 ý tưởng phát minh tồi, nhưng lại tôi cũng ko có lẽ áp dụng docker tất cả giải quyết và xử lý được vụ việc một phương pháp triệt nhằm hay là không.

Cả bài toán đọc tin truy cập mang lại tất cả db như là nhau cũng là một vấn đề đề xuất tránh.

Những lỗi đơn nhất những điều đó cực tốt là không nên mắc phải.

Cuối cùng, thường xuyên Cập nhật đầy đủ thứ. Nó chỉ là một câu lệnh nhưng thôi su -c "yum update" (giành riêng cho CentOS).

Xem thêm: Hướng Dẫn Xử Lý Cảnh Báo Android Bị Nhiễm Virus Khi Duyệt Web

Cảm ơn chúng ta đang gọi cho cuối bài, xin lỗi vày vẫn viết tương đối nhiều năm. Tôi ao ước trsống nên cảnh giác cùng đó là một trong những trường hợp tráng lệ và trang nghiêm.


Chuyên mục: Công nghệ