|
本帖最后由 anysoft 于 2023-6-25 10:05 编辑 5 R) x- O) H4 U9 u4 |% x% y
, u8 T& s, p( f) U- b, ~固件不断地更新,厂商和运营商也不断的修补漏洞和后门一些以前的方法已经失效了。
+ v( c( g2 E5 r( L0 h) x9 S" }1 A d0 r7 u
该帖中修正一种方法中key,新增一个开telnet脚本。0 n4 d( v# |4 [
& H* Q1 \4 g! I. W
闲话不多说直接上东西。) E) N/ Z b9 A7 s8 Y" F( p* J2 U' y
+ E7 P+ g/ |4 @. e" i4 ?% b/ m
8 w( l* O* S3 m# s
开telnet4 G, I7 [; \! r0 \
默认其实telnet服务是开启的,只是防火墙策略禁止外部访问,而所谓开telnet其实是让防火墙放行23端口。 h8 N" \* I9 m8 k2 t+ Q) P
! \; c6 N6 J8 h' M+ U6 `
1. 管理后门# f9 e4 d O9 P' p' X4 L
利用 telnetenable.cgi 传入 key 和 telnetenable 参数值开启telnet,这个属于管理后门性质接口。几乎所有版本都有,通用性高,但是key在各个版本之间可能存在差异。具体可以捅菊花后获取固件内程序后文件分析。! j/ | a) j5 R. U9 g i0 U$ \: k
! [- v! f9 c9 z, F: F& h* n: r- q; j老版本:key=FH-nE7jA%5m光猫MAC后6位全大写
- {- c* ~9 X6 u新版本:参考附件/ E* C6 Z p2 y! v
B! l; X" q0 S5 b# t
j& m$ r+ q1 Y
0 X, u! q, A$ @2 b; |; d
) k0 X" n" v* _附上 telnetenable.cgi 代码* T+ x* |$ ^9 F- E% _
- #!/bin/sh) f- b- I$ {. I$ `
- echo Content-type: text/html
E1 \: G! m* b9 W& W5 y - echo9 K8 y# j" b( B& Q* C
/ |9 \# G% r- g, I" z+ o- BR_MAC=`cat /sys/class/net/br0/address | sed 's/://g' | awk '{print toupper($0)}'`* g0 m8 j" H& e/ }8 i7 {5 H
- if [ -n "$QUERY_STRING" ]; then
; O+ q" L ]( c* Z$ B; {; i, A - for paramIndex in 1 2
7 Y/ o6 d) M2 G2 k- B7 c. B - do
+ d$ [) I4 {9 _+ z4 I& A8 U - CGIParam=`echo "$QUERY_STRING&" | cut -d '&' -f ${paramIndex}`
6 n# u6 F6 e0 T# u' w9 M - par=`echo "$CGIParam" | cut -d '=' -f 1`# }1 F1 e5 ~' b; q, H# q
- val=`echo "$CGIParam" | cut -d '=' -f 2`+ C5 X# b {1 c S; L+ f
- if [ "$val" != "" ]; then
( N9 o6 n t% e- [; F - case $par% B* ?9 }. D! c# _( f8 t8 D
- in# g& q/ _, [6 ?3 I( q
- "telnetenable")
( c1 `, {) D" y - TELNETENABLE=$val0 \5 T3 a% s# B9 s) j4 H
- ;;/ r# K% K! R1 N* t& c. m
- "key")
4 |8 d& R, V$ } - KEY=$val4 P, S% _, r+ R) m* u t& X7 L
- ;;
0 E0 v Y) v( H8 ] - esac$ K( G# D$ ^" w" x
- fi
. c, O* d, d. `' `/ j, I. [" d - done) |9 j1 c9 K: B. I+ ]% V- @8 n
- fi
- y/ D$ ]' I/ K) s
% A% F/ n# l. V5 s7 J' Q- if [ "$BR_MAC" == "$KEY" ]; then3 S5 S! w+ ^0 W" X2 h7 `! z6 T$ [
- if [ "$TELNETENABLE" == "1" ]; then. r7 }+ G/ j5 e8 M; |. x
- iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1
9 r: h8 `( B9 w) g6 ] - iptables -I CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&13 @% ~7 y& F6 o0 e6 R
- /fhrom/bin/telnetd -p 23 >/dev/null 2>&1
/ v1 j! A& s& e# Z0 D6 [: R! @ - elif [ "$TELNETENABLE" == "0" ]; then
3 u+ K5 b- ?$ S" x$ y5 W$ g - killall telnetd >/dev/null 2>&1# P+ I+ ^3 ?3 F2 x0 k* ?! h
- iptables -D CHAIN_SERVICE -i br0 -p tcp --dport 23 -j ACCEPT >/dev/null 2>&1+ E: @9 z6 {: k P: \
- fi3 Q' i- }7 y; L/ M4 w& I9 H
- else
, ^6 [( F3 A0 U5 J" W - echo "<html>5 D8 A. N& o% g) ~4 o1 b
- <head><title>404 Not Found</title></head>
6 H! H. J4 k9 |! p3 x$ i. F - <body>& g3 b, F! G A+ }9 n( e2 K# @& |
- <center><h1>404 Not Found</h1></center> [0 b. P" X @) P7 |! i
- </body>
. ?1 D3 O& i& Y7 Q) {% ^+ ~: Y& e - </html>"
4 d* D j0 N* ]5 v: e$ b - exit 0. }2 n' y3 [' F1 w9 _
- fi
; B, k( q7 m4 H% X1 A% j
% d4 G4 p2 u) c3 p) n7 m
) l7 \0 K; Y) f i3 m$ o- echo "<html><head>2 e! _/ A7 b) E' A) u: D
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">, R$ t* Q9 k( V: i# _, r) l; v
- </head>
" `3 x4 s9 D/ ^" O - <body> B# @# d6 C# G: _4 J/ c6 k
- <script type='text/javascript'>
/ E" ?8 ~* a. n3 Q" ?: M - if ( '$TELNETENABLE' == '1' )
6 q( J! c( P" A; v V - {
% e0 L4 M) D! j1 D$ } p - document.writeln('telnet开启');
+ S4 R) L" C: R0 [. P - }
9 h7 g: ], ? n8 W+ p7 \ - else if ( '$TELNETENABLE' == '0' )
+ N- h: {- w7 Z* w% Y5 I# E - {+ N* W' X0 O& k- i2 q! x
- document.writeln('telnet关闭');
, V* O, Y% D, ^: K2 `/ u - }6 Q6 M* d- v& `, c
- else" p% l3 ~( w* J. H: s( y2 A* Y
- {
0 M, G. H6 n4 M# S; }0 I - document.writeln('无操作');. B& ^3 ] u3 @) d9 Q
- }
) l2 h5 H/ K3 K% U - </script>
( {$ f; [+ _# P - </body>) W( z# e3 |, h$ V
- </html>
复制代码
5 O4 s/ L+ f8 M
: l& @6 X; {0 g6 [/ b+ W9 p! _0 ^/ m8 w3 W6 d- O& [% B; v y, h2 T
* g( K% l9 Y: _% J6 Q+ D$ A/ A" o6 W! J
) G: J# _0 U. k! X+ A5 B2. 接口越权6 z: [8 {1 |3 T1 }+ A. {
0 @6 q7 p4 R% d/ ?4 s+ o' D
q) o- N2 ^" e
此处利用光猫接口未做权限及操作分离的设计,在登录超级账号后脚本调用接口开启telnet
9 y$ m3 s0 J8 L& c' r) i5 B: W' X/ v& L, P
脚本参考附件
' q2 H( q. I+ t7 X! K0 J" n& c- u" N+ M/ j; G+ g8 }$ w
: Q; ?+ ?; S9 h4 w% r" _; u8 x+ M
9 O! b1 y/ f* R8 x4 j
|* ~ n4 g9 T r' N; _7 M
: R5 ]/ w1 |9 b0 f/ U
, j8 x3 M( M+ R6 H. r1 K% s. f脚本实现了 上述1,2 两种方案。# X; r X/ @/ W: w9 J
被坑了几千猫粮下载的固件无法刷入,所以写个教程和脚本赚点猫粮{:7_198:}5 x; {, m. P( n8 J2 j$ J, f
- R( z' V1 n1 } O* p. k( s
6 D8 @" _; q' q/ v b& s0 }
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|