Session:查看已经建立的连接
Job:查看哪些模块处于运行状态
Payload的生成:
Generate命令直接生成paylaod:
避免坏字符:(\x00等等坏字符)
并不是直接去掉坏字符,而是采用编码的方式。Encoder:x86/shikata_ga_nai
-e:指定编码模板
-i:编码5轮
-x:加载一个模板,这样shellcode就会夹在模板软件当中一起运行。
-f:输出文件类型
-o:文件保存位置
举个栗子:
在目标机器上执行生成的shellcode:
运行程序之后,4444端口被监听:
然后连接shellcode:
NOP:no-operation / Next Operation(无任何操作)
-EIP返回到存储NOP sled的任意地址时将递增,最终导致shellcode执行
当CPU指令执行到在这个字符时,会自动执行到下一个指令。常用于填充payload。
Meterpreter:
1、 高级、动态、可扩展的Payload
2、 完全基于内存的DLL注入式payload
a) 注入合法系统进程并建立stager
b) 基于stager上传和预加载DLL进行扩展模块的注入
c) 基于stager建立的socket连接建立加密的TLS/1.0通信隧道
d) 利用通信隧道进一步加载后续扩展模块(避免网络取证)
3、 服务端使用C语言编写
Meterpreter的使用入门:
1、 采用之前的方式生成一个meterpreter的shellcode,然后本地使用multi模块监听端口,获取反弹的shell。
2、 常用命令:
Hashdump:获取SAM文件的hash值
Pwd:查看你当前路径
Dir与ls :列目录
查看系统文件:
Run和bgrun :运行一些命令(bgrun在后台运行)
举个栗子:bgrun killav 关闭系统的杀软
域环境下,枚举计算机:
Getuid:查看用户身份
Getsystem:提升权限:
Getprivs:获取当前用户可执行的权限:
Clearev:清除系统日志
Download:文件下载,存储位置为lpwd的路径
获取payload当前注入在哪一个进程,并尝试进程迁移:
Kill杀死进程:
Upload文件上传:
Execute执行文件:
3、 附清单: