信息收集
端口扫描
1 | PORT STATE SERVICE |
全端口扫描也只扫描了一个22和一个80,开始识别一些服务
1 | PORT STATE SERVICE VERSION |
资产梳理
ssh | OpenSSH 8.9p1 |
---|---|
服务器 | Apache httpd 2.4.52 ((Ubuntu)) |
OS | (Ubuntu)) |
语言 | php |
http
一般来讲这种靶机只能慢慢磨web
目录扫描
1 | ==> DIRECTORY: http://192.168.2.10/shop/ |
只看到一个shop的页面 没什么功能点也没接口,只能继续扫目录
一个login.php
shopadmin@midnight.coffee邮箱
依旧还是老规矩登录框,测试弱口令等
woc真的一点思路都没了
子域名收集
由于此时我们无法找到任何有用的信息,所以这个时候看一下子域名,所以此时要配置一下hosts
将域名解析成ip了,同时爆破子域名
使用了fuzz 成功找到一个dev子域名,由于这是在靶场环境,只能解析为同一个ip但是不同服务.
因此还需要在hosts上加上一个解析。访问dev.midnight.coffee 域名可以得到
之后想到之前的login.php,直接登陆得到ssh的账号和密码
Getshell
**tuna : 1L0v3_TuN4_Very_Much
Post
横向提权
查看/etc/crontab 我们可以看到有一个shopadmin的定时任务,查看执行脚本之后才发现他执行/tmp目录下的所有shell脚本。思路就是反弹一个shopadmin的shell到我们的本地。因此写一个1.sh
纵向提权
直接查看sudo 权限
***/usr/bin/ruby * /opt/shop.rb:
指定允许用户以提升的权限运行的命令或命令集。在这种情况下,它允许用户使用任何参数运行 ruby
解释器,后跟位于 /opt/shop.rb
的脚本。
这个就是纯属送分了
但是这个不符合规定的规则,因此可以看到可以将/opt/shop.rb 放在后面
1 | sudo ruby -e 'exec "/bin/sh"' /opt/shop.rb |
拿到root_shell 打完收工下机