Chương 078: Lồng Ghép SQL Injection
Mười lăm giờ mười hai phút.
Màn hình trước mặt Zero vẫn còn sáng.
Dòng cuối cùng của tiến trình xóa dữ liệu đã biến mất.
CLEANUP COMPLETE.
Không còn đếm ngược.
Không còn cảnh báo.
Không còn những thư mục FUND-X mà hắn vừa nhìn thấy cách đây chưa đầy một giờ.
Một phần dữ liệu đã được giữ lại.
Nhưng phần lớn đã biến mất.
Nam ngồi yên.
Vũ đứng phía sau.
Không ai nói gì trong gần một phút.
Cuối cùng Nam lên tiếng:
“Chúng xóa nhanh hơn em dự đoán.”
Vũ đáp:
“Chúng đã chuẩn bị từ trước.”
“Nhưng vẫn còn cổng quản trị.”
Vũ nhìn sang.
“Cậu chắc?”
“Không phải cổng đang mở.”
Nam chỉ lên màn hình.
“Là một lớp quản trị còn sót lại.”
“Của quỹ?”
“Có thể.”
“Có thể?”
“Dữ liệu chưa đủ để xác định.”
Vũ gật.
“Vậy đừng gọi nó là cổng của quỹ.”
Nam sửa lại:
“Cổng quản trị liên quan đến FUND-X.”
“Được.”
Nam nhìn màn hình.
Một cửa sổ nhỏ đang hiển thị trạng thái của hệ thống lưu trữ.
Một số vùng đã biến mất.
Một số vùng bị khóa.
Một số vùng vẫn còn phản hồi.
Điều khiến Nam chú ý không phải dữ liệu.
Mà là quyền.
Một lớp quản trị vẫn đang tồn tại phía sau hệ thống.
Nếu lấy được quyền kiểm soát lớp đó—
hắn có thể biết lệnh xóa còn chạy ở đâu.
Thậm chí có thể ngăn phần còn lại tiếp tục biến mất.
Nam nói:
“Em có thể thử.”
Vũ nhìn hắn.
“Thử cái gì?”
“Chèn một truy vấn vào lớp quản trị.”
“SQL?”
“Ừ.”
Vũ không trả lời ngay.
Anh nhìn màn hình.
“Không được đụng vào hệ thống thật nếu chưa biết nó phản ứng thế nào.”
“Em biết.”
“Dùng vùng cô lập.”
“Đang làm.”
Nam chuyển sang một môi trường trung gian.
Hắn không kết nối trực tiếp.
Chỉ dựng một mô hình mô phỏng hành vi của cổng quản trị dựa trên những gì còn quan sát được.
Một cơ sở dữ liệu giả.
Một quyền quản trị giả.
Một lớp xác thực giả.
Sau đó hắn đưa vào một chuỗi truy vấn thử nghiệm.
Không nhằm lấy dữ liệu.
Chỉ nhằm xem hệ thống phản ứng thế nào.
Màn hình hiện:
REQUEST REJECTED.
Nam thử lại với một biến thể khác.
REQUEST REJECTED.
Lần thứ ba—
UNEXPECTED QUERY STRUCTURE.
Nam dừng tay.
Vũ hỏi:
“Có gì?”
“Cổng này có lớp kiểm tra riêng.”
“Bình thường?”
“Không.”
Nam phóng to.
“Lớp này nằm phía trước cơ sở dữ liệu.”
“Có nghĩa?”
“Có người thiết kế nó để không cho truy vấn đi thẳng vào kho.”
Vũ nhìn.
“Bẫy?”
“Có thể.”
“Hoặc?”
“Cổng quản trị được xây dựng cẩn thận.”
Vũ gật.
“Đừng đoán.”
Nam tiếp tục quan sát.
Mười lăm giờ hai mươi.
Một dấu hiệu xuất hiện.
ADMIN SESSION ACTIVE.
Nam ngồi thẳng dậy.
“Có người đang đăng nhập.”
Vũ nhìn đồng hồ.
“Ai?”
“Không biết.”
“Đừng đụng.”
“Nhưng…”
“Đợi.”
Nam miễn cưỡng dừng.
Một phiên quản trị xuất hiện.
Không có tên.
Không có địa chỉ rõ ràng.
Chỉ có quyền hạn.
Rất cao.
Nam nói:
“Đây là người có quyền.”
Vũ hỏi:
“Có thể là máy tự động?”
“Có thể.”
“Vậy chưa được gọi là người.”
Nam nhìn anh.
“Anh lúc nào cũng bắt em sửa câu chữ.”
“Vì một chữ sai có thể dẫn tới một kết luận sai.”
Nam cười nhạt.
“Rõ.”
Phiên quản trị biến mất.
Ngay sau đó—
một phần dữ liệu khác bị xóa.
Nam nhìn đồng hồ.
“Chúng vẫn tiếp tục.”
Vũ nói:
“Vậy thử cửa.”
Nam hiểu.
Mười lăm giờ hai mươi ba.
Nam mở lại lớp mô phỏng.
Lần này hắn không cố lấy quyền.
Hắn tìm cách khiến hệ thống xử lý một yêu cầu quản trị không đúng cấu trúc.
Một yêu cầu giả.
Một truy vấn được lồng vào một trường dữ liệu mà cổng quản trị vẫn phải xử lý.
SQL Injection.
Trong môi trường mô phỏng, truy vấn vượt qua lớp kiểm tra.
Một dòng trạng thái đổi màu.
PRIVILEGE BOUNDARY ERROR.
Nam nhìn.
“Có khe.”
Vũ hỏi:
“Thật?”
“Trong mô hình.”
“Không đủ.”
“Em biết.”
Nam dùng những dấu vết đã có để điều chỉnh mô hình.
Không thử hàng loạt.
Không đánh bừa.
Hắn chỉ kiểm tra một giả thuyết.
Nếu cổng quản trị thật có cùng cấu trúc—
một yêu cầu được tạo đúng cách có thể khiến lớp quản trị hiểu nhầm dữ liệu đầu vào là một phần của lệnh.
Nam nói:
“Có thể chen vào.”
Vũ hỏi:
“Để làm gì?”
“Đẩy quyền lên.”
“Root?”
“Có khả năng.”
Vũ nhìn hắn.
“Chỉ một lần.”
Nam gật.
“Chỉ một lần.”
Mười lăm giờ hai mươi bảy.
Nam bắt đầu.
Không có tiếng động đặc biệt.
Không có hiệu ứng trên màn hình.
Chỉ một yêu cầu được gửi đi.
Sau đó chờ.
Một giây.
Hai giây.
Ba giây.
AUTHENTICATION LAYER: WARNING.
Nam nín thở.
DATABASE SESSION: ELEVATED.
Hắn nhìn Vũ.
“Có phản hồi.”
Vũ không nói.
ADMIN PRIVILEGE: ESCALATED.
Nam ngồi thẳng.
“Lên rồi.”
“Đến đâu?”
“Chưa biết.”
Một dòng khác xuất hiện.
ROOT-CONTEXT DETECTED.
Nam thở ra.
“Có quyền.”
Vũ hỏi:
“Quyền thật?”
Nam nhìn.
“Có vẻ.”
“Không dùng vội.”
“Nhưng nếu không…”
“Quan sát.”
Nam dừng.
Quyền Root là thứ hắn cần.
Nhưng cũng là thứ nguy hiểm nhất.
Nếu đối phương đang chờ—
chỉ cần một bước sai—
cả đường kết nối có thể bị khóa.
Nam kiểm tra những vùng được phép truy cập.
Không có toàn bộ dữ liệu.
Không có mọi máy chủ.
Chỉ có lớp quản trị của một cụm.
Nhưng cụm đó có liên kết tới tiến trình xóa.
Nam nói:
“Em thấy nó.”
“Ở đâu?”
“Cleanup controller.”
Vũ nhìn màn hình.
“Có thể dừng?”
Nam gật.
“Có quyền.”
“Dừng đi.”
Nam đưa tay.
Rồi dừng lại.
“Khoan.”
Vũ hỏi:
“Gì?”
“Có một quy trình khác.”
“Cái gì?”
“Firewall.”
Nam phóng to.
Một lớp bảo vệ đang thay đổi trạng thái.
Không phải từ hệ thống của FUND-X.
Mà từ một lớp bên ngoài.
Nam nhìn.
“Có người phát hiện.”
Vũ lập tức nói:
“Rút.”
“Nhưng quyền Root…”
“Rút.”
Nam chưa kịp thao tác.
Màn hình chuyển sang đỏ.
INTRUSION DETECTED.
Mười lăm giờ hai mươi chín.
Một cảnh báo mới xuất hiện.
REVERSE FIREWALL ACTIVATED.
Nam nhìn.
“Chúng phản công.”
Vũ hỏi:
“Có đường về không?”
“Đang kiểm tra.”
Một lớp tường lửa đóng lại.
Rồi lớp thứ hai.
Rồi lớp thứ ba.
Không giống một hệ thống chỉ ngăn truy cập.
Nó đang cô lập chính nơi vừa phát sinh yêu cầu.
Nam nói:
“Chúng không truy tìm quyền Root.”
“Chúng làm gì?”
“Cắt nguồn.”
“Cắt cái gì?”
Nam nhìn địa chỉ kết nối.
Mặt hắn thay đổi.
“Penthouse.”
Vũ nhìn anh.
“Của cậu?”
Nam gật.
“Địa chỉ mạng của penthouse Thủ Thiêm.”
Mười lăm giờ ba mươi.
Mọi thiết bị trong phòng đồng loạt mất kết nối.
Không phải mất điện.
Đèn vẫn sáng.
Máy vẫn chạy.
Nhưng mạng biến mất.
Màn hình phụ hiện:
NETWORK ISOLATION.
Nam thử một kênh khác.
Không có phản hồi.
Kênh thứ hai.
Không.
Kênh thứ ba.
Không.
Hệ thống đã cô lập toàn bộ địa chỉ.
Vũ nhìn Nam.
“Chúng khóa cậu.”
Nam đáp:
“Không chỉ em.”
Hắn chỉ vào sơ đồ.
“Cả penthouse.”
Các thiết bị IoT ngừng liên lạc.
Camera nội bộ chuyển sang chế độ cục bộ.
Hệ thống điều khiển cửa tự động chuyển sang trạng thái an toàn.
Mạng nội bộ vẫn còn.
Nhưng mọi đường ra ngoài đều bị cắt.
Nam nhìn màn hình.
“Không Internet.”
Vũ nói:
“Đó là mục đích.”
“Chúng không muốn em tiếp tục.”
“Đúng.”
Nam ngồi xuống.
Hắn nhìn dòng chữ:
FIREWALL ISOLATION — SOURCE: THỦ THIÊM PENTHOUSE
Một tiếng cười khô bật ra.
“Bọn chúng biết chính xác chúng ta ở đâu.”
Vũ không cười.
“Không.”
Nam quay lại.
“Anh nói gì?”
“Chúng biết địa chỉ mạng.”
“Thì cũng gần như biết.”
“Không giống nhau.”
Vũ nhìn anh.
“Đừng cho chúng thêm thứ chưa chắc có.”
Nam im.
Mười lăm giờ ba mươi hai.
Không có kết nối ra ngoài.
Nam thử gọi cho Nghĩa.
Không được.
Gọi qua đường dự phòng.
Không được.
Mở kênh với Vũ.
Vẫn được.
Vì Vũ đang ở trong cùng mạng nội bộ.
Nam nói:
“Ít nhất họ chưa cắt được bên trong.”
“Đừng mừng.”
“Em biết.”
Vũ ngồi xuống.
“Quyền Root còn không?”
Nam kiểm tra.
Màn hình hiện:
SESSION TERMINATED.
“Không.”
“Dữ liệu?”
“Một phần.”
“Tiến trình xóa?”
Nam kiểm tra.
Im lặng.
“Dừng rồi.”
Vũ nhìn hắn.
“Thật?”
“Đúng.”
Nam phóng to.
Tiến trình tự hủy đã dừng tại một điểm giữa chừng.
Không phải vì họ hoàn toàn chiếm được hệ thống.
Mà vì cuộc phản công đã cắt phiên quản trị trước khi tiến trình hoàn tất.
Vũ hỏi:
“Còn lại bao nhiêu?”
“Không biết.”
“Ước tính.”
“Có thể còn vài phần trăm dữ liệu.”
“Vậy giữ nguyên.”
“Không thể truy cập.”
“Thì đừng truy cập.”
Nam nhìn anh.
“Anh muốn chúng ta ngồi nhìn?”
“Không.”
Vũ nói:
“Anh muốn chúng ta nhớ rằng mình vừa thắng một phần.”
Nam im lặng.
“Chúng ta không lấy được hệ thống.”
“Nhưng?”
“Chúng không xóa sạch được.”
“Đúng.”
Mười lăm giờ ba mươi tám.
Penthouse vẫn bị cô lập.
Không điện thoại.
Không Internet.
Không truy cập từ bên ngoài.
Nam ngồi trước màn hình.
Vũ pha trà.
Không ai nói.
Một tiếng sau—
mạng vẫn chưa trở lại.
Nam hỏi:
“Anh nghĩ chúng sẽ giữ chúng ta ở đây bao lâu?”
“Không biết.”
“Có thể vài giờ?”
“Có thể.”
“Có thể lâu hơn?”
“Có thể.”
Nam nhìn cửa sổ.
Thành phố phía dưới vẫn bình thường.
Xe vẫn chạy.
Thuyền vẫn di chuyển trên sông.
Không ai biết trong căn penthouse này, một mạng lưới vừa bị cắt khỏi Internet.
Nam nói:
“Có một điều em chưa hiểu.”
“Gì?”
“Tại sao chúng không đóng cổng ngay từ đầu?”
Vũ đặt ly trà xuống.
“Vì muốn chúng ta vào.”
Nam nhìn anh.
“Bẫy?”
“Có thể.”
“Nhưng nếu là bẫy, tại sao lại cho em thấy Root?”
“Để cậu tin rằng mình thắng.”
Nam suy nghĩ.
“Rồi kích hoạt firewall.”
“Đúng.”
“Vậy mục tiêu thật là gì?”
Vũ không trả lời.
Nam nhìn lại toàn bộ sự việc.
FUND-X bị lộ.
Dữ liệu bị xóa.
Một phần còn lại.
Cổng quản trị xuất hiện.
Quyền Root được nâng.
Sau đó—
Firewall phản công.
Cô lập penthouse.
Nam nói chậm:
“Chúng không chỉ muốn xóa dữ liệu.”
Vũ nhìn hắn.
“Tiếp.”
“Chúng muốn biết chúng ta sẽ làm gì khi bị dồn vào một cái bẫy.”
Vũ gật.
“Có thể.”
“Và chúng vừa biết.”
“Biết gì?”
“Em sẽ chọn cứu dữ liệu thay vì rút.”
Vũ im lặng.
Câu trả lời nằm ngay trước mặt.
Nam nhìn màn hình.
“Vậy lần sau chúng sẽ không dùng dữ liệu.”
“Có thể.”
“Chúng sẽ dùng người.”
Vũ nhìn Nam.
“Bây giờ cậu mới bắt đầu hiểu cách chúng chơi.”
Mười sáu giờ mười hai.
Một thông báo bất ngờ xuất hiện trên màn hình nội bộ.
Không có kết nối Internet.
Nhưng một dòng chữ vẫn hiện ra.
ROOT WAS NEVER YOURS.
Nam đứng dậy.
“Cái gì?”
Dòng thứ hai:
YOU WERE ALLOWED TO TOUCH IT.
Vũ nhìn.
Không nói.
Dòng thứ ba xuất hiện.
THANK YOU FOR CONFIRMING YOUR LOCATION.
Nam lạnh mặt.
“Chết tiệt.”
Vũ vẫn bình tĩnh.
“Đừng phản ứng.”
“Chúng đã dùng phiên Root để xác định vị trí.”
“Có vẻ vậy.”
Nam nhìn màn hình.
“Vậy cả cuộc tấn công…”
“Có thể là một cuộc đo.”
“Chúng cho em vào.”
“Cho cậu tưởng mình vào.”
Nam siết tay.
Vũ nói:
“Nhưng có một thứ chúng không tính được.”
“Gì?”
Vũ chỉ vào góc màn hình.
Một bản ghi nhỏ vẫn còn.
Không phải dữ liệu FUND-X.
Không phải quyền Root.
Không phải địa chỉ IP.
Là một dấu thời gian.
Một chuỗi thay đổi.
Và một đoạn mã kiến trúc.
Nam nhìn.
“Anh giữ được?”
“Cậu giữ.”
Nam nhìn anh.
“Em?”
“Trong lúc cậu tưởng mình đang lấy Root.”
Vũ nói:
“Cậu đã lấy được thứ quan trọng nhất.”
Nam phóng to.
Đó là một dấu vết cấu trúc rất nhỏ.
Không đủ để truy ngược máy chủ.
Không đủ để biết danh tính.
Nhưng đủ để so sánh với những mẫu trước.
K-14.
FUND-X.
Ghost Mariner.
Và kiến trúc mà Vũ từng nhận ra trong hệ thống của Zero.
Nam nhìn màn hình.
“Lại là nó.”
Vũ gật.
“Ừ.”
“Trần Minh Khải?”
Vũ không trả lời.
Anh chỉ nhìn dòng cấu trúc.
Một phần của quá khứ vừa xuất hiện trong một cuộc tấn công mới.
Không phải bằng tên.
Không phải bằng khuôn mặt.
Mà bằng cách một hệ thống tự bảo vệ mình.
Nam nói:
“Có nghĩa người đứng sau FUND-X biết K-14.”
Vũ sửa:
“Chưa chắc.”
“Nhưng dấu vết giống.”
“Đúng.”
“Vậy…”
“Chưa kết luận.”
Nam thở ra.
“Anh đúng là khó chịu.”
Vũ cười nhẹ.
“Còn sống là được.”
Mười sáu giờ ba mươi.
Firewall vẫn khóa penthouse.
Nam không còn cố phá.
Vũ cũng không.
Họ ngồi nhìn thành phố.
Bên ngoài, Sài Gòn vẫn vận hành như không có chuyện gì.
Nhưng trong thế giới dữ liệu—
một cuộc đấu mới vừa kết thúc.
Zero đã chạm vào cổng quản trị.
Đã nhìn thấy quyền Root.
Đã khiến tiến trình tự hủy dừng lại.
Nhưng đổi lại—
đối phương biết vị trí kết nối của hắn.
Biết cách hắn phản ứng.
Và có thể đã biết rằng Lão Cửu đang đứng cùng hắn.
Nam nói:
“Em mất quyền Root.”
Vũ đáp:
“Không.”
“Không?”
“Cậu mất một cái quyền mà người khác cho cậu.”
Nam nhìn anh.
Vũ nói:
“Còn thứ cậu thật sự lấy được…”
Anh chỉ vào dấu vết K-14 trên màn hình.
“…là thứ chúng không định cho cậu thấy.”
Nam nhìn rất lâu.
Ngoài cửa kính, ánh chiều bắt đầu phủ lên thành phố.
Bitexco ở phía xa.
Sông Sài Gòn bên dưới.
Những con đường vẫn đông.
Một thành phố hàng triệu người.
Một quỹ đầu tư ma.
Một mạng lưới tài chính xuyên biên giới.
Một hacker quốc tế không lộ mặt.
Một cái tên cũ tưởng đã chết từ hơn mười năm trước.
Và một người đang ngồi trong penthouse bị cô lập hoàn toàn.
Zero tắt màn hình.
“Lần này chúng thắng một nước.”
Vũ hỏi:
“Còn cậu?”
Nam nhìn ra ngoài.
“Em biết bàn cờ ở đâu.”
Vũ lắc đầu.
“Không.”
Nam quay lại.
Vũ nói:
“Cậu mới biết người chơi đã nhìn thấy mình.”
Ngoài kia, một chiếc máy bay bay qua bầu trời Sài Gòn.
Mạng lưới vẫn bị khóa.
Nhưng cuộc chiến chưa dừng.
Bởi trong phần dữ liệu ít ỏi còn sót lại—
một dòng cuối cùng vừa hiện lên:
FUND-X / NEXT TARGET: UNKNOWN.
Và bên dưới nó—
một dấu hiệu quen thuộc.
K-14.
--=---
PLS FOLLOW KÊNH ĐỂ TẠO ĐỘNG LỰC CHO TÁC GIẢ VÀ THEO DÕI CÁC CHƯƠNG TIẾPT HEO …
---==--