首先要深深感谢“晓风残月”,没有他的深入研究、详细说明、以及程序贡献,就不会有所谓的Root shell;/ p4 [: j+ }& z" P
其次感谢sdgaojian,没有他的实践、介绍,我就根本不可能解决问题!
7 |" I( ?; H! j" {
; L4 f. D; b6 i' x* a为了方便各位坛友阅读,我先进行无差别扫盲:- z) n' @+ K# G' T9 e5 X$ f4 F
HGU:Home Gateway Unit 家庭网关单元,说白了就是直接可以充当路由器的光猫(甚至可能封掉了桥接的功能);
! [% P/ z- J% z9 BSFU:SingleFamilyUnit,单个家庭用户单元;
* n! }. B, a, \# u" x9 K9 {SBU:SingleBusinessUnit,单个商业用户单元;
$ S: z3 `5 r9 X: O) Z: GMDU:Multi-DwellingUnit,多住户单元;$ {& H* q# D% [9 }
MTU:Multi-TenantUnit,多租户单元;$ i4 c' Y b8 S+ P% p% G
EPON:Ethernet Passive Optical Network,以太网无源光网络(理论上GPON技术更优于EPON,但实际使用上各有千秋)
' Q& K/ Q. t) d* N' R/ Y* h3 @. ~0 jGPON:Gigabit Passive Optical Network,千兆无源光网络
8 l$ O r. e( z0 T9 Q5 ^ONU:Optical Network Unit,光网络单元(ONT是ONU的组成部分),我们可以理解为ONU是多局域网口的光猫,而ONT是单网口的光猫。2 K& F$ a* s) L, U, C: B' ?4 c t$ u
ONT:Optical Network Terminal,光网络终端。
' Z9 p+ c" E: f. T1 n2 k- a5 z1 x& {" J& J5 j9 [
问题描述:5 U: w" B2 h" ~: x4 A
我目前家里使用的光猫是烽火HG220G-U,北京联通EPON ONU定制版。各种被锁,无法搞定,因此网购了新光猫准备替换,网购的是华为HG8347R,联通天津HGU-EPON定制版。为了达到光猫替换的目的,我们必须先修改华为HG8347R的/mnt/jffs2/hw_boardinfo.xml硬件配置文件中的设备MAC地址为烽火的MAC,来欺骗局端。要修改该文件首先需要获得系统shell的root权限。HG8347R的web管理员帐户密码没有被锁,标准的华为telecomadmin/admintelecom,进入后开telnet,再使用终端登录,用root/admin可进。如telnet被封,可使用华为专用使能工具开telnet。telnet的WAP命令字符界面下,使用命令su,进入SuWAP,再敲入shell,进入busybox,发现被阉割,ls、cd 、vi等基础指令都禁止使用,怎么办?发现了sdgaojian关于ROOT Shell的帖子,研究之。
! ]' h3 o4 y3 C' p `2 H1 ?4 {1 f1 D1 ~/ ?5 W
问题处理:, O6 Z6 m3 m ]& n4 ?; _
根据sdgaojian的帖子,得知已有由晓风残月提供的解决方案,但具体使用过程中,表述的不是很清楚,这里我详细说明下。
+ Y% H- h x* R) v8 i9 ]2 L- W1 P1.我们分别需要tftpd、puttygen、putty三个程序,和晓风残月编译好的payload-mod程序包(内含payload-mod.bin、dropbear、duit9rr.sh、hostkey四个关键文件)。/ C! h+ |8 S: r+ D& J/ A- @
; m2 M9 `! K; P! _9 {5 d! {% h, y
) ~- | K; l* N- P
2.运行puttygen分别生成RSA公钥和私钥
/ p" _0 Y4 s+ a7 b* a a.点击生成证书,提示在界面内移动鼠标生成随机数据,不停移动鼠标一会儿后,证书生成:) A' B" m. }" `& {
D+ `. C# W2 p7 v, ^; B, }
b.获得公钥:上右图中字符串即为authorized_keys,可以复制另存为rsa.pub文件得到,也可点击“Save public key”,另存为rsa.pub文件得到(该文件上传至HG8347R系统后会被duit9rr.sh脚本自动改名为authorized_keys)。后续公钥会连同payload-mod程序包一起使用,公钥主要用于配合ssh服务器端(dropbear)使用。 ( z7 H3 x+ J5 F& D3 z9 m. u" l" J2 [
c.获得私钥:点击“Save private key”得到与公钥相配套的私钥文件(PPK结尾),即为用于ssh客户端使用的私钥文件。( F- ~2 I' \+ ~- F; s' T* B0 K K
. a5 ?' n v6 }1 l" l# p1 M9 }% X1 T$ R4 `: B
3.方案思路:先使用telnet登录HG8347R终端,然后将payload-mod.bin文件通过指令从tftpd服务器上传到HG8347R系统并自动加载执行,结果为HG8347R系统自动调用并执行duit9rr.sh脚本,分别再将dropbear、hostkey、rsa.pub从tftpd服务器上传至HG8347R系统后,自动启动SSH服务器dropbear。然后我们再在pc端运行putty,登录SSH,获得ROOT SHELL权限。6 d9 Y4 V w, ?8 h
+ f6 _) k- Z1 F T
0 S: V+ q8 n' u" ]- O0 x1 m i4.具体步骤:+ n, ^" ~ H8 ?! x; j
a.确认光猫IP为192.168.1.1,设置连接光猫的PC的ip为192.168.1.2。运行tftpd,指定网卡为192.168.1.2。将payload-mod.bin、dropbear、duit9rr.sh、hostkey、rsa.pub五个文件放至tftpd同目录下;
* {* ^9 x8 `# e. l" z, x0 R- ]: ^' X& l0 y/ d
b.telnet登录192.168.1.1,使用用户名:root,密码:admin登录。在WAP命令字符界面下,输入加载指令:: `9 r, v' O5 H4 ?
load pack by tftp svrip 192.168.1.2 remotefile payload-mod.bin; W5 s" V+ D" m' o0 w k8 A
如一切操作正确会显示:9 w% t5 `3 o9 ]. j& j; Z) a
WAP>load pack by tftp svrip 192.168.1.2 remotefile payload-mod.bin success!/ y2 I! O9 {" O5 h4 E
WAP>Software Operation Successful!RetCode=0x0!9 P0 Q3 I$ ?5 X/ M0 t+ B$ T
c.在PC端运行putty,进行配置,服务器ip:192.168.1.1,端口:2222,登录名:root,auth证书:选择您生成的PPK结尾的私钥文件。$ E" k0 w" {1 M! t: T
% W' s1 O& N+ m o% c
' B5 E/ l+ }' ]) r& { 确认配置正确后,点击Open按钮,呵呵登录成功了。' j! ]" y* C# C: \( h
6 W6 c1 z- i9 Y9 d 经过验证,已经获取root shell权限,下面的不用我教了,呵呵。祝各位愉快。相关文件我会一并提供。 . `, a3 m; `( n& Y: k
& Z0 R3 @. {1 _! u* ?' v* p& g! y
|