首先要深深感谢“晓风残月”,没有他的深入研究、详细说明、以及程序贡献,就不会有所谓的Root shell;
% W6 y9 ~4 k: |0 w9 c7 ?) s6 x其次感谢sdgaojian,没有他的实践、介绍,我就根本不可能解决问题!2 U# e/ u# e/ H9 @2 g
6 H: j0 n* {0 _! w$ h5 M8 f
为了方便各位坛友阅读,我先进行无差别扫盲:
6 f6 B( Z- M3 F8 X% Y* rHGU:Home Gateway Unit 家庭网关单元,说白了就是直接可以充当路由器的光猫(甚至可能封掉了桥接的功能);
5 B1 j* }/ [5 }; d& CSFU:SingleFamilyUnit,单个家庭用户单元;: |; l4 f: x) A( C; p# c5 r
SBU:SingleBusinessUnit,单个商业用户单元;
* ?* G# Y3 \1 ^% C) s% {7 wMDU:Multi-DwellingUnit,多住户单元;
w& Q4 [/ `; M$ Z$ KMTU:Multi-TenantUnit,多租户单元;
4 D: D5 Y& j/ m3 N9 BEPON:Ethernet Passive Optical Network,以太网无源光网络(理论上GPON技术更优于EPON,但实际使用上各有千秋)) f8 k- h6 {5 F- N
GPON:Gigabit Passive Optical Network,千兆无源光网络7 U, s1 v8 F8 B9 b, m; J
ONU:Optical Network Unit,光网络单元(ONT是ONU的组成部分),我们可以理解为ONU是多局域网口的光猫,而ONT是单网口的光猫。
) h2 v4 W; a" Q- J4 {ONT:Optical Network Terminal,光网络终端。( w, r/ u7 c% A+ G1 ]5 ]
1 }1 t; N/ B' a8 y) I# V: S. _) u- m
问题描述:
! U6 x1 X8 y# Y0 A9 ~! b! s8 R我目前家里使用的光猫是烽火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的帖子,研究之。: j2 S$ y: V) r! O3 ~# p
" {5 u8 F3 G' Y+ O; p' x, I% O" z问题处理:$ O: s$ l! c. o7 }
根据sdgaojian的帖子,得知已有由晓风残月提供的解决方案,但具体使用过程中,表述的不是很清楚,这里我详细说明下。
v, e* Q; ?: u1.我们分别需要tftpd、puttygen、putty三个程序,和晓风残月编译好的payload-mod程序包(内含payload-mod.bin、dropbear、duit9rr.sh、hostkey四个关键文件)。
$ H( |4 w8 _- w& o& t
' ~9 W7 n1 \& R* G3 l& q, b2 J9 j8 A. {! j: {$ |* J
2.运行puttygen分别生成RSA公钥和私钥2 O' v0 N, m/ J, O$ l8 e/ t/ A
a.点击生成证书,提示在界面内移动鼠标生成随机数据,不停移动鼠标一会儿后,证书生成:. U, Y( Q- j! J5 {$ U P8 a
`, m* E Q2 P k b.获得公钥:上右图中字符串即为authorized_keys,可以复制另存为rsa.pub文件得到,也可点击“Save public key”,另存为rsa.pub文件得到(该文件上传至HG8347R系统后会被duit9rr.sh脚本自动改名为authorized_keys)。后续公钥会连同payload-mod程序包一起使用,公钥主要用于配合ssh服务器端(dropbear)使用。
6 u) e* L. S: e n c.获得私钥:点击“Save private key”得到与公钥相配套的私钥文件(PPK结尾),即为用于ssh客户端使用的私钥文件。
# e. O; I- K' n# ?4 |* Q4 ~5 ]9 e" C. M7 A( l3 n
6 w( W/ K! h2 O2 v
3.方案思路:先使用telnet登录HG8347R终端,然后将payload-mod.bin文件通过指令从tftpd服务器上传到HG8347R系统并自动加载执行,结果为HG8347R系统自动调用并执行duit9rr.sh脚本,分别再将dropbear、hostkey、rsa.pub从tftpd服务器上传至HG8347R系统后,自动启动SSH服务器dropbear。然后我们再在pc端运行putty,登录SSH,获得ROOT SHELL权限。
: ]2 ~, ?+ S. I t9 N0 M; l% v+ j0 b3 {3 {
# I$ C- b O# v" O4.具体步骤:
4 K& W1 p' g1 ]' J+ `$ U 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同目录下;. i9 r* `# Z8 V8 A7 j
! k) V( l2 w, L2 Q. d$ w5 G) e g b.telnet登录192.168.1.1,使用用户名:root,密码:admin登录。在WAP命令字符界面下,输入加载指令:" ]# K; M' D9 B' g0 z" Y
load pack by tftp svrip 192.168.1.2 remotefile payload-mod.bin: P/ o8 Q" l: m$ o) S2 o
如一切操作正确会显示:2 i( x) o- ]- C) s
WAP>load pack by tftp svrip 192.168.1.2 remotefile payload-mod.bin success!! N6 x! r9 _: C
WAP>Software Operation Successful!RetCode=0x0!6 u" _* c5 U& D4 K7 q( ]2 K
c.在PC端运行putty,进行配置,服务器ip:192.168.1.1,端口:2222,登录名:root,auth证书:选择您生成的PPK结尾的私钥文件。
8 O8 h, s- n' C* `5 }4 n5 {3 L& g8 t7 r$ x7 N7 J; z
6 g. z) a5 {$ {, ]' A 确认配置正确后,点击Open按钮,呵呵登录成功了。* H F8 ?9 _, Y z& H* {! s. Q
6 J7 X3 b7 }0 t1 c9 ^$ h, _ 经过验证,已经获取root shell权限,下面的不用我教了,呵呵。祝各位愉快。相关文件我会一并提供。
* V' r8 F( N4 m, x; N# {# F3 X& ^% [3 \, Y* c
|