首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

强者恒强吗?来看看各国如何发展机器人产业!

机器人被誉为制造业皇冠上的明珠,是衡量一个国家科技创新和高端制造业水平的重要标志。各主要工业国家均将这一制造业高地视为必争之地,纷纷推出各具特色的机器人战略。结果仍未可知,但在各国政府的推动下,机器人已经迎来了又一个春天。 韩国:加快机器人与制造业的融合 韩国近日宣布推出第二个机器人五年计划,计划重点放在机器人与其他行业的融合上面。通过开展机器人研究与开发,不断增强综合能力,扩大各行业对机器人的需求,构建开放的机器人产业生态系统,并联合企业投资26亿美元加快建设机器人的融合网络。 目标是在2018年实现机器

05

MSSQL绕过微软杀毒提权案例

0x04 其他绕过思路 当目标机器存在Windows Defender防病毒软件时,即使已经拿到了Administrator会话后仍然无法执行getsystem、hashdump、list_tokens等命令和一些后渗透模块,除了上边已测试的migrate进程迁移方法外还可以尝试以下三个思路。尽可能的拿到目标机器的SYSTEM以及HASH和明文密码,在内网环境中可能会有其他用途,这里仅为大家扩展几个绕过思路,就不截图了! (1) 直接添加管理员用户 使用shell命令进入cmdshell后直接利用net命令来添加一个管理员用户,然后远程桌面连接进去关闭Windows Defender防病毒软件的实时保护,最后尝试抓取目标机器HASH和明文密码。 net user test xxxasec!@#!23 /add net localgroup administrators test /add (2) 修改SAM注册表权限 使用regini命令修改SAM注册表权限,然后利用post/windows/gather/hashdump模块抓取目标机器HASH,最后再利用135/445等支持哈希传递的工具来执行命令。 echo HKLM\SAM\SAM [1 17]>C:\ProgramData\sam.ini regini C:\ProgramData\sam.ini (3) 关闭杀毒软件实时保护 使用Windows Defender防病毒软件中自带的MpCmdRun.exe程序来关闭它的实时保护,然后再利用hashdump命令或模块抓取目标机器HASH。MSF中的rollback_defender_signatures模块也可以用来关闭实时保护,但是需要SYSTEM权限才能执行。 C:\PROGRA~1\WINDOW~1>MpCmdRun.exe -RemoveDefinitions -all MpCmdRun.exe -RemoveDefinitions -all Service Version: 4.18.1812.3 Engine Version: 1.1.17600.5 AntiSpyware Signature Version: 1.327.2026.0 AntiVirus Signature Version: 1.327.2026.0 NRI Engine Version: 1.1.17600.5 NRI Signature Version: 1.327.2026.0 Starting engine and signature rollback to none... Done! 0x05 注意事项 记得前几年在测试Windows Defender时好像几乎所有获取MSF会话的方式都是会被拦截的,但是不知道为什么在这个案例中就没有拦截web_delivery模块中的Powershell,hta_server模块是会被拦截的,MSF或Windows Defender版本原因吗?这里我也没有再去深究这个问题,所以大家在实战测试中还是得自己多去尝试,说不定哪种方法就成功了呢!!! 只需在公众号回复“9527”即可领取一套HTB靶场学习文档和视频,“1120”领取安全参考等安全杂志PDF电子版,“1208”领取一份常用高效爆破字典,还在等什么?

02

最近做RTSP流媒体的实时广播节目

//h264视频流打包代码 // NALDecoder.cpp : Defines the entry point for the console application. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <memory.h> #include “h264.h” #include “initsock.h” CInitSock initSock;  // 初始化Winsock库 //为NALU_t结构体分配内存空间 NALU_t *AllocNALU(int buffersize) {  NALU_t *pNalu;  if ((pNalu = (NALU_t*)calloc (1, sizeof (NALU_t))) == NULL) {   printf(“AllocNALU: Nalu”);   exit(0);  }  pNalu->max_size=buffersize;  if ((pNalu->buf = (char*)calloc (buffersize, sizeof (char))) == NULL) {   free (pNalu);   printf (“AllocNALU: Nalu->buf”);   exit(0);  }  return pNalu; } //释放 void FreeNALU(NALU_t *pNalu) {  if (pNalu) {   if (pNalu->buf) {    free(pNalu->buf);    pNalu->buf=NULL;   }   free (pNalu);  } } static int FindStartCode2 (unsigned char *Buf) {  if(Buf[0]!=0 Buf[1]!=0 Buf[2] !=1) return 0; //推断是否为0x000001,假设是返回1  else return 1; } static int FindStartCode3 (unsigned char *Buf) {  if(Buf[0]!=0 Buf[1]!=0 Buf[2] !=0 Buf[3] !=1) return 0;//推断是否为0x00000001,假设是返回1  else return 1; } // 这个函数输入为一个NAL结构体。主要功能为得到一个完整的NALU并保存在NALU_t的buf中,获取他的长度。填充F,IDC,TYPE位。 // 而且返回两个開始字符之间间隔的字节数,即包括有前缀的NALU的长度 int GetAnnexbNALU (NALU_t *pNalu, FILE *bits) {  int info2=0, info3=0;  int pos = 0;  int StartCodeFound, rewind;  unsigned char *Buf;  if ((Buf = (unsigned char*)calloc (pNalu->max_size , sizeof(char))) == NULL)   printf (“GetAnnexbNALU: Could not allocate Buf memory\n”);  if (3 != fread (Buf, 1, 3, bits)) {  //从码流中读3个字节   free(Buf);   return -1;     }  if (Buf[0]!=0 Buf[1]!=0) {   free(Buf);   return -1;  }  if (Buf[2]==1) {   pNalu->startcodeprefix_len=3;   //初始化码流序列的開始字符为3个字节   pos =3;  }else {   if (1 != fread (Buf+3, 1, 1, bits)) {  //从码流中读1个字节    free(Buf);    return -1;   }   if (Buf[2]!=0 Buf[3]!=1) {    free(Buf);    return -1;   }   pos = 4;   pNalu->startcodeprefix_len = 4;  }  //查找下一个開始字符的标志位  StartCodeFound = 0;  info2 = 0;  info3 = 0;     while (!StartCodeFound)  {   if (feof (bits)) { //推断是否到了文件尾    break;   }   Buf[pos++] = fgetc (bits);//读一个字节到BUF中   info3 = FindStartCod

01
领券