VulnhubDC9下载靶场 提取码:lyq1
将下载好的靶场导入VMware,虚拟机设置网络模式为nat模式,即可开启渗透
主机发现
首先查看自己属于的网段ip
进行nmap主机发现
nmap -sP -sn 192.168.106.1/24
-sP进行主机发现发送ping包
-sn进行NULL扫描
探测到ip地址为192.168.106.129 所以我们进一步了解该靶场的服务
使用nmap -sV -A -T4 192.168.106.129
发现http(80)和ssh(22)服务我们先从http下手,首先访问该网站首页
从首页上面看一共有四个目录分别是Home / Display All Records / Search / Manage
Display All Records![](https://i-blog.csdnimg.cn/blog_migrate/d0c06daaa7100dc4c2392cc5c69ea558.png)
Manage
Search
在页面发现了一个search框,可以查询用户信息,与数据库交互,猜测可能存在SQL注入,随便输入数据查询,url都没有参数出现,说明该包为POST方式提交,使用Burp检查是否存在SQL注入的可能
发现存在sql注入的漏洞,直接使用sqlmap一把梭
sqlmap -u http://192.168.106.129/results.php --data "search=2222" --dbs
这个时候我们发现数据库已经被我们跑出来了 information_schema是每个数据库自带的 所以我们可以先查看users
sqlmap -u http://192.168.106.129/results.php --data "search=2222" -D users --tablesD
查看数据表中的所有字段值
sqlmap u http://192.168.106.129/results.php --data "search=2222" -D users -T UserDetails --dump
我们发现这些账户并没有进行什么密码加密,我们可以在访问一下Staff数据库
sqlmap -u http://192.168.106.129/results.php --data "search=1" --dbs -D Staff --tables
发现有两个表,我们可以先看看users表
sqlmap -u http://192.168.106.129/results.php --data "search=1" -D Staff -T user --dump
此账号进行了md5加密 所以我们进行md5解密 最后mi'm密码为transorbital1
带着admin账户和transorbital1密码去登录Manage.php并且成功登录
登录后发现多了Add Record和Manage页面,在Manage的下面发现一句话File does not exits,猜测存在文件包含
通过/etc/passwd的账户和user数据库撞库,将用户名密码分别保持带txt中
最终得到
使用hydra进行ssh连接发现链接失败
端口扫码发现ssh的端口状态是filtered,可能进行了防护,使用了knocked(敲门服务)
大概意思就是使用了knocked后,需要依次输入端口敲门序列(如,7000,7777.8888)防火墙才会允许我们访问22端口.端口敲门序列可以在/etc/knock.conf中查看,这个时候我们继续利用文件包含漏洞
发现端口顺序是7469,8475,9842 我们只需要一个一个访问就可以了 可以使用nmap或nc等工具
然后继续使用hydra进行访问,发现访问成功登录ssh
这个时候我们应该想着提权
提权
登录了janitor后进行sudo -l寻找带root权限执行的文件无果 只能想其他方式
这个时候我们可以访问一下home目录看看有没有什么线索
每个文件我们都可以去访问一下
发现一个可疑文件passwords-found-on-post-it-notes.txt访问一下
发现了一些密码我们可以添加到hydra里面继续破解 又破解了一个fredf账户
然后继续ssh登录 登录成功
再次使用sudo -l发现有root权限执行的文件
使用sudo /opt/devstuff/dist/test/test
发现
打开这个python脚本看看
find / -name test.py 2>/dev/null
打开脚本python
提权思路
创建一个root权限的新用户(因为提权脚本告诉我们有读和修改的权限)
使用openssl工具创建一个本地的加密用户,命令openssl passwd -1 -salt admin admin
然后创建一个文件在/tmp临时目录,使用sudo ./test /tmp/test1 /etc/passwd使用命令执行test文件将/tmp/test1的内容写入到/etc/passwd文件中
最终得到root权限 拿到flag