|
本帖最后由 anysoft 于 2023-6-25 10:05 编辑 ! }+ @: m) M3 L
9 J3 L0 I# |) y, j
固件不断地更新,厂商和运营商也不断的修补漏洞和后门一些以前的方法已经失效了。0 s+ b8 c1 ]6 k+ q
8 s$ t/ M. {/ V. I" y) }
该帖中修正一种方法中key,新增一个开telnet脚本。
2 t8 n4 F$ ?- ~% R% B/ N9 c7 V
q( W) A' G2 q: r闲话不多说直接上东西。7 i ?% h6 T, o! Z" g$ M
. `, [/ ]8 r/ w, M6 R) t( T( J$ }' n5 Q2 u
开telnet% [5 E y L7 E+ D. S. s( @
默认其实telnet服务是开启的,只是防火墙策略禁止外部访问,而所谓开telnet其实是让防火墙放行23端口。
+ V" ?/ l5 h! d! G6 y; V- l
; ^& I" P( J0 f1 c! p1. 管理后门+ R. L4 t: m, p6 C2 q+ \9 f, a
利用 telnetenable.cgi 传入 key 和 telnetenable 参数值开启telnet,这个属于管理后门性质接口。几乎所有版本都有,通用性高,但是key在各个版本之间可能存在差异。具体可以捅菊花后获取固件内程序后文件分析。- p' y+ d0 m# w3 c% E5 h
5 h) W/ m$ V2 q) G老版本:key=FH-nE7jA%5m光猫MAC后6位全大写5 q: p; ^. E+ u- f2 t/ m
新版本:参考附件
, H" Y. n8 m$ {: M; T0 }
" W; T& a, G4 M* A% P" {) v& ~6 J2 Q d' A/ m
1 e+ j# \% |7 V' s4 g) i% D
, f$ R/ G6 X4 o( z1 f# ]$ I# g+ A6 V( J附上 telnetenable.cgi 代码9 V6 ]! r9 o, }) |: {6 T
- #!/bin/sh
8 _. c5 r `( `. q - echo Content-type: text/html
4 [ _+ h* w) X3 Y' w - echo
2 k2 r, c! z o! i$ o
4 I$ o, H! }9 N- BR_MAC=`cat /sys/class/net/br0/address | sed 's/://g' | awk '{print toupper($0)}'`
# w5 e% b9 T5 n% |6 ]0 G - if [ -n "$QUERY_STRING" ]; then9 e* W6 F1 v* T# I6 t
- for paramIndex in 1 2
1 i( I# `% q5 t6 X/ m' h! j - do! G9 p$ o! I% F) Y7 n8 F/ r
- CGIParam=`echo "$QUERY_STRING&" | cut -d '&' -f ${paramIndex}`9 A5 l- e9 f" t5 z6 ^
- par=`echo "$CGIParam" | cut -d '=' -f 1`
) J5 N5 c3 W8 N k H - val=`echo "$CGIParam" | cut -d '=' -f 2`
$ |# [6 t1 U; }$ u i* q) k - if [ "$val" != "" ]; then
B; u: u' g) t - case $par
6 h( Q% G* ~# R& S9 h% G5 ` - in# c* p; I3 B, Q- u
- "telnetenable")
6 m, t& F7 P+ _( D. B9 q - TELNETENABLE=$val
& ?. u' N) @5 w& G - ;;
' x% Q& x+ Y, N+ N7 }. M9 B. X* V - "key")& X0 T0 ?9 f& E, d; b
- KEY=$val
! W. ?9 v' F: F - ;;
8 a9 O- @5 \1 N! K) ] - esac
8 Z8 j1 K% ?9 r1 R - fi
; k r1 Q/ c/ W6 M$ h - done8 O/ w: l% ?3 f H4 Z
- fi5 F; _" _0 \" _0 Q8 p* g
- , }5 @- E+ R" J% C1 L! C; w
- if [ "$BR_MAC" == "$KEY" ]; then
+ ^; N& v, K9 z7 F9 s - if [ "$TELNETENABLE" == "1" ]; then
0 i% a$ d6 C7 `- V/ O+ q+ ? - iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1( v' Z0 B3 B* K; \. x, Q" X
- iptables -I CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1. r* l" ?% w" G: A" S' }
- /fhrom/bin/telnetd -p 23 >/dev/null 2>&1+ A8 i: f+ P: t7 c8 v" y! S
- elif [ "$TELNETENABLE" == "0" ]; then
0 Z2 z' o% P! |- G0 W - killall telnetd >/dev/null 2>&1* z! K7 r, E& t4 T
- iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1) q3 A( h# ^9 ?; E! d ?" |7 g$ f
- fi: D8 h/ E" Z, z. E$ F: M2 x' ?
- else( E& {3 e6 X( [ V
- echo "<html>% N% q& ?, j9 b* b
- <head><title>404 Not Found</title></head>& d1 l& }5 b' Q3 B- h- L& n9 s
- <body># c% H' S! ^" y/ f
- <center><h1>404 Not Found</h1></center>
# p4 A8 j9 J" I4 H, Z, _ - </body>4 V& M( B! u+ }5 K" u5 D1 J5 W
- </html>"$ U7 @$ L$ j; v9 W0 ^
- exit 0: ?, I0 s) e# ]1 |0 r3 A* n0 t0 q
- fi
* R8 T2 n% V& _
7 q6 M! E+ x1 [ |( d3 a- ! s P* _. ~* I* _$ v4 _. ?
- echo "<html><head>
1 v0 g1 P. H* C$ ]( r% P! O O8 G - <meta http-equiv="Content-Type" content="text/html; charset=utf-8">. B) M3 @4 H' F2 h! C# J& ?& ~
- </head>/ u7 D, C6 s: o9 ?& U
- <body>
2 E6 t9 G/ B4 x8 U s% } - <script type='text/javascript'>
2 a8 i' l+ a: c5 D% V9 k- g; Z - if ( '$TELNETENABLE' == '1' ), C2 V( y( I: Q# C2 s/ ~: `; C
- {! ^- K$ D w( o1 @# X2 d
- document.writeln('telnet开启');( _; j0 z$ X$ y2 o1 R
- }
6 o' q4 E. P, [2 W0 R - else if ( '$TELNETENABLE' == '0' )
/ m& Y6 L( f' a4 O - {
$ m1 f! E% E% @$ b) h! ^ - document.writeln('telnet关闭');! K5 O- a9 V4 l& F
- }8 d# W5 j8 I+ V2 Q7 e, H4 |
- else# L& G: e8 e3 W ^
- {" G( H7 F" ?1 u1 i: r
- document.writeln('无操作');
. {0 E3 {- u' Y/ ~ - }
) d$ E) W" f; j$ g: b - </script>9 c. q' i5 S3 q/ @9 F
- </body>7 \6 O( A: Q3 h) n3 x
- </html>
复制代码
( x' {/ `; D2 c% W+ B5 f1 E
7 H d' h2 K6 Z$ C5 v- I7 C. X7 i9 Z4 U& X( L7 c! a. |
4 L/ L3 O' A9 H4 O6 Q* W
$ j& m# y" I: F) p. d K! k* i: A. m
2. 接口越权
" X, E$ M# u" ~( L/ b, a' p+ l
2 Z2 {$ [' o1 W; q( r
5 Y. s! y! |( j! }1 d此处利用光猫接口未做权限及操作分离的设计,在登录超级账号后脚本调用接口开启telnet
; K8 r3 L" W! O' d, e4 x2 B8 k) }
* ?) u: b% a3 B; V- B脚本参考附件
- M* L; P1 [( X$ e/ g7 _* P3 p$ X. {# k, b
; K- O! z. ]+ T9 U5 V2 ?
3 a7 R5 A! J* Y
: y5 z* P; V* O6 j2 q! ^( m# P& A7 \( I `( u. C8 F4 h
) R2 A- A: G5 q/ k" c
脚本实现了 上述1,2 两种方案。9 i+ l: m9 v) L- |- C" `
被坑了几千猫粮下载的固件无法刷入,所以写个教程和脚本赚点猫粮
+ S: V, F; ^8 W9 e
$ Z* v* }# \8 O6 K6 X3 E/ R' g( M8 w0 V: y- {' M) u* u
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|