SSH, hay shell an toàn, là cách điều khiển máy tính từ xa từ giao diện dòng lệnh. Mặc dù thông tin trao đổi trong phiên SSH được mã hóa, thật dễ dàng để theo dõi phiên SSH nếu bạn có quyền truy cập vào máy tính đang đăng nhập. Sử dụng một công cụ có tên SSHPry, chúng tôi có thể theo dõi và tiêm lệnh vào các phiên SSH của bất kỳ người dùng nào khác đã đăng nhập vào trên cùng một máy.
Đối với các nhu cầu truy cập từ xa như cập nhật, chạy các công cụ dòng lệnh hoặc các loại bảo trì quản trị khác, SSH đã sẵn sàng cho các tin tặc và các chuyên gia CNTT. Mặc dù SSH là một cách tuyệt vời để truy cập thiết bị từ xa qua mạng, người dùng không nên bảo vệ như vậy khi đăng nhập vào máy tính dùng chung.
SSH không an toàn trên máy dùng chung
Mặc dù SSH an toàn khi được sử dụng trên một mạng, nhưng sự bảo vệ tương tự không được áp dụng nếu bạn đăng nhập vào cùng một máy mà kẻ tấn công có quyền truy cập. Mọi thứ bạn nhập đều hiển thị cho bất kỳ ai có thể truy cập vào máy cục bộ hoặc từ xa, giúp kẻ tấn công dễ dàng im lặng quan sát mọi thứ bạn làm hoặc thực hiện các lệnh của riêng họ.
Công cụ để theo dõi các phiên SSH được gọi là SSHPry2.0 và lần đầu tiên nó xuất hiện trong CTF, trong đó hai người chơi đã đăng nhập vào cùng một máy tính Ubuntu thông qua SSH. Mỗi người chơi đang cố gắng loại bỏ người khác và sẽ xác định số quy trình SSH của người chơi khác và loại bỏ họ bằng cách giết ID tiến trình. Trong khi điều này hoạt động, bạn không thể thấy đối thủ của mình đang làm gì và nó cho bạn cơ hội khá cao để vô tình giết chết quá trình của chính bạn và tự đá mình ra.
SSHPry2.0 cho phép tin tặc xác định tất cả các phiên SSH hiện tại và sau đó tình cờ ghé thăm bất kỳ trong số chúng như trò chuyện nhóm. Với SSHPry2.0, việc nhập “thoát” vào bất kỳ phiên SSH nào bạn không muốn chạy sẽ dễ dàng hơn vì nó sẽ ngắt kết nối người dùng ngay lập tức.
Những gì bạn cần
Để làm theo, bạn sẽ cần có ít nhất hai máy tính được kết nối với cùng một mạng, với một máy chủ đang chạy máy chủ SSH để bạn đăng nhập. Tôi khuyên bạn nên sử dụng Kali hoặc Ubuntu làm máy tính mục tiêu.
Bạn cũng cần cài đặt Python trên máy tính mà bạn muốn theo dõi các kết nối SSH tới. Sau đó, bạn sẽ cần đăng nhập qua SSH vào máy tính mục tiêu của mình hai lần, để bạn có thể sử dụng một phiên để theo dõi phiên khác.
Bước 1 Đăng nhập vào máy tính Linux của bạn từ xa
Đầu tiên, chúng tôi sẽ mở kết nối SSH tới máy tính từ xa của chúng tôi. Đảm bảo SSH đang hoạt động bằng cách chạy lệnh sau.
~$ sudo service ssh status
Bạn sẽ thấy một số đầu ra như dưới đây nếu SSH hoạt động tốt.
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-07-28 12:47:07 PDT; 1 weeks 0 days ago
Main PID: 980 (sshd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/ssh.service
└─980 /usr/sbin/sshd -D
Nếu SSH khởi động và chạy, hãy lấy địa chỉ IP của máy tính mục tiêu của bạn bằng cách nhập ifconfig hoặc chạy quét arp từ máy tính của kẻ tấn công.
Khi bạn có địa chỉ IP của máy tính bạn muốn đăng nhập, hãy mở một cửa sổ đầu cuối và nhập thông tin sau để đăng nhập, thay thế địa chỉ IP của thiết bị.
~$ ssh root@192.168.0.16
Mật khẩu mặc định cho cả Ubuntu và Kali phải là “toor”, vì vậy hãy thử trước. Nếu không, hãy đăng nhập bằng bất kỳ mật khẩu nào bạn đặt trên thiết bị đích.
Bước 2 Bắt đầu một phiên SSH thứ hai
Bây giờ, đã đến lúc bắt đầu một phiên SSH thứ hai. Trong kịch bản trong thế giới thực, đây có thể là một nhân viên khác hoặc kẻ tấn công khai thác lỗ hổng SSH. Trong cửa sổ terminal mới, đăng nhập lại bằng lệnh ssh root@192.168.0.160 , đảm bảo bạn thay thế địa chỉ IP của mục tiêu.
Khi bạn đã có cả hai phiên và chạy, bạn có mọi thứ bạn cần cho một phiên để theo dõi phiên khác.
Bước 3 Tải xuống SSHPry
Để bắt đầu gián điệp vào phiên khác, hãy tải xuống SSHPry.20 bằng cách chạy lệnh sau trên máy tính đích.
~$ git clone https://github.com/nopernik/SSHPry2.0.git
Từ đó, gõ cd SSHPry2.0 để đến thư mục SSHpry mới tải xuống.
Bây giờ, chúng ta có thể chạy ./sshpry2.py với Python2 để có danh sách các lệnh có sẵn.
~$ sudo python ./sshpry2.py
password for toor: SSHPry2 SSH-TTY control by @nopernik 2017 Usage: sshpry2.py [OPTIONS] Args: --auto # Lazy mode, auto-attach to first found session --list # List available SSH Sessions --tty /dev/pts/XX # Point SSHPry to specific TTY --raw # Record and Play raw term output, no timing. --replay <file> # Replace previously recorded session. --speed 4 # Replay speed multiplier (Default: 4). ----- root privileges required! -----
Bây giờ SSHPry đã sẵn sàng hoạt động, chúng tôi sẽ chuyển sang phát hiện phiên mục tiêu của chúng tôi.
Bước 4 Phát hiện các phiên thiết bị đầu cuối khác
Hãy thử phát hiện phiên SSH khác mà chúng tôi đã đăng nhập. Chạy lại tập lệnh ./sshpry2.py bằng Python2, nhưng lần này hãy thêm cờ –list để hiển thị danh sách các phiên SSH đang hoạt động.
~$ sudo python ./sshpry2.py --list
SSHPry2 SSH-TTY control by @nopernik 2017
[+] Getting available ssh connections...
[+] Found active SSH connections:
PID: 8960 | TTY: /dev/pts/3 (toor)
[!] Choose yours with "--tty TTY" switch
toor@toor:~/SSHPry2.0$
Tại đây, chúng tôi đã phát hiện một phiên đăng nhập tích cực không phải của chúng tôi! Bây giờ, chúng ta có thể tham gia vào phiên hoạt động này và xem những gì đang diễn ra.
Bước 5 Thả vào Phiên người dùng khác
Bây giờ chúng tôi đã xác minh rằng có một phiên hoạt động, chúng tôi có thể kết nối với nó bằng cờ “tự động”. Chạy lệnh dưới đây để thử kết nối tự động.
~$ sudo python ./sshpry2.py --auto
Nếu có một kết nối hoạt động khác, bạn sẽ thấy một kết quả như dưới đây. Trong ảnh, bên trái là kẻ tấn công và bên phải là mục tiêu đăng nhập vào cùng một máy tính.
Mọi thứ mục tiêu làm được lập tức được nhân đôi lên màn hình của kẻ tấn công. Tất nhiên, điều ngược lại cũng đúng, vì vậy kẻ tấn công bên trái có thể tiêm lệnh vào mục tiêu trên phiên SSH bên phải như thể bàn phím của chúng được gắn vào máy tính của mục tiêu.
Để kiểm tra kết nối, hãy thử gõ một cái gì đó vào một trong các phiên đăng nhập. Họ nên phản chiếu chính xác lẫn nhau.
SSHPry hoạt động để sau khai thác hoặc phát hiện xâm nhập
Có rất nhiều ứng dụng hữu ích để có thể chuyển sang một phiên SSH hoạt động khác. Một người có thể chỉ đơn thuần là mất quyền truy cập vào phiên của riêng bạn do máy tính gặp sự cố hoặc đóng băng và muốn chọn nơi bạn rời đi. Một người khác có thể muốn kiểm tra để đảm bảo rằng không có ai ngoài bạn đăng nhập vào máy tính của bạn thông qua SSH. Cuối cùng, đối với các pentesters đang tìm cách leo thang bộ công cụ hậu khai thác của họ, một gián điệp SSH nhỏ có thể đi một chặng đường dài để khám phá các bề mặt tấn công mới.