truy cập ssh vào router ax3000cv2 sau khi update firmware 0.10.2

thử ssh vào check qua thì thấy connection refused. Mật khẩu từ trước đặt bị sai. Thế là thế nào nhỉ

gateway xoá chế độ ssh

k thấy nữa luôn mà

Thử login gateway (192.168.100.1) vào được, nhưng tìm mãi k thấy chế độ đăng nhập vào ssh đâu.

vừa cũng để ý là firmware mới đc update lên 0.10, trước đây hình như là 0.5.8-h. Vậy là fpt update gỡ tính năng r

bỏ mẹ r. Đang có service cài + chạy trong đấy bh truy cập kiểu gì.

tìm cách login ssh

bắt đầu là phải tải conf về xem.

generate archive. Thao tác cơ bản.

tải về r unzip thử.

có phải firewall k?

/etc/config/firewall là cái file gì mà lắm chữ

Soi đc mấy rule allow wan, allow ipv6. nhưng cái rule reject lan ssh thì để allow. chịu nhà mạng.

Vậy k phải firewall.

ssh server

dropbear là 1 ssh server/client có hết. và k phải openssh. Và có conf.

/etc/config/dropbear có 1 block config. ném cho chat xem, nó bảo k có option Interface, tức là k expose cho ai xem, và có field password. Thử dùng password nma dùng kiểu gì. nó còn k cho điền pass thì biết đúng hay sai.

thay instance dropbear = của mình

chat thấy thế bảo chạy killall dropbear r tự chạy dropbear của mình r login thử xem.

và có 1 cách làm đc như vậy: file /etc/rc.local.

/etc/rc.local chạy khi boot gần xong. Coi như là xong r. nó là shell script, vì vậy nếu đặt câu killall + dropbear vào đấy là là script của mình chạy sau khi các thứ khác đã setup xong, là chạy ngon

thế là ngay lập tức paste mấy dòng lệnh vào, repack, và restore config files. Reboot. ssh [email protected] -p 2222. nó yêu cầu pass. lets go.

password thử dùng cái pass ở config dropbear, paste vào, và we’re in.

tìm cách đặt chỗ

r h cứ phải login = port 2222 à.

password gì vậy

pass ở đấy là pass user root. archive ném cả etc shadow vào, rất là tự tin. etc shadow field mật khẩu sau khi hỏi chat và mầy mò 1 lúc thì biết nó được gen = mkpasswd -m md5crypt. thử gen lại với pass và salt ra y hệt trên file.

chat bảo dropbear field password là unofficial, nhưng mà nó gen lại file đấy thì phải. Viết thử 1 block config khác vào đấy, k có field password, xong check lại thấy option password ở cả 2.

tại sao login 2222 đc mà login 22 k đc

khá là khó đấy

máy lđa có cài ssh-agent. có mấy key cài sẵn nên lúc đăng nhập k phải -i này nọ kia.

cái này chỉ tìm đc ra sau khi reboot lại để nhìn xem router chạy dropbear kiểu gì.

router chạy có arg -T 3. Tức là 3 lần thử k đc Kick. mà vấn đề là khi login ssh thông thường, nó thử hết key agent đến key explicit. vậy là nếu mình có 3 key agent đã fail là khỏi password.

dropbear tự chạy k có trò này.

ssh có option yêu cầu password, nên là chắc là k sao.

sao k dùng key đc

nếu mà dùng key đỡ phải nhập pass, mà pass k phải của mình, dài, k quen tay.

Set key đầy đủ ở cả root .ssh cả etc dropbear. login bằng port 2222. gen key cũ (theo ý chat). Không đc

chat bảo đưa logread đây, mình cho nó xem logread, r hoá ra là fpt patch dropbear để bắt buộc lan (customer) phải dùng pass. vãi cả chưởng chưa. Chịu nhà mạng luôn.

Update: pass được gen ở đâu

eureka tìm ra r

do nó biết insert chuẩn vào etc config dropbear, khả năng là có sự can thiệp của uci.

uci

uci là tool config. Config mọi thứ = uci. Nó setup config những app khác cho mình luôn. ngoài ra không biết gì thêm

uci viết vào /etc/config/. và config này autogenerate những config khác, chẳng hạn dnsmasq config là được gen bởi /etc/config/dhcp, tức là uci.

uci cũng cho phép sửa conf, và nó sẽ viết conf vào thư mục kia.

grep thử

grep các kiểu. grep dropbear.*password, grep password, strings | grep, thử hết.

và tìm được 1 số thứ:

root@AP-AX3000CV2-0A55:~# /etc/ldlda_help/scripts/sgrepi 'dropbear.*password' /usr
/usr/bin/update_lan_ssh_passkey.sh:8:uci set dropbear.@dropbear[0].password=$MD5_VALUE
/usr/libexec/rpcd/ssh:31:       ssh_passwd="$(uci get dropbear.@dropbear[0].password)"
/usr/libexec/rpcd/ssh:57:       uci set dropbear.@dropbear[0].password=$3
/usr/libexec/rpcd/ssh:58:       uci set dropbear.@dropbear[1].password=$3
/usr/libexec/rpcd/ssh:78:#                              new_password="$(uci get dropbear.@dropbear[0].password)"

ok wth

có ÍT NHẤT 2 vector để ai đấy thay đổi mật khẩu cái box này. Dò thử:

root@AP-AX3000CV2-0A55:~# cat /usr/bin/update_lan_ssh_passkey.sh
#!/bin/sh

MAC=$(fw_printenv | grep eth1addr | cut -d= -f2 | tr -d ':')
COMBINED="${MAC}FTEL"
MD5_VALUE=$(echo -n "$COMBINED" | md5sum | cut -d' ' -f1)

logger -t "MAC_MD5" "Original MAC: $(fw_printenv | grep eth1addr)"
logger -t "MAC_MD5" "Combined string: $COMBINED"
logger -t "MAC_MD5" "MD5 hash: $MD5_VALUE"

uci set dropbear.@dropbear[0].password=$MD5_VALUE
uci commit dropbear

exit 0

Có thể thấy là script kia lấy trông có vẻ là MAC addr của router, thêm FTEL vào cuối, r hash = md5sum. Rồi lấy làm mật khẩu luôn

ở cái script kia thì cho phép đổi mk = json stdin, nó gọi luôn passwd root -> set etc shadow. Tức là mật khẩu đổi online đc. chưa biết ai gọi script đấy.

1 số chỗ có passwd root bao gồm /usr/sbin/oui, /etc/init.d/authsystem…

rồi h sao

pass là gì tự đi mà xem. Bảo chat gen app lua/c/rust tìm cách cài persistent backdoor đi trước khi bị patch.

Hoặc là cài openssh, chạy riêng khỏi rắc rối. mệt ghê chưa

quảng cáo wakey: https://git.ldlda.com/lda/wakey app nho nhỏ chạy trên router để wol máy tính. + wg là có kết nối lên cloud.