forked from cliffe/SecGen
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathputting_it_together.xml
More file actions
185 lines (162 loc) · 5.83 KB
/
Copy pathputting_it_together.xml
File metadata and controls
185 lines (162 loc) · 5.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<?xml version="1.0"?>
<scenario xmlns="http://www.github/cliffe/SecGen/scenario"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.github/cliffe/SecGen/scenario">
<name>Putting it together</name>
<author>Z. Cliffe Schreuders</author>
<description>
A target server is leaking pieces of a login through two separate misconfigured
services: an over-shared network file share reveals part of the puzzle, and an
unusual open port hands out the rest to anyone who connects. Piece together the
recovered credentials, log in as a regular user, and collect a flag from their
home directory. From there, a permissive sudo rule lets an ordinary command break
out into a root shell - work out which allowed command can be abused to complete
the takeover.
</description>
<type>ctf</type>
<type>attack-ctf</type>
<type>pwn-ctf</type>
<difficulty>medium</difficulty>
<CyBOK KA="NS" topic="PENETRATION TESTING">
<keyword>PENETRATION TESTING - NETWORK MAPPING - FINGERPRINTING</keyword>
<keyword>PENETRATION TESTING - NETWORK MAPPING - NMAP</keyword>
<keyword>SECURE SHELL (SSH)</keyword>
</CyBOK>
<CyBOK KA="SOIM" topic="PENETRATION TESTING">
<keyword>PENETRATION TESTING - NETWORK MAPPING - RECONNAISSANCE</keyword>
<keyword>PENETRATION TESTING - SOFTWARE TOOLS</keyword>
</CyBOK>
<CyBOK KA="F" topic="Artifact Analysis">
<keyword>Encoding and alternative data formats</keyword>
</CyBOK>
<CyBOK KA="MAT" topic="Attacks and exploitation">
<keyword>EXPLOITATION</keyword>
</CyBOK>
<CyBOK KA="SOIM" topic="PENETRATION TESTING">
<keyword>PENETRATION TESTING - ACTIVE PENETRATION</keyword>
</CyBOK>
<!-- escalate to user and to root via sudo -->
<CyBOK KA="AAA" topic="Authorisation">
<keyword>access control</keyword>
<keyword>Elevated privileges</keyword>
<keyword>Vulnerabilities and attacks on access control misconfigurations</keyword>
</CyBOK>
<CyBOK KA="OSV" topic="Primitives for Isolation and Mediation">
<keyword>Access controls and operating systems</keyword>
<keyword>Linux security model</keyword>
<keyword>Attacks against SUDO</keyword>
</CyBOK>
<CyBOK KA="AB" topic="Models">
<keyword>kill chains</keyword>
</CyBOK>
<CyBOK KA="MAT" topic="Malicious Activities by Malware">
<keyword>cyber kill chain</keyword>
</CyBOK>
<system>
<system_name>attack_vm</system_name>
<base distro="Kali" name="MSF"/>
<input into_datastore="IP_addresses">
<!-- 0 attack_vm -->
<network_ip system="attack_vm"/>
<!-- 1 hackme_server -->
<network_ip system="server"/>
</input>
<utility module_path=".*/parameterised_accounts">
<input into="accounts">
<value>{"username":"kali","password":"kali","super_user":"true","strings_to_leak":[],"leaked_filenames":[]}</value>
</input>
</utility>
<utility module_path=".*/iceweasel">
<input into="accounts">
<value>{"username":"kali","password":"kali","super_user":"true","strings_to_leak":[],"leaked_filenames":[]}</value>
</input>
<input into="autostart">
<value>false</value>
</input>
</utility>
<utility module_path=".*/kali_top10"/>
<utility module_path=".*/kali_web"/>
<network type="private_network"/>
<input into_datastore="spoiler_admin_pass">
<generator type="strong_password_generator"/>
</input>
<build type="cleanup">
<input into="root_password">
<datastore>spoiler_admin_pass</datastore>
</input>
</build>
</system>
<system>
<system_name>server</system_name>
<base distro="Debian 12" type="desktop" name="KDE"/>
<!-- strong password -->
<input into_datastore="username">
<generator type="random_sanitised_word">
<input into="wordlist">
<value>mythical_creatures</value>
</input>
</generator>
</input>
<!-- strong password -->
<input into_datastore="password">
<generator type="strong_password_generator"/>
</input>
<!--Create the user - can ssh in using the discovered username and password -->
<utility module_path=".*/parameterised_accounts">
<input into="accounts">
<generator type="account">
<input into="username">
<datastore>username</datastore>
</input>
<input into="password">
<datastore>password</datastore>
</input>
<input into="super_user">
<value>false</value>
</input>
<input into="leaked_filenames">
<value>flag</value>
</input>
<input into="strings_to_leak">
<generator type="flag_generator"/>
</input>
</generator>
</input>
</utility>
<vulnerability module_path=".*/nfs_overshare">
<input into="strings_to_leak">
<value>User</value>
<datastore>username</datastore>
<generator type="flag_generator"/>
</input>
</vulnerability>
<utility module_path=".*/nc_message">
<input into="strings_to_leak">
<value>Password</value>
<datastore>password</datastore>
<generator type="flag_generator" />
</input>
<input into="port">
<generator module_path=".*/random_number">
<input into="minimum">
<value>1024</value>
</input>
<input into="maximum">
<value>2024</value>
</input>
</generator>
</input>
</utility>
<vulnerability module_path=".*/sudo_root_awk">
<input into="strings_to_leak">
<generator type="flag_generator"/>
</input>
</vulnerability>
<network type="private_network"/>
<build type="cleanup">
<input into="root_password">
<datastore>spoiler_admin_pass</datastore>
</input>
</build>
</system>
</scenario>