VulnHub:DC-4靶机实验

信息收集

主机发现

利用apr-scan或者nmap探测靶机的IP地址

arp-scan -l 

VulnHub:DC-4靶机实验

扫描开放端口及对应服务

nmap -sV -p- 192.168.56.117

VulnHub:DC-4靶机实验

分析:

通过扫描所得结果分析,开放了22(ssh),80(http)
web服务器为Nginx 1.15.10,操作系统为Debian

漏洞发现

暴力破解登录页面

访问80端口,是一个登录页面没有验证码验证,经过测试也没有登录次数限制,所以这可以进行暴力破解
VulnHub:DC-4靶机实验
通过返回的长度猜测暴破成功
VulnHub:DC-4靶机实验

命令注入

成功登录,通过页面中system tools command等英文单词猜测可能存在命令注入
VulnHub:DC-4靶机实验
进入command,run执行,可以看到成功执行了 ls -l 命令
VulnHub:DC-4靶机实验
这里抓包进行分析,成功执行两条命令
VulnHub:DC-4靶机实验

漏洞利用

nc反弹shell

既然可以执行命令,这就可以直接利用nc反弹shell
kali中监听端口

nc -lvvp 2333

执行nc
VulnHub:DC-4靶机实验
可以看到kali中反弹成功,利用python获取交互式shell

python -c "import pty;pty.spawn('/bin/bash')"

VulnHub:DC-4靶机实验
这里是www-data的权限,sudo -l发现需要www-data的密码,没得办法只好跳过,另外想办法
VulnHub:DC-4靶机实验
到home目录看到charles jim sam 三个目录,其中charles和sam什么也没有,jim中存在文件目录
VulnHub:DC-4靶机实验
VulnHub:DC-4靶机实验
backups目录中是个密码字典,既然有字典首先想到就是暴破,这先记着看还有没其他思路
VulnHub:DC-4靶机实验
mbox没有读的权限
VulnHub:DC-4靶机实验
test.sh是个shell脚本权限为777也不知道有没有用
VulnHub:DC-4靶机实验
另外两个暂时没什么思路,这就先利用密码字典进行暴破,因为开放了ssh服务,第一个想到的就是利用hydra暴破ssh。有了这个思路由于字典在目标上,需要将字典传到kali上,这里我利用python搭建了http服务器,利用kali访问下载

python -m SimpleHTTPServer 8000

VulnHub:DC-4靶机实验
点击下载即可
VulnHub:DC-4靶机实验
这我将它重命名了
VulnHub:DC-4靶机实验

hydra ssh暴破

接下来进行暴破,且成功暴破出密码

hydra -l jim -P old-passwords.txt -t 30 -f 192.168.56.117 ssh

VulnHub:DC-4靶机实验
利用暴破出来的密码登录ssh
VulnHub:DC-4靶机实验
首先还是sudo -l 输入密码 ,弹出说在dc-4中jim用户不能执行sudo,但是下面有个提示,有个新邮件在/var/mail/jim中。
VulnHub:DC-4靶机实验
根据提示cat打开文件,直接就得到了charles用户的密码
VulnHub:DC-4靶机实验
用户直接切换成功,还是普通用户权限,接着就是提权了
VulnHub:DC-4靶机实验

提权

再次利用sudo -l 看到charles用户可以无密码以root执行teehee
VulnHub:DC-4靶机实验
teehee没见过这个命令 --help查看,了解到teehee -a 可以写入文件内容并不覆盖文件原有内容。
VulnHub:DC-4靶机实验
最后还是通过百度了解到如何利用teehee提权
向/etc/passwd里面直接写入一个用户,uid写为0,gid写为0

echo "baba::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

VulnHub:DC-4靶机实验
切换到baba用户,id查看为root用户,提权成功
VulnHub:DC-4靶机实验
进入root目录 cat flag.txt
VulnHub:DC-4靶机实验

上一篇:python str转dict


下一篇:javascript原型找不到属性或是方法或是undefined是怎么会事?