靶场(十二)---小白心得靶场思路---Cockpit
启程:
扫端口,得到一些服务但是都不认识,先去google上面搜搜看有没有exp
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 98:4e:5d:e1:e6:97:29:6f:d9:e0:d4:82:a8:f6:4f:3f (RSA)
| 256 57:23:57:1f:fd:77:06:be:25:66:61:14:6d:ae:5e:98 (ECDSA)
|_ 256 c7:9b:aa:d5:a6:33:35:91:34:1e:ef:cf:61:a8:30:1c (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-title: blaze
|_http-server-header: Apache/2.4.41 (Ubuntu)
9090/tcp open ssl/zeus-admin?
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=blaze/organizationName=d2737565435f491e97f49bb5b34ba02e
| Subject Alternative Name: IP Address:127.0.0.1, DNS:localhost
| Not valid before: 2025-03-17T00:33:38
|_Not valid after: 2125-02-21T00:33:38
| fingerprint-strings:
| GetRequest, HTTPOptions:
| HTTP/1.1 400 Bad request
| Content-Type: text/html; charset=utf8
| Transfer-Encoding: chunked
| X-DNS-Prefetch-Control: off
| Referrer-Policy: no-referrer
| X-Content-Type-Options: nosniff
| <!DOCTYPE html>
| <html>
| <head>
| <title>
| request
| </title>
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
| <meta name="viewport" content="width=device-width, initial-scale=1.0">
| <style>
| body {
| margin: 0;
| font-family: "RedHatDisplay", "Open Sans", Helvetica, Arial, sans-serif;
| font-size: 12px;
| line-height: 1.66666667;
| color: #333333;
| background-color: #f5f5f5;
| border: 0;
| vertical-align: middle;
| font-weight: 300;
| margin: 0 0 10px;
|_ @font-face {
<style>
| body {
| margin: 0;
| font-family: "RedHatDisplay", "Open Sans", Helvetica, Arial, sans-serif;
| font-size: 12px;
| line-height: 1.66666667;
| color: #333333;
| background-color: #f5f5f5;
| border: 0;
| vertical-align: middle;
| font-weight: 300;
| margin: 0 0 10px;
|_ @font-face {
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprin
然后我们接着去访问9090端口,发现有个登录界面是个重大突破,标记一下(没有截80端口的访问是因为该端口下的页面是个静态页面。无需单独拿出来)
然后我们对80端口进行爆破看看有无我们想要的东西,结果什么也没有(这里记作重点,因为这里我是用大字典去跑但是出现了这种情况)
然后我又去跑了一下9090端口登录界面,看看能不能越权看到一些东西,让我跑出一个ping目录
我们去看了一下这个ping目录,发现一个新的服务,发现一个server,这个server虽存在一些exp执行文件,但是经过实验,都不可用,但是我因为挨个尝试踩了好久坑,因为当时80啥也没跑出来又是个静态页面
这里可以看到我下了一堆关于这个服务的exp文件,包括但不限于爆用户和密码的(哭死)
然后因为把所有服务的exp都测了一遍之后,发现没啥线索,只能从头枚举,于是我又去看了一下80端口的目录,结果这回没动用字典却跑出来一个login的新目录。。。
去访问这个目录发现成功访问,这边是想到了sql注入,也试出了单引号报错,但是试了多个sql命令都不成功
这里也是可以看到出现在我们输入单引号成功报错,正如我上面所说原先学院的sql字典不好用
库库出这样的错。。。
这里我推荐一个github的网站在文章后面,大家可以用这条命令,绕过登录验证
'OR '' = '
这里也是可以看到我们获得两个用户名和两个base64加密的密码
直接上burp的decoder进行解密,也是很轻松的获得了密码
这个时候就可以尝试是否可以ssh登录,结果经过测试发现人家直接受密钥登录
这个时候我又想到了我们9090端口还存在一个登录页面,随返回尝试登录,经过测试发现只有第一对票据可以登录,第二个无法登录,然后这个时候就该找功能点了
然后我们找到了一个terminal界面,这个界面其实就可以查看一些文件,但是听说oscp不认可这种交互页面,然后正好这个页面我用的也不舒服
于是继续找功能点,发现了一个用户列表,发现了james好像可以改密码且增添票据
这个就试添加票据的地方,但是root那个添加票据就是黑的(果然没那么简单)
这里就是成功添加密钥
然后我们通过私钥连接之后直接上linpeas
扫了一边发现之后有个sudo方面的提权,但是这个tar命令这种方面的提权我是没讲过,GTOSbin上面也没看懂怎么利用
后来拜读了一篇文章,发现了问题的所在,然后利用这种方式成功提权,后续我也会把文章链接放在文章后面
这里也是可以看到我们的james用户成功进入sudoer组,成功拿到root权限
总结:
很好的一个靶场,让我有一种眼前一亮的感觉,推荐大家去做,然后额外补充一下这个立足点不止一个,还有一个是可以通过上传nc,然后通过nc回连,这个大家可以尝试一下,我就不过多解释了
好链接分享:
Linux 权限提升:使用 tar 的通配符 | by Ben Folland | Medium --- Linux Privilege Escalation: Wildcards with tar | by Ben Folland | Medium
https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Databases/MySQL-SQLi-Login-Bypass.fuzzdb.txt