黑客网站渗透入侵破解拿权限
10.5K subscribers
2.38K photos
108 links
Download Telegram
可以看到靶场并无脚本源码,且那么就减少了很多黑盒测试点,而且靶场必定会存在漏洞这也是与实战的重大区别之一,而且很容易就爆破成功

本靶场后台功能极其简单只有一个功能点,且一看就是要测试RCE

会有很多模块,很多功能需要测试,对这种后台打点通常会先尝试文件上传漏洞,因为上传点更容易寻找,而RCE测试点则极为复杂,通常会在例如"系统""命令"等字段的模块,但其实所有模块都可能存在RCE,因为模块本身就是前端与后台执行功能的地方,黑盒测试你无法从前端界面直接看出究竟哪个模块调用了执行命令的参数。

所以黑盒测试RCE需要将前端功能点转换为数据包,从接口,参数进行测试。

DC-5

探测:nmap扫端口,dirsearch扫目录,指纹识别

打点:在扫出来的目录中翻阅时发现存在文件包含,直接以file参数读取成功。

确定为本地包含后,找到靶机日志,将webshell写入日志,getshell成功。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
nmap探测IP端口服务,修改本地DNS文件访问靶场IP网站(找到crew字段),通过目录扫描找到后台登录口。

打点:通过cewl对网站定向搜集获取密码,通过CMS对应WPscan插件获取用户名,联合爆破进入后台。(jerry及tom的账号密码)

翻看后台提示后放弃wordpress历史漏洞,尝试ssh连接

jerry的ssh连接不上,tom连接成功(已得到的账号密码)

深入:直接SSH登录成功,执行命令发现rbash限制

自然想到rbash逃逸,逃逸成功后拿到flag3

此时用su进行用户tom转换可以成功,拿到flag4后根据git字段提示,进行git提权拿到最后的flag

很多IP经过nmap扫描后发现只会开放80端口,且80端口为主站,渗透难度极大,且我用dirsearch等工具扫目录很少能扫出有用的目录。

在找脆弱资产时还需要结合关键字,资产搜索引擎,google语法等搜索:

例如这个站:(浙大某脆弱资产)只能通过google语法site:xxx搜索出来,因为直接访问域名为404界面,路径极其复杂无法爆破,资产搜索引擎没有记录。

登录管理员后台成功,找到上传点直接getshell。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
- 全局变量
% - 局部变量
alloca - 在当前执行的函数的堆栈帧中分配内存,当该函数返回到其调用者时,将自动释放内存
i32 - 32位4字节的整数
align - 对齐
load - 读出,store写入
icmp - 两个整数值比较,返回布尔值
br - 选择分支,根据条件来转向label,不根据条件跳转的话类型goto
label - 代码标签
call - 调用函数
首先看到一些全局变量,知道了RC4_key = llvmbitccipher = "TSzkWKgbMHszXajkLBmRrnTxsNtZsSOtZzqYikCw="

我们继续分析,重点分析各个function

b64encode
b64encode 魔改

每三个字符,24位,切分成4断,每段6位。

将6位对应的值 (value+ 59)&0xff 则是编码后的值。

RC4_init
RC4_init 正常,无魔改

main
main函数逻辑cipher -->RC4_init-->RC4_enc-->RC4_enc-->b64encode需要注意一下在RC4_enc的参数中,传入的数据块长度是固定的16,所以说程序进行两次RC4_enc的原因也就确定了,是为了分两次对程序进行加密,也算是一点点小手段,总之,即使让你好好分析.II代码,考察对软件分析的细节,耐心,嘻嘻。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
1
MFC程序的运行过程分为以下四步:

利用全局应用程序对象theApp启动应用程序。

调用全局应用程序对象的构造函数,从而调用基类(CWinApp)的构造函数,完成应用程序的一些初始化工作,并将应用程序对象的指针保存起来。

进入WinMain函数。在AfxWinMain函数中获取子类的指针,利用指针实现上述的三个函数,从而完成窗口的创建注册等工作。

进入消息循环,一直到WM_QUIT。

那么问题来了,我们如何逆向mfc程序呢?因为其封装了大部分windows API,逆向起来也复杂了不少,因为需要了解大量的windows api 并且熟悉windows编程。下面进行讲解。

