|
本帖最后由 anysoft 于 2023-6-25 10:05 编辑
9 ^7 D \! T5 F3 [ x* c9 i/ I. k2 T6 u" C& l; ]5 x
固件不断地更新,厂商和运营商也不断的修补漏洞和后门一些以前的方法已经失效了。5 t( S" U5 n4 q: S
+ o$ r0 F7 Q, s* o |6 n该帖中修正一种方法中key,新增一个开telnet脚本。
3 A5 d! e2 Z$ U7 L% d# J
; R* j& v: `) T+ n% z4 @' D) }3 @9 X闲话不多说直接上东西。5 ]; L9 n! ^6 R. k& \2 m7 I; n- p
9 F$ c9 V# R8 L
6 a9 Z1 ^2 t" S
开telnet$ M& p5 e+ m, n3 T
默认其实telnet服务是开启的,只是防火墙策略禁止外部访问,而所谓开telnet其实是让防火墙放行23端口。
) R2 d+ j8 s }8 L1 S
4 m9 S- j6 j7 x" I* V! \1. 管理后门, ?; t8 f/ s7 e3 c" j
利用 telnetenable.cgi 传入 key 和 telnetenable 参数值开启telnet,这个属于管理后门性质接口。几乎所有版本都有,通用性高,但是key在各个版本之间可能存在差异。具体可以捅菊花后获取固件内程序后文件分析。
4 M: H3 ^ |" I$ M9 V- ]" c
- `5 `2 T8 ]7 r7 E X6 X4 R2 S老版本:key=FH-nE7jA%5m光猫MAC后6位全大写+ D& d% Z/ m0 n+ F2 @
新版本:参考附件' A( f) h% M7 d% O
# ^3 D$ R" |9 L3 N4 B4 ]0 d/ s/ Q. N' X
3 u; F3 m( h" S! B: j3 ^* o! k/ n0 X. `; |: p
附上 telnetenable.cgi 代码! P4 N& d9 R1 t; }$ T
- #!/bin/sh
6 V# ?. Q1 G" |) e - echo Content-type: text/html d/ t' z+ g3 c
- echo
9 D( x" V! V k& @
, J! g: L( N! X. Y- BR_MAC=`cat /sys/class/net/br0/address | sed 's/://g' | awk '{print toupper($0)}'`
! H u& s7 B% D( T - if [ -n "$QUERY_STRING" ]; then
: o% C8 Z. G$ \0 ~# `6 \ - for paramIndex in 1 2
- d; G. V; X1 A# L/ u/ G - do3 }7 f3 f6 _4 n3 @7 u- v; f( A
- CGIParam=`echo "$QUERY_STRING&" | cut -d '&' -f ${paramIndex}`8 T9 d% t8 @% x8 q4 N7 W
- par=`echo "$CGIParam" | cut -d '=' -f 1` g4 s, p4 Q. H, P2 V3 P1 h
- val=`echo "$CGIParam" | cut -d '=' -f 2`8 c* B, H' `) n- F
- if [ "$val" != "" ]; then
/ N; a+ t* G2 j+ e - case $par3 V: T! T4 a3 e9 e, F. t ]2 J: @
- in
) }# L4 |" `! }+ ?! W' } - "telnetenable")7 J, ]6 l6 ~* j" M0 S0 P+ G$ n! Q
- TELNETENABLE=$val3 F% b& |& E _( n) m2 b9 r, m
- ;;2 `$ m% X. A. v6 z+ X
- "key")
# r! n; F4 `* N _5 B - KEY=$val
M/ l- s: u4 E( b - ;;0 f3 R3 h2 Y4 p# X3 k! Y2 R. o
- esac
% f! v Q6 [& S4 B& h - fi: ?7 V4 J1 d4 ~ G- L5 L
- done
2 w V9 O& u$ @" j9 g3 [7 l* [ - fi
2 m, Q* X' n0 o) o6 \- @$ B+ }, K - ) f8 e* `+ T6 B5 p& d- l( m' ^, p1 i3 @
- if [ "$BR_MAC" == "$KEY" ]; then, w7 z! N0 s: X5 f/ D8 q/ Z
- if [ "$TELNETENABLE" == "1" ]; then
. T* U9 _" R, Z# s0 E - iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
+ f) K: H3 w: L5 i( a - iptables -I CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
6 [9 V4 u9 Q" l; }+ @5 { - /fhrom/bin/telnetd -p 23 >/dev/null 2>&1
7 y2 H' F9 Y# k: U - elif [ "$TELNETENABLE" == "0" ]; then
! [& z* X: A1 X2 [" D5 G! p1 P - killall telnetd >/dev/null 2>&1' B6 C$ j/ u" n! q& n: d" |+ O$ h
- iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
" T7 i) b0 w4 Y$ }* X3 T* R - fi
) w+ v: S8 f/ }3 c+ m - else
, {3 |+ ]# S% J+ q" C - echo "<html>* N$ k: Q7 e7 O& t
- <head><title>404 Not Found</title></head>) r4 n7 P2 h, g
- <body>
2 C$ Y% o- [' H7 V4 e U - <center><h1>404 Not Found</h1></center>
$ X3 W: {/ ^# i - </body>
3 c3 `2 Z7 u: r* O - </html>"8 Z: z4 n8 Q5 D, s1 x
- exit 0& Y2 q; q/ I- @' Y9 Y# x) e
- fi
" Y9 c0 d' c7 P3 x+ j) s5 ~. v - 5 f: W- c( G( }2 I
" x% N7 R0 w& h: X" g- echo "<html><head>9 O4 a# r/ v8 G0 Q. Y' J0 y! F
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3 n$ h6 [6 C9 X% P - </head>
! J0 p. T. s- j - <body>$ a, T- n* S0 f8 n
- <script type='text/javascript'>
# [0 h* ~! L- c, ` N - if ( '$TELNETENABLE' == '1' )
2 i3 k b) g9 i$ v1 }1 a, m$ h+ t4 ` - {& ~/ D' i- \" Z3 ?$ Y& G
- document.writeln('telnet开启');
0 Z* T# @9 ], O& d - }- ?5 y9 L1 `; O5 a9 x
- else if ( '$TELNETENABLE' == '0' )
, M( j- ?( ?3 o; t6 n - {
" h- j5 T, ^! E3 m$ s$ D - document.writeln('telnet关闭');
7 q. P* o' |$ k! Y3 j# E' v - } W, ?$ o, J9 T$ c/ Z3 u5 Y8 b6 H
- else u% @8 a( T# W. y, D. k G' y/ z
- {/ I5 n+ c0 F( @% B6 }/ Z3 l+ X
- document.writeln('无操作');
6 s- F5 V6 t. j/ W1 m - }
9 G. y' P( o' z( m - </script>
, {7 G: Y. E: j5 e - </body>+ a* H9 T; L) l7 C: N! Y% g
- </html>
复制代码 - x" @; S! D- c3 k
) g7 k" }5 s% {" E2 w
~5 Z( n- Y" j1 S' D" `2 R# {
: s3 P, a' ~ t8 ?, V. F7 ~/ T3 f. y# M1 n/ E
6 j6 s# P* Z2 k" V8 p6 @; C+ |2. 接口越权
4 G' x. \! S; w3 h6 l! t0 j% w4 f. F
( l" K: ?1 p/ |3 i! W9 t0 C此处利用光猫接口未做权限及操作分离的设计,在登录超级账号后脚本调用接口开启telnet E) _. x5 e W6 f
7 ~1 _4 C4 P) x: E
脚本参考附件6 c. e% a6 _+ k6 G
% j1 Q; [: Q. V2 R+ r
9 z) C" N; K; _4 h ?& B P9 J+ E, S* @* B! f, U
7 `* e0 s9 g, S& _, [0 S( y
% V8 C/ X, m% \2 u' B* H$ V% J% ~% O* p
脚本实现了 上述1,2 两种方案。
; d2 P) T7 S, W8 U2 y% w被坑了几千猫粮下载的固件无法刷入,所以写个教程和脚本赚点猫粮{:7_198:}
' @. R0 i' |2 O5 }2 ^1 Z, T
0 G' _* W5 J- v7 W S5 B/ \$ k* h0 t3 y1 T
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|