MFC如何逆向
如下图,是MFC框架软件的基本界面,可以看到,就是一堆button,主要逆向也是check button。

那么,对于MFC逆向,我们主要需要知道的是,当我们执行某个操作(点击某个按钮)的时候,程序会执行什么处理函数。在mfc中,程序是使用消息机制来实现操作响应的

其中这个AFX_MSGMAP_ENTRY中的最后一个成员AFX_PMSG就是一个函数指针,指向了当前控件绑定的函数。同时,这个nID成员描述的是当前控件的ID,利用这个ID就能确定我们所寻找的控件。然后这个AFX_MSGMAP结构体则会记录一个指向AFX_MSGMAP_ENTRY的指针,于是查找控件的注册函数的思路可以缩小为:

找到AFX_MSGMAP

找到控件的ID --- 关键就是找ID

那么,我们又该怎么找到控件ID呢,俗话说“工欲善其事,必先利其器”,作为逆向分析人员,肯定要选择好分析的工具了,很庆幸,我们站在巨人的肩膀上,针对mfc软件程序的逆向分析,前辈们已经开发了一些非常好用的小工具,我们可以直接使用它们。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
逆向实验CTF
打开程序软件
程序的标题Flag就在控件中,然后界面内容是让我们找一个key。很明显,我们需要找到两个东西

标题找Flag(也就是找窗口句柄)

内容找key

根据这些内容,告诉我们我们去找控件,然后这时候就要掏出xspy了。不然的话,我们如果使用老一套经典分析流程,die+ida对用架构分析,会发生下面这样的事。首先die查个架构,查个壳

好家伙,VMP壳,PE32ida走起

这样的话,我们很难继续往下分析,所以我们使用xspy分析。使用方法如图

首先我们找到了Flag_enc(944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b)我们知道特定的,窗口句柄叫 HWND

然后我们可以发现一条特殊的onMsgOnMsg:0464,func= 0x00402170(MFC1.exe+ 0x002170 )为什么特殊呢,因为只有它并不是以宏的形式出现,应该是作者自定义的消息,没有button等东西,所以程序怎么点击都无法触发任何效果;并且传入一个特殊数字0464,来触发效果。

那么,我们需要去发送这条消息来出发func函数以获取我们需要的key

使用 API FindWindow 获取窗口句柄,SendMessage发送消息,得到了key{I am a Des key}

最后DES解密即可
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
代码中定义了一个SqlChecker全局的类,强制处理所有用户传参,找注入这个方向有有点难啃了

系统用户信息遍历
找到/api/user/getusers接口

接口没有做鉴权,构造请求包发送,返回包返回系统所有用户信息

其中用户信息包括姓名、出生日期、微信账号、手机号码、邮箱、密码等等

伪造jwt_token获取系统管理员-拿下靶标
源码获取到jwt_token的secret

但是该secret不是可读性文本,估计是随机生成的byte字节序列,因此不能自行使用cyberchief或者其他工具将token直接生成

这里有个坑点:开始是使用gpt生成的脚本进行secret的读取和token的生成,发现gpt在处理字节上面有点问题,生成的jwt_token不能使用,于是自行编写了个py脚本进行jwt_token的构造,首先我们将字节序列做16进制的转化,为了python能够使用bytes.fromhex()函数读取16进制化的secret,然后根据上面读出的用户信息,伪装admin账号身份,并设置一个较长的ExpireTime

拿到jwt_token之后,要如何使用才能拿到后台呢,这里首先要明白该系统的登录鉴权机制

由于他存在注册功能,我们便可在自行注册一个账号,然后进行登录,查看认证处理流程

从数据包里面得知,登录成功后会返回jwt_token和一些与用户相关的一些信息,前端会根据返回的身份信息,跳转到对应的页面,并且功能接口都会带上jwt_token进行请求以便获取系统数据

了解清楚后,就开始进行身份伪造,首先去后台登录系统

将登录返回包的内容替换为管理员账号的token(从python脚本中生成)和管理员用户的身份信息

通过鉴权后,终于成功获取管理员后台,靶标5000分到手,哈哈
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke